aboutsummaryrefslogtreecommitdiffstats
path: root/lib/orber
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
committerErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/orber
downloadotp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz
otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2
otp-84adefa331c4159d432d22840663c38f155cd4c1.zip
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/orber')
-rw-r--r--lib/orber/AUTHORS8
-rw-r--r--lib/orber/COSS/CosNaming/CosNaming_BindingIterator_impl.erl93
-rw-r--r--lib/orber/COSS/CosNaming/CosNaming_NamingContextExt_impl.erl751
-rw-r--r--lib/orber/COSS/CosNaming/Makefile150
-rw-r--r--lib/orber/COSS/CosNaming/cos_naming.idl77
-rw-r--r--lib/orber/COSS/CosNaming/cos_naming_ext.idl37
-rw-r--r--lib/orber/COSS/CosNaming/lname.erl133
-rw-r--r--lib/orber/COSS/CosNaming/lname.hrl33
-rw-r--r--lib/orber/COSS/CosNaming/lname_component.erl83
-rw-r--r--lib/orber/COSS/CosNaming/orber_cosnaming.hrl63
-rw-r--r--lib/orber/COSS/CosNaming/orber_cosnaming_utils.erl750
-rw-r--r--lib/orber/Makefile41
-rw-r--r--lib/orber/c_src/InitialReference.cc205
-rw-r--r--lib/orber/c_src/InitialReference.hh59
-rw-r--r--lib/orber/c_src/Makefile23
-rw-r--r--lib/orber/c_src/Makefile.in113
-rw-r--r--lib/orber/c_src/main.cc31
-rw-r--r--lib/orber/doc/etc/.gitignore0
-rw-r--r--lib/orber/doc/html/.gitignore0
-rw-r--r--lib/orber/doc/javadoc/.gitignore0
-rw-r--r--lib/orber/doc/man1/.gitignore0
-rw-r--r--lib/orber/doc/man3/.gitignore0
-rw-r--r--lib/orber/doc/pdf/.gitignore0
-rw-r--r--lib/orber/doc/src/CosNaming.xml74
-rw-r--r--lib/orber/doc/src/CosNaming_BindingIterator.xml98
-rw-r--r--lib/orber/doc/src/CosNaming_NamingContext.xml249
-rw-r--r--lib/orber/doc/src/CosNaming_NamingContextExt.xml102
-rw-r--r--lib/orber/doc/src/Makefile272
-rw-r--r--lib/orber/doc/src/Module_Interface.xml355
-rw-r--r--lib/orber/doc/src/Orber/InitialReference.java130
-rw-r--r--lib/orber/doc/src/Orber/Makefile70
-rw-r--r--lib/orber/doc/src/Orber/ignore_config_record.inf1
-rw-r--r--lib/orber/doc/src/any.xml116
-rw-r--r--lib/orber/doc/src/book.gifbin0 -> 1081 bytes
-rw-r--r--lib/orber/doc/src/book.xml48
-rw-r--r--lib/orber/doc/src/ch_contents.xml172
-rw-r--r--lib/orber/doc/src/ch_debugging.xml209
-rw-r--r--lib/orber/doc/src/ch_example.xml170
-rw-r--r--lib/orber/doc/src/ch_exceptions.xml237
-rw-r--r--lib/orber/doc/src/ch_idl_to_erlang_mapping.xml1471
-rw-r--r--lib/orber/doc/src/ch_ifr.xml49
-rw-r--r--lib/orber/doc/src/ch_install.xml1071
-rw-r--r--lib/orber/doc/src/ch_interceptors.xml278
-rw-r--r--lib/orber/doc/src/ch_introduction.xml144
-rw-r--r--lib/orber/doc/src/ch_naming_service.xml461
-rw-r--r--lib/orber/doc/src/ch_orber_kernel.xml102
-rw-r--r--lib/orber/doc/src/ch_orberweb.xml221
-rw-r--r--lib/orber/doc/src/ch_security.xml148
-rw-r--r--lib/orber/doc/src/ch_stubs.xml283
-rw-r--r--lib/orber/doc/src/corba.xml451
-rw-r--r--lib/orber/doc/src/corba_object.xml196
-rw-r--r--lib/orber/doc/src/dataframe1.gifbin0 -> 21074 bytes
-rw-r--r--lib/orber/doc/src/dataframe1.ps6021
-rw-r--r--lib/orber/doc/src/dataframe2.gifbin0 -> 27848 bytes
-rw-r--r--lib/orber/doc/src/dataframe2.ps8597
-rw-r--r--lib/orber/doc/src/dataframe3.gifbin0 -> 30290 bytes
-rw-r--r--lib/orber/doc/src/dataframe3.ps14882
-rw-r--r--lib/orber/doc/src/dataframe4.gifbin0 -> 40114 bytes
-rw-r--r--lib/orber/doc/src/dataframe4.ps14713
-rw-r--r--lib/orber/doc/src/dataframe5.gifbin0 -> 11184 bytes
-rw-r--r--lib/orber/doc/src/dataframe5.ps3800
-rw-r--r--lib/orber/doc/src/dataframe6.gifbin0 -> 12331 bytes
-rw-r--r--lib/orber/doc/src/dataframe6.ps6653
-rw-r--r--lib/orber/doc/src/dataframe7.gifbin0 -> 12768 bytes
-rw-r--r--lib/orber/doc/src/dataframe7.ps5231
-rw-r--r--lib/orber/doc/src/dataframe8.gifbin0 -> 29939 bytes
-rw-r--r--lib/orber/doc/src/dataframe8.ps20261
-rw-r--r--lib/orber/doc/src/dependent.gifbin0 -> 1936 bytes
-rw-r--r--lib/orber/doc/src/dependent.ps402
-rw-r--r--lib/orber/doc/src/example_part.xml38
-rw-r--r--lib/orber/doc/src/fascicules.xml18
-rw-r--r--lib/orber/doc/src/firewall_nat.gifbin0 -> 11939 bytes
-rw-r--r--lib/orber/doc/src/firewall_nat.ps9227
-rw-r--r--lib/orber/doc/src/fixed.xml160
-rw-r--r--lib/orber/doc/src/ifr_notes.txt53
-rw-r--r--lib/orber/doc/src/iiop.gifbin0 -> 5899 bytes
-rw-r--r--lib/orber/doc/src/iiop.ps819
-rw-r--r--lib/orber/doc/src/images/GridBagEx.gifbin0 -> 2453 bytes
-rw-r--r--lib/orber/doc/src/images/OpenBookIcon.gifbin0 -> 2241 bytes
-rw-r--r--lib/orber/doc/src/images/blue-ball-small.gifbin0 -> 255 bytes
-rw-r--r--lib/orber/doc/src/images/blue-ball.gifbin0 -> 925 bytes
-rw-r--r--lib/orber/doc/src/images/class-index.gifbin0 -> 1497 bytes
-rw-r--r--lib/orber/doc/src/images/constructor-index.gifbin0 -> 1711 bytes
-rw-r--r--lib/orber/doc/src/images/constructors.gifbin0 -> 1565 bytes
-rw-r--r--lib/orber/doc/src/images/cyan-ball-small.gifbin0 -> 255 bytes
-rw-r--r--lib/orber/doc/src/images/cyan-ball.gifbin0 -> 925 bytes
-rw-r--r--lib/orber/doc/src/images/error-index.gifbin0 -> 1438 bytes
-rw-r--r--lib/orber/doc/src/images/exception-index.gifbin0 -> 1707 bytes
-rw-r--r--lib/orber/doc/src/images/green-ball-small.gifbin0 -> 102 bytes
-rw-r--r--lib/orber/doc/src/images/green-ball.gifbin0 -> 886 bytes
-rw-r--r--lib/orber/doc/src/images/interface-index.gifbin0 -> 1648 bytes
-rw-r--r--lib/orber/doc/src/images/magenta-ball-small.gifbin0 -> 104 bytes
-rw-r--r--lib/orber/doc/src/images/magenta-ball.gifbin0 -> 896 bytes
-rw-r--r--lib/orber/doc/src/images/method-index.gifbin0 -> 1588 bytes
-rw-r--r--lib/orber/doc/src/images/methods.gifbin0 -> 1403 bytes
-rw-r--r--lib/orber/doc/src/images/package-index.gifbin0 -> 1607 bytes
-rw-r--r--lib/orber/doc/src/images/red-ball-small.gifbin0 -> 255 bytes
-rw-r--r--lib/orber/doc/src/images/red-ball.gifbin0 -> 527 bytes
-rw-r--r--lib/orber/doc/src/images/variable-index.gifbin0 -> 1576 bytes
-rw-r--r--lib/orber/doc/src/images/variables.gifbin0 -> 1380 bytes
-rw-r--r--lib/orber/doc/src/images/yellow-ball-small.gifbin0 -> 255 bytes
-rw-r--r--lib/orber/doc/src/images/yellow-ball.gifbin0 -> 925 bytes
-rw-r--r--lib/orber/doc/src/interceptor_operations.gifbin0 -> 14537 bytes
-rw-r--r--lib/orber/doc/src/interceptor_operations.ps22543
-rw-r--r--lib/orber/doc/src/interceptors.xml283
-rw-r--r--lib/orber/doc/src/intro_part.xml40
-rw-r--r--lib/orber/doc/src/lname.xml165
-rw-r--r--lib/orber/doc/src/lname_component.xml112
-rw-r--r--lib/orber/doc/src/make.dep69
-rw-r--r--lib/orber/doc/src/menuframe.gifbin0 -> 12007 bytes
-rw-r--r--lib/orber/doc/src/menuframe.ps4917
-rw-r--r--lib/orber/doc/src/name.gifbin0 -> 5015 bytes
-rw-r--r--lib/orber/doc/src/name.ps1112
-rw-r--r--lib/orber/doc/src/naming_graph.ps372
-rw-r--r--lib/orber/doc/src/notes.gifbin0 -> 2005 bytes
-rw-r--r--lib/orber/doc/src/notes.xml410
-rw-r--r--lib/orber/doc/src/notes_history.xml1523
-rw-r--r--lib/orber/doc/src/orber.gifbin0 -> 17015 bytes
-rw-r--r--lib/orber/doc/src/orber.xml689
-rw-r--r--lib/orber/doc/src/orber_acl.xml106
-rw-r--r--lib/orber/doc/src/orber_diagnostics.xml80
-rw-r--r--lib/orber/doc/src/orber_ifr.xml1034
-rw-r--r--lib/orber/doc/src/orber_tc.xml258
-rw-r--r--lib/orber/doc/src/orbs.gifbin0 -> 2817 bytes
-rw-r--r--lib/orber/doc/src/orbs.ps582
-rw-r--r--lib/orber/doc/src/part.xml49
-rw-r--r--lib/orber/doc/src/part_notes.xml38
-rw-r--r--lib/orber/doc/src/part_notes_history.xml38
-rw-r--r--lib/orber/doc/src/ref_man.gifbin0 -> 1530 bytes
-rw-r--r--lib/orber/doc/src/ref_man.xml52
-rw-r--r--lib/orber/doc/src/summary.html.src1
-rw-r--r--lib/orber/doc/src/theORB.gifbin0 -> 4706 bytes
-rw-r--r--lib/orber/doc/src/theORB.ps635
-rw-r--r--lib/orber/doc/src/tools_debugging_part.xml39
-rw-r--r--lib/orber/doc/src/user_guide.gifbin0 -> 1581 bytes
-rw-r--r--lib/orber/ebin/.gitignore0
-rw-r--r--lib/orber/examples/Makefile41
-rw-r--r--lib/orber/examples/Stack/InitialReferences.idl12
-rw-r--r--lib/orber/examples/Stack/Makefile121
-rw-r--r--lib/orber/examples/Stack/StackClient.cc96
-rw-r--r--lib/orber/examples/Stack/StackClient.java72
-rw-r--r--lib/orber/examples/Stack/StackModule_StackFactory_impl.erl40
-rw-r--r--lib/orber/examples/Stack/StackModule_Stack_impl.erl46
-rw-r--r--lib/orber/examples/Stack/stack.idl27
-rw-r--r--lib/orber/examples/Stack/stack_client.erl55
-rw-r--r--lib/orber/examples/Stack/stack_factory.erl37
-rw-r--r--lib/orber/include/Makefile66
-rw-r--r--lib/orber/include/corba.hrl148
-rw-r--r--lib/orber/include/ifr_types.hrl72
-rw-r--r--lib/orber/include/orber_pi.hrl76
-rw-r--r--lib/orber/info2
-rw-r--r--lib/orber/java_src/Makefile41
-rw-r--r--lib/orber/java_src/Orber/InitialReference.java130
-rw-r--r--lib/orber/java_src/Orber/Makefile70
-rw-r--r--lib/orber/prebuild.skip5
-rwxr-xr-xlib/orber/priv/Makefile66
-rw-r--r--lib/orber/priv/Orber/.gitignore0
-rw-r--r--lib/orber/priv/bin/.gitignore0
-rwxr-xr-xlib/orber/priv/blank.html6
-rwxr-xr-xlib/orber/priv/info_frames.html9
-rwxr-xr-xlib/orber/priv/main_frame.html9
-rw-r--r--lib/orber/priv/obj/.gitignore0
-rwxr-xr-xlib/orber/priv/orber.tool2
-rwxr-xr-xlib/orber/priv/orber_help.txt42
-rwxr-xr-xlib/orber/priv/start_info.html31
-rw-r--r--lib/orber/src/CORBA.idl22
-rw-r--r--lib/orber/src/Makefile268
-rw-r--r--lib/orber/src/OrberApp_IFR_impl.erl101
-rw-r--r--lib/orber/src/OrberCSIv2.asn145
-rw-r--r--lib/orber/src/OrberCSIv2.set.asn5
-rw-r--r--lib/orber/src/OrberIFR.idl12
-rw-r--r--lib/orber/src/PKIX1Algorithms88.asn1274
-rw-r--r--lib/orber/src/PKIX1Explicit88.asn1619
-rw-r--r--lib/orber/src/PKIX1Implicit88.asn1349
-rw-r--r--lib/orber/src/PKIXAttributeCertificate.asn1189
-rw-r--r--lib/orber/src/any.erl73
-rw-r--r--lib/orber/src/cdr_decode.erl1487
-rw-r--r--lib/orber/src/cdr_encode.erl1151
-rw-r--r--lib/orber/src/cdrlib.erl414
-rw-r--r--lib/orber/src/corba.erl2180
-rw-r--r--lib/orber/src/corba_boa.erl134
-rw-r--r--lib/orber/src/corba_nvlist.erl97
-rw-r--r--lib/orber/src/corba_object.erl220
-rw-r--r--lib/orber/src/corba_request.erl384
-rw-r--r--lib/orber/src/fixed.erl305
-rw-r--r--lib/orber/src/ifr_objects.hrl421
-rw-r--r--lib/orber/src/iop_ior.erl1716
-rw-r--r--lib/orber/src/orber.app.src109
-rw-r--r--lib/orber/src/orber.appup.src7
-rw-r--r--lib/orber/src/orber.erl1216
-rw-r--r--lib/orber/src/orber_acl.erl396
-rw-r--r--lib/orber/src/orber_diagnostics.erl240
-rw-r--r--lib/orber/src/orber_env.erl1456
-rw-r--r--lib/orber/src/orber_exceptions.erl717
-rw-r--r--lib/orber/src/orber_ifr.erl1817
-rw-r--r--lib/orber/src/orber_ifr.hrl34
-rw-r--r--lib/orber/src/orber_ifr_aliasdef.erl134
-rw-r--r--lib/orber/src/orber_ifr_arraydef.erl103
-rw-r--r--lib/orber/src/orber_ifr_attributedef.erl137
-rw-r--r--lib/orber/src/orber_ifr_constantdef.erl147
-rw-r--r--lib/orber/src/orber_ifr_contained.erl247
-rw-r--r--lib/orber/src/orber_ifr_container.erl463
-rw-r--r--lib/orber/src/orber_ifr_enumdef.erl129
-rw-r--r--lib/orber/src/orber_ifr_exceptiondef.erl164
-rw-r--r--lib/orber/src/orber_ifr_fixeddef.erl79
-rw-r--r--lib/orber/src/orber_ifr_idltype.erl74
-rw-r--r--lib/orber/src/orber_ifr_interfacedef.erl339
-rw-r--r--lib/orber/src/orber_ifr_irobject.erl72
-rw-r--r--lib/orber/src/orber_ifr_moduledef.erl183
-rw-r--r--lib/orber/src/orber_ifr_operationdef.erl191
-rw-r--r--lib/orber/src/orber_ifr_orb.erl98
-rw-r--r--lib/orber/src/orber_ifr_primitivedef.erl69
-rw-r--r--lib/orber/src/orber_ifr_repository.erl286
-rw-r--r--lib/orber/src/orber_ifr_sequencedef.erl103
-rw-r--r--lib/orber/src/orber_ifr_stringdef.erl74
-rw-r--r--lib/orber/src/orber_ifr_structdef.erl155
-rw-r--r--lib/orber/src/orber_ifr_typecode.erl107
-rw-r--r--lib/orber/src/orber_ifr_typedef.erl124
-rw-r--r--lib/orber/src/orber_ifr_uniondef.erl175
-rw-r--r--lib/orber/src/orber_ifr_utils.erl437
-rw-r--r--lib/orber/src/orber_ifr_wstringdef.erl72
-rw-r--r--lib/orber/src/orber_iiop.erl550
-rw-r--r--lib/orber/src/orber_iiop.hrl1015
-rw-r--r--lib/orber/src/orber_iiop_inproxy.erl398
-rw-r--r--lib/orber/src/orber_iiop_inrequest.erl538
-rw-r--r--lib/orber/src/orber_iiop_insup.erl85
-rw-r--r--lib/orber/src/orber_iiop_net.erl463
-rw-r--r--lib/orber/src/orber_iiop_net_accept.erl94
-rw-r--r--lib/orber/src/orber_iiop_outproxy.erl530
-rw-r--r--lib/orber/src/orber_iiop_outsup.erl87
-rw-r--r--lib/orber/src/orber_iiop_pm.erl821
-rw-r--r--lib/orber/src/orber_iiop_socketsup.erl85
-rw-r--r--lib/orber/src/orber_iiop_tracer.erl231
-rw-r--r--lib/orber/src/orber_iiop_tracer_silent.erl190
-rw-r--r--lib/orber/src/orber_iiop_tracer_stealth.erl186
-rw-r--r--lib/orber/src/orber_initial_references.erl327
-rw-r--r--lib/orber/src/orber_interceptors.erl162
-rw-r--r--lib/orber/src/orber_objectkeys.erl570
-rw-r--r--lib/orber/src/orber_pi.erl1210
-rw-r--r--lib/orber/src/orber_request_number.erl82
-rw-r--r--lib/orber/src/orber_socket.erl504
-rw-r--r--lib/orber/src/orber_tb.erl186
-rw-r--r--lib/orber/src/orber_tc.erl283
-rw-r--r--lib/orber/src/orber_typedefs.erl82
-rw-r--r--lib/orber/src/orber_web.erl863
-rw-r--r--lib/orber/src/orber_web_server.erl191
-rw-r--r--lib/orber/vsn.mk12
247 files changed, 167537 insertions, 0 deletions
diff --git a/lib/orber/AUTHORS b/lib/orber/AUTHORS
new file mode 100644
index 0000000000..a77bdcf140
--- /dev/null
+++ b/lib/orber/AUTHORS
@@ -0,0 +1,8 @@
+Original Authors:
+Lars Thorsen
+Per Danielsson
+Peter Lundell
+Niclas Eklund
+Babbis Xagorarakis
+
+Contributors:
diff --git a/lib/orber/COSS/CosNaming/CosNaming_BindingIterator_impl.erl b/lib/orber/COSS/CosNaming/CosNaming_BindingIterator_impl.erl
new file mode 100644
index 0000000000..7d1791a785
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/CosNaming_BindingIterator_impl.erl
@@ -0,0 +1,93 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: CosNaming_BindingIterator_impl.erl
+%%
+%%-----------------------------------------------------------------
+-module('CosNaming_BindingIterator_impl').
+
+-include_lib("orber/include/corba.hrl").
+-include("CosNaming.hrl").
+-include("orber_cosnaming.hrl").
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, code_change/3]).
+-export([next_one/1, next_n/2, destroy/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%% Args:
+%% Returns:
+%%-----------------------------------------------------------------
+init(State) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------------
+%% Func: terminate/2
+%% Args:
+%% Returns:
+%%-----------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+next_one([]) ->
+ NoBinding = #'CosNaming_Binding'{binding_name=[],
+ binding_type=nobject},
+ {reply, {false, NoBinding}, []};
+next_one([Binding]) ->
+ {reply, {true, Binding}, []};
+next_one([Binding|Rest]) ->
+ {reply, {true, Binding}, Rest}.
+
+next_n([], _) ->
+ {reply, {false, []}, []};
+next_n(List, HowMany) ->
+ {More, Acc, NewList} = split(List, HowMany, []),
+ {reply, {More, Acc}, NewList}.
+
+split([], _, Acc) ->
+ {false, Acc, []};
+split(Rest, 0, Acc) ->
+ {true, Acc, Rest};
+split([H|T], N, Acc) ->
+ split(T, N-1, [H|Acc]).
+
+
+destroy(OE_State) ->
+ {stop, normal, ok, OE_State}.
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
diff --git a/lib/orber/COSS/CosNaming/CosNaming_NamingContextExt_impl.erl b/lib/orber/COSS/CosNaming/CosNaming_NamingContextExt_impl.erl
new file mode 100644
index 0000000000..84db0b89f8
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/CosNaming_NamingContextExt_impl.erl
@@ -0,0 +1,751 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: CosNaming_NamingContextExt_impl.erl
+%% Modified:
+%%
+%%-----------------------------------------------------------------
+%% README:
+%% (1)
+%%
+%%-----------------------------------------------------------------
+-module('CosNaming_NamingContextExt_impl').
+
+%%----------------------------------------------------------------------
+%% Include files
+%%----------------------------------------------------------------------
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+-include("CosNaming.hrl").
+-include("CosNaming_NamingContext.hrl").
+-include("CosNaming_NamingContextExt.hrl").
+-include("orber_cosnaming.hrl").
+
+%%----------------------------------------------------------------------
+%% External exports
+%%----------------------------------------------------------------------
+%% Mandatory callbacks
+-export([init/1,
+ terminate/2,
+ code_change/3]).
+
+%% Inherrit from CosNaming::NamingContext
+-export([bind/4,
+ rebind/4,
+ bind_context/4,
+ rebind_context/4,
+ resolve/3,
+ unbind/3,
+ new_context/2,
+ bind_new_context/3,
+ list/3,
+ destroy/2]).
+
+%% CosNaming::NamingContextExt
+-export([to_string/3,
+ to_name/3,
+ to_url/4,
+ resolve_str/3]).
+
+%%----------------------------------------------------------------------
+%% Internal exports
+%%----------------------------------------------------------------------
+-export([dump/0,
+ install/2]).
+
+%%----------------------------------------------------------------------
+%% Records
+%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% Macros
+%%----------------------------------------------------------------------
+%% DEBUG INFO
+-define(DEBUG_LEVEL, 5).
+
+%%======================================================================
+%% External functions
+%%======================================================================
+%%---------------------------------------------------------------------%
+%% Function : init/1
+%% Description: Initiates the server
+%% Returns : {ok, State} |
+%% {ok, State, Timeout} |
+%% ignore |
+%% {stop, Reason}
+%%----------------------------------------------------------------------
+init([]) ->
+ {ok, term_to_binary('undefined')};
+
+init(DBKey) ->
+ _F = ?write_function(#orber_CosNaming{name_context=DBKey,
+ nameindex=[]}),
+ write_result(mnesia:transaction(_F)),
+ {ok, DBKey}.
+
+%%---------------------------------------------------------------------%
+%% Function : terminate
+%% Description: Shutdown the server
+%% Returns : any (ignored by gen_server)
+%%----------------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+%%---------------------------------------------------------------------%
+%% Function : code_change
+%% Description: Convert process state when code is changed
+%% Returns : {ok, State}
+%%----------------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%---------------------------------------------------------------------%
+%% Function : install
+%% Arguments : Timeout - abort if timeout triggered.
+%% Options - mnesia options
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+install(Timeout, Options) ->
+ %% Fetch a list of the defined tables to see if 'CosNaming' is defined.
+ AllTabs = mnesia:system_info(tables),
+ DB_tables_created =
+ case lists:member('orber_CosNaming', AllTabs) of
+ true ->
+ case lists:member({local_content, true},
+ Options) of
+ true->
+ mnesia:add_table_copy('orber_CosNaming',
+ node(),
+ ram_copies);
+ _->
+ mnesia:create_table('orber_CosNaming',[{attributes,
+ record_info(fields,
+ 'orber_CosNaming')}
+ |Options])
+ end;
+ _ ->
+ mnesia:create_table('orber_CosNaming',[{attributes,
+ record_info(fields,
+ 'orber_CosNaming')}
+ |Options])
+ end,
+ Wait = mnesia:wait_for_tables(['orber_CosNaming'], Timeout),
+ %% Check if any error has occured yet. If there are errors, return them.
+
+ if
+ DB_tables_created == {atomic, ok},
+ Wait == ok ->
+ _F = ?write_function(#orber_CosNaming{name_context=
+ term_to_binary('undefined'),
+ nameindex=[]}),
+ write_result(mnesia:transaction(_F));
+ true ->
+ {error, [DB_tables_created, Wait]}
+ end.
+
+
+%%----------------------------------------------------------------------
+%% Interface CosNaming::NamingContext
+%%----------------------------------------------------------------------
+%%----------------------------------------------------------------------
+%% Function : bind
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+bind(OE_THIS, OE_State, [N], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _BF =
+ fun() ->
+ case mnesia:wread({orber_CosNaming, SubobjKey}) of
+ [#orber_CosNaming{nameindex = X}] ->
+ case lists:keysearch(N, 1, X) of
+ {value, _} ->
+ {'EXCEPTION', #'CosNaming_NamingContext_AlreadyBound'{}};
+ false ->
+ mnesia:write(#orber_CosNaming{name_context=SubobjKey,
+ nameindex=[{N, nobject, Obj} | X]})
+ end;
+ Other ->
+ orber:dbg("[~p] ~p:bind(~p, ~p);~n"
+ "DB access returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'CosNaming_NamingContext_CannotProceed'{rest_of_name=[N],
+ cxt=OE_THIS}}
+ end
+ end,
+ case mnesia:transaction(_BF) of
+ {atomic, {'EXCEPTION', E}} ->
+ corba:raise(E);
+ {atomic, ok} ->
+ {reply, ok, OE_State};
+ Other ->
+ orber:dbg("[~p] ~p:bind(~p, ~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+bind(OE_THIS, OE_State, [H|T], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[H|T],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(H, 1, X) of
+ {value, {H, ncontext, NC}} when is_record(NC, 'IOP_IOR') ->
+ {reply, 'CosNaming_NamingContext':bind(NC, T, Obj), OE_State};
+ {value, {H, ncontext, NC}} ->
+ bind(NC, OE_State, T, Obj);
+ _ ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'
+ {rest_of_name=[H|T], cxt=OE_THIS})
+ end
+ end;
+bind(_OE_THIS, _OE_State, [], _Obj) ->
+ orber:dbg("[~p] CosNaming_NamingContextExt:bind();~n"
+ "Invoked this operation with an empty list",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_YES}).
+
+%%----------------------------------------------------------------------
+%% Function : rebind
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+rebind(OE_THIS, OE_State, [N], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RBF =
+ fun() ->
+ case mnesia:wread({orber_CosNaming, SubobjKey}) of
+ [#orber_CosNaming{nameindex = X}] ->
+ KList =
+ case lists:keysearch(N, 1, X) of
+ {value, {N, _, _V}} ->
+ lists:keyreplace(N, 1, X, {N, nobject, Obj});
+ false ->
+ [{N, nobject, Obj} | X]
+ end,
+ mnesia:write(#orber_CosNaming{name_context=SubobjKey,
+ nameindex=KList});
+ Other ->
+ orber:dbg("[~p] ~p:rebind(~p, ~p);~n"
+ "DB access returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'CosNaming_NamingContext_CannotProceed'{rest_of_name=[N],
+ cxt=OE_THIS}}
+ end
+ end,
+ case mnesia:transaction(_RBF) of
+ {atomic, {'EXCEPTION', E}} ->
+ corba:raise(E);
+ {atomic, ok} ->
+ {reply, ok, OE_State};
+ Other ->
+ orber:dbg("[~p] ~p:rebind(~p, ~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+rebind(OE_THIS, OE_State, [H|T], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[H|T],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(H, 1, X) of
+ {value, {H, ncontext, NC}} when is_record(NC, 'IOP_IOR') ->
+ {reply, 'CosNaming_NamingContext':rebind(NC, T, Obj), OE_State};
+ {value, {H, ncontext, NC}} ->
+ rebind(NC, OE_State, T, Obj);
+ _ ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'
+ {rest_of_name=[H|T], cxt=OE_THIS})
+ end
+ end;
+rebind(_OE_THIS, _OE_State, [], _Obj) ->
+ orber:dbg("[~p] CosNaming_NamingContextExt:rebind();~n"
+ "Invoked this operation with an empty list",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_YES}).
+
+%%----------------------------------------------------------------------
+%% Function : bind_context
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+bind_context(OE_THIS, OE_State, [N], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _BCF =
+ fun() ->
+ case mnesia:wread({orber_CosNaming, SubobjKey}) of
+ [#orber_CosNaming{nameindex = X}] ->
+ case lists:keysearch(N, 1, X) of
+ {value, _} ->
+ {'EXCEPTION', #'CosNaming_NamingContext_AlreadyBound'{}};
+ false ->
+ mnesia:write(#orber_CosNaming{name_context=SubobjKey,
+ nameindex=
+ [{N, ncontext, Obj} | X]})
+ end;
+ Other ->
+ orber:dbg("[~p] ~p:bind_context(~p, ~p);~n"
+ "DB access returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'CosNaming_NamingContext_CannotProceed'{rest_of_name=[N],
+ cxt=OE_THIS}}
+ end
+ end,
+ case mnesia:transaction(_BCF) of
+ {atomic, {'EXCEPTION', E}} ->
+ corba:raise(E);
+ {atomic, ok} ->
+ {reply, ok, OE_State};
+ Other ->
+ orber:dbg("[~p] ~p:bind_context(~p, ~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+bind_context(OE_THIS, OE_State, [H|T], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[H|T],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(H, 1, X) of
+ {value, {H, ncontext, NC}} when is_record(NC, 'IOP_IOR') ->
+ {reply, 'CosNaming_NamingContext':bind_context(NC, T, Obj),
+ OE_State};
+ {value, {H, ncontext, NC}} ->
+ bind_context(NC, OE_State, T, Obj);
+ _ ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'
+ {rest_of_name=[H|T], cxt=OE_THIS})
+ end
+ end;
+bind_context(_OE_THIS, _OE_State, [], _Obj) ->
+ orber:dbg("[~p] CosNaming_NamingContextExt:bind_context();~n"
+ "Invoked this operation with an empty list",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_YES}).
+
+%%----------------------------------------------------------------------
+%% Function : rebind_context
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+rebind_context(OE_THIS, OE_State, [N], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RBCF =
+ fun() ->
+ case mnesia:wread({orber_CosNaming, SubobjKey}) of
+ [#orber_CosNaming{nameindex = X}] ->
+ KList =
+ case lists:keysearch(N, 1, X) of
+ {value, {N, _, _V}} ->
+ lists:keyreplace(N, 1, X, {N, ncontext, Obj});
+ false ->
+ [{N, ncontext, Obj} | X]
+ end,
+ mnesia:write(#orber_CosNaming{name_context=SubobjKey,
+ nameindex= KList});
+ Other ->
+ orber:dbg("[~p] ~p:rebind_context(~p, ~p);~n"
+ "DB access returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'CosNaming_NamingContext_CannotProceed'{rest_of_name=[N],
+ cxt=OE_THIS}}
+ end
+ end,
+ case mnesia:transaction(_RBCF) of
+ {atomic, {'EXCEPTION', E}} ->
+ corba:raise(E);
+ {atomic, ok} ->
+ {reply, ok, OE_State};
+ Other ->
+ orber:dbg("[~p] ~p:rebind_context(~p, ~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+rebind_context(OE_THIS, OE_State, [H|T], Obj) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[H|T],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(H, 1, X) of
+ {value, {H,ncontext, NC}} when is_record(NC, 'IOP_IOR') ->
+ {reply, 'CosNaming_NamingContext':rebind_context(NC, T, Obj),
+ OE_State};
+ {value, {H,ncontext, NC}} ->
+ rebind_context(NC, OE_State, T, Obj);
+ _ ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'
+ {rest_of_name=[H|T], cxt=OE_THIS})
+ end
+ end;
+rebind_context(_OE_THIS, _OE_State, [], _Obj) ->
+ orber:dbg("[~p] CosNaming_NamingContextExt:rebind_context();~n"
+ "Invoked this operation with an empty list",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_YES}).
+
+%%----------------------------------------------------------------------
+%% Function : resolve
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+resolve(OE_THIS, OE_State, [N]) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[N],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(N, 1, X) of
+ {value, {N, _, Value}} ->
+ {reply, Value, OE_State};
+ false ->
+ corba:raise(#'CosNaming_NamingContext_NotFound'
+ {rest_of_name=[N], why='not_object'})
+ end
+ end;
+resolve(OE_THIS, OE_State, [H|T]) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[H|T],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(H, 1, X) of
+ {value, {H, ncontext, NC}} when is_record(NC, 'IOP_IOR') ->
+ {reply, 'CosNaming_NamingContext':resolve(NC, T), OE_State};
+ {value, {H, ncontext, NC}} ->
+ resolve(NC, OE_State, T);
+ _ ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'
+ {rest_of_name=[H|T], cxt=OE_THIS})
+ end
+ end;
+resolve(_OE_THIS, _OE_State, []) ->
+ orber:dbg("[~p] CosNaming_NamingContextExt:resolve();~n"
+ "Invoked this operation with an empty list",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_YES}).
+
+%%----------------------------------------------------------------------
+%% Function : unbind
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+unbind(OE_THIS, OE_State, [N]) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _UBF =
+ fun() ->
+ case mnesia:wread({orber_CosNaming, SubobjKey}) of
+ [#orber_CosNaming{nameindex = X}] ->
+ KList = lists:keydelete(N, 1, X),
+ mnesia:write(#orber_CosNaming{name_context=SubobjKey,
+ nameindex= KList});
+ Other ->
+ orber:dbg("[~p] ~p:unbind(~p, ~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'CosNaming_NamingContext_CannotProceed'{rest_of_name=[N],
+ cxt=OE_THIS}}
+ end
+ end,
+ case mnesia:transaction(_UBF) of
+ {atomic, {'EXCEPTION', E}} ->
+ corba:raise(E);
+ {atomic, ok} ->
+ {reply, ok, OE_State};
+ Other ->
+ orber:dbg("[~p] ~p:unbind(~p, ~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, N, SubobjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+unbind(OE_THIS, OE_State, [H|T]) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'{rest_of_name=[H|T],
+ cxt=OE_THIS});
+ X ->
+ case lists:keysearch(H, 1, X) of
+ {value, {H, ncontext, NC}} when is_record(NC, 'IOP_IOR') ->
+ {reply, 'CosNaming_NamingContext':unbind(NC, T), OE_State};
+ {value, {H, ncontext, NC}} ->
+ unbind(NC, OE_State, T);
+ _ ->
+ corba:raise(#'CosNaming_NamingContext_CannotProceed'
+ {rest_of_name=[H|T], cxt=OE_THIS})
+ end
+ end;
+unbind(_OE_THIS, _OE_State, []) ->
+ orber:dbg("[~p] CosNaming_NamingContextExt:unbind();~n"
+ "Invoked this operation with an empty list",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_YES}).
+
+
+%%----------------------------------------------------------------------
+%% Function : new_context
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+new_context(_OE_THIS, OE_State) ->
+ DBKey = term_to_binary({now(), node()}),
+ %% Create a record in the table and set the key to a newly
+ {reply,
+ 'CosNaming_NamingContextExt':oe_create(DBKey,
+ [{pseudo, true}|?CREATE_OPTS]),
+ OE_State}.
+
+%%----------------------------------------------------------------------
+%% Function : bind_new_context
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+bind_new_context(OE_THIS, OE_State, N) ->
+ DBKey = term_to_binary({now(), node()}),
+ %% Create a record in the table and set the key to a newly
+ %% generated objectkey.
+ %%?PRINTDEBUG("bind_new_context"),
+ NewCtx = 'CosNaming_NamingContextExt':oe_create(DBKey,
+ [{pseudo, true}|?CREATE_OPTS]),
+ %% Bind the created name context to a name
+ case catch bind_context(OE_THIS, OE_State, N, NewCtx) of
+ {'EXCEPTION', E} ->
+ 'CosNaming_NamingContextExt':destroy(NewCtx),
+ corba:raise(E);
+ {reply, ok, _} ->
+ {reply, NewCtx, OE_State}
+ end.
+
+
+%%----------------------------------------------------------------------
+%% Function : list
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+list(OE_THIS, OE_State, HowMany) ->
+ SubobjKey = corba:get_subobject_key(OE_THIS),
+ _RF = ?read_function({orber_CosNaming, SubobjKey}),
+ case orber_cosnaming_utils:query_result(mnesia:transaction(_RF)) of
+ error ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO});
+ X ->
+ case convert_list(X, HowMany, 0, []) of
+ {false, List} ->
+ {reply, {ok, List, ?ORBER_NIL_OBJREF}, OE_State};
+ {true, List, Rest} ->
+ %% By setting HowMany to '-1' it will never match
+ %% the Counter. Hence, the whole list will be transformed.
+ {false, List2} = convert_list(Rest, -1, 0, []),
+ BIterator = 'CosNaming_BindingIterator':
+ oe_create(List2, ?CREATE_OPTS),
+ {reply, {ok, List, BIterator}, OE_State}
+ end
+ end.
+
+convert_list([], _, _, Acc) ->
+ {false, Acc};
+convert_list(Rest, Counter, Counter, Acc) ->
+ {true, Acc, Rest};
+convert_list([{N, T, _O}|Rest], HowMany, Counter, Acc) ->
+ convert_list(Rest, HowMany, Counter+1,
+ [#'CosNaming_Binding'{binding_name=[N],
+ binding_type=T}|Acc]).
+
+%%----------------------------------------------------------------------
+%% Function : destroy
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+destroy(OE_THIS, OE_State) ->
+ case corba:get_subobject_key(OE_THIS) of
+ <<131,100,0,9,117,110,100,101,102,105,110,101,100>> ->
+ %% undefined binary.
+ corba:raise(#'NO_PERMISSION'{completion_status=?COMPLETED_NO});
+ SubobjKey ->
+ _DF =
+ fun() ->
+ case mnesia:wread({orber_CosNaming, SubobjKey}) of
+ [#orber_CosNaming{nameindex = []}] ->
+ mnesia:delete({orber_CosNaming, SubobjKey});
+ Other when is_list(Other) ->
+ orber:dbg("[~p] ~p:destroy(~p);~n"
+ "DB access returned ~p",
+ [?LINE, ?MODULE, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'CosNaming_NamingContext_NotEmpty'{}};
+ Other ->
+ orber:dbg("[~p] ~p:destroy(~p);~n"
+ "DB access returned ~p",
+ [?LINE, ?MODULE, SubobjKey, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}
+ end
+ end,
+ case mnesia:transaction(_DF) of
+ {atomic, {'EXCEPTION', E}} ->
+ corba:raise(E);
+ {atomic, ok} ->
+ {reply, ok, OE_State};
+ Other ->
+ orber:dbg("[~p] ~p:destroy(~p);~n"
+ "DB transaction returned ~p",
+ [?LINE, ?MODULE, SubobjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end
+ end.
+
+%%----------------------------------------------------------------------
+%% Interface CosNaming::NamingContextExt
+%%----------------------------------------------------------------------
+%%----------------------------------------------------------------------
+%% Function : to_string
+%% Arguments : Name
+%% Description:
+%% Returns : StringName |
+%% {'EXCEPTION', NamingContext::InvalidName{}}
+%%----------------------------------------------------------------------
+to_string(_OE_This, OE_State, Name) ->
+ {reply, orber_cosnaming_utils:name2string(Name), OE_State}.
+
+
+%%----------------------------------------------------------------------
+%% Function : to_name
+%% Arguments : StringName
+%% Description:
+%% Returns : Name |
+%% {'EXCEPTION', NamingContext::InvalidName{}}
+%%----------------------------------------------------------------------
+to_name(_OE_This, OE_State, StringName) ->
+ {reply, orber_cosnaming_utils:string2name(StringName), OE_State}.
+
+
+%%----------------------------------------------------------------------
+%% Function : to_url
+%% Arguments : Address
+%% StringName
+%% Description:
+%% Returns : URLString |
+%% {'EXCEPTION', NamingContext::InvalidName{}}
+%% {'EXCEPTION', NamingContextExt::InvalidAddress{}}
+%%----------------------------------------------------------------------
+to_url(_, _, "", _) ->
+ %% Empty address not allowed.
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{});
+to_url(_OE_This, OE_State, Address, "") ->
+ %% Empty stringname => use corbaloc
+ orber_cosnaming_utils:check_addresses(Address),
+ {reply, "corbaloc:"++orber_cosnaming_utils:escape_string(Address), OE_State};
+to_url(_OE_This, OE_State, Address, StringName) ->
+ %% Non-empty stringname => use corbaname
+ orber_cosnaming_utils:check_addresses(Address),
+ orber_cosnaming_utils:check_name(StringName),
+ {reply,
+ "corbaname:"++orber_cosnaming_utils:escape_string(Address)++"#"++
+ orber_cosnaming_utils:escape_string(StringName),
+ OE_State}.
+
+%%----------------------------------------------------------------------
+%% Function : resolve_str
+%% Arguments : StringName
+%% Description:
+%% Returns : Object |
+%% {'EXCEPTION', NamingContext::InvalidName{}}
+%% {'EXCEPTION', NamingContext::NotFound{why, rest_of_name}}
+%% {'EXCEPTION', NamingContext::CannotProceed{cxt, rest_of_name}}
+%%----------------------------------------------------------------------
+resolve_str(OE_This, OE_State, StringName) ->
+ Name = orber_cosnaming_utils:string2name(StringName),
+ resolve(OE_This, OE_State, Name).
+
+%%======================================================================
+%% Internal functions
+%%======================================================================
+%% Check a write transaction
+write_result({atomic,ok}) -> ok;
+write_result(_What) ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO}).
+
+
+%%----------------------------------------------------------------------
+%% Debugging functions
+%%----------------------------------------------------------------------
+dump() ->
+ case catch mnesia:dirty_first('orber_CosNaming') of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ Key ->
+ dump_print(Key),
+ dump_loop(Key)
+ end.
+
+dump_loop(PreviousKey) ->
+ case catch mnesia:dirty_next('orber_CosNaming', PreviousKey) of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ '$end_of_table' ->
+ ok;
+ Key ->
+ dump_print(Key),
+ dump_loop(Key)
+ end.
+
+dump_print(Key) ->
+ case catch mnesia:dirty_read({'orber_CosNaming', Key}) of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ [X] ->
+ io:format("name_context: ~p\n-----------------------------\n"
+ " nameindex structure\n-----------------------------\n~p\n\n",
+ [binary_to_term(X#orber_CosNaming.name_context),
+ X#orber_CosNaming.nameindex]);
+ _ ->
+ ok
+ end.
+
+%%-------------------------- END OF MODULE -----------------------------
diff --git a/lib/orber/COSS/CosNaming/Makefile b/lib/orber/COSS/CosNaming/Makefile
new file mode 100644
index 0000000000..d3deec7600
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/Makefile
@@ -0,0 +1,150 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+EBIN=../../ebin
+
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+MODULES = \
+ CosNaming_NamingContextExt_impl \
+ CosNaming_BindingIterator_impl \
+ lname \
+ lname_component \
+ orber_cosnaming_utils
+
+ERL_FILES = $(MODULES:%=%.erl)
+HRL_FILES = lname.hrl \
+ orber_cosnaming.hrl
+GEN_ERL_FILES = \
+ oe_cos_naming.erl \
+ CosNaming_Name.erl \
+ CosNaming_NamingContext.erl \
+ CosNaming_BindingIterator.erl \
+ CosNaming_NameComponent.erl \
+ CosNaming_Binding.erl \
+ CosNaming_BindingList.erl \
+ CosNaming_NamingContext_NotFound.erl \
+ CosNaming_NamingContext_AlreadyBound.erl \
+ CosNaming_NamingContext_CannotProceed.erl \
+ CosNaming_NamingContext_InvalidName.erl \
+ CosNaming_NamingContext_NotEmpty.erl
+
+GEN_EXT_ERL_FILES = \
+ oe_cos_naming_ext.erl \
+ CosNaming_NamingContextExt.erl \
+ CosNaming_NamingContextExt_InvalidAddress.erl
+
+GEN_HRL_FILES = \
+ oe_cos_naming.hrl \
+ CosNaming.hrl \
+ CosNaming_NamingContext.hrl \
+ CosNaming_BindingIterator.hrl
+
+GEN_EXT_HRL_FILES = \
+ oe_cos_naming_ext.hrl \
+ CosNaming_NamingContextExt.hrl
+
+GEN_FILES = $(GEN_ERL_FILES) $(GEN_HRL_FILES) \
+ $(GEN_EXT_ERL_FILES) $(GEN_EXT_HRL_FILES)
+
+TARGET_FILES = \
+ $(GEN_EXT_ERL_FILES:%.erl=$(EBIN)/%.$(EMULATOR)) \
+ $(GEN_ERL_FILES:%.erl=$(EBIN)/%.$(EMULATOR)) \
+ $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+
+IDL_FILE = cos_naming.idl \
+ cos_naming_ext.idl
+
+APP_FILE =
+#APP_SRC = $(APP_FILE).src
+#APP_TARGET = $(EBIN)/$(APP_FILE)
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+ERL_IDL_FLAGS += -pa $(ERL_TOP)/lib/orber/ebin
+# The -pa option is just used temporary until erlc can handle
+# includes from other directories than ../include .
+ERL_COMPILE_FLAGS += \
+ $(ERL_IDL_FLAGS) \
+ -I$(ERL_TOP)/lib/orber/include \
+ +'{parse_transform,sys_pre_attributes}' \
+ +'{attribute,insert,app_vsn,"orber_$(ORBER_VSN)"}'
+
+YRL_FLAGS =
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+opt: $(TARGET_FILES) $(APP_TARGET)
+
+debug:
+ @${MAKE} TYPE=debug
+
+clean:
+ rm -f $(TARGET_FILES) $(GEN_FILES) $(APP_TARGET)
+ rm -f errs core *~
+
+$(APP_TARGET): $(APP_SRC)
+ sed -e 's;%VSN%;$(VSN);' $(APP_SRC) > $(APP_TARGET)
+
+docs:
+
+# ----------------------------------------------------
+# Special Build Targets
+# ----------------------------------------------------
+$(GEN_FILES): cos_naming_ext.idl cos_naming.idl
+ erlc $(ERL_IDL_FLAGS) +'{this,"CosNaming::NamingContext"}' \
+ +'{this,"CosNaming::NamingContextExt"}' cos_naming_ext.idl
+ erlc $(ERL_IDL_FLAGS) +'{this,"CosNaming::NamingContext"}' cos_naming.idl
+
+# echo "ic:gen(cos_naming, [{this, \"CosNaming::NamingContext\"}]), halt()."| $(ERL) $(ERL_IDL_FLAGS)
+
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/ebin
+ $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(RELSYSDIR)/ebin
+ $(INSTALL_DIR) $(RELSYSDIR)/COSS/CosNaming
+ $(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(IDL_FILE) $(RELSYSDIR)/COSS/CosNaming
+ $(INSTALL_DATA) $(GEN_FILES) $(RELSYSDIR)/COSS/CosNaming
+
+
+release_docs_spec:
+
diff --git a/lib/orber/COSS/CosNaming/cos_naming.idl b/lib/orber/COSS/CosNaming/cos_naming.idl
new file mode 100644
index 0000000000..3cd6c99c23
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/cos_naming.idl
@@ -0,0 +1,77 @@
+// Naming Service v1.0 described in CORBAservices:
+// Common Object Services Specification, chapter 3
+// OMG IDL for CosNaming Module, p 3-6
+
+#pragma prefix "omg.org"
+
+module CosNaming
+{
+ typedef string Istring;
+ struct NameComponent {
+ Istring id;
+ Istring kind;
+ };
+
+ typedef sequence <NameComponent> Name;
+
+ enum BindingType {nobject, ncontext};
+
+ struct Binding {
+ Name binding_name;
+ BindingType binding_type;
+ };
+
+ typedef sequence <Binding> BindingList;
+
+
+ interface BindingIterator;
+ interface NamingContext;
+
+ interface NamingContext {
+
+ enum NotFoundReason { missing_node, not_context, not_object};
+
+ exception NotFound {
+ NotFoundReason why;
+ Name rest_of_name;
+ };
+
+ exception CannotProceed {
+ NamingContext cxt;
+ Name rest_of_name;
+ };
+
+ exception InvalidName{};
+ exception AlreadyBound {};
+ exception NotEmpty{};
+
+ void bind(in Name n, in Object obj)
+ raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
+ void rebind(in Name n, in Object obj)
+ raises(NotFound, CannotProceed, InvalidName);
+ void bind_context(in Name n, in NamingContext nc)
+ raises(NotFound, CannotProceed,InvalidName, AlreadyBound);
+ void rebind_context(in Name n, in NamingContext nc)
+ raises(NotFound, CannotProceed, InvalidName);
+ Object resolve (in Name n)
+ raises(NotFound, CannotProceed, InvalidName);
+ void unbind(in Name n)
+ raises(NotFound, CannotProceed, InvalidName);
+ NamingContext new_context();
+ NamingContext bind_new_context(in Name n)
+ raises(NotFound, AlreadyBound, CannotProceed, InvalidName);
+ void destroy( )
+ raises(NotEmpty);
+ void list (in unsigned long how_many,
+ out BindingList bl,
+ out BindingIterator bi);
+ };
+
+ interface BindingIterator {
+ boolean next_one(out Binding b);
+ boolean next_n(in unsigned long how_many,
+ out BindingList bl);
+ void destroy();
+ };
+};
+
diff --git a/lib/orber/COSS/CosNaming/cos_naming_ext.idl b/lib/orber/COSS/CosNaming/cos_naming_ext.idl
new file mode 100644
index 0000000000..8099a0005c
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/cos_naming_ext.idl
@@ -0,0 +1,37 @@
+// Naming Service v1.0 described in CORBAservices:
+// Common Object Services Specification, chapter 3
+// OMG IDL for CosNaming Module, p 3-6
+
+#ifndef _COSNAMINGEXT_IDL_
+#define _COSNAMINGEXT_IDL_
+
+
+#include<cos_naming.idl>
+
+#pragma prefix "omg.org"
+
+module CosNaming
+{
+ interface NamingContextExt:NamingContext {
+
+ typedef string StringName;
+ typedef string Address;
+ typedef string URLString;
+
+ StringName to_string(in Name n)
+ raises(InvalidName);
+
+ Name to_name(in StringName sn)
+ raises(InvalidName);
+
+ exception InvalidAddress{};
+
+ URLString to_url(in Address addr,in StringName sn)
+ raises(InvalidAddress, InvalidName);
+
+ Object resolve_str(in StringName n)
+ raises(NotFound, CannotProceed, InvalidName);
+ };
+};
+
+#endif//_COSNAMINGEXT_IDL_
diff --git a/lib/orber/COSS/CosNaming/lname.erl b/lib/orber/COSS/CosNaming/lname.erl
new file mode 100644
index 0000000000..9f060d3296
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/lname.erl
@@ -0,0 +1,133 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: lname.erl
+%%-----------------------------------------------------------------
+-module(lname).
+
+-include_lib("orber/include/corba.hrl").
+-include("CosNaming.hrl").
+-include("lname.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([create/0, insert_component/3, get_component/2, delete_component/2,
+ num_component/1, equal/2, less_than/2,
+ to_idl_form/1, from_idl_form/1, check_name/1, new/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%% DEBUG INFO
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+create() ->
+ [].
+
+insert_component(_, I, _) when I < 1->
+ corba:raise(#'LName_NoComponent'{});
+insert_component([], I, _) when I > 1->
+ corba:raise(#'LName_NoComponent'{});
+insert_component(Name, 1, Component) when is_record(Component,
+ 'CosNaming_NameComponent') ->
+ [Component |Name];
+insert_component([H|T], I, Component) when is_record(Component,
+ 'CosNaming_NameComponent') ->
+ [H |insert_component(T, I-1, Component)];
+insert_component(_, _, Component) ->
+ orber:dbg("[~p] ~p:insert_component(~p); Not a NameComponent.~n",
+ [?LINE, ?MODULE, Component], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+get_component(_, I) when I < 1->
+ corba:raise(#'LName_NoComponent'{});
+get_component([], _) ->
+ corba:raise(#'LName_NoComponent'{});
+get_component([H|_T], 1) ->
+ H;
+get_component([_|T], I) ->
+ get_component(T, I-1).
+
+delete_component(_, I) when I < 1->
+ corba:raise(#'LName_NoComponent'{});
+delete_component([], _) ->
+ corba:raise(#'LName_NoComponent'{});
+delete_component([_|T], 1) ->
+ T;
+delete_component([H|T], I) ->
+ [H | delete_component(T, I-1)].
+
+num_component(Name) ->
+ num_component(Name, 0).
+
+equal(Name, N) ->
+ N == Name.
+
+less_than(Name, N) ->
+ Name < N.
+
+to_idl_form(Name) ->
+ case check_name(Name) of
+ false ->
+ corba:raise(#'LName_InvalidName'{});
+ true ->
+ Name
+ end.
+
+from_idl_form(Name) ->
+ Name.
+
+%%destroy() -> % not needed in erlang
+%% ok.
+
+%%-----------------------------------------------------------------
+%% External Functions not in the CosNaming standard
+%%-----------------------------------------------------------------
+new([]) ->
+ [];
+new([{Id, Kind} | List]) ->
+ [lname_component:new(Id, Kind) | new(List)];
+new([Id |List]) when is_list(Id) ->
+ [lname_component:new(Id) | new(List)].
+
+%%-----------------------------------------------------------------
+%% Internal Functions
+%%-----------------------------------------------------------------
+num_component([], N) ->
+ N;
+num_component([_|T], N) ->
+ num_component(T, N+1).
+
+check_name([]) ->
+ true;
+check_name([H|T]) ->
+ case catch lname_component:get_id(H) of
+ {'EXCEPTION', _E} ->
+ false;
+ _ ->
+ check_name(T)
+ end.
diff --git a/lib/orber/COSS/CosNaming/lname.hrl b/lib/orber/COSS/CosNaming/lname.hrl
new file mode 100644
index 0000000000..de78e4bfc0
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/lname.hrl
@@ -0,0 +1,33 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: lname.hrl
+%%-----------------------------------------------------------------
+
+%% LName interface exceptions
+-record('LName_NoComponent', {'OE_ID'="PIDL:LName/NoComponent:1.0"}).
+-record('LName_InvalidName', {'OE_ID'="PIDL:LName/InvalidName:1.0"}).
+% This exception is not used in our implementation.
+-record('LName_Overflow', {'OE_ID'="PIDL:LName/Overflow:1.0"}).
+
+%% LNameComponent interface exceptions
+-record('LNameComponent_NotSet',
+ {'OE_ID'="PIDL:LNameComponent/NotSet:1.0"}).
diff --git a/lib/orber/COSS/CosNaming/lname_component.erl b/lib/orber/COSS/CosNaming/lname_component.erl
new file mode 100644
index 0000000000..9ded1d7e49
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/lname_component.erl
@@ -0,0 +1,83 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: lname_component.erl
+%%-----------------------------------------------------------------
+-module(lname_component).
+
+-include_lib("orber/include/corba.hrl").
+-include("lname.hrl").
+-include("CosNaming.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([get_id/1, set_id/2, get_kind/1, set_kind/2, create/0, new/1, new/2]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+create() ->
+ #'CosNaming_NameComponent'{id="", kind=""}.
+
+get_id(NC) when is_record(NC, 'CosNaming_NameComponent'),
+ NC#'CosNaming_NameComponent'.id == undefined ->
+ corba:raise(#'LNameComponent_NotSet'{});
+get_id(NC) when is_record(NC, 'CosNaming_NameComponent'),
+ NC#'CosNaming_NameComponent'.id == "" ->
+ corba:raise(#'LNameComponent_NotSet'{});
+get_id(NC) when is_record(NC, 'CosNaming_NameComponent') ->
+ NC#'CosNaming_NameComponent'.id.
+
+set_id(NC, Id) when is_record(NC, 'CosNaming_NameComponent') andalso is_list(Id)->
+ NC#'CosNaming_NameComponent'{id=Id}.
+
+get_kind(NC) when is_record(NC, 'CosNaming_NameComponent') andalso
+ NC#'CosNaming_NameComponent'.kind == undefined ->
+ corba:raise(#'LNameComponent_NotSet'{});
+get_kind(NC) when is_record(NC, 'CosNaming_NameComponent') andalso
+ NC#'CosNaming_NameComponent'.kind == "" ->
+ corba:raise(#'LNameComponent_NotSet'{});
+get_kind(NC) when is_record(NC, 'CosNaming_NameComponent') ->
+ NC#'CosNaming_NameComponent'.kind.
+
+set_kind(NC, Kind) when is_record(NC, 'CosNaming_NameComponent') andalso is_list(Kind) ->
+ NC#'CosNaming_NameComponent'{kind=Kind}.
+
+%%destroy() -> % not needed in erlang
+%% true.
+
+%%-----------------------------------------------------------------
+%% External Functions not in the CosNaming standard
+%%-----------------------------------------------------------------
+new(Id) when is_list(Id) ->
+ #'CosNaming_NameComponent'{id=Id, kind=""}.
+new(Id, Kind) when is_list(Id) andalso is_list(Kind) ->
+ #'CosNaming_NameComponent'{id=Id, kind=Kind}.
+
+%%-----------------------------------------------------------------
+%% Internal Functions
+%%-----------------------------------------------------------------
diff --git a/lib/orber/COSS/CosNaming/orber_cosnaming.hrl b/lib/orber/COSS/CosNaming/orber_cosnaming.hrl
new file mode 100644
index 0000000000..073158ed6a
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/orber_cosnaming.hrl
@@ -0,0 +1,63 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%--------------------------------------------------------------------
+
+-ifndef(ORBER_COSNAMING_HRL).
+-define(ORBER_COSNAMING_HRL, true).
+
+%%-----------------------------------------------------------------
+%% Mnesia Table definition record
+%%-----------------------------------------------------------------
+-record('orber_CosNaming', {name_context, nameindex}).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+
+-define(CREATE_OPTS, [{no_security, orber:partial_security()}]).
+
+%%-define(dirty_query_context, true).
+
+%% This macro returns a read fun suitable for evaluation in a transaction
+-define(read_function(Objkey),
+ fun() ->
+ mnesia:read(Objkey)
+ end).
+
+%% This macro returns a write fun suitable for evaluation in a transaction
+-define(write_function(R),
+ fun() ->
+ mnesia:write(R)
+ end).
+
+%% This macro returns a delete fun suitable for evaluation in a transaction
+-define(delete_function(R),
+ fun() ->
+ mnesia:delete(R)
+ end).
+
+-ifdef(dirty_query_context).
+-define(query_check(Q_res), Q_res).
+-else.
+-define(query_check(Q_res), {atomic, Q_res}).
+-endif.
+
+-endif.
diff --git a/lib/orber/COSS/CosNaming/orber_cosnaming_utils.erl b/lib/orber/COSS/CosNaming/orber_cosnaming_utils.erl
new file mode 100644
index 0000000000..7792839e22
--- /dev/null
+++ b/lib/orber/COSS/CosNaming/orber_cosnaming_utils.erl
@@ -0,0 +1,750 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_cosnaming_utils.erl
+%% Modified:
+%%
+%%-----------------------------------------------------------------
+-module(orber_cosnaming_utils).
+
+-include("orber_cosnaming.hrl").
+-include("CosNaming.hrl").
+-include("CosNaming_NamingContext.hrl").
+-include("CosNaming_NamingContextExt.hrl").
+-include_lib("orber/include/corba.hrl").
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([query_result/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([addresses/1, name/1,
+ check_addresses/1, check_name/1,
+ key/1, select_type/1, lookup/1, lookup/2,
+ escape_string/1, unescape_string/1,
+ name2string/1, string2name/1]).
+
+%%-----------------------------------------------------------------
+%% Records
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Defines
+%%-----------------------------------------------------------------
+%% DEFAULT VALUES:
+%%
+%% IIOP:
+%% - port: 2809
+%% - iiop version: 1.0
+-define(DEF_VERS, {1,0}).
+-define(DEF_PORT, 2809).
+-define(DEF_KEY, "NameService").
+-define(HTTP_DEF_PORT, 80).
+
+%% DEBUG INFO
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%% Check a read transaction
+query_result({atomic, Qres}) ->
+ case Qres of
+ [Hres] ->
+ Hres#orber_CosNaming.nameindex;
+ [Hres|Tres] ->
+ orber:dbg("[~p] orber_cosnaming_utils:query_result(~p);~n"
+ "Multiple Hits: ~p", [?LINE, Qres, [Hres|Tres]], ?DEBUG_LEVEL),
+ error;
+ [] ->
+ orber:dbg("[~p] orber_cosnaming_utils:query_result();~n"
+ "No hit", [?LINE], ?DEBUG_LEVEL),
+ error;
+ Other ->
+ orber:dbg("[~p] orber_cosnaming_utils:query_result(~p);~n"
+ "Mnesia Access Failed ~p", [?LINE, Qres, Other], ?DEBUG_LEVEL),
+ error
+ end;
+query_result({aborted, Qres}) ->
+ orber:dbg("[~p] orber_cosnaming_utils:query_result(~p);~n"
+ "Mnesia Access Aborted", [?LINE, Qres], ?DEBUG_LEVEL),
+ error;
+query_result(What) ->
+ orber:dbg("[~p] orber_cosnaming_utils:query_result(~p);~n"
+ "Mnesia Access Failed", [?LINE, What], ?DEBUG_LEVEL),
+ error.
+
+
+%%----------------------------------------------------------------------
+%% Function : check_addresses
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+check_addresses(Str) ->
+ {_, Rest2} = addresses(Str),
+ case key(Rest2) of
+ {_, []} ->
+ ok;
+ What ->
+ orber:dbg("[~p] orber_cosnaming_utils:check_addresses(~p);~n"
+ "Key ~p", [?LINE, Str, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : check_name
+%% Arguments :
+%% Description:
+%% Returns :
+%%----------------------------------------------------------------------
+check_name(Str) ->
+ name(Str).
+
+%%----------------------------------------------------------------------
+%% Function : select_type
+%% Arguments : A corbaloc/corbaname-string.
+%% Description:
+%% Returns : A tuple which contain data about what connection we want to use |
+%% {'EXCEPTION', #'CosNaming_NamingContextExt_InvalidAddress'{}}
+%%----------------------------------------------------------------------
+select_type([$c, $o, $r, $b, $a, $l, $o, $c, $:|Rest1]) ->
+ {Addresses, Rest2} = addresses(Rest1),
+ case key(Rest2) of
+ {Key, []} ->
+ {corbaloc, Addresses, Key};
+ What ->
+ orber:dbg("[~p] orber_cosnaming_utils:select_type(~p);~n"
+ "Key ~p", [?LINE, Rest1, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end;
+select_type([$c, $o, $r, $b, $a, $n, $a, $m, $e, $:|Rest1]) ->
+ {Addresses, Rest2} = addresses(Rest1),
+ {Key, Rest3} = key(Rest2),
+ Name = name(Rest3),
+ {corbaname, Addresses, Key, string2name(Name)};
+
+select_type([$f, $i, $l, $e, $:, $/ |Rest]) ->
+ file(Rest);
+select_type([$f, $t, $p, $:, $/, $/ |Rest]) ->
+ ftp(Rest);
+select_type([$h, $t, $t, $p, $:, $/, $/ |Rest]) ->
+ http(Rest);
+
+select_type(What) ->
+ orber:dbg("[~p] orber_cosnaming_utils:select_type(~p);~n"
+ "Malformed or unsupported type.",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{}).
+
+
+%%----------------------------------------------------------------------
+%% Function : addresses
+%% Arguments : A corbaloc string.
+%% Description:
+%% Returns : A list of addresses an the remaining part possibly containg
+%% a Key and a stringified Name
+%%----------------------------------------------------------------------
+addresses(Str) ->
+ addresses(address(protocol, Str, [], []), []).
+
+addresses({false, rir, Rest}, []) ->
+ {rir, Rest};
+addresses({false, Adr, Rest}, Addresses) ->
+ {lists:reverse([Adr|Addresses]), Rest};
+addresses({true, Adr, Rest}, Addresses) ->
+ addresses(address(protocol, Rest, [], []), [Adr|Addresses]).
+
+%% Which protocol.
+address(protocol, [$:|T], [], []) ->
+ address(version, T, [], [iiop]);
+address(protocol, [$i, $i, $o, $p, $:|T], [], []) ->
+ address(version, T, [], [iiop]);
+address(protocol, [$r, $i, $r, $:|T], [], []) ->
+ {false, rir, T};
+address(protocol, What, _, _) ->
+ orber:dbg("[~p] orber_cosnaming_utils:address(~p);~n"
+ "Malformed or unsupported protocol.",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{});
+
+%% Parsed one address, no version found or port found.
+address(version, [$,|T], Acc, Previous) ->
+ {true, lists:reverse([?DEF_PORT, lists:reverse(Acc), ?DEF_VERS|Previous]), T};
+address(version, [$/|T], Acc, Previous) ->
+ {false, lists:reverse([?DEF_PORT, lists:reverse(Acc), ?DEF_VERS|Previous]), T};
+%% Found iiop version.
+address(version, [$@|T], Acc, Previous) ->
+ case Acc of
+ [Minor, $., Major] ->
+ address(address, T, [], [{Major-$0, Minor-$0}|Previous]);
+ What ->
+ orber:dbg("[~p] orber_cosnaming_utils:address(~p);~n"
+ "Malformed or unsupported version.",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end;
+%% Found no iiop version, switch to port. In this case Acc contains the
+%% Host.
+address(version, [$:|T], Acc, Previous) ->
+ case check_ip_version(T, [$:|Acc]) of
+ false ->
+ address(port, T, [], [lists:reverse(Acc), ?DEF_VERS|Previous]);
+ {ok, NewAcc, NewT, Type} ->
+ address(Type, NewT, [], [lists:reverse(NewAcc), ?DEF_VERS|Previous])
+ end;
+
+%% Parsed one address, port not found.
+address(address, [$,|T], [], Previous) ->
+ {true, lists:reverse([?DEF_PORT|Previous]), T};
+address(address, [$/|T], [], Previous) ->
+ {false, lists:reverse([?DEF_PORT|Previous]), T};
+address(address, [$,|T], Acc, Previous) ->
+ {true, lists:reverse([?DEF_PORT, lists:reverse(Acc)|Previous]), T};
+address(address, [$/|T], Acc, Previous) ->
+ {false, lists:reverse([?DEF_PORT, lists:reverse(Acc)|Previous]), T};
+
+%% Parsed one address.
+address(port, [$/|T], Acc, Previous) ->
+ case catch list_to_integer(lists:reverse(Acc)) of
+ Port when is_integer(Port) ->
+ {false, lists:reverse([Port|Previous]), T};
+ What ->
+ orber:dbg("[~p] orber_cosnaming_utils:address(~p);~n"
+ "Malformed port.", [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end;
+address(port, [$,|T], Acc, Previous) ->
+ case catch list_to_integer(lists:reverse(Acc)) of
+ Port when is_integer(Port) ->
+ {true, lists:reverse([Port|Previous]), T};
+ What ->
+ orber:dbg("[~p] orber_cosnaming_utils:address(~p);~n"
+ "Malformed port.", [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end;
+
+%% EOS, check how far we have reached so far and add necessary default values.
+address(version, [], Acc, Previous) ->
+ {false, lists:reverse([?DEF_PORT, lists:reverse(Acc), ?DEF_VERS|Previous]), []};
+address(port, [], [], Previous) ->
+ {false, lists:reverse([?DEF_PORT|Previous]), []};
+address(port, [], Acc, Previous) ->
+ case catch list_to_integer(lists:reverse(Acc)) of
+ Port when is_integer(Port) ->
+ {false, lists:reverse([Port|Previous]), []};
+ What ->
+ orber:dbg("[~p] orber_cosnaming_utils:address(~p);~n"
+ "Malformed port.", [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end;
+address(address, [], [], Previous) ->
+ {false, lists:reverse([?DEF_PORT|Previous]), []};
+address(address, [], Acc, Previous) ->
+ {false, lists:reverse([?DEF_PORT, lists:reverse(Acc)|Previous]), []};
+
+%% Found port
+address(address, [$:|T], Acc, Previous) ->
+ case check_ip_version(T, [$:|Acc]) of
+ false ->
+ address(port, T, [], [lists:reverse(Acc)|Previous]);
+ {ok, NewAcc, NewT, Type} ->
+ address(Type, NewT, [], [lists:reverse(NewAcc)|Previous])
+ end;
+
+address(Type, [H|T], Acc, Previous) ->
+ address(Type, T, [H|Acc], Previous).
+
+
+check_ip_version(T, Acc) ->
+ case orber_env:ip_version() of
+ inet ->
+ false;
+ inet6 ->
+ case search_for_delimiter(1, T, Acc, $:) of
+ {ok, NewAcc, NewT, Type} ->
+ {ok, NewAcc, NewT, Type};
+ _ ->
+ false
+ end
+ end.
+
+%% An IPv6 address may look like (x == hex, d == dec):
+%% * "0:0:0:0:0:0:10.1.1.1" - x:x:x:x:x:x:d.d.d.d
+%% * "0:0:0:0:8:800:200C:417A" - x:x:x:x:x:x:x:x
+%% We cannot allow compressed addresses (::10.1.1.1) since we it is not
+%% possible to know if the last part is a port number or part of the address.
+search_for_delimiter(7, [], Acc, $:) ->
+ {ok, Acc, [], address};
+search_for_delimiter(9, [], Acc, $.) ->
+ {ok, Acc, [], address};
+search_for_delimiter(_, [], _, _) ->
+ false;
+search_for_delimiter(7, [$/|T], Acc, $:) ->
+ {ok, Acc, [$/|T], address};
+search_for_delimiter(9, [$/|T], Acc, $.) ->
+ {ok, Acc, [$/|T], address};
+search_for_delimiter(_, [$/|_T], _Acc, _) ->
+ false;
+search_for_delimiter(7, [$,|T], Acc, $:) ->
+ {ok, Acc, [$,|T], address};
+search_for_delimiter(9, [$,|T], Acc, $.) ->
+ {ok, Acc, [$,|T], address};
+search_for_delimiter(_, [$,|_T], _Acc, _) ->
+ false;
+search_for_delimiter(7, [$:|T], Acc, $:) ->
+ {ok, Acc, T, port};
+search_for_delimiter(9, [$:|T], Acc, $.) ->
+ {ok, Acc, T, port};
+search_for_delimiter(N, [$:|T], Acc, $:) ->
+ search_for_delimiter(N+1, T, [$:|Acc], $:);
+search_for_delimiter(N, [$.|T], Acc, $.) when N > 6, N < 9 ->
+ search_for_delimiter(N+1, T, [$.|Acc], $.);
+search_for_delimiter(6, [$.|T], Acc, $:) ->
+ search_for_delimiter(7, T, [$.|Acc], $.);
+search_for_delimiter(N, [H|T], Acc, LookingFor) ->
+ search_for_delimiter(N, T, [H|Acc], LookingFor).
+
+%%----------------------------------------------------------------------
+%% Function : key
+%% Arguments : A string which contain a Key we want to use and, if defined,
+%% stringified NameComponent sequence.
+%% Description:
+%% Returns : The Key and the remaining part, i.e., a stringified
+%% NameComponent sequence.
+%%----------------------------------------------------------------------
+key(Str) ->
+ key(Str, []).
+key([], []) ->
+ {?DEF_KEY, []};
+key([], Acc) ->
+ {lists:reverse(Acc), []};
+key([$#|T], []) ->
+ {?DEF_KEY, T};
+key([$#|T], Acc) ->
+ {lists:reverse(Acc), T};
+key([$/|T], []) ->
+ key(T, []);
+key([H|T], Acc) ->
+ key(T, [H|Acc]).
+
+%%----------------------------------------------------------------------
+%% Function : name
+%% Arguments : A string describing a NameComponent sequence.
+%% Description:
+%% Returns : The input string |
+%% {'EXCEPTION', #'CosNaming_NamingContext_InvalidName'{}}
+%%----------------------------------------------------------------------
+name(Str) ->
+ name(Str, []).
+name([], Acc) ->
+ lists:reverse(Acc);
+name([$., $/|_T], _) ->
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{});
+name([$/, $/|_T], _) ->
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{});
+name([$/|T], []) ->
+ name(T, []);
+name([H|T], Acc) ->
+ name(T, [H|Acc]).
+
+
+%%----------------------------------------------------------------------
+%% Function : file
+%% Arguments : A string describing connection parameters.
+%% Description:
+%% Returns : A tuple consisting of data extracted from the given string.
+%%----------------------------------------------------------------------
+file(File) ->
+ {file, File}.
+
+%%----------------------------------------------------------------------
+%% Function : ftp
+%% Arguments : A string describing connection parameters.
+%% Description:
+%% Returns : A tuple consisting of data extracted from the given string.
+%%----------------------------------------------------------------------
+ftp(Address) ->
+ %% Perhaps we should run some checks here?
+ {ftp, Address}.
+
+%%----------------------------------------------------------------------
+%% Function : http
+%% Arguments : A string describing connection parameters.
+%% Description:
+%% Returns : A tuple consisting of data extracted from the given string.
+%%----------------------------------------------------------------------
+http(Address) ->
+ case string:tokens(Address, ":") of
+ [Host, Rest] ->
+ %% At his stage we know that address contains a Port number.
+ {Port, Key} = split_to_slash(Rest, []),
+ case catch list_to_integer(Port) of
+ PortInt when is_integer(PortInt) ->
+ {http, Host, PortInt, Key};
+ _ ->
+ orber:dbg("[~p] orber_cosnaming_utils:http(~p);~n"
+ "Malformed key; should be http://Host:Port/path/name.html~n"
+ "or http://Host/path/name.html",
+ [?LINE, Address], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end;
+ [Address] ->
+ %% Use default port
+ {Host, Key} = split_to_slash(Address, []),
+ {http, Host, ?HTTP_DEF_PORT, Key};
+ _What ->
+ orber:dbg("[~p] orber_cosnaming_utils:http(~p);~n"
+ "Malformed key; should be http://Host:Port/path/name.html~n"
+ "or http://Host/path/name.html",
+ [?LINE, Address], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{})
+ end.
+
+split_to_slash([], _Acc) ->
+ orber:dbg("[~p] orber_cosnaming_utils:split_to_slash();~n"
+ "No Key given Host:Port/Key.html", [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{});
+split_to_slash([$/|Rest], Acc) ->
+ {lists:reverse(Acc), [$/|Rest]};
+split_to_slash([H|T], Acc) ->
+ split_to_slash(T, [H|Acc]).
+
+%%----------------------------------------------------------------------
+%% Function : lookup
+%% Arguments : A tuple which contain data about what connection we want to use.
+%% Description:
+%% Returns : Object |
+%% {'EXCEPTION', E}
+%%----------------------------------------------------------------------
+lookup(Data) ->
+ lookup(Data, []).
+
+lookup({corbaname, rir, _Key, []}, Ctx) ->
+ %% If no object key supplied NameService is defined to be default.
+ corba:resolve_initial_references("NameService", Ctx);
+lookup({corbaname, rir, Key, Name}, Ctx) ->
+ NS = corba:resolve_initial_references(Key, Ctx),
+ 'CosNaming_NamingContext':resolve(NS, Ctx, Name);
+
+lookup({corbaloc, rir, Key}, Ctx) ->
+ corba:resolve_initial_references(Key, Ctx);
+
+lookup({corbaname, [], _Key, _Name}, _Ctx) ->
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{});
+lookup({corbaname, Addresses, Key, ""}, Ctx) ->
+ %% Not Name-string defined, which is the same as corbaloc.
+ lookup({corbaloc, Addresses, Key}, Ctx);
+lookup({corbaname, [[iiop, Vers, Host, Port]|Addresses], Key, Name}, Ctx) ->
+ NS = iop_ior:create_external(Vers, key2id(Key), Host, Port, Key),
+ case catch 'CosNaming_NamingContext':resolve(NS, Ctx, Name) of
+ {'EXCEPTION', _} ->
+ lookup({corbaname, Addresses, Key, Name}, Ctx);
+ Obj ->
+ Obj
+ end;
+lookup({corbaname, [_|Addresses], Key, Name}, Ctx) ->
+ lookup({corbaname, Addresses, Key, Name}, Ctx);
+
+lookup({corbaloc, [], _Key}, _Ctx) ->
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{});
+lookup({corbaloc, [[iiop, Vers, Host, Port]|Addresses], Key}, Ctx) ->
+ ObjRef = iop_ior:create_external(Vers, key2id(Key), Host, Port, Key),
+ OldVal = put(orber_forward_notify, true),
+ case catch corba_object:non_existent(ObjRef, Ctx) of
+ {location_forward, Result} ->
+ put(orber_forward_notify, OldVal),
+ Result;
+ false ->
+ put(orber_forward_notify, OldVal),
+ ObjRef;
+ true ->
+ put(orber_forward_notify, OldVal),
+ lookup({corbaloc, Addresses, Key}, Ctx);
+ _ ->
+ %% May be located on a version using '_not_existent'
+ %% see CORBA2.3.1 page 15-34 try again.
+ case catch corba_object:not_existent(ObjRef, Ctx) of
+ {location_forward, Result} ->
+ put(orber_forward_notify, OldVal),
+ Result;
+ false ->
+ put(orber_forward_notify, OldVal),
+ ObjRef;
+ _ ->
+ put(orber_forward_notify, OldVal),
+ lookup({corbaloc, Addresses, Key}, Ctx)
+ end
+ end;
+
+lookup({corbaloc, [_|Addresses], Key}, Ctx) ->
+ lookup({corbaloc, Addresses, Key}, Ctx);
+
+
+lookup({file, File}, _Ctx) ->
+ case file:read_file(File) of
+ {ok, IOR} ->
+ binary_to_list(IOR);
+ {error, Reason} ->
+ orber:dbg("[~p] orber_cosnaming_utils:lookup(~p);~n"
+ "Failed to access file: ~p.",
+ [?LINE, File, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{})
+ end;
+lookup({http, Host, Port, Key}, _Ctx) ->
+ SetupTimeout = orber:iiop_setup_connection_timeout(),
+ SendTimeout = orber:iiop_timeout(),
+ {ok, Socket} = create_connection(Host, Port, SetupTimeout),
+ Request = "GET " ++ Key ++ " HTTP/1.0\r\n\r\n",
+ case gen_tcp:send(Socket, Request) of
+ ok ->
+ receive_msg(Socket, [], SendTimeout);
+ {error, Reason} ->
+ orber:dbg("[~p] orber_cosnaming_utils:lookup();~n"
+ "Failed to send request: ~p.",
+ [?LINE, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end;
+lookup({ftp, _Address}, _Ctx) ->
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{});
+lookup(_, _Ctx) ->
+ corba:raise(#'CosNaming_NamingContextExt_InvalidAddress'{}).
+
+
+receive_msg(Socket, Acc, Timeout) ->
+ receive
+ {tcp_closed, Socket} ->
+ [_Header, Body] = re:split(Acc,"\r\n\r\n",[{return,list}]),
+ Body;
+ {tcp, Socket, Response} ->
+ receive_msg(Socket, Acc ++ Response, Timeout);
+ {tcp_error, Socket, Reason} ->
+ orber:dbg("[~p] orber_cosnaming_utils:receive_msg();~n"
+ "connection failed: ~p.",
+ [?LINE, Reason], ?DEBUG_LEVEL),
+ gen_tcp:close(Socket),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ after Timeout ->
+ gen_tcp:close(Socket),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+create_connection(Host, Port, Timeout) ->
+ case gen_tcp:connect(Host,Port,[{packet,0},{reuseaddr,true}], Timeout) of
+ {ok,Socket} ->
+ {ok,Socket};
+ Error ->
+ orber:dbg("[~p] orber_cosnaming_utils:create_connection(~p, ~p, ~p);~n"
+ "Reason: ~p",
+ [?LINE, Host, Port, Timeout, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : key2id
+%% Arguments : An objectkey (e.g. NameService)
+%% Description:
+%% Returns : The associated IFR-id
+%%----------------------------------------------------------------------
+key2id(Key) ->
+ %% We need this test to avoid returning an exit if an XX:typeID()
+ %% fails (e.g. the module doesn't exist).
+ case catch key2id_helper(Key) of
+ {ok, Id} ->
+ Id;
+ _ ->
+ ""
+ end.
+
+
+key2id_helper("NameService") ->
+ {ok, 'CosNaming_NamingContext':typeID()};
+key2id_helper("RootPOA") ->
+ {ok, "IDL:omg.org/PortableServer/POA:1.0"};
+key2id_helper("POACurrent") ->
+ {ok, "IDL:omg.org/PortableServer/Current:1.0"};
+key2id_helper("InterfaceRepository") ->
+ {ok, "IDL:omg.org/CORBA/Repository:1.0"};
+key2id_helper("TradingService") ->
+ {ok, "IDL:omg.org/CosTrading/Lookup:1.0"};
+key2id_helper("TransactionCurrent") ->
+ {ok, "IDL:omg.org/CosTransactions/Current:1.0"};
+key2id_helper("DynAnyFactory") ->
+ {ok, "IDL:omg.org/DynamicAny/DynAnyFactory:1.0"};
+key2id_helper("ORBPolicyManager") ->
+ {ok, "IDL:omg.org/CORBA/PolicyManager:1.0"};
+key2id_helper("PolicyCurrent") ->
+ {ok, "IDL:omg.org/CORBA/PolicyCurrent:1.0"};
+key2id_helper("NotificationService") ->
+ {ok, "IDL:omg.org/CosNotifyChannelAdmin/EventChannelFactory:1.0"};
+key2id_helper("TypedNotificationService") ->
+ {ok, "IDL:omg.org/CosTypedNotifyChannelAdmin::TypedEventChannelFactory:1.0"};
+key2id_helper("CodecFactory") ->
+ {ok, "IDL:omg.org/IOP/CodecFactory:1.0"};
+key2id_helper("PICurrent") ->
+ {ok, "IDL:omg.org/PortableInterceptors/Current:1.0"};
+%% Should we use SecurityLevel1 instead?? This key can be either.
+key2id_helper("SecurityCurrent") ->
+ {ok, "IDL:omg.org/SecurityLevel2/Current:1.0"};
+%% Unknown - use the empty string. Might not work for all other ORB's but it's
+%% the only option we've got.
+key2id_helper(_) ->
+ {ok, ""}.
+
+
+
+%%----------------------------------------------------------------------
+%% Function : name2string
+%% Arguments : A sequence of NameComponents
+%% Description:
+%% Returns : A string describing the sequence.
+%%----------------------------------------------------------------------
+name2string(Name) ->
+ name2string(lists:reverse(Name), []).
+name2string([], Acc) ->
+ lists:flatten(Acc);
+name2string([#'CosNaming_NameComponent'{id="", kind=""}], Acc) ->
+ name2string([], [$.|Acc]);
+name2string([#'CosNaming_NameComponent'{id=ID, kind=""}], Acc) ->
+ name2string([], [convert_reserved(ID)|Acc]);
+name2string([#'CosNaming_NameComponent'{id=ID, kind=Kind}], Acc) ->
+ name2string([], [convert_reserved(ID), $., convert_reserved(Kind)|Acc]);
+name2string([#'CosNaming_NameComponent'{id="", kind=""}|T], Acc) ->
+ name2string(T, [$/, $.|Acc]);
+name2string([#'CosNaming_NameComponent'{id=ID, kind=""}|T], Acc) ->
+ name2string(T, [$/, convert_reserved(ID)|Acc]);
+name2string([#'CosNaming_NameComponent'{id=ID, kind=Kind}|T], Acc) ->
+ name2string(T, [$/, convert_reserved(ID), $., convert_reserved(Kind)|Acc]);
+name2string(What, Acc) ->
+ orber:dbg("[~p] orber_cosnaming_utils:name2string(~p)~n"
+ "Malformed NameComponent: ~p",
+ [?LINE, Acc, What], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{}).
+
+%% '/' and '.' are reserved as separators but can be overridden by using '\'.
+convert_reserved([]) ->
+ [];
+convert_reserved([$/|T]) ->
+ [$\\, $/|convert_reserved(T)];
+convert_reserved([$.|T]) ->
+ [$\\, $.|convert_reserved(T)];
+convert_reserved([$\\, H|T]) ->
+ [$\\, H|convert_reserved(T)];
+convert_reserved([H|T]) ->
+ [H|convert_reserved(T)].
+
+
+%%----------------------------------------------------------------------
+%% Function : string2name
+%% Arguments : A string describing a sequence of NameComponents.
+%% Description:
+%% Returns : A sequence of NameComponents
+%%----------------------------------------------------------------------
+string2name([]) ->
+ [];
+string2name(Str) ->
+ {NC, Rest} = get_NC(id, Str, [], []),
+ [NC|string2name(Rest)].
+
+get_NC(id, [], ID, _Kind) ->
+ {#'CosNaming_NameComponent'{id=lists:reverse(ID), kind=""}, []};
+get_NC(kind, [], ID, Kind) ->
+ {#'CosNaming_NameComponent'{id=lists:reverse(ID), kind=lists:reverse(Kind)}, []};
+%% // is not allowed; must be /./
+get_NC(id, [$/|_T], [], _) ->
+ orber:dbg("[~p] orber_cosnaming_utils:get_NC();~n"
+ "'//' not allowed, use '/./'", [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{});
+get_NC(id, [$., $/|T], [], _) ->
+ {#'CosNaming_NameComponent'{id="", kind=""}, T};
+%% End of this ID/Kind; in this case kind eq. "".
+get_NC(id, [$/|T], ID, _Kind) ->
+ {#'CosNaming_NameComponent'{id=lists:reverse(ID), kind=""}, T};
+get_NC(kind, [$/|T], ID, Kind) ->
+ {#'CosNaming_NameComponent'{id=lists:reverse(ID), kind=lists:reverse(Kind)}, T};
+%% ID exist but it's not allowed to write "id1./id2.kind2".
+get_NC(id, [$., $/|_T], _, _) ->
+ orber:dbg("[~p] orber_cosnaming_utils:get_NC();~n"
+ "'id1./id2.kind2' not allowed, use 'id1/id2.kind2'",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{});
+get_NC(id, [$\\, $., H|T], ID, Kind) ->
+ get_NC(id, T, [H, $.|ID], Kind);
+get_NC(id, [$\\, $/, H|T], ID, Kind) ->
+ get_NC(id, T, [H, $/|ID], Kind);
+get_NC(kind, [$\\, $., H|T], ID, Kind) ->
+ get_NC(kind, T, ID, [H|Kind]);
+get_NC(kind, [$\\, $/, H|T], ID, Kind) ->
+ get_NC(kind, T, ID, [H|Kind]);
+get_NC(id, [$.|T], ID, Kind) ->
+ get_NC(kind, T, ID, Kind);
+get_NC(id, [H|T], ID, Kind) ->
+ get_NC(id, T, [H|ID], Kind);
+get_NC(kind, [H|T], ID, Kind) ->
+ get_NC(kind, T, ID, [H|Kind]);
+get_NC(Type, Data, ID, Kind) ->
+ orber:dbg("[~p] orber_cosnaming_utils:get_NC(~p, ~p, ~p, ~p);~n"
+ "Unknown", [?LINE, Type, Data, ID, Kind], ?DEBUG_LEVEL),
+ corba:raise(#'CosNaming_NamingContext_InvalidName'{}).
+
+
+%% Converts \< to '%3c'
+escape_string(Str) ->
+ escape_string(Str, []).
+escape_string([], Acc) ->
+ lists:reverse(Acc);
+escape_string([$\\, Char |T], Acc) ->
+ escape_string(T, [code_character(16#0f band Char),
+ code_character(16#0f band (Char bsr 4)),$%|Acc]);
+escape_string([Char|T], Acc) ->
+ escape_string(T, [Char|Acc]).
+
+
+code_character(N) when N < 10 ->
+ $0 + N;
+code_character(N) ->
+ $a + (N - 10).
+
+%% Converts '%3c' to \<
+unescape_string(Str) ->
+ unescape_string(Str, []).
+unescape_string([], Acc) ->
+ lists:reverse(Acc);
+unescape_string([$%, H1, H2 |T], Acc) ->
+ I1 = hex2int(H1),
+ I2 = hex2int(H2),
+ I = I1 * 16 + I2,
+ unescape_string(T, [I, $\\|Acc]);
+unescape_string([H|T], Acc) ->
+ unescape_string(T, [H|Acc]).
+
+hex2int(H) when H >= $a ->
+ 10 + H - $a;
+hex2int(H) when H >= $A ->
+ 10 + H -$A;
+hex2int(H) ->
+ H - $0.
+
+%%-------------------------- END OF MODULE -----------------------------
diff --git a/lib/orber/Makefile b/lib/orber/Makefile
new file mode 100644
index 0000000000..58a673d30e
--- /dev/null
+++ b/lib/orber/Makefile
@@ -0,0 +1,41 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Common Macros
+# ----------------------------------------------------
+
+SUB_DIRECTORIES = COSS/CosNaming src java_src c_src examples doc/src priv
+
+SPECIAL_TARGETS =
+
+# ----------------------------------------------------
+# Default Subdir Targets
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_subdir.mk
+
diff --git a/lib/orber/c_src/InitialReference.cc b/lib/orber/c_src/InitialReference.cc
new file mode 100644
index 0000000000..a95fa0f599
--- /dev/null
+++ b/lib/orber/c_src/InitialReference.cc
@@ -0,0 +1,205 @@
+/**
+ *<copyright>
+ * <year>1997-2007</year>
+ * <holder>Ericsson AB, All Rights Reserved</holder>
+ *</copyright>
+ *<legalnotice>
+ * 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.
+ *
+ * The Initial Developer of the Original Code is Ericsson AB.
+ *</legalnotice>
+ */
+/**
+ * InitialReference is a class which generates the INIT reference
+ * which can be used by the InitialReferences interface.
+ *
+ * creation date: 1997-11-04
+ */
+#include "InitialReference.hh"
+
+InitialReference::InitialReference()
+{
+ host = 0;
+ iorString = 0;
+};
+
+InitialReference::~InitialReference()
+{
+ if(host){
+ delete host;
+ delete iorString;
+ }
+};
+
+ /**
+ * Returns the stringified objectreference to the initial reference server
+ */
+char* InitialReference::stringified_ior(char* newhost, int newport)
+{
+ STRINGSTREAM iorByteString;
+ STRINGSTREAM profileData;
+
+ STRINGBUF *s;
+ STRINGBUF *profileDataBuf;
+ STRINGBUF *iorByteStringBuf;
+ long profileDataLength = 0;
+ char *str;
+
+ // byte_order followed by ' {"", [{0, '
+ // char iorBytesFirstPart[] = {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0};
+ char iorBytesFirstPart[48] = {0,0,0,0,0,0,0,32,73,68,76,58,79,114,98,101,114,47,73,110,105,116,105,97,108,82,101,102,101,114,101,110,99,101,115,58,49,46,48,0,0,0,0,1,0,0,0,0};
+ // the objectkey "INIT
+ char iorBytesLastPart[8] = {0,0,0,4,73,78,73,84};
+
+ // Fix the ProfileData struct.
+ char pdPrefix[4] = {0,1,0,0};
+ char hsize[4];
+ char profileDataLengthBytes[4];
+ char portbytes[2];
+ long hostLength = strlen(newhost);
+
+
+ if(host)
+ if(strcmp(newhost, host) == 0 && newport == port)
+ return iorString;
+ else {
+ delete host;
+ delete iorString;
+ }
+ host = new char[hostLength+1];
+ memcpy(host, newhost, hostLength+1);
+ port = newport;
+
+ enc_ulong(hostLength + 1, hsize);
+ enc_ushort(port, portbytes);
+
+ profileDataBuf = profileData.rdbuf();
+
+ profileDataBuf->sputn(pdPrefix, 4);
+ profileDataBuf->sputn(hsize, 4);
+ profileDataBuf->sputn(host, hostLength);
+ profileDataBuf->sputc(0);
+ profileDataLength = 4 + 4 + hostLength + 1;
+
+ profileDataLength = align(profileDataBuf, profileDataLength, 2);
+
+ profileDataBuf->sputn(portbytes, 2);
+ profileDataLength += 2;
+
+ profileDataLength = align(profileDataBuf, profileDataLength, 4);
+
+ profileDataBuf->sputn(iorBytesLastPart, 8);
+ profileDataLength += 8;
+ //cout << "pd length: " << profileDataLength << "\n";
+
+ enc_ulong(profileDataLength, profileDataLengthBytes);
+
+ // Fix the whole IOR
+
+ iorByteStringBuf = iorByteString.rdbuf();
+
+ iorByteStringBuf->sputn(iorBytesFirstPart, 48);
+ iorByteStringBuf->sputn(profileDataLengthBytes, 4);
+#ifdef HAVE_SSTREAM
+ iorByteStringBuf->sputn(profileData.str().data(), profileDataLength);
+#else
+ str = profileData.str();
+ iorByteStringBuf->sputn(str, profileDataLength);
+ delete str;
+#endif
+
+ createIOR(iorByteString, 48 + 4 + profileDataLength);
+
+ return iorString;
+}
+
+
+void InitialReference::enc_ushort(int s, char *byteArray)
+{
+ byteArray[0] = (char) ((s >> 8) & 0xFF);
+ byteArray[1] = (char) ((s >> 0) & 0xFF);
+
+ return;
+}
+
+void InitialReference::enc_ulong(long l, char *byteArray)
+{
+ byteArray[0] = (char) ((l >> 24) & 0xFF);
+ byteArray[1] = (char) ((l >> 16) & 0xFF);
+ byteArray[2] = (char) ((l >> 8) & 0xFF);
+ byteArray[3] = (char) ((l >> 0) & 0xFF);
+
+ return;
+}
+
+void InitialReference::createIOR(strstream& byte, long length)
+{
+ STRINGBUF *stringbuf;
+ STRINGSTREAM string;
+
+ int i;
+#ifdef HAVE_SSTREAM
+ const char *c;
+ const char *bytestr = byte.str().c_str();
+#else
+ char *c;
+ char *bytestr = byte.str();
+#endif
+ int b, n1, n2, c1, c2;
+
+ stringbuf = string.rdbuf();
+ stringbuf->sputn("IOR:",4);
+
+ for(i = 0, c = bytestr; i < length; c++, i++)
+ {
+ b = *c;
+ if(b<0) b+= 256;
+ n1 = b / 16;
+ n2 = b % 16;
+ c1 = (n1 < 10) ? ('0' + n1) : ('a' + (n1 - 10));
+ c2 = (n2 < 10) ? ('0' + n2) : ('a' + (n2 - 10));
+
+ stringbuf->sputc(c1);
+ stringbuf->sputc(c2);
+
+ }
+
+ stringbuf->sputc(0);
+
+ delete bytestr;
+
+#ifdef HAVE_SSTREAM
+ iorString = (char *)string.str().c_str();
+#else
+ iorString = string.str();
+#endif
+
+ return;
+}
+
+long InitialReference::align(STRINGBUF* sbuf, long currentLength,
+ int alignment)
+{
+ long length = currentLength;
+
+ int remainder = alignment - (currentLength % alignment);
+ if (remainder == alignment) return length;
+
+ for (int i = 0; i < remainder; i++)
+ {
+ sbuf->sputc(0);
+ length++;
+ }
+ return length;
+}
+
+
diff --git a/lib/orber/c_src/InitialReference.hh b/lib/orber/c_src/InitialReference.hh
new file mode 100644
index 0000000000..1c3c5c8e0d
--- /dev/null
+++ b/lib/orber/c_src/InitialReference.hh
@@ -0,0 +1,59 @@
+/**
+ *<copyright>
+ * <year>1997-2007</year>
+ * <holder>Ericsson AB, All Rights Reserved</holder>
+ *</copyright>
+ *<legalnotice>
+ * 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.
+ *
+ * The Initial Developer of the Original Code is Ericsson AB.
+ *</legalnotice>
+ */
+/*
+ * InitialReference is a class for creating an external IOR for the object
+ * reference INIT.
+ */
+#ifndef _INITIALREFERENCE_HH
+#define _INITIALREFERENCE_HH
+#include <stdio.h>
+#include <string.h>
+
+#if HAVE_SSTREAM
+#include <sstream>
+typedef std::stringstream STRINGSTREAM;
+typedef std::stringbuf STRINGBUF;
+#else
+#include <strstream.h>
+typedef strstream STRINGSTREAM;
+typedef strstreambuf STRINGBUF;
+#endif
+
+class InitialReference {
+private:
+ char* iorString;
+ char* host;
+ int port;
+
+ void enc_ushort(int s, char *byteArray);
+ void enc_ulong(long l, char *byteArray);
+ void createIOR(STRINGSTREAM& byte, long length);
+ long align(STRINGBUF* sbuf, long currentLength, int alignment);
+
+public:
+ InitialReference();
+ ~InitialReference();
+
+ char* stringified_ior(char* host, int port);
+
+};
+
+#endif
diff --git a/lib/orber/c_src/Makefile b/lib/orber/c_src/Makefile
new file mode 100644
index 0000000000..73ab79d145
--- /dev/null
+++ b/lib/orber/c_src/Makefile
@@ -0,0 +1,23 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+# Invoke with GNU make or clearmake -C gnu.
+#
+
+include $(ERL_TOP)/make/run_make.mk
diff --git a/lib/orber/c_src/Makefile.in b/lib/orber/c_src/Makefile.in
new file mode 100644
index 0000000000..56f0d57545
--- /dev/null
+++ b/lib/orber/c_src/Makefile.in
@@ -0,0 +1,113 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+CXX = @CXX@
+CC = @CC@
+LIBS = @LIBS@
+
+OBJDIR = ../priv/obj/$(TARGET)
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+CC_FILES = \
+ InitialReference.cc
+
+HH_FILES = \
+ InitialReference.hh
+
+ALL_CFLAGS = @CFLAGS@ @DEFS@ $(CFLAGS)
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+
+debug opt: $(OBJDIR) orber
+
+ifeq ($(findstring win32,$(TARGET)),win32)
+orber:
+ echo "Nothing to build on NT"
+else
+ifeq ($(findstring vxworks,$(TARGET)),vxworks)
+orber:
+ echo "Nothing to build for VxWorks"
+
+else
+orber:
+ echo "Nothing to build"
+endif
+endif
+
+clean:
+
+docs:
+
+# ----------------------------------------------------
+# Special Build Targets
+# ----------------------------------------------------
+
+$(OBJDIR):
+ -mkdir -p $(OBJDIR)
+
+$(OBJDIR)/%.o: %.c
+ $(CC) -c -o $@ $(ALL_CFLAGS) $<
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+ifeq ($(findstring win32,$(TARGET)),win32)
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/src
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/include
+ $(INSTALL_PROGRAM) $(CC_FILES) $(RELSYSDIR)/priv/src
+ $(INSTALL_PROGRAM) $(HH_FILES) $(RELSYSDIR)/priv/include
+else
+ifeq ($(findstring vxworks,$(TARGET)),vxworks)
+release_spec:
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/src
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/include
+ $(INSTALL_PROGRAM) $(CC_FILES) $(RELSYSDIR)/priv/src
+ $(INSTALL_PROGRAM) $(HH_FILES) $(RELSYSDIR)/priv/include
+else
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/src
+ $(INSTALL_DIR) $(RELSYSDIR)/priv/include
+ $(INSTALL_DATA) $(CC_FILES) $(RELSYSDIR)/priv/src
+ $(INSTALL_DATA) $(HH_FILES) $(RELSYSDIR)/priv/include
+endif
+endif
+
+
+release_docs_spec:
diff --git a/lib/orber/c_src/main.cc b/lib/orber/c_src/main.cc
new file mode 100644
index 0000000000..c1d17078c5
--- /dev/null
+++ b/lib/orber/c_src/main.cc
@@ -0,0 +1,31 @@
+/**
+ *<copyright>
+ * <year>1997-2007</year>
+ * <holder>Ericsson AB, All Rights Reserved</holder>
+ *</copyright>
+ *<legalnotice>
+ * 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.
+ *
+ * The Initial Developer of the Original Code is Ericsson AB.
+ *</legalnotice>
+ */
+
+#include "InitialReference.hh"
+
+main()
+{
+ InitialReference ir;
+
+ cout << ir.stringified_ior("fingolfin", 4001) << "\n";
+
+
+}
diff --git a/lib/orber/doc/etc/.gitignore b/lib/orber/doc/etc/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/doc/etc/.gitignore
diff --git a/lib/orber/doc/html/.gitignore b/lib/orber/doc/html/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/doc/html/.gitignore
diff --git a/lib/orber/doc/javadoc/.gitignore b/lib/orber/doc/javadoc/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/doc/javadoc/.gitignore
diff --git a/lib/orber/doc/man1/.gitignore b/lib/orber/doc/man1/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/doc/man1/.gitignore
diff --git a/lib/orber/doc/man3/.gitignore b/lib/orber/doc/man3/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/doc/man3/.gitignore
diff --git a/lib/orber/doc/pdf/.gitignore b/lib/orber/doc/pdf/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/doc/pdf/.gitignore
diff --git a/lib/orber/doc/src/CosNaming.xml b/lib/orber/doc/src/CosNaming.xml
new file mode 100644
index 0000000000..db087aedb1
--- /dev/null
+++ b/lib/orber/doc/src/CosNaming.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>CosNaming</title>
+ <prepared></prepared>
+ <docno></docno>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>CosNaming</module>
+ <modulesummary>The CosNaming service is a collection of interfaces that together define the naming service.</modulesummary>
+ <description>
+ <p>The naming service provides the principal mechanism for clients to find
+ objects in an ORB based world. The naming service provides an initial naming
+ context that functions as the root context for all names. Given this context
+ clients can navigate in the name space. </p>
+ <p>Types that are declared on the CosNaming level are:</p>
+ <code type="none"><![CDATA[
+typedef string Istring;
+struct NameComponent {
+ Istring id;
+ Istring kind;
+};
+
+typedef sequence <NameComponent> Name;
+
+enum BindingType {nobject, ncontext};
+
+struct Binding {
+ Name binding_name;
+ BindingType binding_type;
+};
+
+typedef sequence <Binding> BindingList;
+ ]]></code>
+ <p>To get access to the record definitions for the structs use:
+ <c>-include_lib("orber/COSS/CosNaming.hrl").</c>.</p>
+ <p>Names are not an ORB object but the can be structured in components as seen by
+ the definition above. There are no requirements on names so the service can support
+ many different conventions and standards.</p>
+ <p>There are two different interfaces supported in the service:</p>
+ <list type="bulleted">
+ <item>NamingContext</item>
+ <item>BindingIterator</item>
+ </list>
+ <p>IDL specification for CosNaming:</p>
+ <codeinclude file="../../COSS/CosNaming/cos_naming.idl" tag="" type="c"></codeinclude>
+ </description>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/CosNaming_BindingIterator.xml b/lib/orber/doc/src/CosNaming_BindingIterator.xml
new file mode 100644
index 0000000000..83972a6009
--- /dev/null
+++ b/lib/orber/doc/src/CosNaming_BindingIterator.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>CosNaming_BindingIterator</title>
+ <prepared></prepared>
+ <docno></docno>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>CosNaming_BindingIterator</module>
+ <modulesummary>This interface supports iteration over a name binding list.</modulesummary>
+ <description>
+ <p>This interface allows a client to iterate over the Bindinglist it has been
+ initiated with.</p>
+ <p>The type <c>NameComponent</c> used below is defined as:</p>
+ <code type="none">
+ -record('CosNaming_NameComponent', {id, kind=""}).
+ </code>
+ <p><c>id</c> and <c>kind</c> are strings. </p>
+ <p>The type <c>Binding</c> used below is defined as:</p>
+ <code type="none">
+ -record('CosNaming_Binding', {binding_name, binding_type}).
+ </code>
+ <p><c>binding_name</c> is a <c>Name = [NameComponent]</c> and
+ <c>binding_type</c> is an enum which
+ has the values <c>nobject</c> and <c>ncontext</c>.</p>
+ <p>Both these records are defined in the file <c>CosNaming.hrl</c> and it
+ is included with:</p>
+ <code type="none">
+ -include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+ </code>
+ </description>
+ <funcs>
+ <func>
+ <name>next_one(BindinIterator) -> Return</name>
+ <fsummary>Return a binding</fsummary>
+ <type>
+ <v>BindingIterator = #objref</v>
+ <v>Return = {bool(), Binding}</v>
+ </type>
+ <desc>
+ <p>This operation returns the next binding and a boolean. The latter
+ is set to true if the binding is valid otherwise false. If the boolean
+ is false there are no more bindings to retrieve.</p>
+ </desc>
+ </func>
+ <func>
+ <name>next_n(BindinIterator, HowMany) -> Return</name>
+ <fsummary>Return a binding list</fsummary>
+ <type>
+ <v>BindingIterator = #objref</v>
+ <v>HowMany = int()</v>
+ <v>BindingList = [Binding]</v>
+ <v>Return = {bool(), BindingList}</v>
+ </type>
+ <desc>
+ <p>This operation returns a binding list with at most HowMany bindings.
+ If there are no more bindings it returns false otherwise true.</p>
+ </desc>
+ </func>
+ <func>
+ <name>destroy(BindingIterator) -> Return</name>
+ <fsummary>Destroy the iterator object</fsummary>
+ <type>
+ <v>BindingIterator = #objref</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>This operation destroys the binding iterator.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/CosNaming_NamingContext.xml b/lib/orber/doc/src/CosNaming_NamingContext.xml
new file mode 100644
index 0000000000..7a3c7bc571
--- /dev/null
+++ b/lib/orber/doc/src/CosNaming_NamingContext.xml
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>CosNaming_NamingContext</title>
+ <prepared></prepared>
+ <docno></docno>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>CosNaming_NamingContext</module>
+ <modulesummary>This interface supports different bind and access functions for names in a context.</modulesummary>
+ <description>
+ <p>This is the object that defines name scopes, names must be unique within a
+ naming context. Objects may have multiple names and may exist in multiple
+ naming contexts. Name context may be named in other contexts and cycles are
+ permitted.</p>
+ <p>The type <c>NameComponent</c> used below is defined as:</p>
+ <code type="none">
+ -record('CosNaming_NameComponent', {id, kind=""}).
+ </code>
+ <p>where <c>id</c> and <c>kind</c> are strings. </p>
+ <p>The type <c>Binding</c> used below is defined as:</p>
+ <code type="none">
+ -record('CosNaming_Binding', {binding_name, binding_type}).
+ </code>
+ <p>where <c>binding_name</c> is a Name and <c>binding_type</c> is an enum which
+ has the values <c>nobject</c> and <c>ncontext</c>.</p>
+ <p>Both these records are defined in the file <c>CosNaming.hrl</c> and it
+ is included with:</p>
+ <code type="none">
+ -include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+ </code>
+ <p>There are a number of exceptions that can be returned from functions in this
+ interface.</p>
+ <list type="bulleted">
+ <item>
+ <p>NotFound is defined as </p>
+ <code type="none">
+-record('CosNaming_NamingContext_NotFound',
+ {rest_of_name, why}). </code>
+ </item>
+ <item>
+ <p>CannotProceed is defined as </p>
+ <code type="none">
+-record('CosNaming_NamingContext_CannotProceed',
+ {rest_of_name, cxt}). </code>
+ </item>
+ <item>
+ <p>InvalidName is defined as </p>
+ <code type="none">
+-record('CosNaming_NamingContext_InvalidName', {}). </code>
+ </item>
+ <item>
+ <p>NotFound is defined as </p>
+ <code type="none">
+-record('CosNaming_NamingContext_NotFound', {}). </code>
+ </item>
+ <item>
+ <p>AlreadyBound is defined as </p>
+ <code type="none">
+-record('CosNaming_NamingContext_AlreadyBound', {}). </code>
+ </item>
+ <item>
+ <p>NotEmpty is defined as </p>
+ <code type="none">
+-record('CosNaming_NamingContext_NotEmpty', {). </code>
+ </item>
+ </list>
+ <p>These exceptions are defined in the file <c>CosNaming_NamingContext.hrl</c> and it
+ is included with:</p>
+ <code type="none">
+ -include_lib("orber/COSS/CosNaming/CosNaming_NamingContext.hrl").
+ </code>
+ </description>
+ <funcs>
+ <func>
+ <name>bind(NamingContext, Name, Object) -> Return</name>
+ <fsummary>Bind a Name to an Object</fsummary>
+ <type>
+ <v>NameContext = #objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Object = #objref</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>Creates a binding of a name and an object in the naming context.
+ Naming contexts that are bound using <em>bind()</em> do not participate
+ in name resolution.</p>
+ </desc>
+ </func>
+ <func>
+ <name>rebind(NamingContext, Name, Object) -> Return</name>
+ <fsummary>Bind an Object to the Name even if the Name already is bound</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Object = #objref</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>Creates a binding of a name and an object in the naming context even
+ if the name is already bound. Naming contexts that are bound using
+ <em>rebind()</em> do not participate in name resolution.</p>
+ </desc>
+ </func>
+ <func>
+ <name>bind_context(NamingContext1, Name, NamingContex2) -> Return</name>
+ <fsummary>Bind a Name to an NamingContext</fsummary>
+ <type>
+ <v>NamingContext1 = NamingContext2 =#objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>The bind_context function creates a binding of a name and a naming context in
+ the current context.
+ Naming contexts that are bound using <em>bind_context()</em> participate
+ in name resolution.</p>
+ </desc>
+ </func>
+ <func>
+ <name>rebind_context(NamingContext1, Name, NamingContex2) -> Return</name>
+ <fsummary>Bind an NamingContext to the Name even if the Name already is bound</fsummary>
+ <type>
+ <v>NamingContext1 = NamingContext2 =#objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>The rebind_context function creates a binding of a name and a naming context in
+ the current context even if the name already is bound.
+ Naming contexts that are bound using <em>rebind_context()</em> participate
+ in name resolution.</p>
+ </desc>
+ </func>
+ <func>
+ <name>resolve(NamingContext, Name) -> Return</name>
+ <fsummary>Retrieve an Object bound to Name</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Return = Object</v>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>The resolve function is the way to retrieve an object bound to a name in
+ the naming context. The given name must match exactly the bound name. The
+ type of the object is not returned, clients are responsible for narrowing
+ the object to the correct type.</p>
+ </desc>
+ </func>
+ <func>
+ <name>unbind(NamingContext, Name) -> Return</name>
+ <fsummary>Remove the binding for a Name</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>The unbind operation removes a name binding from the naming context.</p>
+ </desc>
+ </func>
+ <func>
+ <name>new_context(NamingContext) -> Return</name>
+ <fsummary>Create a new NamingContext</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>Return = #objref</v>
+ </type>
+ <desc>
+ <p>The new_context operation creates a new naming context.</p>
+ </desc>
+ </func>
+ <func>
+ <name>bind_new_context(NamingContext, Name) -> Return</name>
+ <fsummary>Create a new NamingContext and bind it to a Name</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Return = #objref</v>
+ </type>
+ <desc>
+ <p>The new_context operation creates a new naming context and binds it to
+ Name in the current context.</p>
+ </desc>
+ </func>
+ <func>
+ <name>destroy(NamingContext) -> Return</name>
+ <fsummary>Destroy a NamingContext</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>Return = ok</v>
+ </type>
+ <desc>
+ <p>The destroy operation disposes the NamingContext object and removes it from the
+ name server. The context must be empty e.g. not contain any bindings to be
+ removed.</p>
+ </desc>
+ </func>
+ <func>
+ <name>list(NamingContext, HowMany) -> Return</name>
+ <fsummary>List returns a all bindings in the context</fsummary>
+ <type>
+ <v>NamingContext = #objref</v>
+ <v>HowMany = int()</v>
+ <v>Return = {ok, BindingList, BindingIterator}</v>
+ <v>BindingList = [Binding]</v>
+ <v>BindingIterator = #objref</v>
+ </type>
+ <desc>
+ <p>The list operation returns a BindingList with a number of bindings up-to
+ HowMany from the context. It also returns a BindinIterator which can be used to
+ step through the list. If the total number of existing bindings are less
+ than, or equal to, the <c>HowMany</c> parameter a NIL object reference
+ is returned.</p>
+ <p></p>
+ <note>
+ <p>One must destroy the BindingIterator, unless it is a NIL object
+ reference, by using 'BindingIterator':destroy(). Otherwise one can get
+ dangling objects.</p>
+ </note>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/CosNaming_NamingContextExt.xml b/lib/orber/doc/src/CosNaming_NamingContextExt.xml
new file mode 100644
index 0000000000..ef091bcd35
--- /dev/null
+++ b/lib/orber/doc/src/CosNaming_NamingContextExt.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2000</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>CosNaming_NamingContextExt</title>
+ <prepared></prepared>
+ <docno></docno>
+ <checked></checked>
+ <date>2000-08-16</date>
+ <rev>A</rev>
+ </header>
+ <module>CosNaming_NamingContextExt</module>
+ <modulesummary>This interface contains operation for converting a Name sequence to a string and back.</modulesummary>
+ <description>
+ <p>To get access to the record definitions for the structures use: <br></br>
+</p>
+ <code type="none">
+ -include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+ </code>
+ <p>This module also exports the functions described in:</p>
+ <list type="bulleted">
+ <item>
+ <p><seealso marker="CosNaming_NamingContext">CosNaming_NamingContext</seealso></p>
+ </item>
+ </list>
+ </description>
+ <funcs>
+ <func>
+ <name>to_string(NamingContext, Name) -> Return</name>
+ <fsummary>Stringify a <c>Name</c>sequence to a string</fsummary>
+ <type>
+ <v>NameContext = #objref</v>
+ <v>Name = [NameComponent]</v>
+ <v>Return = string() | {'EXCEPTION', NamingContext::InvalidName{}}</v>
+ </type>
+ <desc>
+ <p>Stringifies a <c>Name</c> sequence to a string.</p>
+ </desc>
+ </func>
+ <func>
+ <name>to_name(NamingContext, NameString) -> Return</name>
+ <fsummary>Convert a stringified <c>Name</c>to a <c>Name</c>sequence</fsummary>
+ <type>
+ <v>NameContext = #objref</v>
+ <v>NameString = string()</v>
+ <v>Return = [NameComponent] | {'EXCEPTION', NamingContext::InvalidName{}}</v>
+ </type>
+ <desc>
+ <p>Converts a stringified <c>Name</c> to a <c>Name</c> sequence.</p>
+ </desc>
+ </func>
+ <func>
+ <name>to_url(NamingContext, AddressString, NameString) -> Return</name>
+ <fsummary>Return an URL string constructed from the given Address and Name strings</fsummary>
+ <type>
+ <v>NameContext = #objref</v>
+ <v>Address = NameString = string()</v>
+ <v>Return = URLString | {'EXCEPTION', NamingContext::InvalidName{}} | {'EXCEPTION', NamingContextExt::InvalidAddress{}}</v>
+ </type>
+ <desc>
+ <p>This operation takes a <c>corbaloc</c> string and a stringified <c>Name</c>
+ sequence as input and returns a fully formed URL string.</p>
+ </desc>
+ </func>
+ <func>
+ <name>resolve_str(NamingContext, NameString) -> Return</name>
+ <fsummary>Return the object associated, if any, with the given name string</fsummary>
+ <type>
+ <v>NameContext = #objref</v>
+ <v>NameString = string()</v>
+ <v>Return = #objref | {'EXCEPTION', NamingContext::InvalidName{}} | {'EXCEPTION', NamingContext::NotFound{why, rest_of_name}} | {'EXCEPTION', NamingContext::CannotProceed{cxt, rest_of_name}}</v>
+ </type>
+ <desc>
+ <p>This operation takes a stringified <c>Name</c> sequence as input and
+ returns the associated, if any, object.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/Makefile b/lib/orber/doc/src/Makefile
new file mode 100644
index 0000000000..40f5ef8708
--- /dev/null
+++ b/lib/orber/doc/src/Makefile
@@ -0,0 +1,272 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(ORBER_VSN)
+APPLICATION=orber
+
+# ----------------------------------------------------
+# Include dependency
+# ----------------------------------------------------
+
+ifndef DOCSUPPORT
+include make.dep
+endif
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+XML_APPLICATION_FILES = ref_man.xml
+XML_REF3_FILES = \
+ any.xml \
+ corba.xml \
+ corba_object.xml \
+ orber.xml \
+ CosNaming.xml \
+ CosNaming_NamingContext.xml \
+ CosNaming_NamingContextExt.xml \
+ CosNaming_BindingIterator.xml \
+ lname.xml \
+ lname_component.xml \
+ orber_ifr.xml \
+ orber_tc.xml \
+ Module_Interface.xml \
+ interceptors.xml \
+ fixed.xml \
+ orber_diagnostics.xml \
+ orber_acl.xml
+
+XML_PART_FILES = \
+ part_notes_history.xml \
+ part.xml \
+ part_notes.xml
+
+XML_CHAPTER_FILES = \
+ ch_contents.xml \
+ ch_introduction.xml \
+ ch_orber_kernel.xml \
+ ch_ifr.xml \
+ ch_install.xml \
+ ch_idl_to_erlang_mapping.xml \
+ ch_example.xml \
+ ch_naming_service.xml \
+ ch_stubs.xml \
+ ch_security.xml \
+ notes.xml \
+ ch_exceptions.xml \
+ ch_interceptors.xml \
+ ch_orberweb.xml \
+ ch_debugging.xml
+
+XML_HTML_FILES = \
+ notes_history.xml
+
+
+BOOK_FILES = book.xml
+
+XML_FILES = $(BOOK_FILES) $(XML_APPLICATION_FILES) $(XML_REF3_FILES) \
+ $(XML_PART_FILES) $(XML_CHAPTER_FILES)
+
+TECHNICAL_DESCR_FILES =
+
+GIF_FILES = \
+ book.gif \
+ notes.gif \
+ ref_man.gif \
+ user_guide.gif \
+ name.gif \
+ orbs.gif \
+ theORB.gif \
+ iiop.gif \
+ dependent.gif \
+ interceptor_operations.gif \
+ menuframe.gif \
+ dataframe1.gif \
+ dataframe2.gif \
+ dataframe3.gif \
+ dataframe4.gif \
+ dataframe5.gif \
+ dataframe6.gif \
+ dataframe7.gif \
+ dataframe8.gif \
+ firewall_nat.gif
+
+# ----------------------------------------------------
+
+INTERNAL_HTML_FILES = $(TECHNICAL_DESCR_FILES:%.xml=$(HTMLDIR)/%.html)
+
+HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \
+ $(XML_CHAPTER_FILES:%.xml=$(HTMLDIR)/%.html) \
+ $(XML_HTML_FILES:%.xml=$(HTMLDIR)/%.html) \
+ $(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html)
+
+INFO_FILE = ../../info
+EXTRA_FILES = summary.html.src \
+ $(DEFAULT_GIF_FILES) \
+ $(DEFAULT_HTML_FILES) \
+ $(XML_REF3_FILES:%.xml=$(HTMLDIR)/%.html)
+
+MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3)
+
+ifdef DOCSUPPORT
+
+HTML_REF_MAN_FILE = $(HTMLDIR)/index.html
+
+TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf
+
+else
+
+TEX_FILES_BOOK = \
+ $(BOOK_FILES:%.xml=%.tex)
+TEX_FILES_REF_MAN = $(XML_REF3_FILES:%.xml=%.tex) \
+ $(XML_APPLICATION_FILES:%.xml=%.tex)
+TEX_FILES_USERS_GUIDE = \
+ $(XML_CHAPTER_FILES:%.xml=%.tex)
+
+TOP_PDF_FILE = $(APPLICATION)-$(VSN).pdf
+TOP_PS_FILE = $(APPLICATION)-$(VSN).ps
+
+$(TOP_PDF_FILE): book.dvi ../../vsn.mk
+ $(DVI2PS) $(DVIPS_FLAGS) -f $< | $(DISTILL) $(DISTILL_FLAGS) > $@
+
+$(TOP_PS_FILE): book.dvi ../../vsn.mk
+ $(DVI2PS) $(DVIPS_FLAGS) -f $< > $@
+
+endif
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+XML_FLAGS +=
+DVIPS_FLAGS +=
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+$(HTMLDIR)/%.gif: %.gif
+ $(INSTALL_DATA) $< $@
+
+
+ifdef DOCSUPPORT
+
+docs: pdf html man
+
+$(TOP_PDF_FILE): $(XML_FILES)
+
+pdf: $(TOP_PDF_FILE)
+
+html: gifs $(HTML_REF_MAN_FILE)
+
+clean clean_docs:
+ rm -rf $(HTMLDIR)/*
+ rm -f $(MAN3DIR)/*
+ rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo)
+ rm -f errs core *~
+ rm -f $(JD_HTML) $(JD_PACK)
+
+else
+
+ifeq ($(DOCTYPE),pdf)
+docs: pdf
+else
+ifeq ($(DOCTYPE),ps)
+docs: ps
+else
+docs: html gifs man
+endif
+endif
+
+pdf: $(TOP_PDF_FILE)
+
+ps: $(TOP_PS_FILE)
+
+html: $(HTML_FILES) $(INTERNAL_HTML_FILES)
+
+clean clean_docs clean_tex:
+ rm -f $(TEX_FILES_USERS_GUIDE) $(TEX_FILES_REF_MAN) $(TEX_FILES_BOOK)
+ rm -f $(HTMLDIR)/*
+ rm -f $(MAN3DIR)/*
+ rm -f $(TOP_PDF_FILE) $(TOP_PS_FILE)
+ rm -f errs core *~ *xmls_output *xmls_errs $(LATEX_CLEAN)
+ rm -f $(JD_HTML) $(JD_PACK)
+
+endif
+
+
+man: $(MAN3_FILES)
+
+gifs: $(GIF_FILES:%=$(HTMLDIR)/%)
+
+debug opt:
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+
+ifdef DOCSUPPORT
+
+release_docs_spec: docs
+ $(INSTALL_DIR) $(RELSYSDIR)/doc/pdf
+ $(INSTALL_DATA) $(TOP_PDF_FILE) $(RELSYSDIR)/doc/pdf
+ $(INSTALL_DIR) $(RELSYSDIR)/doc/html
+ $(INSTALL_DATA) $(HTMLDIR)/* \
+ $(RELSYSDIR)/doc/html
+ $(INSTALL_DATA) $(INFO_FILE) $(RELSYSDIR)
+ $(INSTALL_DIR) $(RELEASE_PATH)/man/man3
+ $(INSTALL_DATA) $(MAN3DIR)/* $(RELEASE_PATH)/man/man3
+else
+
+ifeq ($(DOCTYPE),pdf)
+release_docs_spec: pdf
+ $(INSTALL_DIR) $(RELEASE_PATH)/pdf
+ $(INSTALL_DATA) $(TOP_PDF_FILE) $(RELEASE_PATH)/pdf
+else
+ifeq ($(DOCTYPE),ps)
+release_docs_spec: ps
+ $(INSTALL_DIR) $(RELEASE_PATH)/ps
+ $(INSTALL_DATA) $(TOP_PS_FILE) $(RELEASE_PATH)/ps
+else
+release_docs_spec: docs
+ $(INSTALL_DIR) $(RELSYSDIR)/doc/html
+ $(INSTALL_DATA) $(GIF_FILES) $(EXTRA_FILES) $(HTML_FILES) \
+ $(RELSYSDIR)/doc/html
+ $(INSTALL_DATA) $(INFO_FILE) $(RELSYSDIR)
+ $(INSTALL_DIR) $(RELEASE_PATH)/man/man3
+ $(INSTALL_DATA) $(MAN3_FILES) $(RELEASE_PATH)/man/man3
+
+endif
+endif
+
+endif
+
+release_spec:
+
diff --git a/lib/orber/doc/src/Module_Interface.xml b/lib/orber/doc/src/Module_Interface.xml
new file mode 100644
index 0000000000..85f19ccf49
--- /dev/null
+++ b/lib/orber/doc/src/Module_Interface.xml
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1999</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Module_Interface</title>
+ <prepared></prepared>
+ <docno></docno>
+ <checked></checked>
+ <date>1999-09-03</date>
+ <rev>A</rev>
+ </header>
+ <module>Module_Interface</module>
+ <modulesummary>Orber generated stubs/skeletons.</modulesummary>
+ <description>
+ <p>This module contains the stub/skeleton functions generated by IC.</p>
+ <p>Starting a Orber server can be done in three ways:</p>
+ <list type="bulleted">
+ <item>Normal - when the server dies Orber forgets all knowledge of the server.</item>
+ <item>Supervisor child - adding the configuration parameter <c>{sup_child, true}</c>
+ the <c>oe_create_link/2</c> function returns <c>{ok, Pid, ObjRef}</c> which
+ can be handled by the application <em>supervisor/stdlib-1.7</em> or later. </item>
+ <item>Persistent object reference - adding the configuration parameters <c>{persistent, true}</c>
+ and <c>{regname, {global, term()}}</c> Orber will remember the object reference until the
+ server terminates with reason <em>normal</em> or <em>shutdown</em>. Hence,
+ if the server is started as a <em>transient</em> supervisor child we do not
+ receive a 'OBJECT_NOT_EXIST' exception when it has crashed and is being restarted.</item>
+ </list>
+ <p>The Orber stub can be used to start a <c>pseudo object</c>, which will create a non-server implementation.
+ A pseudo object introduce some limitations:</p>
+ <list type="bulleted">
+ <item>The functions <c>oe_create_link/2</c> is equal to <c>oe_create/2</c>, i.e.,
+ no link can or will be created.</item>
+ <item>The <c>BIF:s self()</c> and <c>process_flag(trap_exit,true)</c> behaves incorrectly.</item>
+ <item>The <c>IC</c> option <c>{{impl, "M::I"}, "other_impl"}</c> has no effect. The call-back
+ functions must be implemented in a file called <c>M_I_impl.erl</c></item>
+ <item>The <c>IC</c> option <c>from</c> has no effect. </item>
+ <item>The call-back functions must be implemented as if the <c>IC</c> option
+ <c>{this, "M::I"}</c> was used.</item>
+ <item>Server <c>State</c> changes have no effect. The user can provide information via
+ the <c>Env</c> start parameter and the State returned from <c>init/2</c> will be the State
+ passed in following invocations.</item>
+ <item>If a call-back function replies with the <c>Timeout</c> parameter set it have no effect.</item>
+ <item>Operations defined as <c>oneway</c> are blocking until the operation replies.</item>
+ <item>The option <c>{pseudo, true}</c> overrides all other start options.</item>
+ <item>Only the functions, besides own definitions, <c>init/2</c> (called via oe_create*/2) and
+ <c>terminate/2</c> (called via corba:dispose/1) must be implemented.</item>
+ </list>
+ <p>By adopting the rules for <c>pseudo</c> objects described above we can use <c>oe_create/2</c>
+ to create <c>server</c> or <c>pseudo</c> objects, by excluding or including the
+ option <c>{pseudo, true}</c>, without changing the call-back module.
+ </p>
+ <p>If you start a object without <c>{regname, RegName}</c> it can only be accessed through the returned object key.
+ Started with a <c>{regname, RegName}</c> the name is registered locally or globally.
+ </p>
+ <warning>
+ <p>To avoid flooding Orber with old object references start erlang using the flag
+ <em>-orber objectkeys_gc_time Time</em>, which will remove all object references
+ related to servers being dead for Time seconds. To avoid extra overhead, i.e., performing
+ garbage collect if no persistent objects are started, the objectkeys_gc_time default value
+ is <em>infinity</em>. For more information, see the orber and corba documentation.</p>
+ </warning>
+ </description>
+ <funcs>
+ <func>
+ <name>Module_Interface:typeID() -> TypeId</name>
+ <fsummary>Return the Type ID related to this stub/skeleton</fsummary>
+ <type>
+ <v>TypeId = string(), e.g., "IDL:Module/Interface:1.0"</v>
+ </type>
+ <desc>
+ <p>Returns the Type ID related to this stub/skeleton</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:oe_create() -> ObjRef</name>
+ <fsummary>Start a Orber server.</fsummary>
+ <type>
+ <v>ObjRef = #object reference</v>
+ </type>
+ <desc>
+ <p>Start a Orber server.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:oe_create_link() -> ObjRef</name>
+ <fsummary>Start a linked Orber server.</fsummary>
+ <type>
+ <v>ObjRef = #object reference</v>
+ </type>
+ <desc>
+ <p>Start a linked Orber server.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:oe_create(Env) -> ObjRef</name>
+ <fsummary>Start a Orber server.</fsummary>
+ <type>
+ <v>Env = term()</v>
+ <v>ObjRef = #object reference</v>
+ </type>
+ <desc>
+ <p>Start a Orber server passing Env to <c>init/1</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:oe_create_link(Env) -> ObjRef</name>
+ <fsummary>Start a linked Orber server.</fsummary>
+ <type>
+ <v>Env = term()</v>
+ <v>ObjRef = #object reference</v>
+ </type>
+ <desc>
+ <p>Start a linked Orber server passing Env to <c>init/1</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:oe_create(Env, Options) -> ObjRef</name>
+ <fsummary>Start a Orber stub/skeleton</fsummary>
+ <type>
+ <v>Env = term()</v>
+ <v>ObjRef = #object reference</v>
+ <v>Options = [{sup_child, false} | {persistent, Bool} | {regname, RegName} | {pseudo, Bool} | {local_typecheck, Bool} | {survive_exit, Bool} | {create_options, [CreateOpts]}]</v>
+ <v>Bool = true | false</v>
+ <v>RegName = {global, term()} | {local, atom()}</v>
+ <v>CreateOpts = {debug, [Dbg]} | {timeout, Time}</v>
+ <v>Dbg = trace | log | statistics | {log_to_file, FileName}</v>
+ </type>
+ <desc>
+ <p>Start a Orber server passing Env to <c>init/1</c>.</p>
+ <p>If the option <c>{pseudo, true}</c> is used, all other options are overridden.
+ As default, this option is set to false.</p>
+ <p>This function cannot be used for starting a server as supervisor child.
+ If started as <c>persistent</c>, the options <c>[{persistent, true}, {regname, {global, term()}}]</c> must be used and
+ Orber will only forget the object reference if it terminates with reason <em>normal</em> or <em>shutdown</em>.</p>
+ <p>The option <c>{local_typecheck, boolean()}</c>, which overrides the
+ <seealso marker="ch_install#flags">Local Typechecking</seealso>
+ environment flag, turns on or off typechecking. If activated,
+ parameters, replies and raised exceptions will be checked to ensure that
+ the data is correct, when invoking operations on CORBA Objects within
+ the same Orber domain. Due to the extra overhead, this option
+ <em>MAY ONLY</em> be used during testing and development.</p>
+ <p><c>{survive_exit, boolean()}</c> overrides the
+ <seealso marker="ch_install#flags">EXIT Tolerance</seealso>
+ environment flag. If activated, the server will not terminate, even though
+ the call-back module returns EXIT.</p>
+ <p><c>Time</c> specifies how long time, in milliseconds, the server is allowed to
+ spend initializing. For more information about the <c>Dbg</c> options,
+ see the <c>sys</c> module.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:oe_create_link(Env, Options) -> Return</name>
+ <fsummary>Start a Orber stub/skeleton</fsummary>
+ <type>
+ <v>Env = term()</v>
+ <v>Return = ObjRef | {ok, Pid, ObjRef}</v>
+ <v>ObjRef = #object reference</v>
+ <v>Options = [{sup_child, Bool} | {persistent, Bool} | {regname, RegName} | {pseudo, Bool} | {local_typecheck, Bool} | {survive_exit, Bool} | {create_options, [CreateOpts]}]</v>
+ <v>Bool = true | false</v>
+ <v>RegName = {global, term()} | {local, atom()}</v>
+ <v>CreateOpts = {debug, [Dbg]} | {timeout, Time}</v>
+ <v>Dbg = trace | log | statistics | {log_to_file, FileName}</v>
+ <v></v>
+ <v></v>
+ <v></v>
+ </type>
+ <desc>
+ <p>Start a linked Orber server passing Env to <c>init/1</c>.</p>
+ <p>If the option <c>{pseudo, true}</c> is used, all other options are overridden and no link will be created.
+ As default, this option is set to false.</p>
+ <p>This function can be used for starting a server as persistent or supervisor child. At the moment
+ <c>[{persistent, true}, {regname, {global, term()}}]</c> must be used to start
+ a server as persistent, i.e., if a server died and is in the process of being restarted
+ a call to the server will not raise <c>'OBJECT_NOT_EXIST'</c> exception.
+ Orber will only forget the object reference if it terminates with reason <em>normal</em> or <em>shutdown</em>,
+ hence, the server must be started as <em>transient</em> (for more information see the
+ supervisor documentation).</p>
+ <p>The options <c>{local_typecheck, boolean()}</c> and <c>{survive_exit, boolean()}</c>
+ behaves in the same way as for <c>oe_create/2</c>.</p>
+ <p><c>Time</c> specifies how long time, in milliseconds, the server is allowed to
+ spend initializing. For more information about the <c>Dbg</c> options,
+ see the <c>sys</c> module.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface:own_functions(ObjRef, Arg1, ..., ArgN) -> Reply</name>
+ <name>Module_Interface:own_functions(ObjRef, Options, Arg1, ..., ArgN) -> Reply</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>ObjRef = #object reference</v>
+ <v>Options = [Option] | Timeout</v>
+ <v>Option = {timeout, Timeout} | {context, [Context]}</v>
+ <v>Timeout = infinity | integer(milliseconds)</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>ArgX = specified in the IDL-code.</v>
+ <v>Reply = specified in the IDL-code.</v>
+ </type>
+ <desc>
+ <p>The default value for the <c>Timeout</c> option is <c>infinity</c>.
+ IPv4 or IPv6 addresses are accepted as local Interface.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ <p>To gain access to <c>#'IOP_ServiceContext'{}</c> record and the
+ <c>?ORBER_GENERIC_CTX_ID</c> macro, you must add
+ <c>-include_lib("orber/include/corba.hrl").</c> to your module.</p>
+ </desc>
+ </func>
+ </funcs>
+
+ <section>
+ <title>CALLBACK FUNCTIONS</title>
+ <p>The following functions should be exported from a <c>CORBA</c>
+ callback module. Note, a complete template of the call-back module can
+ be generated automatically by compiling the IDL-file with the IC option
+ <c>{be,erl_template}</c>. One should also add
+ the same compile options, for example <c>this</c> or <c>from</c>,
+ used when generating the stub/skeleton modules.</p>
+ </section>
+ <funcs>
+ <func>
+ <name>Module_Interface_impl:init(Env) -> CallReply</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>Env = term()</v>
+ <v>CallReply = {ok, State} | {ok, State, Timeout} | ignore | {stop, StopReason}</v>
+ <v>State = term()</v>
+ <v>Timeout = int() >= 0 | infinity</v>
+ <v>StopReason = term()</v>
+ </type>
+ <desc>
+ <p>Whenever a new server is started, <em>init/1</em> is the first function called in the specified call-back module.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface_impl:terminate(Reason, State) -> ok</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>Reason = term()</v>
+ <v>State = term()</v>
+ </type>
+ <desc>
+ <p>This call-back function is called whenever the server is about to terminate.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface_impl:code_change(OldVsn, State, Extra) -> CallReply</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>OldVsn = undefined | term()</v>
+ <v>State = term()</v>
+ <v>Extra = term()</v>
+ <v>CallReply = {ok, NewState}</v>
+ <v>NewState = term()</v>
+ </type>
+ <desc>
+ <p>Update the internal <c>State</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface_impl:handle_info(Info, State) -> CallReply</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>Info = term()</v>
+ <v>State = term()</v>
+ <v>CallReply = {noreply, State} | {noreply, State, Timeout} | {stop, StopReason, State}</v>
+ <v>Timeout = int() >= 0 | infinity</v>
+ <v>StopReason = normal | shutdown | term()</v>
+ </type>
+ <desc>
+ <p>If the configuration parameter <em>{{handle_info, "Module::Interface"}, true}</em>
+ is passed to IC and <em>process_flag(trap_exit,true)</em> is set in the <em>init()</em>
+ call-back this function must be exported. </p>
+ <note>
+ <p>To be able to handle the <c>Timeout</c> option in <c>CallReply</c> in the call-back
+ module the configuration parameter <em>{{handle_info, "Module::Interface"}, true}</em> must
+ be passed to IC. </p>
+ </note>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface_impl:own_functions(State, Arg1, ..., ArgN) -> CallReply</name>
+ <name>Module_Interface_impl:own_functions(This, State, Arg1, ..., ArgN) -> CallReply</name>
+ <name>Module_Interface_impl:own_functions(This, From, State, Arg1, ..., ArgN) -> ExtCallReply</name>
+ <name>Module_Interface_impl:own_functions(From, State, Arg1, ..., ArgN) -> ExtCallReply</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>This = the servers #object reference</v>
+ <v>State = term()</v>
+ <v>ArgX = specified in the IDL-code.</v>
+ <v>CallReply = {reply, Reply, State} | {reply, Reply, State, Timeout} | {stop, StopReason, Reply, State} | {stop, StopReason, State} | corba:raise(Exception)</v>
+ <v>ExtCallReply = CallReply | corba:reply(From, Reply), {noreply, State} | corba:reply(From, Reply), {noreply, State, Timeout}</v>
+ <v>Reply = specified in the IDL-code.</v>
+ <v>Timeout = int() >= 0 | infinity</v>
+ <v>StopReason = normal | shutdown | term()</v>
+ </type>
+ <desc>
+ <p>All two-way functions must return one of the listed replies or raise any of
+ the exceptions listed in the IDL code (i.e. raises(...)).
+ If the IC compile options <em>this</em> and/or <em>from</em> are used,
+ the implementation must accept the <em>This</em> and/or <em>From</em>
+ parameters.</p>
+ </desc>
+ </func>
+ <func>
+ <name>Module_Interface_impl:own_functions(State, Arg1, ..., ArgN) -> CastReply</name>
+ <name>Module_Interface_impl:own_functions(This, State, Arg1, ..., ArgN) -> CastReply</name>
+ <fsummary>User defined function which is not a part of Orber</fsummary>
+ <type>
+ <v>This = the servers #object reference</v>
+ <v>State = term()</v>
+ <v>CastReply = {noreply, State} | {noreply, State, Timeout} | {stop, StopReason, State}</v>
+ <v>ArgX = specified in the IDL-code.</v>
+ <v>Reply = specified in the IDL-code.</v>
+ <v>Timeout = int() >= 0 | infinity</v>
+ <v>StopReason = normal | shutdown | term()</v>
+ </type>
+ <desc>
+ <p>All one-way functions must return one of the listed replies.
+ If the IC compile option <em>this</em> is used,
+ the implementation must accept the <em>This</em> parameter.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/Orber/InitialReference.java b/lib/orber/doc/src/Orber/InitialReference.java
new file mode 100644
index 0000000000..300de59139
--- /dev/null
+++ b/lib/orber/doc/src/Orber/InitialReference.java
@@ -0,0 +1,130 @@
+/*
+ * %CopyrightBegin%
+ *
+ * Copyright Ericsson AB 1997-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%
+ *
+ */
+/**
+ * InitialReference is a class which generates the INIT reference
+ * which can be used by the InitialReferences interface.
+ */
+package Orber;
+
+public class InitialReference
+{
+
+ /**
+ * Constructor.
+ */
+ public InitialReference(){;}
+
+ /**
+ * Returns the stringified objectreference to the initial reference server
+ */
+ public String stringified_ior(String host, int port)
+ {
+ String iorByteString;
+ String profileData;
+ String iorString;
+
+ // byte_order followed by ' {"", [{0, '
+ // char iorBytesFirstPart[] = {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0};
+ char iorBytesFirstPart[] = {0,0,0,0,0,0,0,32,73,68,76,58,79,114,98,101,114,47,73,110,105,116,105,97,108,82,101,102,101,114,101,110,99,101,115,58,49,46,48,0,0,0,0,1,0,0,0,0};
+ // the objectkey "INIT
+ char iorBytesLastPart[] = {0,0,0,4,73,78,73,84};
+
+ // Fix the ProfileData struct.
+ char pdPrefix[] = {0,1,0,0};
+ char nullbyte[] = {0};
+ profileData = new String(pdPrefix) + enc_ulong(host.length() + 1) + host + new String(nullbyte);
+ profileData = align(profileData, 2);
+ profileData += enc_ushort(port);
+ profileData = align(profileData, 4);
+ profileData += new String(iorBytesLastPart);
+ // Fix the whole IOR
+ iorByteString = new String(iorBytesFirstPart) + enc_ulong(profileData.length()) +
+ profileData;
+
+ // System.out.print("Start[" + profileData.length() + "]");
+ // System.out.print("[");
+ // for(int x = 0; x < iorByteString.length(); x++)
+ // {
+ // System.out.print((int) iorByteString.charAt(x) + ",");
+ // }
+ // System.out.println("]");
+
+ iorString = createIOR(iorByteString);
+ // System.out.println(iorString);
+ return iorString;
+ }
+
+
+ private String enc_ushort(int s)
+ {
+ char byteArray[] = {(char) ((s >>> 8) & 0xFF),
+ (char) ((s >>> 0) & 0xFF)};
+
+ return new String(byteArray);
+ }
+
+ private String enc_ulong(int l)
+ {
+ char byteArray[] = {(char) ((l >>> 24) & 0xFF),
+ (char) ((l >>> 16) & 0xFF),
+ (char) ((l >>> 8) & 0xFF),
+ (char) ((l >>> 0) & 0xFF)};
+
+ return new String(byteArray);
+
+ }
+
+ private String createIOR(String bytes)
+ {
+ int i;
+ StringBuffer sb = new StringBuffer("IOR:");
+
+ for(i = 0; i < bytes.length(); i++)
+ {
+ int b = bytes.charAt(i);
+ if(b<0) b+= 256;
+ int n1 = b / 16;
+ int n2 = b % 16;
+ int c1 = (n1 < 10) ? ('0' + n1) : ('a' + (n1 - 10));
+ int c2 = (n2 < 10) ? ('0' + n2) : ('a' + (n2 - 10));
+ sb.append((char)c1);
+ sb.append((char)c2);
+ }
+
+ return sb.toString();
+ }
+
+ private String align(String buffer, int alignment)
+ {
+ String s = buffer;
+ char nullbyte[] = {0};
+
+ int remainder = alignment - (buffer.length() % alignment);
+ if (remainder == alignment) return s;
+
+ for (int i = 0; i < remainder; i++)
+ {
+ s += new String(nullbyte);
+ }
+ return s;
+ }
+
+
+}
diff --git a/lib/orber/doc/src/Orber/Makefile b/lib/orber/doc/src/Orber/Makefile
new file mode 100644
index 0000000000..49da975a8b
--- /dev/null
+++ b/lib/orber/doc/src/Orber/Makefile
@@ -0,0 +1,70 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+
+#
+# JAVA macros
+#
+JAVA_CLASSES = \
+ InitialReference
+
+JAVA_FILES= $(JAVA_CLASSES:%=%.java)
+
+CLASSPATH = ../..
+
+# ----------------------------------------------------
+# Flags
+# ----------------------------------------------------
+JAVA_OPTIONS =
+
+# ----------------------------------------------------
+# Make Rules
+# ----------------------------------------------------
+
+debug opt:
+
+clean:
+
+docs:
+
+# ----------------------------------------------------
+# Release Targets
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/java_src/Orber
+ $(INSTALL_DATA) $(JAVA_FILES) $(RELSYSDIR)/java_src/Orber
+
+release_docs_spec:
+
diff --git a/lib/orber/doc/src/Orber/ignore_config_record.inf b/lib/orber/doc/src/Orber/ignore_config_record.inf
new file mode 100644
index 0000000000..0a5053eba3
--- /dev/null
+++ b/lib/orber/doc/src/Orber/ignore_config_record.inf
@@ -0,0 +1 @@
+This file makes clearmake use the -T switch for this subdirectory
diff --git a/lib/orber/doc/src/any.xml b/lib/orber/doc/src/any.xml
new file mode 100644
index 0000000000..6ba1a96561
--- /dev/null
+++ b/lib/orber/doc/src/any.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1998</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>any</title>
+ <prepared></prepared>
+ <docno></docno>
+ <checked></checked>
+ <date>1998-04-20</date>
+ <rev>A</rev>
+ </header>
+ <module>any</module>
+ <modulesummary>the corba any type</modulesummary>
+ <description>
+ <p>This module contains functions that gives an interface to the CORBA any type.</p>
+ <p>Note that the <c>any</c> interface in orber does not contain a destroy
+ function because the any type is represented as an Erlang record and
+ therefor will be removed by the garbage collector when not in use.</p>
+ <p>The type <c>TC</c> used below describes an IDL type and is a tuple according
+ to the to the Erlang language mapping.</p>
+ <p>The type <c>Any</c> used below is defined as:</p>
+ <code type="none">
+ -record(any, {typecode, value}).
+ </code>
+ <p>where <c>typecode</c> is a TC tuple and <c>value</c> is an Erlang term of
+ the type defined by the typecode field.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>create() -> Result</name>
+ <name>create(Typecode, Value) -> Result</name>
+ <fsummary>Create an any record</fsummary>
+ <type>
+ <v>Typecode = TC</v>
+ <v>Value = term()</v>
+ <v>Result = Any</v>
+ </type>
+ <desc>
+ <p>The create/0 function creates an empty any record and the create/2
+ function creates an initialized record.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_typecode(A, Typecode) -> Result</name>
+ <fsummary>Set the typecode field</fsummary>
+ <type>
+ <v>A = Any</v>
+ <v>Typecode = TC</v>
+ <v>Result = Any</v>
+ </type>
+ <desc>
+ <p>This function sets the typecode of <em>A</em> and returns a
+ new any record.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_typecode(A) -> Result</name>
+ <fsummary>Fetch the typecode</fsummary>
+ <type>
+ <v>A = Any</v>
+ <v>Result = TC</v>
+ </type>
+ <desc>
+ <p>This function returns the typecode of <em>A</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_value(A, Value) -> Result</name>
+ <fsummary>Set the value field</fsummary>
+ <type>
+ <v>A = Any</v>
+ <v>Value = term()</v>
+ <v>Result = Any</v>
+ </type>
+ <desc>
+ <p>This function sets the value of <em>A</em> and returns a
+ new any record.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_value(A) -> Result</name>
+ <fsummary>Fetch the value</fsummary>
+ <type>
+ <v>A = Any</v>
+ <v>Result = term()</v>
+ </type>
+ <desc>
+ <p>This function returns the value of <em>A</em>.
+ </p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/book.gif b/lib/orber/doc/src/book.gif
new file mode 100644
index 0000000000..94b3868792
--- /dev/null
+++ b/lib/orber/doc/src/book.gif
Binary files differ
diff --git a/lib/orber/doc/src/book.xml b/lib/orber/doc/src/book.xml
new file mode 100644
index 0000000000..a8f0fca6f6
--- /dev/null
+++ b/lib/orber/doc/src/book.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE book SYSTEM "book.dtd">
+
+<book xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header titlestyle="normal">
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>orber</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-04-25</date>
+ <rev>2.0</rev>
+ </header>
+ <insidecover>
+ </insidecover>
+ <pagetext>Orber</pagetext>
+ <preamble>
+ <contents level="2"></contents>
+ </preamble>
+ <parts lift="no">
+ <xi:include href="part.xml"/>
+ </parts>
+ <applications>
+ <xi:include href="ref_man.xml"/>
+ </applications>
+ <releasenotes>
+ <xi:include href="notes.xml"/>
+ </releasenotes>
+ <listofterms></listofterms>
+ <index></index>
+</book>
+
diff --git a/lib/orber/doc/src/ch_contents.xml b/lib/orber/doc/src/ch_contents.xml
new file mode 100644
index 0000000000..65383805b3
--- /dev/null
+++ b/lib/orber/doc/src/ch_contents.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1999</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>The Orber Application</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-05-05</date>
+ <rev>B</rev>
+ <file>ch_contents.xml</file>
+ </header>
+
+ <section>
+ <title>Content Overview</title>
+ <p>The Orber documentation is divided into three sections:
+ </p>
+ <list type="bulleted">
+ <item>
+ <p>PART ONE - The User's Guide
+ <br></br>
+Description of the Orber Application including IDL-to-Erlang
+ language mapping, services and a small tutorial demonstrating
+ the development of a simple service.</p>
+ </item>
+ <item>
+ <p>PART TWO - Release Notes
+ <br></br>
+A concise history of Orber.</p>
+ </item>
+ <item>
+ <p>PART THREE - The Reference Manual
+ <br></br>
+ A quick reference guide, including a
+ brief description, to all the functions available in Orber.</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Brief Description of the User's Guide</title>
+ <p>The User's Guide contains the following parts:</p>
+ <list type="bulleted">
+ <item>
+ <p>ORB kernel and IIOP support</p>
+ </item>
+ <item>
+ <p>Interface Repository</p>
+ </item>
+ <item>
+ <p>IDL to Erlang mapping</p>
+ </item>
+ <item>
+ <p>CosNaming Service</p>
+ </item>
+ <item>
+ <p>Resolving initial reference from Java or C++</p>
+ </item>
+ <item>
+ <p>Tutorial - creating a simple service </p>
+ </item>
+ <item>
+ <p>CORBA Exceptions </p>
+ </item>
+ <item>
+ <p>Interceptors</p>
+ </item>
+ <item>
+ <p>OrberWeb</p>
+ </item>
+ <item>
+ <p>Debugging
+ </p>
+ </item>
+ </list>
+
+ <section>
+ <title>ORB Kernel and IIOP Support</title>
+ <p>The ORB kernel which has IIOP support will allow the creation
+ of persistent server objects in Erlang. These objects can also
+ be accessed via Erlang and Java environments. For the moment a
+ Java enabled ORB is needed to generate Java from IDL to use
+ Java server objects (this has been tested using OrbixWeb).</p>
+ </section>
+
+ <section>
+ <title>Interface Repository</title>
+ <p>The IFR is an interface repository used for some type-checking
+ when coding/decoding IIOP. The IFR is capable of storing all
+ interfaces and declarations of OMG IDL.</p>
+ </section>
+
+ <section>
+ <title>IDL to Erlang Mapping</title>
+ <p>The OMG IDL mapping for Erlang, which is necessary to access the
+ functionality of Orber, is described, The mapping structure is
+ included as the\011basic and the constructed OMG IDL types
+ references, invocations\011and Erlang characteristics. An example is
+ also provided.</p>
+ </section>
+
+ <section>
+ <title>CosNaming Service</title>
+ <p>Orber contains a CosNaming compliant service.</p>
+ </section>
+
+ <section>
+ <title>Resolving Initial References from Java or C++</title>
+ <p>A couple of classes are added to Orber to simplify initial
+ reference access from Java or C++.
+ </p>
+ <p><em>Resolving initial reference from Java</em> <br></br>
+ A class with only one method which returns an <term id="IOR"><termdef>Interoperable Object Reference</termdef></term>on the
+ external string format to the INIT object (see "Interoperable
+ Naming Service" specification).</p>
+ <p><em>Resolving initial reference from C++</em> <br></br>
+
+ A class (and header file) with only one method which returns
+ an IOR on the external string format to the INIT object (see
+ "Interoperable Naming Service" specification).</p>
+ </section>
+
+ <section>
+ <title>Orber Stub/Skeleton</title>
+ <p>An example which describes the API and behavior of Orber stubs and skeletons. </p>
+ </section>
+
+ <section>
+ <title>CORBA Exceptions</title>
+ <p>A listing of all system exceptions supported by Orber and how one should
+ handle them. This chapter also describe how to generate user defined
+ exceptions.</p>
+ </section>
+
+ <section>
+ <title>Interceptors</title>
+ <p>Descibes how to implement and activate interceptors.</p>
+ </section>
+
+ <section>
+ <title>OrberWeb</title>
+ <p>Offers the possibility to administrate and supervise Orber via a GUI.</p>
+ </section>
+
+ <section>
+ <title>Debugging</title>
+ <p>Describes how to use different tools when debugging and/or developing
+ new applications using Orber. Also includes a FAQ, which deal with
+ the most common mistakes when using Orber.
+ </p>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_debugging.xml b/lib/orber/doc/src/ch_debugging.xml
new file mode 100644
index 0000000000..8c5685bc63
--- /dev/null
+++ b/lib/orber/doc/src/ch_debugging.xml
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2001</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Debugging</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>2001-11-29</date>
+ <rev></rev>
+ <file>ch_debugging.xml</file>
+ </header>
+
+ <section>
+ <title>Tools and FAQ</title>
+ <p>Persons who use Orber for the first time may find it hard to tell what goes
+ wrong when trying to setup communication between an Orber-ORB and ORB:s supplied
+ by another vendor or another Orber-ORB. The purpose of this chapter is to inform
+ about the most common mistakes and what tools one can use to overcome these
+ problems. </p>
+
+ <section>
+ <title>Tools</title>
+ <p>To begin with, Orber can be configured to run in debug mode. There are four ways
+ to set this parameter:</p>
+ <list type="bulleted">
+ <item><em>erl -orber orber_debug_level 10</em> - can be added to a start-script.</item>
+ <item><em>corba:orb_init([{orber_debug_level, 10}])</em> - this operation must
+ be invoked <em>before</em> starting Orber.</item>
+ <item><em>orber:configure(orber_debug_level, 10)</em> - this operation can
+ be invoked at any time.</item>
+ <item><em>OrberWeb</em> - via the <c>Configuration</c> menu one can easily change
+ the configuration. For more information, see the OrberWeb chapter in this
+ User's Guide.</item>
+ </list>
+ <p>When Orber runs i debug mode, printouts will be generated if anything abnormal occurs
+ (not necessarily an error). An error message typically looks like:</p>
+ <code type="none">
+=ERROR REPORT==== 29-Nov-2001::14:09:55 ===
+=================== Orber =================
+[410] corba:common_create(orber_test_server, [{pseudo,truce}]);
+not a boolean(truce).
+===========================================
+ </code>
+ <p>In the example above, we tried to create an object with an incorrect option (i.e. should
+ have been <c>{pseudo,true}</c>).</p>
+ <p>If you are not able to solve the problem, you should include all generated reports when
+ contacting support or using the erlang-questions mailing list.</p>
+ <p>It is easy to forget to, for example, set all fields in a struct, which
+ one may not discover when developing an application using Orber. When using
+ a typed language, such faults would cause a compile time error. To avoid
+ these mistakes, Orber allows the user to activate automatic typechecking
+ of all local invocations of CORBA Objects. For this feature to be really
+ useful, the user must create test suites which cover as much as
+ possible. For example, invoking an operation with invalid or incorrect
+ arguments should also be tested. This option can be activated for one object
+ or all object via:</p>
+ <list type="bulleted">
+ <item><em>'MyModuyle_MyInterface':oe_create(Env, [{local_typecheck, true}])</em> -
+ This approach will only activate, or deactivate, typechecking for
+ the returned instance. Naturally, this option can also be passed
+ to <c>oe_create_link/2</c>, <c>corba:create/4</c> and
+ <c>corba:create_link/4</c>.</item>
+ <item><em>erl -orber flags 2</em> - can be added to a start-script.
+ All object invocations will be typechecked, unless overridden by the
+ previous option.</item>
+ <item><em>corba:orb_init([{flags, 16#0002}])</em> - this operation must
+ be invoked <em>before</em> starting Orber. Behaves as the previous
+ option.</item>
+ </list>
+ <p>If incorrect data is passed or returned, Orber uses the <c>error_logger</c>
+ to generate logs, which can look like:</p>
+ <code type="none">
+=ERROR REPORT==== 10-Jul-2002::12:36:09 ===
+========= Orber Typecheck Request =========
+Invoked......: MyModule_MyInterface:foo/1
+Typecode.....: [{tk_enum,"IDL:MyModule/enumerant:1.0",
+ "enumerant",
+ ["one","two"]}]
+Arguments....: [three]
+Result.......: {'EXCEPTION',{'MARSHAL',[],102,'COMPLETED_NO'}}
+===========================================
+ </code>
+ <p>Note, that the arity is equivalent to the IDL-file. In the example above,
+ an undefined enumerant was used. In most cases, it is useful to set the
+ configuration parameter <c>orber_debug_level 10</c> as well. Due to the
+ extra overhead, this option <em>MAY ONLY</em> be used during testing and
+ development.
+ For more information, see also
+ <seealso marker="ch_install#config">configuration settings</seealso>.</p>
+ <p>It is also possible to trace all communication between an Orber-ORB and, for example,
+ a Java-ORB, communicating via IIOP. All you need to do is to activate an
+ <seealso marker="ch_interceptors">interceptor</seealso>. Normally, the users must
+ implement the interceptor themselves, but for your convenience Orber includes three
+ pre-compiled interceptors called <c>orber_iiop_tracer</c>,
+ <c>orber_iiop_tracer_silent</c> and <c>orber_iiop_tracer_stealth</c>.</p>
+ <warning>
+ <p>Logging all traffic is <em>expensive</em>. Hence, only use the supplied
+ interceptors during test and development.</p>
+ </warning>
+ <p>The <c>orber_iiop_tracer</c> and <c>orber_iiop_tracer_silent</c> interceptors
+ uses the <c>error_logger</c> module to generate the logs. If the traffic
+ is intense you probably want to write the reports to a log-file.
+ This is done by, for example, invoking:</p>
+ <code type="none">
+erl> error_logger:tty(false).
+erl> error_logger:logfile({open, "/tmp/IIOPTrace"}).
+ </code>
+ <p>The <c>IIOPTrace</c> file will contain, if you use the <c>orber_iiop_tracer</c>
+ interceptor, reports which looks like:</p>
+ <code type="none">
+=INFO REPORT==== 13-Jul-2005::18:22:39 ===
+=============== new_out_connection =======
+Node : myNode@myHost
+From : 192.0.0.10:47987
+To : 192.0.0.20:4001
+==========================================
+
+=INFO REPORT==== 29-Nov-2001::15:26:28 ===
+=============== out_request ==============
+Connection: {"192.0.0.20",4001,"192.0.0.10",47987}
+Operation : resolve
+Parameters: [[{'CosNaming_NameComponent',
+ "AIK","SwedishIcehockeyChampions"}]]
+Context : [{'IOP_ServiceContext',1,
+ {'CONV_FRAME_CodeSetContext',65537,65801}}]
+==========================================
+ </code>
+ <p>The <c>orber_iiop_tracer_silent</c> will not log GIOP encoded data. To activate
+ one the interceptors, you have two options:</p>
+ <list type="bulleted">
+ <item><em>erl -orber interceptors "{native,[orber_iiop_tracer]}"</em> - can be added to a start-script.</item>
+ <item><em>corba:orb_init([{interceptors, {native, [orber_iiop_tracer_silent]}}])</em> - this operation must
+ be invoked <em>before</em> starting Orber.</item>
+ </list>
+ <p>It is also possible to active and deactivate an interceptor during
+ run-time, but this will only affect currently existing connections.
+ For more information, consult Orber's Reference Manual regarding the
+ operations <c>orber:activate_audit_trail/0/1</c> and
+ <c>orber:activate_audit_trail/0/1.</c></p>
+ </section>
+
+ <section>
+ <title>FAQ</title>
+ <p><em>Q: When my client, typically written in C++ or Java, invoke narrow on an Orber object reference it fails?</em></p>
+ <p>A: You must register your application in the IFR by invoking <c>oe_register()</c>.
+ If the object was created by a COS-application, you must run install
+ (e.g. <c>cosEventApp:install()</c>).</p>
+ <p>A: Confirm, by consulting the IDL specifications, that the received object reference really
+ inherit from the interface you are trying to narrow it to.</p>
+ <br></br>
+ <p><em>Q: I am trying to register my application in the IFR but it fails. Why?</em></p>
+ <p>A: If one, or more, interface in your IDL-specification inherits from
+ other interface(s), you must register them before registering your
+ application. Note, this also apply when you inherit interfaces
+ supported by a COS-application. Hence, they must be installed prior to
+ registration of your application.</p>
+ <br></br>
+ <p><em>Q: I have a Orber client and server residing on two different Orber instances but I only get the 'OBJECT_NOT_EXIST' exception, even though I am sure that the object is still alive?</em></p>
+ <p>A: If the two Orber-ORB's are not intended to be a part of multi-node ORB, make sure that the
+ two Orber-ORB's have different <em>domain</em> names set (see
+ <seealso marker="ch_install#config">configuration settings</seealso>). The easiest way
+ to confirm this is to invoke <c>orber:info()</c> on each node.</p>
+ <br></br>
+ <p><em>Q: When I'm trying to install and/or start Orber it fails?</em></p>
+ <p>A: Make sure that no other Orber-ORB is already running on the same node. If so,
+ change the <c>iiop_port</c> configuration parameter (see
+ <seealso marker="ch_install#config">configuration settings</seealso>).</p>
+ <br></br>
+ <p><em>Q: My Orber server is invoked via IIOP but Orber cannot marshal the reply?</em></p>
+ <p>A: Consult your IDL file to confirm that your replies are of the correct
+ type. If it is correct and the return type is, for example,
+ a struct, make sure you have set every field in the struct. If
+ you do not do that it will be set to the atom 'undefined', which
+ most certainly is not correct.</p>
+ <br></br>
+ <p>A: Check that you handle <c>inout</c> and <c>out</c> parameters correctly
+ (see the IDL specification). For example, a function which have one
+ out-parameter and should return void, then your call-back module
+ should return <c>{reply, {ok, OutParam}, State}</c>. Note, even though
+ the return value is void (IDL) you must reply with ok.</p>
+ <br></br>
+ <p><em>Q: I cannot run Orber as a multi-node ORB?</em></p>
+ <p>A: Make sure that the Erlang distribution have been started for each
+ node and the <c>cookies</c> are correct. For more information,
+ consult the <c>System Documentation</c></p>
+ <br></br>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_example.xml b/lib/orber/doc/src/ch_example.xml
new file mode 100644
index 0000000000..d4cc5ceddc
--- /dev/null
+++ b/lib/orber/doc/src/ch_example.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Examples</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1997-05-20</date>
+ <rev>A</rev>
+ <file>ch_example.xml</file>
+ </header>
+
+ <section>
+ <title>A Tutorial on How to Create a Simple Service</title>
+
+ <section>
+ <title>Interface Design</title>
+ <p>This example uses a very simple stack server. The specification
+ contains two interfaces: the first is the Stack itself and the
+ other is the StackFactory which is used to create new stacks.
+ The specification is in the file <c>stack.idl</c>.</p>
+ <codeinclude file="../../examples/Stack/stack.idl" tag="" type="c"></codeinclude>
+ </section>
+
+ <section>
+ <title>Generating Erlang Code</title>
+ <p>Run the IDL compiler on this file by calling the <c>ic:gen/1</c> function </p>
+ <code type="erl">
+\0111> ic:gen("stack").
+ </code>
+ <p>This will produce the client stub and server skeleton. Among other files a stack API module named <c>StackModule_Stack.erl</c>
+ will be produced.
+ This will produce among other files a stack API module called
+ <c>StackModule_Stack.erl</c> which contains the client stub and
+ the server skeleton. </p>
+ </section>
+
+ <section>
+ <title>Implementation of Interface</title>
+ <p>After generating the API stubs and the server skeletons it is time to
+ implement the servers and if no special options are sent
+ to the IDL compiler the file name should be
+ <c><![CDATA[<global interface name>_impl.erl]]></c>, in our case
+ <c>StackModule_Stack_impl.erl</c>.</p>
+ <codeinclude file="../../examples/Stack/StackModule_Stack_impl.erl" tag="" type="erl"></codeinclude>
+ <p>We also have the factory interface which is used to create new stacks
+ and that implementation is in the file
+ <c>StackModule_StackFactory_impl.erl</c>.</p>
+ <codeinclude file="../../examples/Stack/StackModule_StackFactory_impl.erl" tag="" type="erl"></codeinclude>
+ <p>To start the factory server one executes the function
+ <c>StackModule_StackFactory:oe_create/0</c> which in this
+ example is done in the module <c>stack_factory.erl</c> where
+ the started service is also registered in the name service.</p>
+ <codeinclude file="../../examples/Stack/stack_factory.erl" tag="" type="erl"></codeinclude>
+ </section>
+
+ <section>
+ <title>Writing a Client in Erlang</title>
+ <p>At last we will write a client to access our service.</p>
+ <codeinclude file="../../examples/Stack/stack_client.erl" tag="" type="erl"></codeinclude>
+ </section>
+
+ <section>
+ <title>Writing a Client in Java</title>
+ <p>To write a Java client for Orber you must have another
+ ORB that uses IIOP for client-server communication and supports a
+ Java language mapping. It must also have support for
+ <c>IDL:CosNaming/NamingContext</c> or <c>IDL:CosNaming/NamingContextExt</c>.
+ If the client ORB support Interoperable Naming Service the Java Client
+ can look like:</p>
+ <codeinclude file="../../examples/Stack/StackClient.java" tag="" type="c"></codeinclude>
+ <note>
+ <p>If an ORB does not support CosNaming at all the <c>cos_naming.idl</c>
+ file must be compiled and imported.</p>
+ </note>
+ </section>
+
+ <section>
+ <title>Building the Example</title>
+ <p>To build the example for access from a Java client you need a Java
+ enabled ORB (e.g. JavaIDL). The example below is based on JDK-1.4.</p>
+ <code type="none">
+fingolfin 127> erl
+Erlang (BEAM) emulator version 5.5.4.3 [async-threads:0] [hipe] [kernel-poll:false]
+
+Eshell V5.5.4.3 (abort with ^G)
+1> ic:gen(stack).
+Erlang IDL compiler version 4.2.12
+ok
+2> make:all().
+Recompile: StackModule_EmptyStack
+Recompile: StackModule_Stack
+Recompile: StackModule_StackFactory
+Recompile: StackModule_StackFactory_impl
+Recompile: StackModule_Stack_impl
+Recompile: oe_stack
+Recompile: stack_client
+Recompile: stack_factory
+up_to_date
+3>
+BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
+ (v)ersion (k)ill (D)b-tables (d)istribution
+a
+fingolfin 128> idlj stack.idl
+fingolfin 129> javac StackModule/*.java
+fingolfin 130> javac *.java
+fingolfin 131> cp StackClient.class StackModule/
+ </code>
+ </section>
+
+ <section>
+ <title>How to Run Everything</title>
+ <p>Below is a short transcript on how to run Orber.</p>
+ <code type="none">
+
+fingolfin 143> erl
+Erlang (BEAM) emulator version 5.5.4.3 [async-threads:0] [hipe] [kernel-poll:false]
+
+Eshell V5.5.4.3 (abort with ^G)
+1> orber:jump_start([{interceptors, {native, [orber_iiop_tracer_silent]}}]).
+ok
+2> oe_stack:oe_register().
+ok
+3> stack_factory:start().
+ok
+4> stack_client:run().
+1
+1
+7
+4
+ok
+5>
+ </code>
+ <p>Before testing the Java part of this example generate and compile Java classes for
+ <c>orber/examples/stack.idl</c> as seen in the build example.
+ To run the Java client use the following command:</p>
+ <code type="none">
+
+fingolfin 38> java StackModule.StackClient "corbaname::localhost:4001#StackFactory"
+1
+1
+7
+4
+Empty stack
+fingolfin 39>
+ </code>
+ </section>
+ </section>
+
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_exceptions.xml b/lib/orber/doc/src/ch_exceptions.xml
new file mode 100644
index 0000000000..a8fb98fe1e
--- /dev/null
+++ b/lib/orber/doc/src/ch_exceptions.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2001</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>CORBA System and User Defined Exceptions</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>2000-12-19</date>
+ <rev></rev>
+ <file>ch_exceptions.xml</file>
+ </header>
+
+ <section>
+ <title>System Exceptions</title>
+ <p><c>Orber</c>, or any other <c>ORB</c>, may raise a <c>System Exceptions</c>.
+ These exceptions contain status- and minor-fields and may not appear in the
+ operations raises exception IDL-definition.</p>
+
+ <section>
+ <title>Status Field</title>
+ <p>The status field indicates if the request was completed or not and will be
+ assigned one of the following Erlang atoms:</p>
+ <table>
+ <row>
+ <cell align="center" valign="middle"><em>Status</em></cell>
+ <cell align="center" valign="middle"><em>Description</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">'COMPLETED_YES'</cell>
+ <cell align="left" valign="middle">The operation was invoked on the target object but an error occurred after the object replied. This occur, for example, if a server replies but Orber is not able to marshal and send the reply to the client ORB.</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">'COMPLETED_NO'</cell>
+ <cell align="left" valign="middle">Orber failed to invoke the operation on the target object. This occur, for example, if the object no longer exists.</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">'COMPLETED_MAYBE'</cell>
+ <cell align="left" valign="middle">Orber invoked the operation on the target object but an error occurred and it is impossible to decide if the request really reached the object or not.</cell>
+ </row>
+ <tcaption>System Exceptions Status</tcaption>
+ </table>
+ </section>
+
+ <section>
+ <title>Minor Field</title>
+ <p>The minor field contains an integer (VMCID), which is related to a more
+ specific reason why an invocation failed. The function
+ <c>orber:exception_info/1</c> can be used to map the minor code to a string.
+ Note, for VMCID:s not assigned by the OMG or Orber, the documentation
+ for that particular ORB must be consulted.</p>
+ </section>
+
+ <section>
+ <title>Supported System Exceptions</title>
+ <p>The OMG CORBA specification defines the following exceptions:</p>
+ <list type="bulleted">
+ <item><em>'BAD_CONTEXT'</em> - if a request does not contain a correct
+ context this exception is raised.</item>
+ <item><em>'BAD_INV_ORDER'</em> - this exception indicates that operations
+ has been invoked operations in the wrong order, which would cause,
+ for example, a dead-lock.</item>
+ <item><em>'BAD_OPERATION'</em> - raised if the target object exists, but
+ that the invoked operation is not supported.</item>
+ <item><em>'BAD_PARAM'</em> - is thrown if, for example, a parameter is out
+ of range or otherwise considered illegal.</item>
+ <item><em>'BAD_TYPECODE'</em> - if illegal type code is passed, for example,
+ encapsulated in an any data type the <c>'BAD_TYPECODE'</c> exception
+ will be raised.</item>
+ <item><em>'BAD_QOS'</em> - raised whenever an object cannot support the
+ required quality of service.</item>
+ <item><em>'CODESET_INCOMPATIBLE'</em> - raised if two ORB's cannot
+ communicate due to different representation of, for example,
+ <c>char</c> and/or <c>wchar</c>.</item>
+ <item><em>'COMM_FAILURE'</em> - raised if an ORB is unable to setup
+ communication or it is lost while an operation is in progress.</item>
+ <item><em>'DATA_CONVERSION'</em> - raised if an ORB cannot convert data
+ received to the native representation. See also the
+ <c>'CODESET_INCOMPATIBLE'</c> exception.</item>
+ <item><em>'FREE_MEM'</em> - the ORB failed to free dynamic memory and
+ failed.</item>
+ <item><em>'IMP_LIMIT'</em> - an implementation limit was exceeded in the
+ ORB at run time. A object factory may, for example, limit the
+ number of object clients are allowed to create.</item>
+ <item><em>'INTERNAL'</em> - an internal failure occurred in an ORB, which
+ is unrecognized. You may consider contacting the ORB providers
+ support.</item>
+ <item><em>'INTF_REPOS'</em> - the ORB was not able to reach the interface
+ repository, or some other failure relating to the interface
+ repository is detected.</item>
+ <item><em>'INITIALIZE'</em> - the ORB initialization failed due to, for
+ example, network or configuration error.</item>
+ <item><em>'INVALID_TRANSACTION'</em> - is raised if the request carried an
+ invalid transaction context.</item>
+ <item><em>'INV_FLAG'</em> - an invalid flag was passed to an operation,
+ which caused, for example, a connection to be closed.</item>
+ <item><em>'INV_IDENT'</em> - this exception indicates that an IDL
+ identifier is incorrect.</item>
+ <item><em>'INV_OBJREF'</em> - this exception is raised if an object
+ reference is malformed or a nil reference (see
+ also corba:create_nil_objref/0).</item>
+ <item><em>'INV_POLICY'</em> - the invocation cannot be made due to an
+ incompatibility between policy overrides that apply to the
+ particular invocation.</item>
+ <item><em>'MARSHAL'</em> - this exception may be raised by the client- or
+ server-side when either ORB is unable to marshal/unmarshal requests or
+ replies.</item>
+ <item><em>'NO_IMPLEMENT'</em> - if the operation exists but no implementation
+ exists, this exception is raised.</item>
+ <item><em>'NO_MEMORY'</em> - the ORB has run out of memory.</item>
+ <item><em>'NO_PERMISSION'</em> - the caller has insufficient privileges,
+ such as, for example, bad <c>SSL</c> certificate.</item>
+ <item><em>'NO_RESOURCES'</em> - a general platform resource limit
+ exceeded.</item>
+ <item><em>'NO_RESPONSE'</em> - no response available of a deferred
+ synchronous request.</item>
+ <item><em>'OBJ_ADAPTER'</em> - indicates administrative mismatch; the object
+ adapter is not able to associate an object with the implementation
+ repository.</item>
+ <item><em>'OBJECT_NOT_EXIST'</em> - the object have been disposed or
+ terminated; clients should remove all copies of the object reference
+ and initiate desired recovery process.</item>
+ <item><em>'PERSIST_STORE'</em> - the ORB was not able to establish a
+ connection to its persistent storage or data contained in the
+ the storage is corrupted.</item>
+ <item><em>'REBIND'</em> - a request resulted in, for example, a
+ <c>'LOCATION_FORWARD'</c> message; if the policies are incompatible
+ this exception is raised.</item>
+ <item><em>'TIMEOUT'</em> - raised if a request fail to complete within the
+ given time-limit.</item>
+ <item><em>'TRANSACTION_MODE'</em> - a transaction policy mismatch detected.</item>
+ <item><em>'TRANSACTION_REQUIRED'</em> - a transaction is required for the
+ invoked operation but the request contained no transaction context.</item>
+ <item><em>'TRANSACTION_ROLLEDBACK'</em> - the transaction associated with
+ the request has already been rolled back or will be.</item>
+ <item><em>'TRANSACTION_UNAVAILABLE'</em> - no transaction context can be
+ supplied since the ORB is unable to contact the Transaction
+ Service.</item>
+ <item><em>'TRANSIENT'</em> - the ORB could not determine the current status
+ of an object since it could not be reached. The error may be
+ temporary.</item>
+ <item><em>'UNKNOWN'</em> - is thrown if an implementation throws a
+ non-CORBA, or unrecognized, exception.</item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>User Defined Exceptions</title>
+ <p>User exceptions is defined in IDL-files and is listed in operations raises
+ exception listing. For example, if we have the following IDL code:</p>
+ <code type="none">
+module MyModule {
+
+ exception MyException {};
+ exception MyExceptionMsg { string ExtraInfo; };
+
+ interface MyInterface {
+
+ void foo()
+ raises(MyException);
+
+ void bar()
+ raises(MyException, MyExceptionMsg);
+
+ void baz();
+ };
+};
+ </code>
+ </section>
+
+ <section>
+ <title>Throwing Exceptions</title>
+ <p>To be able to raise <c>MyException</c> or <c>MyExceptionMsg</c> exceptions,
+ the generated <c>MyModule.hrl</c> must be included, and typical usage is:</p>
+ <code type="none">
+-module('MyModule_MyInterface_impl').
+-include("MyModule.hrl").
+
+bar(State) ->
+ case TestingSomething of
+ ok ->
+ {reply, ok, State};
+ {error, Reason} when list(Reason) ->
+ corba:raise(#'MyModule_MyExceptionMsg'{'ExtraInfo' = Reason});
+ error ->
+ corba:raise(#'MyModule_MyException'{})
+ end.
+ </code>
+ </section>
+
+ <section>
+ <title>Catching Exceptions</title>
+ <p>Depending on which operation we invoke we must be able to handle:</p>
+ <list type="bulleted">
+ <item>foo - <c>MyException</c> or a system exception.</item>
+ <item>bar - <c>MyException</c>, <c>MyExceptionMsg</c> or a system
+ exception.</item>
+ <item>baz - a system exception.</item>
+ </list>
+ <p>Catching and matching exceptions can bee done in different ways:</p>
+ <code type="none">
+ case catch 'MyModule_MyInterface':bar(MIReference) of
+ ok ->
+ %% The operation raised no exception.
+ ok;
+ {'EXCEPTION', #'MyModule_MyExceptionMsg'{'ExtraInfo' = Reason}} ->
+ %% If we want to log the Reason we must extract 'ExtraInfo'.
+ error_logger:error_msg("Operation 'bar' raised: ~p~n", [Reason]),
+ ... do something ...;
+ {'EXCEPTION', E} when record(E, 'OBJECT_NOT_EXIST') ->
+ ... do something ...;
+ {'EXCEPTION', E} ->
+ ... do something ...
+ end.
+ </code>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_idl_to_erlang_mapping.xml b/lib/orber/doc/src/ch_idl_to_erlang_mapping.xml
new file mode 100644
index 0000000000..0e2b049ab9
--- /dev/null
+++ b/lib/orber/doc/src/ch_idl_to_erlang_mapping.xml
@@ -0,0 +1,1471 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>OMG IDL to Erlang Mapping</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-10-10</date>
+ <rev></rev>
+ <file>ch_idl_to_erlang_mapping.xml</file>
+ </header>
+
+ <section>
+ <title>OMG IDL to Erlang Mapping - Overview</title>
+ <p>The purpose of OMG IDL, <em>Interface Definition Language</em>, mapping
+ is to act as translator between platforms and languages. An IDL
+ specification is supposed to describe data types, object types etc.</p>
+ <p>CORBA is independent of the programming language used to construct
+ clients or implementations. In order to use the ORB, it is
+ necessary for programmers to know how to access ORB functionality
+ from their programming languages. It translates different IDL constructs
+ to a specific programming language. This chapter
+ describes the mapping of OMG IDL constructs to the Erlang programming
+ language.</p>
+ </section>
+
+ <section>
+ <title>OMG IDL Mapping Elements</title>
+ <p>A complete language mapping will allow the programmer to have
+ access to all ORB functionality in a way that is convenient for
+ a specified programming language.
+ </p>
+ <p>All mapping must define the following elements:
+ </p>
+ <list type="bulleted">
+ <item>All OMG IDL basic and constructed types</item>
+ <item>References to constants defined in OMG IDL</item>
+ <item>References to objects defined in OMG IDL</item>
+ <item>Invocations of operations, including passing of
+ parameters and receiving of results</item>
+ <item>Exceptions, including what happens when an operation
+ raises an exception and how the exception parameters are
+ accessed</item>
+ <item>Access to attributes</item>
+ <item>Signatures for operations defined by the ORB, such as
+ dynamic invocation interface, the object adapters etc.</item>
+ <item>Scopes;
+ OMG IDL has several levels of scopes, which are mapped to Erlang's
+ two scopes.</item>
+ </list>
+ </section>
+
+ <section>
+ <title>Getting Started</title>
+ <p>To begin with, we should decide which type of objects (i.e. servers) we
+ need and if two, or more, should export the same functionality. Let us
+ assume that we want to create a system for DB (database) access for different
+ kind of users. For example, anyone with a valid password may extract
+ data, but only a few may update the DB. Usually, an application
+ is defined within a <c>module</c>, and all global datatypes are defined
+ on the top-level. To begin with we create a module and the interfaces we
+ need:</p>
+ <code type="none">
+// DB IDL
+#ifndef _DB_IDL_
+#define _DB_IDL_
+// A module is simply a container
+module DB {
+
+ // An interface maps to a CORBA::Object.
+ interface CommonUser {
+
+ };
+
+ // Inherit the Consumer interface
+ interface Administrator : CommonUser {
+
+ };
+
+ interface Access {
+
+ };
+
+};
+#endif </code>
+ <p>Since the <c>Administrator</c> should be able to do the same things as the
+ <c>CommonUser</c>, the previous inherits from the latter. The <c>Access</c>
+ interface will grant access to the DB.
+ Now we are ready to define the functionality and data types we need. But, this
+ requires that we know a little bit more about the OMG IDL.</p>
+ <note>
+ <p>The OMG defines a set of reserved case insensitive key-words, which may
+ <em>NOT</em> be used as identifiers (e.g. module name). For more
+ information, see
+ <seealso marker="#key_words">Reserved Compiler Names and Keywords</seealso></p>
+ </note>
+ </section>
+
+ <section>
+ <title>Basic OMG IDL Types</title>
+ <p>The OMG IDL mapping is strongly typed and, even if you have a good knowledge
+ of CORBA types, it is essential to read carefully the following mapping to
+ Erlang types.</p>
+ <p>The mapping of basic types is straightforward. Note that the
+ OMG IDL double type is mapped to an Erlang float which does not
+ support the full double value range.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle">OMG IDL type</cell>
+ <cell align="left" valign="middle">Erlang type</cell>
+ <cell align="left" valign="middle">Note</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">float</cell>
+ <cell align="left" valign="middle">Erlang float</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">double</cell>
+ <cell align="left" valign="middle">Erlang float</cell>
+ <cell align="left" valign="middle">value range not supported</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">short</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">-2^15 .. 2^15-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">unsigned short</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">0 .. 2^16-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">long</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">-2^31 .. 2^31-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">unsigned long</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">0 .. 2^32-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">long long</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">-2^63 .. 2^63-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">unsigned long long</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">0 .. 2^64-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">char</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">ISO-8859-1</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">wchar</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle">UTF-16 (ISO-10646-1:1993)</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">boolean</cell>
+ <cell align="left" valign="middle">Erlang atom</cell>
+ <cell align="left" valign="middle">true/false</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">octet</cell>
+ <cell align="left" valign="middle">Erlang integer</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">any</cell>
+ <cell align="left" valign="middle">Erlang record</cell>
+ <cell align="left" valign="middle">#any{typecode, value}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">long double</cell>
+ <cell align="left" valign="middle">Not supported</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">Object</cell>
+ <cell align="left" valign="middle">Orber object reference</cell>
+ <cell align="left" valign="middle">Internal Representation</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">void</cell>
+ <cell align="left" valign="middle">Erlang atom</cell>
+ <cell align="left" valign="middle">ok</cell>
+ </row>
+ <tcaption>OMG IDL basic types</tcaption>
+ </table>
+ <p>The <c>any</c> value is written as a record with the field typecode which
+ contains the <term id="Type Code"><termdef>Type Code is a full definition of a type </termdef></term>representation,
+ <seealso marker="#tk_values">see also the Type Code table</seealso>,
+ and the value field itself.</p>
+ <p>Functions with return type <c>void</c> will return the atom <c>ok</c>.</p>
+ </section>
+
+ <section>
+ <title>Template OMG IDL Types and Complex Declarators</title>
+ <p>Constructed types all have native mappings as shown in the table
+ below.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle"><em>Type</em></cell>
+ <cell align="left" valign="middle"><em>IDL code</em></cell>
+ <cell align="left" valign="middle"><em>Maps to</em></cell>
+ <cell align="left" valign="middle"><em>Erlang code</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>string</em></cell>
+ <cell align="left" valign="middle">typedef string S; <br></br>
+void op(in S a);</cell>
+ <cell align="left" valign="middle">Erlang string</cell>
+ <cell align="left" valign="middle">ok = op(Obj, "Hello World"),</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>wstring</em></cell>
+ <cell align="left" valign="middle">typedef wstring S; <br></br>
+void op(in S a);</cell>
+ <cell align="left" valign="middle">Erlang list of Integers</cell>
+ <cell align="left" valign="middle">ok = op(Obj, "Hello World"),</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>sequence</em></cell>
+ <cell align="left" valign="middle">typedef sequence &lt;long, 3&gt; S; <br></br>
+void op(in S a);</cell>
+ <cell align="left" valign="middle">Erlang list</cell>
+ <cell align="left" valign="middle">ok = op(Obj, [1, 2, 3]),</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>array</em></cell>
+ <cell align="left" valign="middle">typedef string S[2]; <br></br>
+void op(in S a);</cell>
+ <cell align="left" valign="middle">Erlang tuple</cell>
+ <cell align="left" valign="middle">ok = op(Obj, {"one", "two"}),</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>fixed</em></cell>
+ <cell align="left" valign="middle">typedef fixed&lt;3,2> myFixed; <br></br>
+void op(in myFixed a);</cell>
+ <cell align="left" valign="middle">Erlang tuple</cell>
+ <cell align="left" valign="middle">MF = fixed:create(3, 2, 314), <br></br>
+ok = op(Obj, MF),</cell>
+ </row>
+ <tcaption>OMG IDL Template and Complex Declarators</tcaption>
+ </table>
+
+ <section>
+ <title>String/WString Data Types</title>
+ <p>A <c>string</c> consists of all possible 8-bit quantities except null.
+ Most ORB:s uses, including Orber, the character set Latin-1 (ISO-8859-1).
+ The <c>wstring</c> type is represented as a list of integers, where
+ each integer represents a wide character. In this case Orber uses, as
+ most other ORB:s, the UTF-16 (ISO-10646-1:1993) character set.</p>
+ <p>When defining a a string or wstring they can be of limited length or
+ null terminated:</p>
+ <code type="none"><![CDATA[
+// Null terminated
+typedef string myString;
+typedef wstring myWString;
+// Maximum length 10
+typedef string<10> myString10;
+typedef wstring<10> myWString10;
+ ]]></code>
+ <p>If we want to define a char/string or wchar/wstring constant, we can
+ use octal (\\OOO - one, two or three octal digits),
+ hexadecimal (\\xHH - one or two hexadecimal digits) and unicode (\\uHHHH -
+ one, two, three or four hexadecimal digits.) representation as well.
+ For example:</p>
+ <code type="none">
+const string SwedensBestSoccerTeam = "\\101" "\\x49" "\\u004B";
+const wstring SwedensBestHockeyTeam = L"\\101\\x49\\u004B";
+const char aChar = '\\u004B';
+const wchar aWchar = L'\\u004C';
+ </code>
+ <p>Naturally, we can use <c>"Erlang"</c>, <c>L"Rocks"</c>, <c>'A'</c>
+ and <c>L'A'</c> as well.</p>
+ </section>
+
+ <section>
+ <title>Sequence Data Type</title>
+ <p>A sequence can be defined to be of a maximum length or unbounded, and may
+ contain Basic and Template types and scoped names:</p>
+ <code type="none"><![CDATA[
+typedef sequence <short, 1> aShortSequence;
+typedef sequence <long> aLongSequence;
+typedef sequence <aLongSequence> anEvenLongerSequence;
+ ]]></code>
+ </section>
+
+ <section>
+ <title>Array Data Type</title>
+ <p>Arrays are multidimensional, fixed-size arrays. The indices is language
+ mapping specific, which is why one should not pass them as arguments
+ to another ORB.</p>
+ <code type="none">
+typedef long myMatrix[2][3];
+ </code>
+ </section>
+
+ <section>
+ <title>Fixed Data Type</title>
+ <p>A Fixed Point literal consists of an integer part (decimal digits),
+ decimal point and a fraction part (decimal digits),
+ followed by a <c>D</c> or <c>d</c>. Either the integer part or the
+ fraction part may be missing; the decimal point may be missing,
+ but not d/D. The integer part must be a positive integer less than 32.
+ The Fraction part must be a positive integer less than or equal to
+ the Integer part.</p>
+ <code type="none">
+const fixed myFixed1 = 3.14D;
+const fixed myFixed2 = .14D;
+const fixed myFixed3 = 0.14D;
+const fixed myFixed4 = 3.D;
+const fixed myFixed5 = 3D;
+ </code>
+ <p>It is also possible to use unary (+-) and binary (+-*/) operators:</p>
+ <code type="none">
+const fixed myFixed6 = 3D + 0.14D;
+const fixed myFixed7 = -3.14D;
+ </code>
+ <p>The Fixed Point examples above are, so called, <em>anonymous</em>
+ definitions. In later CORBA specifications these have been deprecated
+ as function parameters or return values. Hence, we strongly recommend that
+ you do not use them. Instead, you should use:</p>
+ <code type="none"><![CDATA[
+typedef fixed<5,3> myFixed53;
+const myFixed53 myFixed53constant = 03.140d;
+typedef fixed<3,2> myFixed32;
+const myFixed32 myFixed32constant = 3.14d;
+
+myFixed53 foo(in myFixed32 MF); // OK
+void bar(in fixed<5,3> MF); // Illegal
+ ]]></code>
+ </section>
+ <p>For more information, see <seealso marker="fixed">Fixed</seealso> in
+ Orber's Reference Manual.</p>
+ <p>Now we continue to work on our IDL specification. To begin with, we want
+ to limit the size of the logon parameters (Id and password). Since the
+ <c>UserID</c> and <c>Password</c> parameters, only will be used when
+ invoking operations on the <c>Access</c> interface, we may choose to define
+ them within the scope that interface. To keep it simple our DB will contain
+ employee information. Hence, as the DB key we choose an integer
+ (<c>EmployeeNo</c>).</p>
+ <code type="none"><![CDATA[
+// DB IDL
+#ifndef _DB_IDL_
+#define _DB_IDL_
+module DB {
+
+ typedef unsigned long EmployeeNo;
+
+ interface CommonUser {
+
+ any lookup(in EmployeeNo ENo);
+
+ };
+
+ interface Administrator : CommonUser {
+
+ void delete(in EmployeeNo ENo);
+
+ };
+
+ interface Access {
+
+ typedef string<10> UserID;
+ typedef string<10> Password;
+
+ CommonUser logon(in UserID ID, in Password PW);
+
+ };
+
+};
+#endif ]]></code>
+ <p>But what should, for example, the <c>lookup</c> operation return? One option
+ is to use the <c>any</c> data type. But, depending on what kind of data it
+ encapsulates, this datatype can be rather expensive to use. We might find a
+ solution to our problems among the <c>Constructed</c> IDL types.</p>
+ </section>
+
+ <section>
+ <title>Constructed OMG IDL Types</title>
+ <p>Constructed types all have native mappings as shown in the table
+ below.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle"><em>Type</em></cell>
+ <cell align="left" valign="middle"><em>IDL code</em></cell>
+ <cell align="left" valign="middle"><em>Maps to</em></cell>
+ <cell align="left" valign="middle"><em>Erlang code</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>struct</em></cell>
+ <cell align="left" valign="middle">struct myStruct { <br></br>
+long a; <br></br>
+short b; <br></br>
+}; <br></br>
+void op(in myStruct a);</cell>
+ <cell align="left" valign="middle">Erlang record</cell>
+ <cell align="left" valign="middle">ok = op(Obj, #'myStruct'{a=300, b=127}),</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>union</em></cell>
+ <cell align="left" valign="middle">union myUnion switch(long) { <br></br>
+case 1: long a; <br></br>
+}; <br></br>
+void op(in myUnion a);</cell>
+ <cell align="left" valign="middle">Erlang record</cell>
+ <cell align="left" valign="middle">ok = op(Obj, #'myUnion'{label=1, value=66}),</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>enum</em></cell>
+ <cell align="left" valign="middle">enum myEnum {one, two}; <br></br>
+void op(in myEnum a);</cell>
+ <cell align="left" valign="middle">Erlang atom</cell>
+ <cell align="left" valign="middle">ok = op(Obj, one),</cell>
+ </row>
+ <tcaption>OMG IDL constructed types</tcaption>
+ </table>
+
+ <section>
+ <title>Struct Data Type</title>
+ <p>A <c>struct</c> may have Basic, Template, Scoped Names and Constructed
+ types as members.</p>
+ </section>
+
+ <section>
+ <title>Enum Data Type</title>
+ <p>The maximum number of identifiers which may defined in an enumeration
+ is 2&sup3;&sup2;. The order in which the identifiers are named in the
+ specification of an enumeration defines the relative order of the
+ identifiers.</p>
+ </section>
+
+ <section>
+ <title>Union Data Type</title>
+ <p>A <c>union</c> may consist of:</p>
+ <list type="bulleted">
+ <item>Identifier</item>
+ <item>Switch - may be an integer, char, boolean, enum or scoped name.</item>
+ <item>Body - with or without a <c>default</c> case; may appear at
+ most once.</item>
+ </list>
+ <p>A case label must match the defined type of the discriminator, and may only
+ contain a default case if the values given in the non-default labels do
+ not cover the entire range of the union's discriminant type. For example:</p>
+ <code type="none">
+// Illegal default; all cases covered by
+// non-default cases.
+union BooleanUnion switch(boolean) {
+ case TRUE: long TrueValue;
+ case FALSE: long FalseValue;
+ default: long DefaultValue;
+};
+// OK
+union BooleanUnion2 switch(boolean) {
+ case TRUE: long TrueValue;
+ default: long DefaultValue;
+};
+ </code>
+ <p>It is not necessary to list all possible values of the union discriminator
+ in the body. Hence, the value of a union is the value of the discriminator
+ and, in given order, one of the following:</p>
+ <list type="ordered">
+ <item>If the discriminator match a label, explicitly listed in a
+ case statement, the value must be of the same type.</item>
+ <item>If the union contains a default label, the value must match the
+ type of the default label.</item>
+ <item>No value. Orber then inserts the Erlang atom <c>undefined</c>
+ in the value field when receiving a union from an external
+ ORB.</item>
+ </list>
+ <p>The above can be summed up to:</p>
+ <code type="none">
+// If the discriminator equals 1 or 2 the value
+// is a long. Otherwise, the atom undefined.
+union LongUnion switch(long) {
+ case 1:
+ case 2: long TrueValue;
+};
+// If the discriminator equals 1 or 2 the value
+// is a long. Otherwise, a boolean.
+union LongUnion2 switch(long) {
+ case 1:
+ case 2: long TrueValue;
+ default: boolean DefaultValue;
+};
+ </code>
+ </section>
+ <warning>
+ <p>Every field in, for example, a struct must be initiated. Otherwise
+ it will be set to the atom <c>undefined</c>, which Orber cannot
+ encode when communicating via IIOP. In the example above, invoking
+ the operation with #'myStruct'{a=300} will fail (equal to
+ #'myStruct'{a=300, b=undefined})</p>
+ </warning>
+ <p>Now we can continue to work on our IDL specification. To begin with, we should
+ determine the return value of the <c>lookup</c> operation. Since the <c>any</c>
+ type can be rather expensive we can use a <c>struct</c> or a <c>union</c> instead.
+ If we intend to return the same information about a employee every time we can
+ use a struct. Let us assume that the DB contains the name, address, employee
+ number and department.</p>
+ <code type="none"><![CDATA[
+// DB IDL
+#ifndef _DB_IDL_
+#define _DB_IDL_
+module DB {
+
+ typedef unsigned long EmployeeNo;
+
+ enum Department {Department1, Department2};
+
+ struct employee {
+ EmployeeNo No;
+ string Name;
+ string Address;
+ Department Dpt;
+ };
+
+ typedef employee EmployeeData;
+
+ interface CommonUser {
+
+ EmployeeData lookup(in EmployeeNo ENo);
+
+ };
+
+ interface Administrator : CommonUser {
+
+ void delete(in EmployeeNo ENo);
+
+ };
+
+ interface Access {
+
+ typedef string<10> UserID;
+ typedef string<10> Password;
+
+ // Since Administrator inherits from CommonUser
+ // the returned Object can be of either type.
+ CommonUser logon(in UserID ID, in Password PW);
+
+ };
+
+};
+#endif ]]></code>
+ <p>We can also define exceptions (i.e. not system exception) thrown by
+ each interface. Since exceptions are thoroughly described in the chapter
+ <seealso marker="ch_exceptions">System and User Defined Exceptions</seealso>,
+ we choose not to. Hence, we are now ready to compile our IDL-file by
+ invoking:</p>
+ <pre>
+$ <input>erlc DB.idl</input>
+ </pre>
+ <p>or:</p>
+ <pre>
+$ <input>erl</input>
+Erlang (BEAM) emulator version 5.1.1 [threads:0]
+
+Eshell V5.1.1 (abort with ^G)
+1> <input>ic:gen('DB').</input>
+ok
+2> <input>halt().</input>
+ </pre>
+ <p>The next step is to implement our servers. But, to be able to do that,
+ we need to know how we can access data type definitions. For example,
+ since a struct is mapped to an Erlang record we must include an hrl-file
+ in our callback module.</p>
+ </section>
+
+ <section>
+ <title>Scoped Names and Generated Files</title>
+
+ <section>
+ <title>Scoped Names</title>
+ <p>Within a scope all identifiers must be unique. The following kinds of
+ definitions form scopes in the OMG IDL:</p>
+ <list type="bulleted">
+ <item><em>module</em></item>
+ <item><em>interface</em></item>
+ <item><em>operation</em></item>
+ <item><em>valuetype</em></item>
+ <item><em>struct</em></item>
+ <item><em>union</em></item>
+ <item><em>exception</em></item>
+ </list>
+ <p>For example, since enumerants do not form a scope, the following IDL code
+ is not valid:</p>
+ <code type="none">
+module MyModule {
+ // 'two' is not unique
+ enum MyEnum {one, two};
+ enum MyOtherEnum {two, three};
+};
+ </code>
+ <p>But, since Erlang only has two levels of scope, <em>module</em> and
+ <em>function</em>, the OMG IDL scope is mapped as follows:</p>
+ <list type="bulleted">
+ <item><em>Function Scope</em> - used for constants, operations and attributes.</item>
+ <item><em>Erlang Module Scope</em> - the Erlang module scope
+ handles the remaining OMG IDL scopes.</item>
+ </list>
+ <p>An Erlang module, corresponding to an IDL global name, is derived by
+ converting occurrences of "::" to underscore, and eliminating
+ the leading "::". Hence, accessing <c>MyEnum</c> from another module, one
+ use <c>MyModule::MyEnum</c></p>
+ <p>For example, an operation <c>foo</c> defined in interface <c>I</c>, which
+ is defined in module <c>M</c>, would be written in IDL as <c>M::I::foo</c>
+ and as <c>'M_I':foo</c> in Erlang - <c>foo</c> is the function
+ name and <c>'M_I'</c> is the name of the Erlang module. Applying this
+ knowledge to a stripped version of the DB.idl gives:</p>
+ <code type="none"><![CDATA[
+// DB IDL
+#ifndef _DB_IDL_
+#define _DB_IDL_
+// ++ topmost scope ++
+// IC generates oe_XX.erl and oe_XX.hrl.
+// XX is equal to the name of the IDL-file.
+// Tips: create one IDL-file for each top module
+// and give the file the same name (DB.idl).
+// The oe_XX.erl module is used to register data
+// in the IFR.
+module DB {
+
+ // ++ Module scope ++
+ // To access 'EmployeeNo' from another scope, use:
+ // DB::EmployeeNo, DB::Access etc.
+ typedef unsigned long EmployeeNo;
+
+ enum Department {Department1, Department2};
+
+ // Definitions of this struct is contained in:
+ // DB.hrl
+ // Access functions exported by:
+ // DB_employee.erl
+ struct employee {
+ ... CUT ...
+ };
+
+ typedef employee EmployeeData;
+
+ ... CUT ...
+
+ // If this interface should inherit an interface
+ // in another module (e.g. OtherModule) use:
+ // interface Access : OtherModule::OtherInterface
+ interface Access {
+
+ // ++ interface scope ++
+ // Types within this scope is accessible via:
+ // DB::Access::UserID
+ // The Stub/Skeleton for this interface is
+ // placed in the module:
+ // DB_Access.erl
+ typedef string<10> UserID;
+ typedef string<10> Password;
+
+ // Since Administrator inherits from CommonUser
+ // the returned Object can be of either type.
+ // This operation is exported from:
+ // DB_Access.erl
+ CommonUser logon(in UserID ID, in Password PW);
+
+ };
+
+};
+#endif ]]></code>
+ <p>Using underscores in IDL names can lead to ambiguities
+ due to the name mapping described above. It is advisable to
+ avoid the use of underscores in identifiers. For example, the following
+ definition would generate two structures named <c>x_y_z</c>.</p>
+ <code type="none">
+module x {
+
+ struct y_z {
+\011...
+ };
+
+ interface y {
+
+\011struct z {
+\011 ...
+\011};
+ };
+};
+ </code>
+ </section>
+
+ <section>
+ <title>Generated Files</title>
+ <p>Several files can be generated for each scope.</p>
+ <list type="bulleted">
+ <item>An Erlang source code file (<c>.erl</c>) is generated
+ for top level scope as well as the Erlang header file.</item>
+ <item>An Erlang header file (<c>.hrl</c>) will be generated for
+ each scope. The header file will contain record definitions
+ for all <c>struct</c>, <c>union</c> and <c>exception</c>
+ types in that scope.</item>
+ <item>Modules that contain at least one constant definition,
+ will produce Erlang source code files (<c>.erl</c>).
+ That Erlang file will contain constant functions for
+ that scope.
+ Modules that contain no constant definitions are considered
+ empty and no code will be produced for them, but only for
+ their included modules/interfaces.</item>
+ <item>Interfaces will produce Erlang source code files (<c>.erl</c>),
+ this code will contain all operation stub code and implementation
+ functions.</item>
+ <item>In addition to the scope-related files, an Erlang source file will
+ be generated for each definition of the types <c>struct</c>,
+ <c>union</c> and <c>exception</c> (these are the types that
+ will be represented in Erlang as records).
+ This file will contain special access functions for that record.</item>
+ <item>The top level scope will produce two files, one header file
+ (<c>.hrl</c>) and one Erlang source file (<c>.erl</c>).
+ These files are named as the IDL file, prefixed with <c>oe_</c>.</item>
+ </list>
+ <p>After compiling DB.idl, the following files have been generated:</p>
+ <list type="bulleted">
+ <item><c>oe_DB.hrl</c> and <c>oe_DB.erl</c> for the top scope level.</item>
+ <item><c>DB.hrl</c> for the module <c>DB</c>.</item>
+ <item><c>DB_Access.hrl</c> and <c>DB_Access.erl</c> for the interface
+ <c>DB_Access</c>.</item>
+ <item><c>DB_CommonUser.hrl</c> and <c>DB_CommonUser.erl</c> for the interface
+ <c>DB_CommonUser</c>.</item>
+ <item><c>DB_Administrator.hrl</c> and <c>DB_Administrator.erl</c> for the interface
+ <c>DB_Administrator</c>.</item>
+ <item><c>DB_employee.erl</c> for the structure <c>employee</c> in module
+ <c>DB</c>.</item>
+ </list>
+ <p>Since the <c>employee</c> struct is defined in the top level scope,
+ the Erlang record definition is found in <c>DB.hrl</c>. IC also generates
+ stubs/skeletons (e.g. <c>DB_CommonUser.erl</c>) and access functions for
+ some datatypes (e.g. <c>DB_employee.erl</c>). How the stubs/skeletons are
+ used is thoroughly described in
+ <seealso marker="ch_stubs">Stubs/Skeletons</seealso> and
+ <seealso marker="Module_Interface">Module_Interface</seealso>.</p>
+ </section>
+ </section>
+
+ <section>
+ <title>Typecode, Identity and Name Access Functions</title>
+ <p>As mentioned in a previous section, <c>struct</c>, <c>union</c> and
+ <c>exception</c> types yield record definitions and access code
+ for that record.
+ For <c>struct</c>, <c>union</c>, <c>exception</c>, <c>array</c> and
+ <c>sequence</c> types, a special file is generated that holds access
+ functions for <c>TypeCode</c>, <c>Identity</c> and <c>Name</c>.
+ These functions are put in the file corresponding to the scope where
+ they are defined. For example, the module <c>DB_employee.erl</c>,
+ representing the <c>employee</c> struct, exports the following functions:</p>
+ <list type="bulleted">
+ <item>tc/0 - returns the type code for the struct.</item>
+ <item>id/0 - returns the IFR identity of the struct. In this case
+ the returned value is <c>"IDL:DB/employee:1.0"</c>, but
+ if the struct was defined in the scope of <c>CommonUser</c>,
+ the result would be <c>"IDL:DB/CommonUser/employee:1.0"</c>.
+ However, the user usually do not need to know the Id, just
+ which Erlang module contains the correct Id.</item>
+ <item>name/0 - returns the scoped name of the struct. The <c>employee</c>
+ struct name is <c>"DB_employee"</c>.</item>
+ </list>
+ <p><term id="Type Codes"><termdef>Type codes give a complete description of the type including all its components and structure.</termdef></term>are, for example, used in <seealso marker="any">Any</seealso> values.
+ Hence, we can encapsulate the <c>employee</c> struct in an <c>any</c>
+ type by:</p>
+ <code type="none">
+%% Erlang code
+....
+AnEmployee = #'DB_employee'{'No' = 1,
+ 'Name' = "Adam Ivan Kendall",
+ 'Address' = "Rasunda, Solna",
+ 'Dpt' = 'Department1'},
+EmployeeTC = 'DB_employee':tc(),
+EmployeeAny = any:create(EmployeeTC, AnEmployee),
+....
+ </code>
+ <p>For more information, see the
+ <seealso marker="#tk_values">Type Code listing</seealso>.</p>
+ </section>
+
+ <section>
+ <title>References to Constants</title>
+ <p>Constants are generated as Erlang functions, and are accessed by a
+ single function call. The functions are put in the file
+ corresponding to the scope where they are defined. There is no
+ need for an object to be started to access a constant.</p>
+ <p>Example:</p>
+ <code type="none">
+// m.idl
+module m {
+ const float pi = 3.14;
+
+ interface i {
+\011const float pi = 3.1415;
+ };
+};
+ </code>
+ <p>Since the two constants are defined in different scopes, the IDL code
+ above is valid, but not necessarily a good approach. After compiling
+ <c>m.idl</c>, the constant definitions can be extracted by invoking:</p>
+ <pre>
+$ <input>erlc m.idl</input>
+$ <input>erlc m.erl</input>
+$ <input>erl</input>
+Erlang (BEAM) emulator version 5.1.1 [threads:0]
+
+Eshell V5.1.1 (abort with ^G)
+1> <input>m:pi().</input>
+3.14
+2> <input>m_i:pi().</input>
+3.1415
+3> <input>halt().</input>
+ </pre>
+ </section>
+
+ <section>
+ <title>References to Objects Defined in OMG IDL</title>
+ <p>Objects are accessed by object references. An object reference
+ is an opaque Erlang term created and maintained by the ORB.</p>
+ <p>Objects are implemented by providing implementations for all
+ operations and attributes of the Object, <seealso marker="#op_impl">see operation implementation</seealso>.</p>
+ </section>
+
+ <section>
+ <title>Exceptions</title>
+ <p>Exceptions are handled as Erlang catch and throws. Exceptions
+ are translated to messages over an IIOP bridge but converted
+ back to a throw on the receiving side. Object implementations
+ that invoke operations on other objects must be aware of the
+ possibility of a non-local return. This includes invocation of
+ ORB and IFR services. See also the
+ <seealso marker="ch_exceptions">Exceptions</seealso> section.</p>
+ <p>Exception parameters are mapped as an Erlang record and accessed
+ as such.</p>
+ <p>An object implementation that raises an exception will use the
+ <c>corba:raise/1</c> function, passing the exception record as
+ parameter.</p>
+ </section>
+
+ <section>
+ <title>Access to Attributes</title>
+ <p>Attributes are accessed through their access functions. An
+ attribute implicitly defines the <c>_get</c> and <c>_set</c>
+ operations. These operations are handled in the same way as
+ normal operations. The <c>_get</c> operation is defined as a <c>readonly</c>
+ attribute.</p>
+ <code type="none">
+readonly attribute long RAttribute;
+attribute long RWAttribute;
+ </code>
+ <p>The <c>RAttribute</c> requires that you implement, in your call-back module,
+ <c>_get_RAttribute</c>. For the <c>RWAttribute</c> it is necessary to implement
+ <c>_get_RWAttribute</c> and <c>_set_RWAttribute</c>.</p>
+ </section>
+
+ <section>
+ <title>Invocations of Operations</title>
+ <marker id="op_impl"></marker>
+ <p>A standard Erlang <c>gen_server</c> behavior is used for
+ object implementation. The <c>gen_server</c> state is then
+ used as the object internal state. Implementation of the object
+ function is achieved by implementing its methods and attribute operations.
+ These functions will usually have the internal state as their first parameter,
+ followed by any <c>in</c> and <c>inout</c> parameters. </p>
+ <p>Do not confuse the
+ object internal state with its object reference. The object internal state is
+ an Erlang term which has a format defined by the user.</p>
+ <note>
+ <p>It is is not always the case that the internal state will be the first parameter, as stubs can use their own object reference as the first parameter (see the IC documentation).</p>
+ </note>
+ <p>A function call will invoke an operation. The first
+ parameter of the function should be the object reference and then
+ all <c>in</c> and <c>inout</c> parameters follow in the same
+ order as specified in the IDL specification. The result will be a return value
+ unless the function has <c>inout</c> or <c>out</c> parameters specified;
+ in which case, a tuple of the return value, followed by the parameters will
+ be returned.</p>
+ <p>Example:</p>
+ <code type="none">
+// IDL
+module m {
+ interface i {
+ readonly attribute long RAttribute;
+ attribute long RWAttribute;
+ long foo(in short a);
+ long bar(in char c, inout string s, out long count);
+ void baz(out long Id);
+ };
+};
+ </code>
+ <p>Is used in Erlang as :</p>
+ <code type="none">
+%% Erlang code
+....
+Obj = ... %% get object reference
+RAttr = m_i:'_get_RAttribute'(Obj),
+RWAttr = m_i:'_get_RWAttribute'(Obj),
+ok = m_i:'_set_RWAttribute'(Obj, Long),
+R1 = m_i:foo(Obj, 55),
+{R2, S, Count} = m_i:bar(Obj, $a, "hello"),
+....
+ </code>
+ <p>Note how the <c>inout</c> parameter is passed <em>and</em>
+ returned. There is no way to use a single occurrence of a
+ variable for this in Erlang. Also note, that <c>ok</c>, Orber's
+ representation of the IDL-type <c>void</c>, must be returned by
+ <c>baz</c> and <c>'_set_RWAttribute'</c>.
+ These operations can be implemented in the call-back module as:</p>
+ <code type="none">
+'_set_RWAttribute'(State, Long) ->
+ {reply, ok, State}.
+
+'_get_RWAttribute'(State) ->
+ {reply, Long, State}.
+
+'_get_RAttribute'(State) ->
+ {reply, Long, State}.
+
+foo(State, AShort) ->
+ {reply, ALong, State}.
+
+bar(State, AShort, AString) ->
+ {reply, {ALong, "MyString", ALong}, State}.
+
+baz(State) ->
+ {reply, {ok, AId}, State}.
+ </code>
+ <p>The operations may require more arguments (depends on IC options used). For
+ more information, see <seealso marker="ch_stubs">Stubs/Skeletons</seealso>
+ and <seealso marker="Module_Interface">Module_Interface</seealso>.</p>
+ <warning>
+ <p>A function can also be defined to be <c>oneway</c>, i.e.
+ asynchronous. But, since the behavior of a oneway operation is not
+ defined in the OMG specifications (i.e. the behavior can differ depending on
+ which other ORB Orber is communicating with), one should avoid using it.</p>
+ </warning>
+ </section>
+
+ <section>
+ <title>Implementing the DB Application</title>
+ <p>Now we are ready to implement the call-back modules. There are three modules
+ we must create:</p>
+ <list type="bulleted">
+ <item>DB_Access_impl.erl</item>
+ <item>DB_CommonUser_impl.erl</item>
+ <item>DB_Administrator_impl.erl</item>
+ </list>
+ <p>An easy way to accomplish that, is to use the IC backend <c>erl_template</c>,
+ which will generate a complete call-back module. One should also add
+ the same compile options, for example <c>this</c> or <c>from</c>,
+ used when generating the stub/skeleton modules:</p>
+ <code type="none">
+$> erlc +"{be,erl_template}" DB.idl
+ </code>
+ <p>We begin with implementing the <c>DB_Access_impl.erl</c> module, which,
+ if we used <c>erl_template</c>, will look like the following. All we need
+ to do is to add the logic to the <c>logon</c> operation.</p>
+ <code type="none"><![CDATA[
+%%----------------------------------------------------------------------
+%% <LICENSE>
+%%
+%% $Id$
+%%
+%%----------------------------------------------------------------------
+%% Module : DB_Access_impl.erl
+%%
+%% Source : /home/user/example/DB.idl
+%%
+%% Description :
+%%
+%% Creation date: 2005-05-20
+%%
+%%----------------------------------------------------------------------
+-module('DB_Access_impl').
+
+-export([logon/3]).
+
+%%----------------------------------------------------------------------
+%% Internal Exports
+%%----------------------------------------------------------------------
+-export([init/1,
+ terminate/2,
+ code_change/3,
+ handle_info/2]).
+
+%%----------------------------------------------------------------------
+%% Include Files
+%%----------------------------------------------------------------------
+
+
+%%----------------------------------------------------------------------
+%% Macros
+%%----------------------------------------------------------------------
+
+
+%%----------------------------------------------------------------------
+%% Records
+%%----------------------------------------------------------------------
+-record(state, {}).
+
+%%======================================================================
+%% API Functions
+%%======================================================================
+%%----------------------------------------------------------------------
+%% Function : logon/3
+%% Arguments : State - term()
+%% ID = String()
+%% PW = String()
+%% Returns : ReturnValue = OE_Reply
+%% OE_Reply = Object_Ref()
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+logon(State, ID, PW) ->
+\011%% Check if the ID/PW is valid and what
+\011%% type of user it is (Common or Administrator).
+\011OE_Reply
+ = case check_user(ID, PW) of
+\011 {ok, administrator} ->
+\011 'DB_Administrator':oe_create();
+\011 {ok, common} ->
+\011 'DB_CommonUser':oe_create();
+\011 error ->
+\011 %% Here we should throw an exception
+ \011 corba:raise(....)
+ end,
+\011{reply, OE_Reply, State}.
+
+%%======================================================================
+%% Internal Functions
+%%======================================================================
+%%----------------------------------------------------------------------
+%% Function : init/1
+%% Arguments : Env = term()
+%% Returns : {ok, State} |
+%% {ok, State, Timeout} |
+%% ignore |
+%% {stop, Reason}
+%% Raises : -
+%% Description: Initiates the server
+%%----------------------------------------------------------------------
+init(_Env) ->
+\011{ok, #state{}}.
+
+
+%%----------------------------------------------------------------------
+%% Function : terminate/2
+%% Arguments : Reason = normal | shutdown | term()
+%% State = term()
+%% Returns : ok
+%% Raises : -
+%% Description: Invoked when the object is terminating.
+%%----------------------------------------------------------------------
+terminate(_Reason, _State) ->
+\011ok.
+
+
+%%----------------------------------------------------------------------
+%% Function : code_change/3
+%% Arguments : OldVsn = undefined | term()
+%% State = NewState = term()
+%% Extra = term()
+%% Returns : {ok, NewState}
+%% Raises : -
+%% Description: Invoked when the object should update its internal state
+%% due to code replacement.
+%%----------------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+\011{ok, State}.
+
+
+%%----------------------------------------------------------------------
+%% Function : handle_info/2
+%% Arguments : Info = normal | shutdown | term()
+%% State = NewState = term()
+%% Returns : {noreply, NewState} |
+%% {noreply, NewState, Timeout} |
+%% {stop, Reason, NewState}
+%% Raises : -
+%% Description: Invoked when, for example, the server traps exits.
+%%----------------------------------------------------------------------
+handle_info(_Info, State) ->
+\011{noreply, State}.
+ ]]></code>
+ <p>Since <c>DB_Administrator</c> inherits from <c>DB_CommonUser</c>,
+ we must implement <c>delete</c> in the <c>DB_Administrator_impl.erl</c>
+ module, and <c>lookup</c> in <c>DB_Administrator_impl.erl</c><em>and</em><c>DB_CommonUser_impl.erl</c>. But wait, is that really necessary? Actually,
+ it is not. We simple use the IC compile option <em>impl</em>:</p>
+ <pre>
+$ <input>erlc +'{{impl, "DB::CommonUser"}, "DBUser_impl"}' +'{{impl, "DB::Administrator"}, "DBUser_impl"}' DB.idl</input>
+$ <input>erlc *.erl</input>
+ </pre>
+ <p>Instead of creating, and not the least, maintaining two call-back modules,
+ we only have to deal with <c>DBUser_impl.erl</c>. If we generated the
+ templates, we simply rename <c>DB_Administrator_impl.erl</c> to
+ <c>DBUser_impl.erl</c>. See also the
+ <seealso marker="ch_exceptions">Exceptions</seealso> chapter.
+ In the following example, only the implementation of the API functions
+ are shown:</p>
+ <code type="none">
+%%======================================================================
+%% API Functions
+%%======================================================================
+%%----------------------------------------------------------------------
+%% Function : delete/2
+%% Arguments : State - term()
+%% ENo = unsigned_Long()
+%% Returns : ReturnValue = ok
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+delete(State, ENo) ->
+ %% How we access the DB, for example mnesia, is not shown here.
+ case delete_employee(No) of
+ ok ->
+ {reply, ok, State};
+ error ->
+ %% Here we should throw an exception if
+ %% there is no match.
+ corba:raise(....)
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : lookup/2
+%% Arguments : State - term()
+%% ENo = unsigned_Long()
+%% Returns : ReturnValue = OE_Reply
+%% OE_Reply = #'DB_employee'{No,Name,Address,Dpt}
+%% No = unsigned_Long()
+%% Name = String()
+%% Address = String()
+%% Dpt = Department
+%% Department = 'Department1' | 'Department2'
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+lookup(State, ENo) ->
+ %% How we access the DB, for example mnesia, is not shown here.
+ case lookup_employee(ENo) of
+ %% We assume that we receive a 'DB_employee' struct
+ {ok, Employee} ->
+ OE_Reply = Employee,
+ {reply, OE_Reply, State};
+ error ->
+ %% Here we should throw an exception if
+ %% there is no match.
+ corba:raise(....)
+ end.
+ </code>
+ <p>After you have compiled both call-back modules, and implemented the missing
+ functionality (e.g. lookup_employee/1), we can test our application:</p>
+ <code type="none">
+%% Erlang code
+....
+%% Create an Access object
+Acc = 'DB_Access':oe_create(),
+
+%% Login is Common user and Administrator
+Adm = 'DB_Access':logon(A, "admin", "pw"),
+Com = 'DB_Access':logon(A, "comm", "pw"),
+
+%% Lookup existing employee
+Employee = 'DB_Administrator':lookup(Adm, 1),
+Employee = 'DB_CommonUser':lookup(Adm, 1),
+
+%% If we try the same using the DB_CommonUser interface
+%% it result in an exit since that operation is not exported.
+{'EXIT', _} = (catch 'DB_CommonUser':delete(Adm, 1)),
+
+%% Try to delete the employee via the CommonUser Object
+{'EXCEPTION', _} = (catch 'DB_Administrator':delete(Com, 1)),
+
+%% Invoke delete operation on the Administrator object
+ok = 'DB_Administrator':delete(Adm, 1),
+....
+ </code>
+ </section>
+
+ <section>
+ <title>Reserved Compiler Names and Keywords</title>
+ <marker id="key_words"></marker>
+ <p>The use of some names is strongly discouraged due to
+ ambiguities. However, the use of some names is prohibited
+ when using the Erlang mapping , as they are strictly reserved for IC.</p>
+ <p>IC reserves all identifiers starting with <c>OE_</c> and <c>oe_</c>
+ for internal use.</p>
+ <p>Note also, that an identifier in IDL can contain alphabetic,
+ digits and underscore characters, but the first character
+ <em>must</em> be alphabetic.
+ </p>
+ <p>The OMG defines a set of reserved words, shown below, for use as keywords.
+ These may <em>not</em> be used as, for example, identifiers. The keywords
+ which are not in bold face was introduced in the OMG CORBA-3.0
+ specification.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle"><em>abstract</em></cell>
+ <cell align="left" valign="middle"><em>exception</em></cell>
+ <cell align="left" valign="middle"><em>inout</em></cell>
+ <cell align="left" valign="middle">provides</cell>
+ <cell align="left" valign="middle"><em>truncatable</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>any</em></cell>
+ <cell align="left" valign="middle">emits</cell>
+ <cell align="left" valign="middle"><em>interface</em></cell>
+ <cell align="left" valign="middle"><em>public</em></cell>
+ <cell align="left" valign="middle"><em>typedef</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>attribute</em></cell>
+ <cell align="left" valign="middle"><em>enum</em></cell>
+ <cell align="left" valign="middle"><em>local</em></cell>
+ <cell align="left" valign="middle">publishes</cell>
+ <cell align="left" valign="middle">typeid</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>boolean</em></cell>
+ <cell align="left" valign="middle">eventtype</cell>
+ <cell align="left" valign="middle"><em>long</em></cell>
+ <cell align="left" valign="middle"><em>raises</em></cell>
+ <cell align="left" valign="middle">typeprefix</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>case</em></cell>
+ <cell align="left" valign="middle"><em>factory</em></cell>
+ <cell align="left" valign="middle"><em>module</em></cell>
+ <cell align="left" valign="middle"><em>readonly</em></cell>
+ <cell align="left" valign="middle"><em>unsigned</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>char</em></cell>
+ <cell align="left" valign="middle"><em>FALSE</em></cell>
+ <cell align="left" valign="middle">multiple</cell>
+ <cell align="left" valign="middle">setraises</cell>
+ <cell align="left" valign="middle"><em>union</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">component</cell>
+ <cell align="left" valign="middle">finder</cell>
+ <cell align="left" valign="middle"><em>native</em></cell>
+ <cell align="left" valign="middle"><em>sequence</em></cell>
+ <cell align="left" valign="middle">uses</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>const</em></cell>
+ <cell align="left" valign="middle"><em>fixed</em></cell>
+ <cell align="left" valign="middle"><em>Object</em></cell>
+ <cell align="left" valign="middle"><em>short</em></cell>
+ <cell align="left" valign="middle"><em>ValueBase</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">consumes</cell>
+ <cell align="left" valign="middle"><em>float</em></cell>
+ <cell align="left" valign="middle"><em>octet</em></cell>
+ <cell align="left" valign="middle"><em>string</em></cell>
+ <cell align="left" valign="middle"><em>valuetype</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>context</em></cell>
+ <cell align="left" valign="middle">getraises</cell>
+ <cell align="left" valign="middle"><em>oneway</em></cell>
+ <cell align="left" valign="middle"><em>struct</em></cell>
+ <cell align="left" valign="middle"><em>void</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>custom</em></cell>
+ <cell align="left" valign="middle">home</cell>
+ <cell align="left" valign="middle"><em>out</em></cell>
+ <cell align="left" valign="middle"><em>supports</em></cell>
+ <cell align="left" valign="middle"><em>wchar</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>default</em></cell>
+ <cell align="left" valign="middle">import</cell>
+ <cell align="left" valign="middle">primarykey</cell>
+ <cell align="left" valign="middle"><em>switch</em></cell>
+ <cell align="left" valign="middle"><em>wstring</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle"><em>double</em></cell>
+ <cell align="left" valign="middle"><em>in</em></cell>
+ <cell align="left" valign="middle"><em>private</em></cell>
+ <cell align="left" valign="middle"><em>TRUE</em></cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <tcaption>OMG IDL keywords</tcaption>
+ </table>
+ <p>The keywords listed above must be written exactly as shown. Any usage
+ of identifiers that collide with a keyword is illegal. For example,
+ <em>long</em> is a valid keyword; <em>Long</em> and <em>LONG</em> are
+ illegal as keywords and identifiers. But, since the OMG must be able
+ to expand the IDL grammar, it is possible to use <em>Escaped Identifiers</em>. For example, it is not unlikely that <c>native</c>
+ have been used in IDL-specifications as identifiers. One option is to
+ change all occurrences to <c>myNative</c>. Usually, it is necessary
+ to change programming language code that depends upon that IDL as well.
+ Since Escaped Identifiers just disable type checking (i.e. if it is a reserved
+ word or not) and leaves everything else unchanged, it is only necessary to
+ update the IDL-specification. To escape an identifier, simply prefix it
+ with <em>_</em>. The following IDL-code is illegal:</p>
+ <code type="none">
+typedef string native;
+interface i {
+ void foo(in native Arg);
+ };
+};
+ </code>
+ <p>With Escaped Identifiers the code will look like:</p>
+ <code type="none">
+typedef string _native;
+interface i {
+ void foo(in _native Arg);
+ };
+};
+ </code>
+ </section>
+
+ <section>
+ <title>Type Code Representation</title>
+ <marker id="tk_values"></marker>
+ <p>Type Codes are used in <c>any</c> values. To avoid mistakes, you should
+ use access functions exported by the Data Types modules
+ (e.g. struct, union etc) or the <seealso marker="orber_tc">orber_tc</seealso>
+ module.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle"><em>Type Code</em></cell>
+ <cell align="left" valign="middle"><em>Example</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_null</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_void</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_short</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_long</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_longlong</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_ushort</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_ulong</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_ulonglong</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_float</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_double</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_boolean</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_char</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_wchar</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_octet</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_any</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_TypeCode</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">tk_Principal</cell>
+ <cell align="left" valign="middle"></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_objref, IFRId, Name}</cell>
+ <cell align="left" valign="middle">{tk_objref, "IDL:M1\\I1:1.0", "I1"}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_struct, IFRId, Name, [{ElemName, ElemTC}]}</cell>
+ <cell align="left" valign="middle">{tk_struct, "IDL:M1\\S1:1.0", "S1", [{"a", tk_long}, {"b", tk_char}]}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_union, IFRId, Name, DiscrTC, DefaultNr, [{Label, ElemName, ElemTC}]} <br></br>
+Note: DefaultNr tells which of tuples in the case list that is default, or -1 if no default</cell>
+ <cell align="left" valign="middle">{tk_union, "IDL:U1:1.0", "U1", tk_long, 1, [{1, "a", tk_long}, {default, "b", tk_char}]}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_enum, IFRId, Name, [ElemName]}</cell>
+ <cell align="left" valign="middle">{tk_enum, "IDL:E1:1.0", "E1", ["a1", "a2"]}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_string, Length}</cell>
+ <cell align="left" valign="middle">{tk_string, 5}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_wstring, Length}</cell>
+ <cell align="left" valign="middle">{tk_wstring, 7}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_fixed, Digits, Scale}</cell>
+ <cell align="left" valign="middle">{tk_fixed, 3, 2}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_sequence, ElemTC, Length}</cell>
+ <cell align="left" valign="middle">{tk_sequence, tk_long, 4}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_array, ElemTC, Length}</cell>
+ <cell align="left" valign="middle">{tk_array, tk_char, 9}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_alias, IFRId, Name, TC}</cell>
+ <cell align="left" valign="middle">{tk_alias, "IDL:T1:1.0", "T1", tk_short}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">{tk_except, IFRId, Name, [{ElemName, ElemTC}]}</cell>
+ <cell align="left" valign="middle">{tk_except, "IDL:Exc1:1.0", "Exc1", [{"a", tk_long}, {"b", {tk_string, 0}}]}</cell>
+ </row>
+ <tcaption>Type Code tuples</tcaption>
+ </table>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_ifr.xml b/lib/orber/doc/src/ch_ifr.xml
new file mode 100644
index 0000000000..690a8167c6
--- /dev/null
+++ b/lib/orber/doc/src/ch_ifr.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1999</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Interface Repository</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-10-10</date>
+ <rev></rev>
+ <file>ch_ifr.xml</file>
+ </header>
+
+ <section>
+ <title>Interface Repository(IFR)</title>
+ <p>The IFR is an interface repository built on the Mnesia
+ application. Orber uses the IFR for some type-checking
+ when coding/decoding IIOP. The IFR is capable of storing all
+ interfaces and declarations of OMG IDL.
+ </p>
+ <p>The interface repository is mainly used for dynamical
+ interfaces, and as none are currently supported this function
+ is only really used for retrieving information about interfaces.</p>
+ <p>Functions relating to the manipulation of the IFR including,
+ initialization of the IFR, as well as, locating, creating and
+ destroying initial references are detailed further in the Manual
+ Pages.
+ </p>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_install.xml b/lib/orber/doc/src/ch_install.xml
new file mode 100644
index 0000000000..eee2b99c92
--- /dev/null
+++ b/lib/orber/doc/src/ch_install.xml
@@ -0,0 +1,1071 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Installing Orber</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1998-09-28</date>
+ <rev></rev>
+ <file>ch_install.xml</file>
+ </header>
+
+ <section>
+ <title>Installation Process </title>
+ <p>This chapter describes how to install Orber in an Erlang
+ Environment.</p>
+
+ <section>
+ <title>Preparation</title>
+ <p>To begin with, you must decide if you want to run Orber as a:</p>
+ <list type="bulleted">
+ <item><em>Single node (non-distributed)</em> - all communication with other
+ Orber instances and ORB's supplied by other vendors use the OMG
+ GIOP protocol.</item>
+ <item><em>Multi node (distributed)</em> - all Orber nodes, within the same
+ <c>domain</c>, communicate via the Erlang distribution protocol.
+ For all other Orber instances, i.e. not part of the same <c>domain</c>,
+ and ORB's supplied by other vendors, the OMG GIOP protocol
+ is used.</item>
+ </list>
+ <p>Which approach to use is highly implementation specific, but a few
+ things you should consider:</p>
+ <list type="bulleted">
+ <item>All nodes within an Orber domain should have the same
+ security level.</item>
+ <item>If the capacity is greater than load (volume of traffic)
+ a single-node Orber might be a good solution.</item>
+ <item>In some cases the distributed system architecture requires a
+ single-node <term id="Orber installation"><termdef>is the structure of the ORB or ORBs as defined during the install process is called the "installation".</termdef></term>.</item>
+ <item>A multi-node Orber makes it possible to load balance
+ and create a more fault tolerant system. The Objects
+ can also have a uniform view if you use distributed
+ Mnesia tables.</item>
+ <item>Since the GIOP protocol creates a larger overhead than the
+ Erlang distribution protocol, the performance will be better
+ when communicating with Objects within the same Orber domain
+ compared with inter ORB communication (GIOP).</item>
+ </list>
+ <p>You also have to decide if you want Orber to store internal data using
+ <c>disc_copies</c> and/or <c>ram_copies</c>. Which storage type you should
+ depends if/how you intend to use Mnesia in your application. If you
+ intend to use <c>disc_copies</c> you must start with creating a Mnesia
+ schema, which contain information about the location of the Erlang nodes
+ where Orber is planned to be run. For more background information,
+ see the Mnesia documentation.</p>
+ <p>In some cases it is absolutely necessary to change the default configuration
+ of Orber. For example, if two Orber-ORB's shall be able to communicate
+ via GIOP, they must have a unique <c>domain</c> domain. Consult the
+ <seealso marker="ch_install#config">configuration settings</seealso>
+ section. If you encounter any problems; see the chapter about
+ <em>Debugging</em> in this User's Guide.</p>
+ </section>
+
+ <section>
+ <title>Jump Start Orber</title>
+ <p>The easiest way to start Orber is to use <c>orber:jump_start(Port)</c>,
+ which start a single-node ORB with (most likely) a unique
+ domain (i.e. "IP-number:Port"). This function may only be used
+ during development and testing. For any other situation, install and
+ start Orber as described in the following sections.
+ The listen port, i.e. iiop_port configuration parameter, is set to
+ the supplied Port.</p>
+ <warning>
+ <p>How Orber is configured when using <c>orber:jump_start(Port)</c>
+ may change at any time without warning. Hence, this operation must
+ not be used in systems delivered to a customer.</p>
+ </warning>
+ </section>
+
+ <section>
+ <title>Install Single Node Orber</title>
+ <p>Since a single node Orber communicate via the OMG GIOP protocol it is not
+ necessary to start the Erlang distribution (i.e. using <c>-name/-sname</c>).</p>
+ <p>If we use <c>ram_copies</c> there is no need for creating a disk based
+ schema. Simply use:</p>
+ <code type="none">
+erl> mnesia:start().
+erl> corba:orb_init([{domain, "MyRAMSingleNodeORB"}]).
+erl> orber:install([node()], [{ifr_storage_type, ram_copies}]).
+erl> orber:start().
+ </code>
+ <p>If you installation requires <c>disc_copies</c> you must begin with
+ creating a Mnesia schema. Otherwise, the installation is similar
+ to a RAM installation:</p>
+ <code type="none">
+erl> mnesia:create_schema([node()]).
+erl> mnesia:start().
+erl> corba:orb_init([{domain, "MyDiskSingleNodeORB"}]).
+erl> orber:install([node()], [{ifr_storage_type, disc_copies},
+ {nameservice_storage_type, disc_copies}]).
+erl> orber:start().
+ </code>
+ <p>You can still choose to store the IFR data as ram_copies, but then
+ the data must be re-installed (i.e. invoke <c>orber:install/2</c>)
+ if the node is restarted. Hence, since the IFR data is rather static
+ you should use <c>disc_copies</c>. For more information see the
+ <c>orber</c> section in the reference manual.</p>
+ <p>If you do not need to change Orber's configuration you can skip
+ <seealso marker="corba">orb_init/1</seealso>.
+ But, you <em>should</em> at least set the IIOP timeout parameters.</p>
+ </section>
+
+ <section>
+ <title>Install RAM Based Multi Node Orber</title>
+ <p>Within a domain Orber uses the Erlang distribution protocol. Hence, you
+ <em>must</em> start it first by, for example, using:</p>
+ <code type="none">
+hostA> erl -sname nodeA
+ </code>
+ <p>In this example, we assume that we want to use two nodes; <c>nodeA</c> and
+ <c>nodeB</c>. Since Mnesia must know which other nodes should a part
+ of the distribution we either need to add the Mnesia configuration
+ parameter <c>extra_db_nodes</c> or use <c>mnesia:change_config/2</c>. To
+ begin with, Mnesia must be started on all nodes before we can install
+ Orber:</p>
+ <code type="none">
+nodeA@hostA> mnesia:start().
+nodeA@hostA> mnesia:change_config(extra_db_nodes,
+ [nodeA@hostA, nodeB@hostB]).
+ </code>
+ <p>After that the above have been repeated on <c>nodeB</c> we must
+ first make sure that both nodes will use the same domain name, then
+ we can install Orber:</p>
+ <code type="none">
+nodeA@hostA> corba:orb_init([{domain, "MyRAMMultiNodeORB"}]).
+nodeA@hostA> orber:install([nodeA@hostA, nodeB@hostB],
+ [{ifr_storage_type, ram_copies}]).
+nodeA@hostA> orber:start().
+ </code>
+ <p>Note that you can only invoke <c>orber:install/1/2</c> on one of the
+ nodes. Now we can start Orber on the other node:</p>
+ <code type="none">
+nodeB@hostB> corba:orb_init([{domain, "MyRAMMultiNodeORB"}]).
+nodeB@hostB> orber:start().
+ </code>
+ </section>
+
+ <section>
+ <title>Install Disk Based Multi Node Orber</title>
+ <p>As for RAM based multi-node Orber installations, the Erlang distribution
+ must be started (e.g. erl -sname nodeA). The major difference is that
+ when it is disk based a Mnesia schema must be created:</p>
+ <code type="none">
+nodeA@hostA> mnesia:create_schema([nodeA@hostA, nodeB@hostB]).
+nodeA@hostA> mnesia:start().
+ </code>
+ <p>In this example, we assume that we want to use two nodes; <c>nodeA</c> and
+ <c>nodeB</c>. Since it is not possible to create a schema on more than
+ one node. Hence, all we have to do is to start Mnesia (i.e. invoke
+ <c>mnesia:start()</c>) on <c>nodeB</c>.</p>
+ <p>After Mnesia have been started on all nodes, you must confirm that all
+ nodes have the same domain name, then Orber is ready to be installed:</p>
+ <code type="none">
+nodeA@hostA> corba:orb_init([{domain, "MyDiskMultiNodeORB"}]).
+nodeA@hostA> orber:install([nodeA@hostA, nodeB@hostB],
+ [{ifr_storage_type, disc_copies}]).
+nodeA@hostA> orber:start().
+ </code>
+ <p>Note that you can only invoke <c>orber:install/1/2</c> on one of the
+ nodes. Now we can start Orber on the other node:</p>
+ <code type="none">
+nodeB@hostB> corba:orb_init([{domain, "MyDiskMultiNodeORB"}]).
+nodeB@hostB> orber:start().
+ </code>
+ </section>
+
+ </section>
+
+ <section>
+ <title>Configuration</title>
+ <marker id="config"></marker>
+ <p>It is essential that one configure Orber properly, to avoid, for example,
+ malicious attacks and automatically terminate IIOP connections no longer
+ in use. An easy way to extract information about Orber's configuration
+ parameters is to invoke the operation
+ <seealso marker="orber">orber:info/1/2</seealso>.
+ Orber offer the following configuration parameters:</p>
+ <table>
+ <row>
+ <cell align="center" valign="middle"><em>Key</em></cell>
+ <cell align="center" valign="middle"><em>Range</em></cell>
+ <cell align="center" valign="middle"><em>Default</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">domain</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">"ORBER"</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_port</cell>
+ <cell align="left" valign="middle">integer() >= 0</cell>
+ <cell align="left" valign="middle">4001</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">nat_iiop_port</cell>
+ <cell align="left" valign="middle">integer() > 0 | {local, integer(), [{integer(), integer()}]}</cell>
+ <cell align="left" valign="middle">The same as <c>iiop_port</c></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_out_ports</cell>
+ <cell align="left" valign="middle">0 | {integer(),integer()}</cell>
+ <cell align="left" valign="middle">0</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_max_fragments</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_max_in_requests</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_max_in_connections</cell>
+ <cell align="left" valign="middle">integer() > 0</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_backlog</cell>
+ <cell align="left" valign="middle">integer() > 0</cell>
+ <cell align="left" valign="middle">5</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_packet_size</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ip_address</cell>
+ <cell align="left" valign="middle">string() | {multiple, [string()]}</cell>
+ <cell align="left" valign="middle">All interfaces</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ip_address_local</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">Defined by the underlying system</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">nat_ip_address</cell>
+ <cell align="left" valign="middle">string() | {multiple, [string()]} | {local, string(), [{string(), string()}]}</cell>
+ <cell align="left" valign="middle">The same as <c>ip_address</c></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">objectkeys_gc_time</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">giop_version</cell>
+ <cell align="left" valign="middle">{1,0} | {1,1} | {1,2}</cell>
+ <cell align="left" valign="middle">{1,1}</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_setup_connection_timeout</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_connection_timeout</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_in_connection_timeout</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_out_keepalive</cell>
+ <cell align="left" valign="middle">true | false</cell>
+ <cell align="left" valign="middle">false</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_in_keepalive</cell>
+ <cell align="left" valign="middle">true | false</cell>
+ <cell align="left" valign="middle">false</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_timeout</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">interceptors</cell>
+ <cell align="left" valign="middle">{native, [atom()]}</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">local_interceptors</cell>
+ <cell align="left" valign="middle">{native, [atom()]}</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">orbInitRef</cell>
+ <cell align="left" valign="middle">[string()] | undefined</cell>
+ <cell align="left" valign="middle">undefined</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">orbDefaultInitRef</cell>
+ <cell align="left" valign="middle">string() | undefined</cell>
+ <cell align="left" valign="middle">undefined</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">orber_debug_level</cell>
+ <cell align="left" valign="middle">0 - 10</cell>
+ <cell align="left" valign="middle">0</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">flags</cell>
+ <cell align="left" valign="middle">integer() >= 0</cell>
+ <cell align="left" valign="middle">0</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_acl</cell>
+ <cell align="left" valign="middle">[{atom(), string()}] | [{atom(), string(), [string()]}]</cell>
+ <cell align="left" valign="middle">[]</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">secure</cell>
+ <cell align="left" valign="middle">no | ssl</cell>
+ <cell align="left" valign="middle">no</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_generation</cell>
+ <cell align="left" valign="middle">2 | 3</cell>
+ <cell align="left" valign="middle">2</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_ssl_port</cell>
+ <cell align="left" valign="middle">integer() >= 0</cell>
+ <cell align="left" valign="middle">4002</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_ssl_accept_timeout</cell>
+ <cell align="left" valign="middle">integer() > 0 | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_ssl_backlog</cell>
+ <cell align="left" valign="middle">integer() > 0</cell>
+ <cell align="left" valign="middle">5</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_ssl_ip_address_local</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">Defined by the underlying system</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">nat_iiop_ssl_port</cell>
+ <cell align="left" valign="middle">integer() > 0 | {local, integer(), [{integer(), integer()}]}</cell>
+ <cell align="left" valign="middle">The same as <c>iiop_ssl_port</c></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_cacertfile</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_certfile</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_verify</cell>
+ <cell align="left" valign="middle">0 | 1 | 2</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_depth</cell>
+ <cell align="left" valign="middle">integer()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_password</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_keyfile</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_ciphers</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_server_cachetimeout</cell>
+ <cell align="left" valign="middle">integer() | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_cacertfile</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_certfile</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_verify</cell>
+ <cell align="left" valign="middle">0 | 1 | 2</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_depth</cell>
+ <cell align="left" valign="middle">integer()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_password</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_keyfile</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_ciphers</cell>
+ <cell align="left" valign="middle">string()</cell>
+ <cell align="left" valign="middle">-</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ssl_client_cachetimeout</cell>
+ <cell align="left" valign="middle">integer() | infinity</cell>
+ <cell align="left" valign="middle">infinity</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_ssl_out_keepalive</cell>
+ <cell align="left" valign="middle">true | false</cell>
+ <cell align="left" valign="middle">false</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">iiop_ssl_in_keepalive</cell>
+ <cell align="left" valign="middle">true | false</cell>
+ <cell align="left" valign="middle">false</cell>
+ </row>
+ <tcaption>Orber Configuration Parameters</tcaption>
+ </table>
+ <br></br>
+ <br></br>
+ <p><em>Comments on the table 'Orber Configuration Parameters':</em></p>
+ <taglist>
+ <tag><em>domain</em></tag>
+ <item>Since Orber domains, they are supposed to communicate via IIOP,
+ <em>MUST</em> have unique names, communication will
+ fail if two domains have the same name. The domain name <em>MAY NOT</em>
+ contain <c>^G</c> (i.e. <c>\\007</c>).</item>
+ <tag><em>iiop_port</em></tag>
+ <item>If set to 0 the OS will pick any vacant port.
+ <br></br>
+<em>Note:</em>On a UNIX system it is preferable to
+ have a IIOP port higher than 1023, since it is not recommended to
+ run Erlang as a root user.</item>
+ <tag><em>nat_iiop_port</em></tag>
+ <item>The value is either an integer or <c>{local, DefaultNATPort, [{Port, NATPort}]}</c>. See also
+ <seealso marker="ch_install#firewall">Firewall Configuration</seealso>.</item>
+ <tag><em>iiop_out_ports</em></tag>
+ <item>When set to 0 any available port will be used.
+ If a range is specified, Orber will only
+ use the local ports within the interval when trying to connect to
+ another ORB (Orber acts as a client ORB). If all ports are in use
+ communication will fail. Hence, it is <em>absolutely necessary</em> to
+ set <c>iiop_connection_timeout</c> as well. Otherwise, connections
+ no longer in use will block further communication. If one use, for
+ example, <c>erl -orber iiop_out_ports "{5000,5020}"</c>, Orber
+ will only use port 5000 to 5020 when connecting.
+ If communicating via SSL, make sure you use a version that supports
+ the local <c>{port, Port}</c> option. See also
+ <seealso marker="ch_install#firewall">Firewall Configuration</seealso>.</item>
+ <tag><em>iiop_max_fragments</em></tag>
+ <item>Limits the number of IIOP fragments allowed per request.</item>
+ <tag><em>iiop_max_in_requests</em></tag>
+ <item>Limits the number of concurrent incoming requests per incoming connection.</item>
+ <tag><em>iiop_max_in_connections</em></tag>
+ <item>Limits the number of concurrent incoming connections.</item>
+ <tag><em>iiop_backlog</em></tag>
+ <item>Defines the maximum length the queue of pending incoming
+ connections may grow to.</item>
+ <tag><em>iiop_packet_size</em></tag>
+ <item>Defines the maximum size of incoming requests.
+ If this limit is exceeded, the connection is closed.</item>
+ <tag><em>ip_address</em></tag>
+ <item>This option is used if orber only should
+ listen on a specific ip interface on a multi-interface host or if
+ exported IOR:s should contain multiple components. The value is
+ the IPv4 or IPv6 address as a string or <c>{multiple, IPList}</c>.
+ The latter requires that the object is available via the all IP addresses
+ found in the list.</item>
+ <tag><em>ip_address_local</em></tag>
+ <item>This option defines the default local interface Orber will
+ use when connecting to another ORB via IIOP, i.e., Orber act as the
+ client side ORB. The value is a IPv4 or IPv6 address as a string.
+ It is possible to override <c>ip_address_local</c> by defining
+ <c>iiop_acl</c> or passing the Orber generic <c>interface</c> Context.
+ If this option is not used, the underlying OS will choose which interface to
+ use. For more information, see the
+ <seealso marker="ch_install#interfaces">Interface Configuration</seealso>
+ section.</item>
+ <tag><em>nat_ip_address</em></tag>
+ <item>The value is the ip address as
+ a string (IPv4 or IPv6), <c>{multiple, IPList}</c> or
+ <c>{local, DefaultNATIPAddress, [{IPAddress, NATIPAddress}]}</c>. See also
+ <seealso marker="ch_install#firewall">Firewall Configuration</seealso>.</item>
+ <tag><em>objectkeys_gc_time</em></tag>
+ <item>This option should be set if objects are started
+ using the option <c>{persistent, true}</c>.
+ The value is <c>integer()</c> seconds.</item>
+ <tag><em>giop_version</em></tag>
+ <item>Defines the default GIOP protocol version.</item>
+ <tag><em>iiop_setup_connection_timeout</em></tag>
+ <item>The value is an integer (seconds) or the atom infinity.
+ This option is only valid for client-side
+ connections. If this option is set, attempts to connect to other ORB's
+ will timeout after the given time limit. Note, if the time limit is large
+ the TCP protocol may timeout before the supplied value.</item>
+ <tag><em>iiop_connection_timeout</em></tag>
+ <item>The value is an integer (timeout in seconds between 0 and 1000000)
+ or the atom infinity. This option is only valid for client object
+ connections, i.e., will have no effect on server connections. Setting this
+ option will cause client connections to be terminated, if and only if,
+ there are no pending requests. If there are a client still waiting for
+ a reply, Orber will try again after the given seconds have passed. The main
+ purpose for this option is to reduce the number of open connections; it is,
+ for example, not necessary to keep a connection, only used once a day,
+ open at all time.</item>
+ <tag><em>iiop_in_connection_timeout</em></tag>
+ <item>The same as for <c>iiop_connection_timeout</c>. The only difference is
+ that this option only affects incoming connections (i.e. Orber act as
+ server-side ORB).</item>
+ <tag><em>iiop_out_keepalive</em></tag>
+ <item>Enables periodic transmission on a connected socket, when no other
+ data is being exchanged. If the other end does not respond, the
+ connection is considered broken and will be terminated.
+ When enabled the SO_KEEPALIVE socket level option is set.</item>
+ <tag><em>iiop_in_keepalive</em></tag>
+ <item>The same as for <c>iiop_out_keepalive</c>. The only difference is
+ that this option only affects incoming connections.</item>
+ <tag><em>iiop_timeout</em></tag>
+ <item>The value is an integer (timeout in seconds between 0 and 1000000)
+ or the atom infinity. This option is only valid on the client side.
+ Setting this option, cause all intra-ORB requests to timeout and
+ raise a system exception, e.g. <c>TIMEOUT</c>, if no replies are delivered
+ within the given time limit.</item>
+ <tag><em>interceptors</em></tag>
+ <item>If one set this parameter, e.g.,
+ <c>erl -orber interceptors "{native, ['myInterceptor']}"</c>,
+ Orber will use the supplied interceptor(s) for all inter-ORB
+ communication. <c>'myInterceptor'</c> is the module name of the
+ interceptor. For more information, see the interceptor chapter
+ in the User's Guide and the Reference Manual.</item>
+ <tag><em>local_interceptors</em></tag>
+ <item>If defined, its value will be
+ used when activating local interceptors via
+ <seealso marker="ch_install#flags">Orber Environment Flags</seealso>.
+ If not defined, but the flag is set, Orber will use the value of
+ the <c>interceptors</c> parameter.</item>
+ <tag><em>orbInitRef</em></tag>
+ <item>Setting this option, e.g.,
+ <c>erl -orber orbInitRef [\\"NameService=corbaloc::host.com/NameService\\"]</c>,
+ will alter the location from where <c>corba:resolve_initial_references(Key)</c>
+ tries to find an object matching the given Key. The keys will also appear when
+ invoking <c>corba:list_initial_services()</c>. This variable overrides
+ <c>orbDefaultInitRef</c></item>
+ <tag><em>orbDefaultInitRef</em></tag>
+ <item>If a matching Key for <c>orbInitRef</c> is not
+ found, and this variable is set, it determines the location from where
+ <c>orber:resolve_initial_references(Key)</c> tries to find an object
+ matching the given Key. Usage:
+ <c>erl -orber orbDefaultInitRef \\"corbaloc::host.com\\"</c>.</item>
+ <tag><em>orber_debug_level</em></tag>
+ <item>The range is 0 to 10.
+ Using level 10 is the most verbose configuration.
+ This option will generate reports, using the <c>error_logger</c>,
+ for abnormal situations. It is not recommended to use this option
+ for delivered systems since some of the reports is not to be considered
+ as errors. The main purpose is to assist during development.</item>
+ <tag><em>flags</em></tag>
+ <item>No flags are activated in the default case.
+ The available configuration settings are described in
+ <seealso marker="ch_install#flags">Orber Environment Flags</seealso>.</item>
+ <tag><em>iiop_acl</em></tag>
+ <item>This option must be activated by setting
+ <seealso marker="ch_install#flags">Orber Environment Flags</seealso> parameter.
+ The value of this parameter shall be a list of <c>[{Direction, Filter}]</c>
+ and/or <c>[{Direction, Filter, [Interfaces]}]</c>. The <c>Direction</c>,
+ <c>tcp_in</c>, <c>ssl_in</c>, <c>tcp_out</c> or <c>ssl_out</c>, determines if
+ the Access Control List (ACL) applies to incoming or outgoing connections
+ and IIOP or IIOP over SSL. The <c>Filter</c> uses a extended format of
+ Classless Inter Domain Routing (CIDR). For example, <c>"123.123.123.10"</c> limits
+ the connection to that particular host, while <c>"123.123.123.10/17"</c> allows
+ connections to or from any host equal to the 17 most significant bits. Orber
+ also allow the user to specify a certain port or port range, for example,
+ <c>"123.123.123.10/17#4001"</c> and <c>"123.123.123.10/17#4001/5001"</c>
+ respectively. IPv4 or none compressed IPv6 strings are accepted. <br></br>
+
+ The list of <c>Interfaces</c>, IPv4 or IPv6 strings, may only contain
+ <em>one</em> address for outgoing connections. For incoming connections,
+ the <c>Interfaces</c> list may contain several IP strings. If set for
+ outgoing connections, and access is granted, Orber will use that local
+ interface when connecting to the server-side ORB. For incoming connections,
+ the client-side ORB is required to use one of the listed interfaces locally.
+ If it fail to do so, access will be denied. The module
+ <seealso marker="orber_acl">orber_acl</seealso> provides operations for
+ evaluating the access control for filters and addresses. See also the
+ <seealso marker="ch_install#interfaces">Interface Configuration</seealso>
+ and
+ <seealso marker="ch_install#firewall">Firewall Configuration</seealso>
+ chapters.</item>
+ <tag><em>secure</em></tag>
+ <item>Determines the security mode Orber will use, which is either
+ <c>no</c> if it is an insecure domain or the type of security
+ mechanism used. Currently, per default, Orber is compliant with
+ <c>CSIv1</c> level 0, which means IIOP via SSL/TLS.
+ The security chapter later in this manual describes how to get security
+ in Orber and how the options are used.</item>
+ <tag><em>ssl_generation</em></tag>
+ <item>Defines which SSL version, i.e. available API, is installed. The
+ default value, <c>2</c>, refers to SSL-3.1 or later, but earlier than SSL-4.0.
+ If set to <c>3</c> SSL-4.0, or later, must be available. Currently it not possible
+ to use <c>1</c>, it is only reserved for future use.</item>
+ <tag><em>iiop_ssl_port</em></tag>
+ <item>If set, the value must be an
+ integer greater than zero and not equal to <em>iiop_port</em>.</item>
+ <tag><em>iiop_ssl_accept_timeout</em></tag>
+ <item>The value is an integer (timeout in seconds) or the atom infinity and
+ determine how long the SSL handshake may take. This option should
+ be set to avoid if a client never initiate the handshake.</item>
+ <tag><em>iiop_ssl_backlog</em></tag>
+ <item>Defines the maximum length the queue of pending incoming
+ connections may grow to.</item>
+ <tag><em>iiop_ssl_ip_address_local</em></tag>
+ <item>This option defines the default local interface Orber will
+ use when connecting to another ORB via IIOP SSL, i.e., Orber act as the
+ client side ORB. The value is a IPv4 or IPv6 address as a string.
+ It is possible to override <c>iiop_ssl_ip_address_local</c> by defining
+ <c>iiop_acl</c> or passing the Orber generic <c>interface</c> Context.
+ If this option is not used, the underlying OS will choose which interface to
+ use. For more information, see the
+ <seealso marker="ch_install#interfaces">Interface Configuration</seealso>
+ section.</item>
+ <tag><em>nat_iiop_ssl_port</em></tag>
+ <item>If set, the value must be an integer greater than zero or
+ <c>{local, DefaultNATPort, [{Port, NATPort}]}</c>. See also
+ <seealso marker="ch_install#firewall">Firewall Configuration</seealso>.</item>
+ <tag><em>ssl_server_cacertfile</em></tag>
+ <item>the file path to a server side CA certificate.</item>
+ <tag><em>ssl_server_certfile</em></tag>
+ <item>The path to a file containing a chain of PEM encoded certificates.</item>
+ <tag><em>ssl_server_verify</em></tag>
+ <item>The type of verification used by SSL during authentication of the
+ other peer for incoming calls.</item>
+ <tag><em>ssl_server_depth</em></tag>
+ <item>The SSL verification depth for outgoing calls.</item>
+ <tag><em>ssl_server_password</em></tag>
+ <item>The server side key string.</item>
+ <tag><em>ssl_server_keyfile</em></tag>
+ <item>The file path to a server side key.</item>
+ <tag><em>ssl_server_ciphers</em></tag>
+ <item>The server side cipher string.</item>
+ <tag><em>ssl_server_cachetimeout</em></tag>
+ <item>The server side cache timeout.</item>
+ <tag><em>ssl_client_cacertfile</em></tag>
+ <item>The file path to a client side CA certificate.</item>
+ <tag><em>ssl_client_certfile</em></tag>
+ <item>The path to a file containing a chain of PEM encoded certificates.</item>
+ <tag><em>ssl_client_verify</em></tag>
+ <item>The type of verification used by SSL during authentication of the
+ other peer for outgoing calls.</item>
+ <tag><em>ssl_client_depth</em></tag>
+ <item>The SSL verification depth for incoming calls.</item>
+ <tag><em>ssl_client_password</em></tag>
+ <item>The client side key string.</item>
+ <tag><em>ssl_client_keyfile</em></tag>
+ <item>The file path to a client side key.</item>
+ <tag><em>ssl_client_ciphers</em></tag>
+ <item>The client side cipher string.</item>
+ <tag><em>ssl_client_cachetimeout</em></tag>
+ <item>The client side cache timeout.</item>
+ <tag><em>iiop_ssl_out_keepalive</em></tag>
+ <item>Enables periodic transmission on a connected socket, when no other
+ data is being exchanged. If the other end does not respond, the
+ connection is considered broken and will be terminated.
+ When enabled the SO_KEEPALIVE socket level option is set. Requires that
+ the installed SSL version support the <em>keepalive</em> option
+ and that the <em>ssl_generation</em> points to this version.</item>
+ <tag><em>iiop_ssl_in_keepalive</em></tag>
+ <item>The same as for <c>iiop_ssl_out_keepalive</c>. The only difference is
+ that this option only affects incoming connections.</item>
+ </taglist>
+ <p>It is possible to invoke operations using the extra timeout parameter:</p>
+ <pre>
+erl> module_interface:function(ObjRef, Timeout, ..Arguments..).
+erl> module_interface:function(ObjRef, [{timeout, Timeout}], ..Arguments..).
+erl> module_interface:function(ObjRef, ..Arguments..). </pre>
+ <p>The extra Timeout argument will override the configuration parameter
+ <c>iiop_timeout</c>. It is, however, not possible to use <c>infinity</c>
+ to override the Timeout parameter. The Timeout option is also valid for
+ objects which resides within the same <term id="Orber domain"><termdef>A domain containing several Erlang nodes, which are communicating by using the Erlang internal format. An Orber domain looks as one ORB from the environment.</termdef></term>.</p>
+ <p>The <c>iiop_setup_connection_timeout</c>, <c>iiop_timeout</c>,
+ <c>iiop_connection_timeout</c> and <c>iiop_in_connection_timeout</c>
+ variables should be used. The specified values is implementation specific,
+ i.e., WAN or LAN, but they should range from
+ <c>iiop_setup_connection_timeout</c> to <c>iiop_connection_timeout</c>.</p>
+ <p>To change these settings in the configuration file, the
+ <c>-config</c> flag must be added to the erl command. See the
+ Reference Manual
+ <em>config(4)</em> for further information. The values can also
+ be sent separately as
+ options to the Erlang node when it is started, see the Reference
+ Manual
+ <em>erl(1)</em> for further information. </p>
+
+ <section>
+ <marker id="flags"></marker>
+ <title>Orber Environment Flags</title>
+ <p>The <c>Environment Flags</c> allows the user to activate debugging
+ facilities or change Orber's behavior. The latter may result in that
+ Orber is no longer compliant with the OMG standard, which may be necessary
+ when communicating with a non-compliant ORB.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle"><em>Hexadecimal Value</em></cell>
+ <cell align="left" valign="middle"><em>OMG Compliant</em></cell>
+ <cell align="left" valign="middle"><em>Description</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0001</cell>
+ <cell align="left" valign="middle">no</cell>
+ <cell align="left" valign="middle">Exclude CodeSet Component</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0002</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Local Typechecking</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0004</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Use Host Name in IOR</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0008</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Enable NAT</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0020</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Local Interceptors</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0080</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Light IFR</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0100</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Use IPv6</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0200</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">EXIT Tolerance</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0400</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Enable Incoming ACL</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">0800</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Enable Outgoing ACL</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">1000</cell>
+ <cell align="left" valign="middle">yes</cell>
+ <cell align="left" valign="middle">Use Current Interface in IOR</cell>
+ </row>
+ <tcaption>Orber Environment Flags</tcaption>
+ </table>
+ <p>Any combination of the flags above may be used and changes the
+ behavior as follows:</p>
+ <list type="bulleted">
+ <item><em>Exclude CodeSet Component</em> - instruct Orber to exclude
+ the CodeSet component in exported IOR:s. When activated, no
+ negotiating regarding character and wide character conversions
+ between the client and the server will occur. This flag will,
+ most likely, cause problems if your IDL specification contains
+ the data types wchar and/or wstring.</item>
+ <item><em>Local Typechecking</em> -
+ If activated, parameters, replies and raised exceptions
+ will be checked to ensure that the data is correct. If an error
+ occurs, the <c>error_logger</c> is used to generate reports.
+ One <em>MAY NOT</em> use this option for delivered systems due
+ to the extra overhead. Since this option activates typechecking
+ for all objects generated on the target node, it is also possible
+ to use the option <c>{local_typecheck, boolean()}</c>, when
+ invoking <c>oe_create/2</c>, <c>oe_create_link/2</c>,
+ <c>corba:create/4</c> or <c>corba:create_link/4</c>, to override
+ the configuration parameter.</item>
+ <item><em>Use Host Name in IOR</em> - normally Orber inserts the IP-number
+ in IOR:s when they are exported. In some cases, this will cause
+ the clients to open two connections instead of one.</item>
+ <item><em>Enable NAT</em> - if this flag is set, it is possible to use
+ the NAT (Network Address Translation) configuration parameters
+ (<c>nat_iiop_port</c>, <c>nat_iiop_ssl_port</c> and
+ <c>nat_ip_address</c>).</item>
+ <item><em>Local Interceptors</em> - use interceptors for local
+ invocations.</item>
+ <item><em>Light IFR</em> - if the IFR is not explicitly used and this
+ flag is set, Orber will use a minimal IFR to reduce memory usage
+ and installation time.</item>
+ <item><em>Use IPv6</em> - when this option is activated, Orber will use
+ <c>IPv6</c> for inter-ORB communication.</item>
+ <item><em>EXIT Tolerance</em> - servers will survive even though the
+ call-back module caused an EXIT.</item>
+ <item><em>Enable Incoming ACL</em> - activates access control for incoming
+ connections.</item>
+ <item><em>Enable Outgoing ACL</em> - activates access control for outgoing
+ connections.</item>
+ <item><em>Use Current Interface in IOR</em> - when set, Orber will add
+ the interface the request came via to exported local IOR:s.</item>
+ </list>
+ <p>Invoking the operation
+ <seealso marker="orber">orber:info/1/2</seealso> will display the currently
+ set flags in a readable way.</p>
+ </section>
+ </section>
+
+ <section>
+ <title>Firewall Configuration</title>
+ <marker id="firewall"></marker>
+ <p>Firewalls are used to protect objects from clients in other networks or
+ sub-networks, but also to restrict which hosts internal objects may connect to
+ (i.e. <c>inbound protection</c> and <c>outbound protection</c>). A firewall
+ can limit access based on:</p>
+ <list type="bulleted">
+ <item><em>Transport Level</em> - performs access control decisions based on
+ address information in TCP headers.</item>
+ <item><em>Application Level</em> - understands GIOP messages and the specific
+ transport level inter-ORB Protocol supported e.g. IIOP.</item>
+ </list>
+ <p>This section describes how to configure a <c>Transport Level</c> firewall. It
+ must have prior knowledge of the source to destination mappings, and
+ conceptually has a configuration table containing tuples of the form:
+ <c>({inhost:inport}, {outhost:outport})</c>. If there are no port restrictions
+ it is rather easy to configure the firewall. Otherwise, we must consider the
+ following alternatives:</p>
+ <list type="bulleted">
+ <item><em>Incoming Requests</em> - Orber only uses the port-numbers specified
+ by the configuration parameters <em>iiop_port</em> and
+ <em>iiop_ssl_port</em>. Other ORB's may use several ports but it should
+ be possible to change this behavior. Consult the other ORBs
+ documentation.</item>
+ <item><em>Outgoing Requests</em> - Most ORB's, Orber included,
+ ask the OS to supply a vacant local port when connecting to the
+ server-side ORB. It is possible to change this behavior when using
+ Orber (i.e. set the configuration parameter <em>iiop_out_ports</em>).</item>
+ </list>
+ <warning>
+ <p>Using the option <c>iiop_out_ports</c> may result in that Orber runs out of
+ valid ports numbers. For example, other applications may steal some of the
+ ports or the number of concurrent outgoing connections to other ORBs may be
+ higher than expected. To reduce, but not eliminate, the risk you should use
+ <c>iiop_connection_timeout</c>.</p>
+ </warning>
+ <p>Firewall configuration example:</p>
+ <pre>
+# "Plain" IIOP
+To: Orber-IPNo:(iiop_port) From: ORB-IPNo:X
+To: ORB-IPNo:Z From: Orber-IPNo:(iiop_out_ports | Any Port)
+
+# IIOP via SSL
+To: Orber-IPNo:(iiop_port) From: ORB-IPNo:X
+To: Orber-IPNo:(iiop_ssl_port) From: ORB-IPNo:Y
+To: ORB-IPNo:Z From: Orber-IPNo:(iiop_out_ports | Any Port)
+ </pre>
+ <p>If the communication take place via a
+ <seealso marker="ch_install#firewall_nat">TCP Firewall with NAT</seealso>
+ (Network Address Translation), we must activate this behavior and define
+ the external address and/or ports.</p>
+ <marker id="firewall_nat"></marker>
+ <image file="firewall_nat.gif">
+ <icaption>
+TCP Firewall With NAT</icaption>
+ </image>
+ <p>Using NAT makes it possible to use different host data for different network
+ domains. This way we can share Internet Protocol address resources or
+ obscure resources. To enable this feature the
+ <seealso marker="ch_install#flags">Enable NAT</seealso> flag must be set and
+ <c>nat_iiop_port</c>, <c>nat_iiop_ssl_port</c> and <c>nat_ip_address</c>
+ configured, which maps to <c>iiop_port</c>, <c>iiop_ssl_port</c> and
+ <c>ip_address</c> respectively. Hence, the firewall must be configured to
+ translate the external to the internal representation correctly. If these NAT parameters
+ are assigned a single port number or IP address, only those will be used when
+ an IOR is exported to another ORB. When <c>ip_address</c> is set to
+ <c>{multiple, [IPAddress]}</c>, <c>nat_ip_address</c> should be configured in the same
+ way, so that each NAT IP address can be translated to a valid address by the firewall.
+ If objects are supposed to be accessible via different interfaces and port, see also
+ <seealso marker="ch_install#interfaces">Interface Configuration</seealso>,
+ the options <c>{local, DefaultNATIPAddress, [{IPAddress, NATIPAddress}]}</c> and/or
+ <c>{local, DefaultNATPort, [{Port, NATPort}]}</c> shall be used. The default NAT IP address
+ and port, should be translated to the value of <c>ip_address_local</c> and the default
+ listen port by the firewall. If the IP address and/or port is not found in the list,
+ the default values will be inserted in the IOR. The firewall must be able to translate
+ these correctly.</p>
+ <p>If it is necessary to limit the access to an ORB within a secure network,
+ but other applications running on the same host may not be blocked out,
+ one can use a <em>Application Level</em> firewall or Orber Access Control
+ List (ACL). The latter makes it possible for the user to define which hosts
+ may communicate, either as server or client, with Orber. This is achieved by
+ defining the configuration parameter
+ <seealso marker="ch_install#config">iiop_acl</seealso>. The Classless Inter
+ Domain Routing (CIDR) <c>Filter</c> determines which peer interfaces and
+ ports the other ORB may use.</p>
+ <table>
+ <row>
+ <cell align="left" valign="middle"><em>Filter</em></cell>
+ <cell align="left" valign="middle"><em>Peer Interface(s)</em></cell>
+ <cell align="left" valign="middle"><em>Peer Port(s)</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"10.1.1.1"</cell>
+ <cell align="left" valign="middle">10.1.1.1</cell>
+ <cell align="left" valign="middle">any</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"10.1.1.1/8"</cell>
+ <cell align="left" valign="middle">10.0.0.0-10.255.255.255</cell>
+ <cell align="left" valign="middle">any</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"10.1.1.1/8#4001"</cell>
+ <cell align="left" valign="middle">10.0.0.0-10.255.255.255</cell>
+ <cell align="left" valign="middle">4001</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"10.1.1.1/8#4001/5001"</cell>
+ <cell align="left" valign="middle">10.0.0.0-10.255.255.255</cell>
+ <cell align="left" valign="middle">4001-5001</cell>
+ </row>
+ <tcaption>Orber ACL Filters</tcaption>
+ </table>
+ <p>Orber ACL, also allows the user to define which local interface(s) may be used,
+ but will not detect <c>spoofing</c>. The operation
+ <seealso marker="orber_acl">orber_acl:match/2/3</seealso> makes it easy to
+ verify whether access would be granted or not. For example, if Orber would
+ be started with the ACL <c>[{tcp_out, "10.1.1.1/8#4001/5001"}]</c>, then
+ <c>orber_acl:match/2</c> would behave as follows:</p>
+ <code type="none">
+erl> orber_acl:match({11,1,1,1}, tcp_out).
+false
+
+erl> orber_acl:match({10,1,1,1}, tcp_out).
+true
+
+erl> orber_acl:match({11,1,1,1}, tcp_out, true).
+{false,[],0}
+
+erl> orber_acl:match({10,1,1,1}, tcp_out, true).
+{true,[],{4001,5001}}
+ </code>
+ <p>Only if the returned boolean is true the extra return values makes a
+ difference. In the example above, <c>{true,[],{4001,5001}}</c> means that
+ Orber may connect to <c>"10.1.1.1"</c>, using any local interface,
+ if the server-side ORB listens for incoming connect requests on a port
+ within the range 4001-5001. Note, invoking the <c>orber_acl:match/2/3</c>
+ operation, will not result in a connect attempt by Orber. The reason for
+ this, is that this function may be used on a live node as well as in test
+ environment. Hence, if a local interface is currently not available or no
+ server-side ORB available via the given host/port(s), will not be detected
+ by Orber.</p>
+ </section>
+
+ <section>
+ <title>Interface Configuration</title>
+ <marker id="interfaces"></marker>
+ <p>In many cases it is sufficient to simply configure the underlying OS which
+ local interfaces shall be used for all applications. But, in some cases
+ it is required, due to, for example, the firewall configuration, that different
+ local interfaces are used for different applications. Some times, it is even
+ necessary to use a specific interface for a single CORBA object. This section
+ describe how one can alter this in different ways.</p>
+ <p>The default behavior is that Orber lets the OS configuration decide which interface
+ will be added in IOR:s exported to another ORB and the local interface used
+ when connecting to another ORB (Orber act as client side ORB). The latter can be
+ overridden by setting the configuration parameters <c>iiop_ssl_ip_address_local</c>
+ and/or <c>ip_address_local</c>, which will affect IIOP via SSL and IIOP
+ respectively. These parameters can be overridden by using the Orber generic
+ <c>interface</c> Context or defining an ACL (Access Control List). The latter
+ always takes precedence if a local interface is included (e.g.
+ <c>[{tcp_out, "10.0.0.0/8", ["10.0.0.1"]}]</c>). If the interface is excluded
+ (e.g. <c>[{tcp_out, "10.0.0.0/8"}]</c>), the interface chosen will, in the following
+ order, be determined by
+ <c>#'IOP_ServiceContext'{}</c>, <c>ip_address_local/iiop_ssl_ip_address_local</c> or
+ the configuration of the underlying system.</p>
+ <p>Adding the interface context, for generated stubs/skeletons, is done in the
+ following way:</p>
+ <code type="none">
+Ctx = #'IOP_ServiceContext'{context_id = ?ORBER_GENERIC_CTX_ID,
+ context_data = {interface, "10.0.0.1"}},
+'CosNaming_NamingContext':resolve(NS, [{context, [Ctx]}], Name),
+ </code>
+ <p>It is also possible to add the context to
+ <c>corba:string_to_object/2, corba:resolve_initial_references/2, corba:resolve_initial_references_remote/3, corba:list_initial_services_remote/2, corba_object:not_existent/2, corba_object:non_existent/2</c> and <c>corba_object:is_a/3</c>.
+ The operations exported by <c>corba_object</c> are affected
+ if the supplied IOR is external. The function <c>corba:string_to_object/2</c>
+ might require the interface context if a <c>corbaloc</c> or a <c>corbaloc</c>
+ string is passed (See the
+ <seealso marker="ch_naming_service#interop_ns">INS</seealso> chapter),
+ while <c>corba:resolve_initial_references_remote/3</c> and
+ <c>corba:list_initial_services_remote/2</c> always connect to another ORB and
+ it might be necessary to add the context.
+ The remaining <c>corba</c> operations are affected if calls are re-directed
+ by setting the <c>orbInitRef</c> and/or <c>orbDefaultInitRef</c> configuration
+ parameters. For more information, see the Reference Manual for each module.</p>
+ <p>Configuring which interface(s) that shall be used when exporting an IOR to
+ another ORB, is determined by <c>nat_ip_address</c>, setting the flag
+ <seealso marker="ch_install#flags">16#1000</seealso>
+ and <c>ip_address</c>, in that order. Orber listens for incoming connections
+ either via all interfaces or the interface defined by <c>ip_address</c>. It is
+ also possible to add and remove extra listen interfaces by using
+ <c>orber:add_listen_interface/2/3</c> and <c>orber:remove_listen_interface/1</c>.
+ In this case one should set the 16#1000 flag and, if necessary, set the
+ configuration parameters
+ <c>{local, DefaultNATIPAddress, [{IPAddress, NATIPAddress}]}</c> and/or
+ <c>{local, DefaultNATPort, [{Port, NATPort}]}</c>.</p>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_interceptors.xml b/lib/orber/doc/src/ch_interceptors.xml
new file mode 100644
index 0000000000..27b254c4bf
--- /dev/null
+++ b/lib/orber/doc/src/ch_interceptors.xml
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2001</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Interceptors</title>
+ <prepared>Nick</prepared>
+ <docno></docno>
+ <date>2001-08-16</date>
+ <rev></rev>
+ <file>ch_interceptors.xml</file>
+ </header>
+
+ <section>
+ <title>Using Interceptors</title>
+ <p>For Inter-ORB communication, e.g., via <c>IIOP</c>, it is possible
+ to intercept requests and replies. To be able to use <c>Interceptors</c>
+ Orber the configuration parameter <c>interceptors</c> must be defined.</p>
+
+ <section>
+ <title>Configure Orber to Use Interceptors</title>
+ <p>The configuration parameter <c>interceptors</c> must be defined, e.g.,
+ as command line option:</p>
+ <code type="none">
+erl -orber interceptors "{native, ['myInterceptor']}"
+ </code>
+ <p>It is possible to use more than one interceptor; simply add them to the
+ list and they will be invoked in the same order as they appear in the list.</p>
+ <p>One can also active and deactivate an interceptor during
+ run-time, but this will only affect currently existing connections.
+ For more information, consult Orber's Reference Manual regarding the
+ operations <c>orber:activate_audit_trail/0/1</c> and
+ <c>orber:activate_audit_trail/0/1.</c></p>
+ </section>
+
+ <section>
+ <title>Creating Interceptors</title>
+ <p>Each supplied interceptor <em>must</em> export the following functions:</p>
+ <list type="bulleted">
+ <item><em>new_out_connection/3/5</em> - one of these operations is called when
+ a client application calls an object residing on remote ORB.
+ If an interceptor exports both versions, arity 3 and 5, which
+ operation that will be invoked is Orber internal.</item>
+ <item><em>new_in_connection/3/5</em> - one of these operations is invoked
+ when a client side ORB tries to set up a connection to the target ORB.
+ If an interceptor exports both versions, arity 3 and 5, which
+ operation that will be invoked is Orber internal.</item>
+ <item><em>out_request/6</em> - supplies all request data on the client side
+ ORB.</item>
+ <item><em>out_request_encoded/6</em> - similar to <c>out_request</c>
+ but the request body is encode.</item>
+ <item><em>in_request_encoded/6</em> - after a new request arrives at the
+ target ORB the request data is passed to the interceptor in
+ encoded format.</item>
+ <item><em>in_request/6</em> - prior to invoking the operation on the
+ target object, the interceptor <c>in_request</c> is called.</item>
+ <item><em>out_reply/6</em> - after the target object replied the
+ <c>out_reply</c> operation is called with the result of the object
+ invocation.</item>
+ <item><em>out_reply_encoded/6</em> - before sending a reply back to the
+ client side ORB this operation is called with the result in
+ encoded format.</item>
+ <item><em>in_reply_encoded/6</em> - after the client side ORB receives
+ a reply this function is called with the reply in encoded
+ format.</item>
+ <item><em>in_reply/6</em> - before delivering the reply to the client
+ this operation is invoked.</item>
+ <item><em>closed_in_connection/1</em> - when a connection is terminated
+ on the client side this function is called.</item>
+ <item><em>closed_out_connection/1</em> - if an outgoing connection is
+ terminated this operation will be invoked.</item>
+ </list>
+ <p>The operations <c>new_out_connection</c>, <c>new_in_connection</c>,
+ <c>closed_in_connection</c> and <c>closed_out_connection</c> operations
+ are only invoked <em>once</em> per connection. The remaining operations
+ are called, as shown below, for every Request/Reply to/from remote
+ CORBA Objects.</p>
+ <marker id="interceptor_operations"></marker>
+ <image file="interceptor_operations.gif">
+ <icaption>
+The Invocation Order of Interceptor Functions.</icaption>
+ </image>
+ </section>
+ </section>
+
+ <section>
+ <title>Interceptor Example</title>
+ <p>Assume we want to create a simple access service which purpose is to:</p>
+ <list type="bulleted">
+ <item>Only allow incoming request from ORB's residing on a certain set of
+ nodes.</item>
+ <item>Restrict the objects any client may invoke operations on.</item>
+ <item>Only allow outgoing requests to call a limited set of external
+ ORB's.</item>
+ <item>Add a checksum to each binary request/reply body.</item>
+ </list>
+ <p>To restricts the access we use a <c>protected</c> and <c>named</c> ets-table
+ holding all information. How the ets-table is initiated and maintained
+ is implementation specific, but it contain
+ <c>{Node, ObjectTable, ChecksumModule}</c> where <c>Node</c> is used as
+ ets-key, <c>ObjectTable</c> is a reference to another ets-table in which
+ we store which objects the clients are allowed to invoke operations on
+ and <c>ChecksumModule</c> determines which module we should use to handle
+ the checksums. </p>
+ <code type="none">
+new_in_connection(Arg, Host, Port) ->
+ %% Since we only use one interceptor we do not care about the
+ %% input Arg since it is set do undefined by Orber.
+ case ets:lookup(in_access_table, Host) of
+ [] ->
+ %% We may want to log the Host/Port to see if someone tried
+ %% to hack in to our system.
+ exit("Access not granted");
+ [{Host, ObjTable, ChecksumModule}] ->
+ {ObjTable, ChecksumModule}
+ end.
+ </code>
+ <p>The returned tuple, i.e., {ObjTable, ChecksumModule}, will be passed
+ as the first argument whenever invoking one of the interceptor functions.
+ Unless the connection attempt did not fail we are now ready for receiving
+ requests from the client side ORB.</p>
+ <p>When a new request comes in the first interceptor function to be invoked is
+ <c>in_request_encoded</c>. We will remove the checksum from the coded
+ request body in the following way:</p>
+ <code type="none">
+in_request_encoded({ObjTable, ChecksumModule}, ObjKey, Ctx, Op, Bin, Extra) ->
+ NewBin = ChecksumModule:remove_checksum(Bin),
+ {NewBin, Extra}.
+ </code>
+ <p>If the checksum check fails the <c>ChecksumModule</c> should invoke exit/1.
+ But if the check succeeded we are now ready to check if the client-ORB
+ objects are allowed to invoke operations on the target object. Please note,
+ it is possible to run both checks in <c>in_request_encoded</c>. Please
+ note, the checksum calculation must be relatively fast to ensure a
+ good throughput.</p>
+ <p>If we want to we can restrict any clients to only use a subset of operations
+ exported by a server:</p>
+ <code type="none">
+in_request({ObjTable, ChecksumModule}, ObjKey, Ctx, Op, Params, Extra) ->
+ case ets:lookup(ObjTable, {ObjKey, Op}) of
+ [] ->
+ exit("Client tried to invoke illegal operation");
+ [SomeData] ->
+ {Params, Extra}
+ end.
+ </code>
+ <p>At this point Orber are now ready to invoke the operation on the target
+ object. Since we do not care about what the reply is the <c>out_reply</c>
+ function do nothing, i.e.:</p>
+ <code type="none">
+out_reply(_, _, _, _, Reply, Extra) ->
+ {Reply, Extra}.
+ </code>
+ <p>If the client side ORB expects a checksum to be added to the reply we
+ add it by using:</p>
+ <code type="none">
+out_reply_encoded({ObjTable, ChecksumModule}, ObjKey, Ctx, Op, Bin, Extra) ->
+ NewBin = ChecksumModule:add_checksum(Bin),
+ {NewBin, Extra}.
+ </code>
+ <warning>
+ <p>If we manipulate the binary as above the behavior <em>must</em>
+ be <c>Bin == remove_checksum(add_checksum(Bin))</c>.</p>
+ </warning>
+ <p>For outgoing requests the principle is the same. Hence, it is not further
+ described here. The complete interceptor module would look like:</p>
+ <code type="none">
+
+-module(myInterceptor).
+
+%% Interceptor functions.
+-export([new_out_connection/3,
+\011 new_in_connection/3,
+\011 closed_in_connection/1,
+\011 closed_out_connection/1,
+\011 in_request_encoded/6,
+\011 in_reply_encoded/6,
+\011 out_reply_encoded/6,
+\011 out_request_encoded/6,
+\011 in_request/6,
+\011 in_reply/6,
+\011 out_reply/6,
+\011 out_request/6]).
+
+new_in_connection(Arg, Host, Port) ->
+ %% Since we only use one interceptor we do not care about the
+ %% input Arg since it is set do undefined by Orber.
+ case ets:lookup(in_access_table, Host) of
+ [] ->
+ %% We may want to log the Host/Port to see if someone tried
+ %% to hack in to our system.
+ exit("Access not granted");
+ [{Host, ObjTable, ChecksumModule}] ->
+ {ObjTable, ChecksumModule}
+ end.
+
+new_out_connection(Arg, Host, Port) ->
+ case ets:lookup(out_access_table, Host) of
+ [] ->
+ exit("Access not granted");
+ [{Host, ObjTable, ChecksumModule}] ->
+ {ObjTable, ChecksumModule}
+ end.
+
+in_request_encoded({_, ChecksumModule}, ObjKey, Ctx, Op, Bin, Extra) ->
+ NewBin = ChecksumModule:remove_checksum(Bin),
+ {NewBin, Extra}.
+
+in_request({ObjTable, _}, ObjKey, Ctx, Op, Params, Extra) ->
+ case ets:lookup(ObjTable, {ObjKey, Op}) of
+ [] ->
+ exit("Client tried to invoke illegal operation");
+ [SomeData] ->
+ {Params, Extra}
+ end.
+
+out_reply(_, _, _, _, Reply, Extra) ->
+ {Reply, Extra}.
+
+out_reply_encoded({_, ChecksumModule}, ObjKey, Ctx, Op, Bin, Extra) ->
+ NewBin = ChecksumModule:add_checksum(Bin),
+ {NewBin, Extra}.
+
+out_request({ObjTable, _}, ObjKey, Ctx, Op, Params, Extra) ->
+ case ets:lookup(ObjTable, {ObjKey, Op}) of
+ [] ->
+ exit("Client tried to invoke illegal operation");
+ [SomeData] ->
+ {Params, Extra}
+ end.
+
+out_request_encoded({_, ChecksumModule}, ObjKey, Ctx, Op, Bin, Extra) ->
+ NewBin = ChecksumModule:add_checksum(Bin),
+ {NewBin, Extra}.
+
+in_reply_encoded({_, ChecksumModule}, ObjKey, Ctx, Op, Bin, Extra) ->
+ NewBin = ChecksumModule:remove_checksum(Bin),
+ {NewBin, Extra}.
+
+in_reply(_, _, _, _, Reply, Extra) ->
+ {Reply, Extra}.
+
+closed_in_connection(Arg) ->
+ %% Nothing to clean up.
+ Arg.
+
+closed_out_connection(Arg) ->
+ %% Nothing to clean up.
+ Arg.
+ </code>
+ <note>
+ <p>One can also use interceptors for debugging purposes, e.g.,
+ print which objects and operations are invoked with which arguments
+ and the outcome of the operation. In conjunction with the configuration
+ parameter <c>orber_debug_level</c> it is rather easy to find out what
+ went wrong or just to log the traffic. </p>
+ </note>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_introduction.xml b/lib/orber/doc/src/ch_introduction.xml
new file mode 100644
index 0000000000..16240e1eb0
--- /dev/null
+++ b/lib/orber/doc/src/ch_introduction.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1999</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Introduction to Orber</title>
+ <prepared>Megan Lynch</prepared>
+ <docno></docno>
+ <date>1998-09-21</date>
+ <rev></rev>
+ <file>ch_introduction.xml</file>
+ </header>
+
+ <section>
+ <title>Overview</title>
+ <p>The Orber application is a CORBA compliant Object Request Brokers
+ (ORB), which provides CORBA functionality in an Erlang
+ environment. Essentially, the ORB channels communication or
+ transactions between nodes in a
+ heterogeneous environment.
+ </p>
+ <p><term id="CORBA"><termdef>Common Object Request Broker Architecture is a common communication standard developed by the OMG (Object Management Group)</termdef></term>(Common Object Request Broker
+ Architecture) provides an interface definition language allowing
+ efficient system integration and also supplies standard
+ specifications for some services.
+ </p>
+ <p>The Orber application contains the following parts:</p>
+ <list type="bulleted">
+ <item>
+ <p>ORB kernel and IIOP support</p>
+ </item>
+ <item>
+ <p>Interface Repository</p>
+ </item>
+ <item>
+ <p>Interface Definition Language Mapping for Erlang</p>
+ </item>
+ <item>
+ <p>CosNaming Service</p>
+ </item>
+ </list>
+
+ <section>
+ <title>Benefits</title>
+ <p>Orber provides CORBA functionality in an Erlang environment that enables:
+ </p>
+ <list type="bulleted">
+ <item>
+ <p><em>Platform interoperability and transparency</em></p>
+ <p>Orber enables communication between
+ OTP applications or Erlang environment applications and
+ other platforms; for example, Windows NT, Solaris
+ etc, allowing platform transparency. This is especially helpful in situations where there
+ are many users with different platforms. For example,
+ booking airline tickets would require the airline database
+ and hundreds of travel agents (who may not have the same
+ platform) to book seats on flights. </p>
+ </item>
+ <item>
+ <p><em>Application level interoperability and transparency</em></p>
+ <p>As Orber is a CORBA compliant application, its purpose is
+ to provide interoperability and transparency on the application
+ level.
+ Orber simplifies the distributed system software by defining the
+ environment as objects, which in effect, views
+ everything as identical regardless of programming
+ languages. <br></br>
+ Previously, time-consuming programming was
+ required to facilitate communication between different languages.
+ However, with CORBA compliant Orber the Application
+ Programmer is relieved of this task. This makes
+ communication on an application level relatively transparent to the user.</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Purpose and Dependencies</title>
+ <p>The system architecture and OTP dependencies of Orber are illustrated in figure 1 below:</p>
+ <marker id="dependent"></marker>
+ <image file="dependent.gif">
+ <icaption>
+Figure 1: Orber Dependencies and Structure.</icaption>
+ </image>
+ <p>Orber is dependent on Mnesia (see the Mnesia
+ documentation) - an Erlang database management application
+ used to store object information.</p>
+ <note>
+ <p>Although Orber does not have a run-time
+ application dependency to IC (an <term id="IDL"><termdef>Interface Definition Language - IDL is the OMG specified interface definition language, used to define the CORBA object interfaces.</termdef></term>compiler for
+ Erlang), it is necessary when building
+ services and applications. See the IC documentation for
+ further details.</p>
+ </note>
+ <marker id="orbs"></marker>
+ <image file="orbs.gif">
+ <icaption>
+Figure 2: ORB interface between Java and Erlang Environment Nodes.</icaption>
+ </image>
+ <p>This simplified illustration in figure 2 demonstrates how Orber can facilitate communication in a heterogeneous environment. The Erlang Nodes running
+ OTP and the other Node running applications written in Java can
+ communicate via an <term id="ORB"><termdef>Object Request Broker - ORB open software bus architecture specified by the OMG which allows object components to communicate in a heterogeneous environment.</termdef></term>(Object Request Broker). Using
+ Orber means that CORBA functions can be used to achieve this
+ communication.
+ </p>
+ <p>For example, if one of the above nodes requests an object, it does not
+ need to know if that object is located on the same, or
+ different, Erlang or Java nodes. The ORB will channel the
+ information creating platform and application transparency for
+ the user.
+ </p>
+ </section>
+
+ <section>
+ <title>Prerequisites</title>
+ <p>To fully understand the concepts presented in the
+ documentation, it is recommended that the user is familiar
+ with distributed programming and CORBA (Common Object Request
+ Broker Architecture).
+ </p>
+ <p>Recommended reading includes <em>Open Telecom Platform Documentation Set</em> and <em>Concurrent Programming in Erlang</em>.
+ </p>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_naming_service.xml b/lib/orber/doc/src/ch_naming_service.xml
new file mode 100644
index 0000000000..510ccf2543
--- /dev/null
+++ b/lib/orber/doc/src/ch_naming_service.xml
@@ -0,0 +1,461 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>CosNaming Service</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-10-10</date>
+ <rev></rev>
+ <file>ch_naming_service.xml</file>
+ </header>
+
+ <section>
+ <title>Overview of the CosNaming Service</title>
+ <p>The CosNaming Service is a service developed to help users and
+ programmers identify objects by human readable names rather than by a
+ reference. By binding a name to a naming context (another object), a
+ contextual reference is formed. This is helpful when navigating in the
+ object space. In addition, identifying objects by name allows you to evolve
+ and/or relocate objects without client code modification.</p>
+ <p>The CosNaming service has some concepts that are important:</p>
+ <list type="bulleted">
+ <item>
+ <p><em>name binding</em> - a name to object association.</p>
+ </item>
+ <item>
+ <p><em>naming context</em> - is an object that contains a set of
+ name bindings in which each name is unique. Different names can be
+ bound to the same object.
+ </p>
+ </item>
+ <item>
+ <p><em>to bind a name</em> - is to create a name binding in a given
+ context.</p>
+ </item>
+ <item>
+ <p><em>to resolve a name</em> - is to determine the object associated
+ with the name in a given context.</p>
+ </item>
+ </list>
+ <p>A name is always resolved in a context, there no absolute names exist.
+ Because a context is like any other object, it can also be bound to
+ a name
+ in a naming context.
+ This will result in a naming graph (a directed graph with notes and
+ labeled edges). The graph allows more complex names to refer to an
+ object. Given a context, you can use a sequence to reference an object.
+ This sequence is henceforth referred to as <em>name</em> and the
+ individual
+ elements in the sequence as <em>name components</em>. All but the
+ last name component are bound to naming contexts.
+ </p>
+ <p>The diagram in figure 1 illustrates how the Naming Service provides a
+ contextual relationship between objects, NamingContexts and
+ NameBindings to create an object locality, as the
+ object itself, has no name.
+ </p>
+ <marker id="name"></marker>
+ <image file="name.gif">
+ <icaption>
+Figure 1: Contextual object relationships using the Naming Service.</icaption>
+ </image>
+ <p>The naming contexts provide a directory of contextual
+ reference and naming for objects (an object can appear to
+ have more than one name).
+ </p>
+ <p>In figure 1 the object to the right can either be
+ called <c>alpha</c> from one context or <c>gamma</c> from another.
+ </p>
+ <p>The Naming Service has an initial naming context, which is shown
+ in the diagram as the top-most object in the naming graph.
+ It has two names <c>beta</c> and <c>epsilon</c>, which are bound to other
+ naming contexts. The initial naming context is a well known location
+ used to share a common name space between multiple programs.
+ You can traverse the naming graph until you reach a name, which is
+ bound to an object, which is not a naming context.
+ </p>
+ <p>We recommend reading <em>chapter 12, CORBA Fundamentals and Programming</em>, for detailed information regarding the
+ Naming Service. </p>
+ </section>
+
+ <section>
+ <title>The Basic Use-cases of the Naming Service</title>
+ <p>The basic use-cases of the Naming Service are:
+ </p>
+ <list type="bulleted">
+ <item>Fetch initial reference to the naming service.</item>
+ <item>Creating a naming context.</item>
+ <item>Binding and unbinding names to objects.</item>
+ <item>Resolving a name to an object.</item>
+ <item>Listing the bindings of a naming context.</item>
+ <item>Destroying a naming context.</item>
+ </list>
+
+ <section>
+ <title>Fetch Initial Reference to the Naming Service</title>
+ <p>In order to use the naming service you have to fetch an
+ initial reference to it. This is done with:</p>
+ <code type="none">
+\011NS = corba:resolve_initial_references("NameService").
+ </code>
+ <note>
+ <p>NS in the other use-cases refers to this initial reference.</p>
+ </note>
+ </section>
+
+ <section>
+ <title>Creating a Naming Context</title>
+ <p>There are two functions for creating a naming context.
+ The first function, which only creates a naming context object is:</p>
+ <code type="none">
+NC = 'CosNaming_NamingContext':new_context(NS).
+ </code>
+ <p>The other function creates a naming context and binds it to a name in
+ an already existing naming context (the initial context in this
+ example):
+ </p>
+ <code type="none">
+NC = 'CosNaming_NamingContext':bind_new_context(NS, lname:new(["new"])).
+ </code>
+ </section>
+
+ <section>
+ <title>Binding and Unbinding Names to Objects</title>
+ <p>The following steps illustrate how to bind/unbind an object reference
+ to/from a name. For the example below, assume that the NamingContexts
+ in the path are already bound to the name <c>/workgroup/services</c>,
+ and that reference to the services context are in the variable
+ <c>Sc</c>.</p>
+ <list type="ordered">
+ <item>
+ <p>Use the naming library functions to create a name</p>
+ <code type="none">
+Name = lname:new(["object"]).
+ </code>
+ </item>
+ <item>
+ <p>Use CosNaming::NamingContext::bind() to bind a name to an object</p>
+ <code type="none">
+'CosNaming_NamingContext':bind(Sc, Name, Object).
+ </code>
+ </item>
+ <item>
+ <p>Use CosNaming::NamingContext::unbind() to remove the NameBinding from an object</p>
+ <code type="none">
+'CosNaming_NamingContext':unbind(Sc, Name).
+ </code>
+ </item>
+ </list>
+ <note>
+ <p>Objects can have more than one name, to indicate different paths to
+ the same object.</p>
+ </note>
+ </section>
+
+ <section>
+ <title>Resolving a Name to an Object</title>
+ <p>The following steps show how to retrieve the object reference to the service context
+ above (/workgroup/services). </p>
+ <list type="ordered">
+ <item>
+ <p>Use the naming library functions to create a name path:</p>
+ <code type="none">
+Name = lname:new(["workgroup", "services"]).
+ </code>
+ </item>
+ <item>
+ <p>Use CosNaming::NamingContext::resolve() to to resolve the name to an object</p>
+ <code type="none">
+Sc = 'CosNaming_NamingContext':resolve(NS, Name).
+ </code>
+ </item>
+ </list>
+ <p>An alternative is to use:</p>
+ <code type="none">
+Sc = corba:string_to_object("corbaname:rir:/NameService#workgroup/services/").
+ </code>
+ <p>The <c>corbaname</c> schema is described further in the Interoperable
+ Naming Service section.</p>
+ </section>
+
+ <section>
+ <title>Listing the Bindings in a NamingContext</title>
+ <list type="ordered">
+ <item>
+ <p>Use CosNaming::NamingContext::list() to list all the bindings in a context</p>
+ <p>The following code retrieves and lists up to 10 bindings from a context.</p>
+ <code type="none">
+{BList, BIterator} = 'CosNaming_NamingContext':list(Sc, 10).
+
+lists:foreach(fun({{Id, Kind},BindingType}) -> case BindingType of
+\011nobject ->
+\011\011io:format("id: %s, kind: %s, type: object~n", [Id, Kind]);
+\011 _ ->
+\011\011io:format("id: %s, kind: %s, type: ncontext~n", [Id, Kind])
+\011end end,
+\011Blist).
+ </code>
+ </item>
+ </list>
+ <note>
+ <p>Normally a <term id="BindingIterator"><termdef>The binding iterator (Like a book mark) indicates which objects have been read from the list.</termdef></term>is helpful in situations where you have a large\011number of objects
+ in a list, as the programmer then can traverse it more easily.
+ In Erlang it is not needed, because lists are easily handled in the
+ language itself.</p>
+ </note>
+ <warning>
+ <p>Remember that the BindingIterator (BIterator in the example) is an object and therefore
+ <em>must be removed</em> otherwise dangling processes will occur.
+ Use <c>CosNaming::BindingIterator::destroy()</c> to remove it.</p>
+ </warning>
+ <code type="none">
+ 'CosNaming_NamingContext':destroy(BIterator).
+ </code>
+ </section>
+
+ <section>
+ <title>Destroying a Naming Context</title>
+ <p>The naming contexts are persistent and must be explicitly removed.
+ (they are also removed if all Orber nodes in the domain are stopped).</p>
+ <list type="ordered">
+ <item>
+ <p>Use CosNaming::NamingContext::destroy() to remove a NamingContext</p>
+ <code type="none">
+'CosNaming_NamingContext':destroy(Sc).
+ </code>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Interoperable Naming Service</title>
+ <marker id="interop_ns"></marker>
+ <p>The OMG specifies URL schemes, which represent a CORBA object and a CORBA object
+ bound in a NamingContext, for resolving references from other ORB:s. As of today,
+ three schemes are defined:</p>
+ <list type="bulleted">
+ <item>IOR</item>
+ <item>corbaloc</item>
+ <item>corbaname</item>
+ </list>
+
+ <section>
+ <title>IOR</title>
+ <p>A stringified IOR is a valid URL format but difficult for humans to handle
+ through non-electronic means. This URL format does not depend on a specific
+ Name Service and, thus, is robust and insulates the client from the encapsulated
+ transport information and object key used to reference the object.</p>
+ </section>
+
+ <section>
+ <title>corbaloc</title>
+ <p>The notation of this scheme is similar to the more well known URL <c>HTTP</c>, and
+ the full <c>corbaloc</c> BNF is:</p>
+ <code type="none"><![CDATA[
+<corbaloc> = "corbaloc:"<obj_addr_list>["/"<key_string>]
+<obj_addr_list> = [<obj_addr>","]*<obj_addr>
+<obj_addr> = <prot_addr> | <future_prot_addr>
+<prot_addr> = <rir_prot_addr> | <iiop_prot_addr>
+<rir_prot_addr> = <rir_prot_token>":"
+<rir_prot_token> = rir
+<future_prot_addr> = <future_prot_id><future_prot_addr>
+<future_prot_id> = <future_prot_token>":"
+<iiop_prot_addr> = <iiop_id><iiop_addr>
+<iiop_id> = <iiop_default> | <iiop_prot_token>":"
+<iiop_default> = ":"
+<iiop_prot_token> = "iiop"
+<iiop_addr> = <version><host>[":"<port>]
+<host> = DNS-style Host Name | ip_address
+<version> = <major>"."<minor>"@" | empty_string
+<port> = number
+<major> = number
+<minor> = number
+<key_string> = for example NameService
+ ]]></code>
+ <p>The <c>corbaloc</c> scheme consists of 3 parts:</p>
+ <list type="bulleted">
+ <item>Protocol - as of today <c>iiop</c> or <c>rir</c> is supported.
+ Using <c>rir</c> means that we will resolve the given Key locally, i.e.,
+ the same as using <c>corba:resolve_initial_references("NameService").</c></item>
+ <item>IIOP address - this address can be divided into <c>Version</c>, <c>Host</c>
+ and <c>Port</c>. If the version or port are left out they will be set to the default
+ values <c>1.0</c> and <c>2809</c> respectively.</item>
+ <item>KeyString - an object key, e.g., "NameService". If no Key is
+ supplied the default value "NameService" will be used.</item>
+ </list>
+ <p>A <c>corbaloc</c> can be passed used together with
+ <c>corba:string_to_object("corbaloc::[email protected]:4001/NameService")</c> or set as the
+ configuration variables <c>orbInitilRef</c> or <c>orbDefaultInitilRef</c> and calling
+ <c>corba:resolve_initial_references("NameService")</c>. For more information see the Orber
+ installation chapter. <c>corbaloc</c> can also be used together with <c>corbaname</c>
+ to gain an easy access to a Name Service.</p>
+ <p>Currently, the OMG defines a set of reserved keys and the type of object,
+ listed below, they should be associated with. The <c>NameService</c>
+ key may <em>not</em> be changed in Orber. If you want to add one of the
+ reserved keys as an initial service, simply use:</p>
+ <code type="none">
+1> Factory = cosNotificationApp:start_global_factory().
+2> corba:add_initial_service("NotificationService", Factory).
+ </code>
+ <p>This object can then be easily resolved by any other ORB, supporting
+ the Interoperable Naming Service, by using:</p>
+ <code type="none">
+3> NF = corba:string_to_object("corbaloc::[email protected]:4001/NotificationService").
+ </code>
+ <table>
+ <row>
+ <cell align="center" valign="middle"><em>String Name</em></cell>
+ <cell align="center" valign="middle"><em>Object Type</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">RootPOA</cell>
+ <cell align="left" valign="middle">PortableServer::POA</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">POACurrent</cell>
+ <cell align="left" valign="middle">PortableServer::Current</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">InterfaceRepository</cell>
+ <cell align="left" valign="middle">CORBA::Repository</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">NameService</cell>
+ <cell align="left" valign="middle">CosNaming::NamingContext</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">TradingService</cell>
+ <cell align="left" valign="middle">CosTrading::Lookup</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">SecurityCurrent</cell>
+ <cell align="left" valign="middle">SecurityLevel1::Current/SecurityLevel2::Current</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">TransactionCurrent</cell>
+ <cell align="left" valign="middle">CosTransaction::Current</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">DynAnyFactory</cell>
+ <cell align="left" valign="middle">DynamicAny::DynAnyFactory</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">ORBPolicyManager</cell>
+ <cell align="left" valign="middle">CORBA::PolicyManager</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">PolicyCurrent</cell>
+ <cell align="left" valign="middle">CORBA::PolicyCurrent</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">NotificationService</cell>
+ <cell align="left" valign="middle">CosNotifyChannelAdmin::EventChannelFactory</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">TypedNotificationService</cell>
+ <cell align="left" valign="middle">CosTypedNotifyChannelAdmin::TypedEventChannelFactory</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">CodecFactory</cell>
+ <cell align="left" valign="middle">IOP::CodecFactory</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">PICurrent</cell>
+ <cell align="left" valign="middle">PortableInterceptors::Current</cell>
+ </row>
+ <tcaption>Currently reserved key strings</tcaption>
+ </table>
+ </section>
+
+ <section>
+ <title>corbaname</title>
+ <p>The <c>corbaname</c> URL scheme is an extension of the <c>corbaloc</c> scheme, and
+ the full <c>corbaname</c> BNF is:</p>
+ <code type="none"><![CDATA[
+<corbaname> = "corbaname:"<obj_addr_list>["/"<key_string>]["#"<string_name>]
+<obj_addr_list> = as described above.
+<key_string> = as described above.
+ ]]></code>
+ <p>The <c>string_name</c>, concatenated to the <c>corbaloc</c> string, identifies
+ a binding in a naming context. A name component consists of two parts, i.e.,
+ <c>id</c> and <c>kind</c>, which is represented as follows:</p>
+ <table>
+ <row>
+ <cell align="center" valign="middle"><em>String Name</em></cell>
+ <cell align="center" valign="middle"><em>Name Sequence</em></cell>
+ <cell align="center" valign="middle"><em>Comment</em></cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"id1/./id3.kind3"</cell>
+ <cell align="left" valign="middle">[{"id1",""},{"",""},{"id3","kind3"}]</cell>
+ <cell align="left" valign="middle">The first component has no kind defined while the second component's both fields are empty.</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"id1//id3.kind3"</cell>
+ <cell align="left" valign="middle">ERROR</cell>
+ <cell align="left" valign="middle">Not allowed, must insert a '.' between the '//'.</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"id1.kind1/."</cell>
+ <cell align="left" valign="middle">[{"id1","kind1"},{"",""}]</cell>
+ <cell align="left" valign="middle">The first component's fields are both set while the second component's both fields are empty.</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"id1.kind1/id2."</cell>
+ <cell align="left" valign="middle">ERROR</cell>
+ <cell align="left" valign="middle">An Id with a trailing '.' is not allowed.</cell>
+ </row>
+ <row>
+ <cell align="left" valign="middle">"i\\\\/d1/i\\\\.d2"</cell>
+ <cell align="left" valign="middle">[{"i/d1",""},{"i.d2",""}]</cell>
+ <cell align="left" valign="middle">Since '.' and '/' are used to separate the components, these tokens must be escaped to be correctly converted.</cell>
+ </row>
+ <tcaption>Stringified Name representation</tcaption>
+ </table>
+ <p>After creating a stringified Name we can either use:</p>
+ <code type="none">
+NameStr = "org.erlang",
+NS = corba:resolve_initial_references("NameService"),
+Obj = 'CosNaming_NamingContextExt':resolve_str(NS, NameStr),
+ </code>
+ <p>or concatenate the Name String using:</p>
+ <code type="none">
+NameStr = "Swedish/Soccer/Champions",
+Address = "corbaname:iiop:[email protected]:2000/NameService",
+NS = corba:resolve_initial_references("NameService"),
+URLStr = 'CosNaming_NamingContextExt':to_url(NS, Address, NameStr),
+Obj = corba:string_to_object(URLStr),
+ </code>
+ <p>Using the first alternative, the configuration variables <c>orbInitilRef</c> and
+ <c>orbDefaultInitilRef</c>, will determine which other ORB's or the local
+ Name Service Orber will try to resolve the given string from. The second
+ alternative allows us to override any settings of the configuration variables.</p>
+ <p>The function <c>to_url/3</c> will perform any necessary escapes compliant with
+ IETF/RFC 2396. US-ASCII alphanumeric characters and
+ <c><![CDATA["," | "/" | ":" | "?" | "@" | "&" | "=" | "+" | "$" | ";" | "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"]]></c>
+ are not escaped.</p>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_orber_kernel.xml b/lib/orber/doc/src/ch_orber_kernel.xml
new file mode 100644
index 0000000000..6669641432
--- /dev/null
+++ b/lib/orber/doc/src/ch_orber_kernel.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1999</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>The Orber Application</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-10-05</date>
+ <rev></rev>
+ <file>ch_orber_kernel.xml</file>
+ </header>
+
+ <section>
+ <title>ORB Kernel and IIOP </title>
+ <p>This chapter gives a brief overview of the ORB and its relation
+ to objects in a distributed environment and the usage of Domains
+ in Orber.
+ Also Internet-Inter ORB Protocol (<term id="IIOP"><termdef>Internet-Inter ORB Protocol</termdef></term>) is discussed and how this
+ protocol facilitates communication between ORBs to
+ allow the accessory of persistent server objects in Erlang. </p>
+ </section>
+
+ <section>
+ <title>The Object Request Broker (ORB)</title>
+ <p>An ORB kernel can be best described as the middle-ware, which
+ creates relationships between clients and servers, but is
+ defined by its interfaces. This allows transparency for the
+ user, as they do not have to be aware of where the requested
+ object is located. Thus, the programmer can work with any other
+ platform provided that an IDL mapping and interfaces exist.
+ </p>
+ <p>The IDL mapping which is described in a later chapter is the
+ translator between other platforms, and languages. However, it
+ is the ORB, which provides objects with a structure by which
+ they can communicate with other objects.
+ </p>
+ <p>ORBs intercept and direct messages from one object, pass this
+ message using IIOP to another ORB, which then directs the
+ message to the indicated object.
+ </p>
+ <p>An ORB is the base on which interfaces, communication stubs
+ and mapping can be built to enable communication between
+ objects. Orber uses <term id="domains"><termdef>A domain allows a more efficient communication protocol to be used between objects not on the same node without the need of an ORB</termdef></term>to group objects of different nodes
+ </p>
+ <p>How the ORB provides communication is shown very simply in figure 1 below: </p>
+ <marker id="theORB"></marker>
+ <image file="theORB.gif">
+ <icaption>
+Figure 1: How the Object Request Broker works.</icaption>
+ </image>
+ <p>The domain in Orber gives an extra aspect to the distributed object
+ environment as each domain has one ORB, but it is distributed over
+ a number of object in different nodes. The domain binds objects on
+ nodes more closely than distributed objects in different domains. The
+ advantage of a domain is that a faster communication exists between
+ nodes and objects of the same domain. An internal communication protocol
+ (other than IIOP) allows a
+ more efficient communication between these objects. </p>
+ <note>
+ <p>Unlike objects, domains can only have one name
+ so that no communication ambiguities exist between domains.</p>
+ </note>
+ </section>
+
+ <section>
+ <title>Internet Inter-Object Protocol (IIOP)</title>
+ <p>IIOP is a communication protocol developed by the OMG to
+ facilitate communication in a distributed object-oriented
+ environment.
+ </p>
+ <p>Figure 2 below demonstrates how IIOP works between objects:</p>
+ <marker id="iiop"></marker>
+ <image file="iiop.gif">
+ <icaption>
+Figure 2: IIOP communication between domains and objects.</icaption>
+ </image>
+ <note>
+ <p>Within the Orber domains the objects communicate without
+ using the IIOP. However, the user is unaware of the difference in protocols, as this difference is not visible. </p>
+ </note>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_orberweb.xml b/lib/orber/doc/src/ch_orberweb.xml
new file mode 100644
index 0000000000..30513bac09
--- /dev/null
+++ b/lib/orber/doc/src/ch_orberweb.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2001</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>OrberWeb</title>
+ <prepared>Nick</prepared>
+ <docno></docno>
+ <date>2001-11-22</date>
+ <rev></rev>
+ <file>ch_orberweb.xml</file>
+ </header>
+
+ <section>
+ <title>Using OrberWeb</title>
+ <p><c>OrberWeb</c> is intended to make things easier when developing and
+ testing applications using <c>Orber</c>. The user is able to interact
+ with <c>Orber</c> via a GUI by using a web browser.</p>
+ <p><c>OrberWeb</c> requires that the application <c>WebTool</c> is available and
+ started on at least one node; if so <c>OrberWeb</c> can usually be used to
+ to access <c>Orber</c> nodes supporting the Interoperable Naming
+ Service. How to start OrberWeb is described in
+ <seealso marker="ch_orberweb#startorberweb">Starting OrberWeb</seealso></p>
+ <p>The <c>OrberWeb</c> GUI consists of a <em>Menu Frame</em> and a
+ <em>Data Frames</em>.</p>
+
+ <section>
+ <title>The Menu Frame</title>
+ <p>The menu frame consists of:</p>
+ <list type="bulleted">
+ <item><em>Node List</em> - which node to access.</item>
+ <item><em>Configuration</em> - see how Orber on the current node is configured.</item>
+ <item><em>Name Service</em> - browse the NameService and add/remove a Context/Object.</item>
+ <item><em>IFR Types</em> - see which types are registered in IFR.</item>
+ <item><em>Create Object</em> - create a new object and, possibly, store it in the NameService.</item>
+ </list>
+ <p></p>
+ <marker id="menuframe"></marker>
+ <image file="menuframe.gif">
+ <icaption>The Menu Frame.</icaption>
+ </image>
+ <p>Which nodes we can access is determined by what is returned when invoking <c>[node()|nodes()]</c>.
+ If you cannot see a desired node in the list, you have to call <c>net_adm:ping(Node)</c>.
+ But this requires that the node is started with the distribution switched on
+ (e.g. <c>erl -sname myNode</c>); this also goes for the node <c>OrberWeb</c> is running on.</p>
+ </section>
+
+ <section>
+ <title>The Configuration Data Frame</title>
+ <p>When accessing the <em>Configuration</em> page OrberWeb presents a table containing the
+ <seealso marker="ch_install#config">configuration settings</seealso> for the target node.</p>
+ <p></p>
+ <marker id="dataframe3"></marker>
+ <image file="dataframe3.gif">
+ <icaption>Configuration Settings.</icaption>
+ </image>
+ <p>It is also possible to change those configuration parameters which can be changed when Orber
+ is already started. The Key-Value pairs is given as a list of tuples, e.g.,
+ <em>[{orber_debug_level, 5}, {iiop_timeout, 60}, {giop_version, {1,2}}]</em>. If one tries to update a parameter
+ which may not be changed an error message will be displayed.</p>
+ </section>
+
+ <section>
+ <title>The IFR Data Frame</title>
+ <p>All types registered in the IFR (Interface Repository) which have an associated IFR-id
+ can be viewed via the IFR Data Frame. This gives the user an easy way to confirm that
+ all necessary IDL-specifications have been properly registered. All available types are
+ listed when choosing <c>IFR Types</c> in the menu frame:</p>
+ <p></p>
+ <marker id="dataframe1"></marker>
+ <image file="dataframe1.gif">
+ <icaption>Select Type.</icaption>
+ </image>
+ <p>After selecting a type all definitions of that particular type will be displayed. If no such
+ bindings exists the table will be empty.</p>
+ <p>Since Orber adds definitions to the IFR when it is installed (e.g. CosNaming), not only
+ types defined by the user will show up in the table. In the figure below you find the
+ the NameService exceptions listed.</p>
+ <p></p>
+ <marker id="dataframe2"></marker>
+ <image file="dataframe2.gif">
+ <icaption>List Registered Exceptions.</icaption>
+ </image>
+ </section>
+
+ <section>
+ <title>The NameService Data Frame</title>
+ <p>The NameService main purpose is to make possible to bind object references, which
+ can client applications can resolve and invoke operations on. Initially, the NameService
+ is empty. The most common scenario, is that user applications create Contexts and add objects
+ in the NameService. OrberWeb allows the user to do the very same thing.</p>
+ <p>When referencing an object or context you must use stringified NameComponents.
+ For more information see the <seealso marker="ch_naming_service">Interoperable Naming Service</seealso>.
+ In the following example we will use the string <em>org/erlang/TheObjectName</em>, where
+ <em>org</em> and <em>erlang</em> will be contexts and <em>TheObjectName</em>
+ the name the object will be bound to.</p>
+ <p>Since the NameService is empty in the beginning, the only thing we can do is creating
+ a new context. Simply write <em>org</em> in the input field and press <c>New Context</c>.
+ If OrberWeb was able to create the context or not, is shown in the completion message.
+ If successful, just press the <c>Go Back</c> button. Now, a link named <em>org</em> should
+ be listed in the table. In the right column the context type is displayed. Contexts are
+ associated with <em>ncontext</em> and objects with <em>nobject</em>.</p>
+ <p></p>
+ <marker id="dataframe5"></marker>
+ <image file="dataframe5.gif">
+ <icaption>Add a New Context.</icaption>
+ </image>
+ <p>To create the next level context (i.e. erlang), simply follow the link and repeat the procedure.
+ If done correctly, a table containing the same data as the following figure should be the result
+ if you follow the <em>erlang</em> link. Note, that the path is displayed in the yellow
+ field.</p>
+ <p></p>
+ <p>If a context does not contain any sub-contexts or object bindings, it is possible to
+ delete the context. If these requirements are met, a <c>Delete Context</c> button will appear.
+ A completion status message will be displayed after deleting the context.</p>
+ <p></p>
+ <marker id="dataframe6"></marker>
+ <image file="dataframe6.gif">
+ <icaption>Delete Context.</icaption>
+ </image>
+ <p>Now it is possible to bind an object using the complete name string. To find out how this is
+ done using OrberWeb see <seealso marker="ch_orberweb#create">Object Creation</seealso>.
+ For now, we will just assume that an object have been created and bound as <em>TheObjectName</em>. </p>
+ <p></p>
+ <marker id="dataframe7"></marker>
+ <image file="dataframe7.gif">
+ <icaption>Object Stored in the NameService.</icaption>
+ </image>
+ <p>If you follow the <em>TheObjectName</em> link, data about the bound object will be
+ presented. Note, depending on which type of object it is, the information given differs.
+ It would, for example, not be possible to display a Pid for all types of objects since
+ it might reside on a Java-ORB. In the figure below a CosNotification FilterFactory have
+ been bound under the name <em>org/erlang/TheObjectName</em>.</p>
+ <p></p>
+ <marker id="dataframe8"></marker>
+ <image file="dataframe8.gif">
+ <icaption>Object Data.</icaption>
+ </image>
+ <p>OrberWeb also makes it possible to remove a binding and dispose the associated object.
+ Pressing <em>Unbind</em> the binding will be removed but the object will still exist.
+ But, if the <em>Unbind and Dispose</em> button is pressed, the binding will be removed
+ and the object terminated.</p>
+ </section>
+
+ <section>
+ <title>The Object Creation Data Frame</title>
+ <marker id="create"></marker>
+ <p>This part makes it possible to create a new object and, if wanted, store it the
+ NameService.</p>
+ <p></p>
+ <marker id="dataframe4"></marker>
+ <image file="dataframe4.gif">
+ <icaption>Create a New Object.</icaption>
+ </image>
+ <list type="bulleted">
+ <item><em>Module</em> - simply type the name of the module of the object type
+ you want to create. If the module begins with a capital letter, we normally must
+ write <c>'Module_Interface'</c>. But, when using OrberWeb, you shall <em>NOT</em>.
+ Since we cannot create linked objects this is not an option.</item>
+ <item><em>Arguments</em> - the supplied arguments must be written as a single Erlang term.
+ That is, as a list or tuple containing other Erlang terms. The arguments will be
+ passed to the <c>init</c> function of the object. It is, however, not possible
+ to use Erlang records. If OrberWeb is not able to parse the arguments, an error message
+ will be displayed. If left empty, an empty list will be passed.</item>
+ <item><em>Options</em> - the options can be the ones listed under
+ <seealso marker="Module_Interface">Module_Interface</seealso> in Orber's Reference manual.
+ Hence, they are not further described here. But, as an example, in the figure above
+ we started the object as globally registered. If no options supplied the object
+ will be started as default.</item>
+ <item><em>Name String</em> - if left empty the object will <em>not</em> be registered in the
+ NameService. Hence, it is important that you can access the object in another way,
+ otherwise a zombie process is created. In the previous section we used the name string
+ <em>org/erlang/TheObjectName</em>. If we choose the same name here, the listed contexts
+ (i.e. <em>org</em> and <em>erlang</em>) must be created <em>before</em> we can create
+ and bind the object to <em>TheObjectName</em>. If this requirement is not met, OrberWeb
+ cannot bind the object. Hence, the object will be terminated and an error message
+ displayed.</item>
+ <item><em>Operation to use</em> - which option choosed will determine the behavior of OrberWeb.
+ If you choose <em>bind</em> and a binding already exists an error message will be
+ displayed and the newly started object terminated. But if you choose <em>rebind</em>
+ any existing binding will over-written.</item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Starting OrberWeb</title>
+ <marker id="startorberweb"></marker>
+ <p>You may choose to start OrberWeb on node, on which Orber is running or not. But
+ the Erlang distribution must be started (e.g. by using -sname aNodeName). Now, all
+ you have to do is to invoke:</p>
+ <code type="none">
+
+erl> webtool:start().
+WebTool is available at http://localhost:8888/
+Or http://127.0.0.1:8888/
+ </code>
+ <p>Type one of the URL:s in your web-browser. If you want to access the WebTool application
+ from different machine, just replace <c>localhost</c> with its name. For more information,
+ see the WebTool documentation.</p>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_security.xml b/lib/orber/doc/src/ch_security.xml
new file mode 100644
index 0000000000..938025a629
--- /dev/null
+++ b/lib/orber/doc/src/ch_security.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1999</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>How to use security in Orber</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1999-09-01</date>
+ <rev></rev>
+ <file>ch_security.xml</file>
+ </header>
+
+ <section>
+ <title>Security in Orber</title>
+
+ <section>
+ <title>Introduction</title>
+ <p>Orber SSL provides authentication, privacy and integrity for your
+ Erlang applications. Based on the Secure Sockets Layer protocol, the
+ Orber SSL ensures that your Orber clients and servers can
+ communicate securely over any network.
+ This is done by tunneling IIOP through an SSL connection. To get
+ the node secure you will also need to have a firewall which
+ only lets through connections to certain ports.</p>
+ </section>
+
+ <section>
+ <title>Enable Usage of Secure Connections</title>
+ <p>To enable a secure Orber domain you have to set the configuration variable
+ <em>secure</em> which currently only can have one of two values;
+ <em>no</em> if no security for IIOP should be used and <em>ssl</em> if
+ secure connections is needed (<em>ssl</em> is currently the only supported
+ security mechanism).</p>
+ <p>The default is no security.</p>
+ </section>
+
+ <section>
+ <title>Configurations when Orber is Used on the Server Side</title>
+ <p>The following three configuration variables can be used to configure Orber's SSL
+ behavior on the server side.</p>
+ <list type="bulleted">
+ <item><em>ssl_server_certfile</em> - which is a path to a file containing a
+ chain of PEM encoded certificates for the Orber domain as server.</item>
+ <item><em>ssl_server_cacertfile</em> - which is a path to a file containing
+ a chain of PEM encoded certificates for the Orber domain as server.</item>
+ <item><em>ssl_server_verify</em> - which specifies type of verification:
+ 0 = do not verify peer; 1 = verify peer, verify client once,
+ 2 = verify peer, verify client once, fail if no peer certificate.
+ The default value is 0.</item>
+ <item><em>ssl_server_depth</em> - which specifies verification depth, i.e.
+ how far in a chain of certificates the verification process shall
+ proceed before the verification is considered successful. The default
+ value is 1. </item>
+ <item><em>ssl_server_keyfile</em> - which is a path to a file containing a
+ PEM encoded key for the Orber domain as server.</item>
+ <item><em>ssl_server_password</em> - only used if the private keyfile is
+ password protected.</item>
+ <item><em>ssl_server_ciphers</em> - which is string of ciphers as a colon
+ separated list of ciphers.</item>
+ <item><em>ssl_server_cachetimeout</em> - which is the session cache timeout
+ in seconds.</item>
+ </list>
+ <p>There also exist a number of API functions for accessing the values of these variables:</p>
+ <list type="bulleted">
+ <item>orber:ssl_server_certfile/0</item>
+ <item>orber:ssl_server_cacertfile/0</item>
+ <item>orber:ssl_server_verify/0</item>
+ <item>orber:ssl_server_depth/0</item>
+ <item>orber:ssl_server_keyfile/0</item>
+ <item>orber:ssl_server_password/0</item>
+ <item>orber:ssl_server_ciphers/0</item>
+ <item>orber:ssl_server_cachetimeout/0</item>
+ </list>
+ </section>
+
+ <section>
+ <title>Configurations when Orber is Used on the Client Side</title>
+ <p>When the Orber enabled application is the client side in the secure connection the
+ different configurations can be set per client process instead and not for the whole domain
+ as for incoming calls.</p>
+ <p>One can use configuration variables to set default values for the domain but they can be changed
+ per client process. Below is the list of client configuration variables.</p>
+ <list type="bulleted">
+ <item><em>ssl_client_certfile</em> - which is a path to a file containing a
+ chain of PEM encoded certificates used in outgoing calls in the current
+ process.</item>
+ <item><em>ssl_client_cacertfile</em> - which is a path to a file containing a
+ chain of PEM encoded CA certificates used in outgoing calls in the
+ current process.</item>
+ <item><em>ssl_client_verify</em> - which specifies type of verification:
+ 0 = do not verify peer; 1 = verify peer, verify client once,
+ 2 = verify peer, verify client once, fail if no peer certificate.
+ The default value is 0.</item>
+ <item><em>ssl_client_depth</em> - which specifies verification depth, i.e.
+ how far in a chain of certificates the verification process shall proceed
+ before the verification is considered successful. The default value is 1. </item>
+ <item><em>ssl_client_keyfile</em> - which is a path to a file containing a
+ PEM encoded key when Orber act as client side ORB.</item>
+ <item><em>ssl_client_password</em> - only used if the private keyfile is
+ password protected.</item>
+ <item><em>ssl_client_ciphers</em> - which is string of ciphers as a colon
+ separated list of ciphers.</item>
+ <item><em>ssl_client_cachetimeout</em> - which is the session cache timeout
+ in seconds.</item>
+ </list>
+ <p>There also exist a number of API functions for accessing and changing the values of this
+ variables in the client processes.</p>
+ <p>Access functions:</p>
+ <list type="bulleted">
+ <item>orber:ssl_client_certfile/0</item>
+ <item>orber:ssl_client_cacertfile/0</item>
+ <item>orber:ssl_client_verify/0</item>
+ <item>orber:ssl_client_depth/0</item>
+ <item>orber:ssl_client_keyfile/0</item>
+ <item>orber:ssl_client_password/0</item>
+ <item>orber:ssl_client_ciphers/0</item>
+ <item>orber:ssl_client_cachetimeout/0</item>
+ </list>
+ <p>Modify functions:</p>
+ <list type="bulleted">
+ <item>orber:set_ssl_client_certfile/1</item>
+ <item>orber:set_ssl_client_cacertfile/1</item>
+ <item>orber:set_ssl_client_verify/1</item>
+ <item>orber:set_ssl_client_depth/1</item>
+ </list>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/ch_stubs.xml b/lib/orber/doc/src/ch_stubs.xml
new file mode 100644
index 0000000000..785805a4d6
--- /dev/null
+++ b/lib/orber/doc/src/ch_stubs.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1999</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Stubs/Skeletons</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1999-09-03</date>
+ <rev>A</rev>
+ <file>ch_stubs.xml</file>
+ </header>
+
+ <section>
+ <title>Orber Stubs and Skeletons Description</title>
+ <p>This example describes the API and behavior of Orber stubs and skeletons.
+ </p>
+
+ <section>
+ <title>Server Start</title>
+ <p>Orber servers can be started in several ways. The chosen start functions determines
+ how the server can be accessed and its behavior.
+ </p>
+ <p>Using <c>Module_Interface:oe_create()</c> or <c>oe_create_link()</c>:
+ </p>
+ <list type="bulleted">
+ <item>No initial data can be passed.</item>
+ <item>Cannot be used as a supervisor child start function.</item>
+ <item>Only accessible through the object reference returned by the start function.
+ The object reference is no longer valid if the server dies and is restarted.</item>
+ </list>
+ <p>Using <c>Module_Interface:oe_create(Env)</c> or <c>oe_create_link(Env)</c>:</p>
+ <list type="bulleted">
+ <item>Initial data can be passed using <c>Env</c>.</item>
+ <item>Cannot be used as a supervisor child start function.</item>
+ <item>Only accessible through the object reference returned by the start function.
+ The object reference is no longer valid if the server dies and is restarted.</item>
+ </list>
+ <p>Using <c>Module_Interface:oe_create(Env, Options)</c>:</p>
+ <list type="bulleted">
+ <item>Initial data can be passed using <c>Env</c>.</item>
+ <item>Cannot be used as a supervisor child start function.</item>
+ <item>Accessible through the object reference returned by the start function. If the option
+ <c>{regname, RegName}</c> is used the object reference stays valid even if the
+ server has been restarted.</item>
+ <item>If the options <c>{persistent, true}</c> and <c>{regname, {global, Name}}</c> is used,
+ the result from an object invocation will be the exception 'OBJECT_NOT_EXIST'
+ only if the object has terminated with reason
+ <c>normal</c> or <c>shutdown</c>. If the object is in the process of restarting, the result
+ will be <c>{error, Reason}</c> or a system exception is raised.</item>
+ <item>The option <c>{pseudo, true}</c> makes it possible to start create non-server objects.
+ There are, however, some limitations, which are further described in the
+ <c>Pseudo objects</c> section.</item>
+ </list>
+ <p>Using <c>Module_Interface:oe_create_link(Env, Options)</c>:</p>
+ <list type="bulleted">
+ <item>Initial data can be passed using <c>Env</c>.</item>
+ <item>Can be used as a supervisor child start function if the option <c>{sup_child, true}</c> used.</item>
+ <item>Accessible through the object reference returned by the start function. If the option
+ <c>{regname, RegName}</c> is used the object reference stays valid even if the
+ server has been restarted.</item>
+ <item>If the options <c>{persistent, true}</c> and <c>{regname, {global, Name}}</c> is used,
+ the result from an object invocation will be the exception 'OBJECT_NOT_EXIST'
+ only if the object has terminated with reason
+ <c>normal</c> or <c>shutdown</c>. If the object is in the process of restarting, the result
+ will be <c>{error, Reason}</c> or a system exception is raised.</item>
+ <item>For starting a server as a supervisor child you should use the options
+ <c>[{persistent, true}, {regname, {global, Name}}, {sup_child, true}]</c> and of type <em>transient</em>.
+ This configuration allows you to delegate restarts to the supervisor and still be able to
+ use the same object reference and be able to see if the server is permanently terminated.
+ Please note you must use <em>supervisor/stdlib-1.7</em> or later and that the it returns
+ <c>{ok, Pid, Object}</c> instead of just <c>Object</c>.</item>
+ <item>Using the option <c>{pseudo, true}</c> have the same effect as using
+ <c>oe_create/2</c>.</item>
+ </list>
+ <warning>
+ <p>To avoid flooding Orber with old object references start erlang using the flag
+ <em>-orber objectkeys_gc_time Time</em>, which will remove all object references
+ related to servers being dead for Time seconds. To avoid extra overhead, i.e., performing
+ garbage collect if no persistent objects are started, the objectkeys_gc_time default value
+ is <em>infinity</em>. For more information, see the orber and corba documentation.</p>
+ </warning>
+ <warning>
+ <p>Orber still allow <c>oe_create(Env, {Type,RegName})</c> and <c>oe_create_link(Env, {Type,RegName})</c> to be used,
+ but may not in future releases.</p>
+ </warning>
+ </section>
+
+ <section>
+ <title>Pseudo Objects</title>
+ <p>This section describes Orber pseudo objects.
+ </p>
+ <p>The Orber stub can be used to start a <c>pseudo object</c>, which will create a non-server implementation.
+ A pseudo object introduce some limitations:</p>
+ <list type="bulleted">
+ <item>The functions <c>oe_create_link/2</c> is equal to <c>oe_create/2</c>, i.e.,
+ no link can or will be created.</item>
+ <item>The <c>BIF:s self()</c> and <c>process_flag(trap_exit,true)</c> behaves incorrectly.</item>
+ <item>The <c>IC</c> option <c>{{impl, "M::I"}, "other_impl"}</c> has no effect. The call-back
+ functions must be implemented in a file called <c>M_I_impl.erl</c></item>
+ <item>The call-back functions must be implemented as if the <c>IC</c> option
+ <c>{this, "M::I"}</c> was used.</item>
+ <item>The gen_server <c>State</c> changes have no effect. The user can provide information via
+ the <c>Env</c> start parameter and the State returned from <c>init/2</c> will be the State
+ passed in following invocations.</item>
+ <item>The server reply <c>Timeout</c> has no effect.</item>
+ <item>The compile option <c>from</c> has no effect.</item>
+ <item>The option <c>{pseudo, true}</c> overrides all other start options.</item>
+ <item>Only the functions, besides own definitions, <c>init/2</c> (called via oe_create*/2) and
+ <c>terminate/2</c> (called via corba:dispose/1) must be implemented.</item>
+ </list>
+ <p>By adopting the rules for <c>pseudo</c> objects described above we can use <c>oe_create/2</c>
+ to create <c>server</c> or <c>pseudo</c> objects, by excluding or including the
+ option <c>{pseudo, true}</c>, without changing the call-back module.</p>
+ <p>To create a pseudo object do the following:</p>
+ <code type="none">
+fingolfin 127> erl
+Erlang (BEAM) emulator version 4.9
+
+Eshell V4.9 (abort with ^G)
+1> ic:gen(myDefinition, [{this, "MyModule::MyInterface"}]).
+Erlang IDL compiler version 20
+ok
+2> make:all().
+Recompile: oe_MyDefinition
+Recompile: MyModule_MyInterface
+Recompile: MyModule_MyInterface_impl
+up_to_date
+3> PseudoObj = MyModule_MyInterface:oe_create(Env, [{pseudo, true}]).
+ </code>
+ <p>The call-back functions must be implemented as <c>MyFunction(OE_THIS, State, Args)</c>,
+ and called by <c>MyModule_MyInterface:MyFunction(PseudoObj, Args)</c>.</p>
+ </section>
+
+ <section>
+ <title>Call-back Module</title>
+ <p>This section provides an example of how a call-back module may be implemented.</p>
+ <note>
+ <p>Arguments and Replies are determined by the IDL-code and, hence, not
+ further described here.</p>
+ </note>
+ <code type="none">
+%%%-----------------------------------------------------------
+%%% File : Module_Interface_impl.erl
+%%% Author :
+%%% Purpose :
+%%% Created :
+%%%-----------------------------------------------------------
+
+-module('Module_Interface_impl').
+
+%%--------------- INCLUDES -----------------------------------
+-include_lib("orber/include/corba.hrl").
+-include_lib(".. ..").
+
+%%--------------- EXPORTS-------------------------------------
+%% Arity depends on IC configuration parameters and the IDL
+%% specification.
+-export([own_function/X]).
+
+
+%%--------------- gen_server specific ------------------------
+-export([init/1, terminate/2, code_change/3, handle_info/2]).
+
+%%------------------------------------------------------------
+%% function : server specific
+%%------------------------------------------------------------
+init(InitialData) ->
+ %% 'trap_exit' optional (have no effect if pseudo object).
+ process_flag(trap_exit,true),
+
+ %%--- Possible replies ---
+ %% Reply and await next request
+ {ok, State}.
+
+ %% Reply and if no more requests within Time the special
+ %% timeout message should be handled in the
+ %% Module_Interface_impl:handle_info/2 call-back function (use the
+ %% IC option {{handle_info, "Module::Interface"}, true}).
+ {ok, State, Timeout}
+
+ %% Return ignore in order to inform the parent, especially if it is a
+ %% supervisor, that the server, as an example, did not start in
+ %% accordance with the configuration data.
+ ignore
+ %% If the initializing procedure fails, the reason
+ %% is supplied as StopReason.
+ {stop, StopReason}
+
+terminate(Reason, State) ->
+ ok.
+
+code_change(OldVsn, State, Extra) ->
+ {ok, NewState}.
+
+%% If use IC option {{handle_info, "Module::Interface"}, true}.
+%% (have no effect if pseudo object).
+handle_info(Info, State) ->
+ %%--- Possible replies ---
+ %% Await the next invocation.
+ {noreply, State}.
+ %% Stop with Reason.
+ {stop, Reason, State}.
+
+%%--- two-way ------------------------------------------------
+%% If use IC option {this, "Module:Interface"}
+%% (Required for pseudo objects)
+own_function(This, State, .. Arguments ..) ->
+%% IC options this and from
+own_function(This, From, State, .. Arguments ..) ->
+%% IC option from
+own_function(From, State, .. Arguments ..) ->
+ %% Send explicit reply to client.
+ corba:reply(From, Reply),
+ %%--- Possible replies ---
+ {noreply, State}
+ {noreply, State, Timeout}
+
+
+%% If not use IC option {this, "Module:Interface"}
+own_function(State, .. Arguments ..) ->
+ %%--- Possible replies ---
+ %% Reply and await next request
+ {reply, Reply, State}
+
+ %% Reply and if no more requests within Time the special
+ %% timeout message should be handled in the
+ %% Module_Interface_impl:handle_info/2 call-back function (use the
+ %% IC option {{handle_info, "Module::Interface"}, true}).
+ {reply, Reply, State, Timeout}
+
+ %% Stop the server and send Reply to invoking object.
+ {stop, StopReason, Reply, State}
+
+ %% Stop the server and send no reply to invoking object.
+ {stop, StopReason, State}
+
+ %% Raise exception. Any changes to the internal State is lost.
+ corba:raise(Exception).
+
+%%--- one-way ------------------------------------------------
+%% If use IC option {this, "Module:Interface"}
+%% (Required for pseudo objects)
+own_function(This, State, .. Arguments ..) ->
+
+%% If not use IC option {this, "Module:Interface"}
+own_function(State, .. Arguments ..) ->
+ %%--- Possible results ---
+ {noreply, State}
+
+ %% Release and if no more requests within Time the special
+ %% timeout message should be handled in the
+ %% Module_Interface_impl:handle_info/2 call-back function (use the
+ %% IC option {{handle_info, "Module::Interface"}, true}).
+ {noreply, State, Timeout}
+
+ %% Stop the server with StopReason.
+ {stop, StopReason, State}
+
+%%--------------- END OF MODULE ------------------------------
+ </code>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/corba.xml b/lib/orber/doc/src/corba.xml
new file mode 100644
index 0000000000..6c89279733
--- /dev/null
+++ b/lib/orber/doc/src/corba.xml
@@ -0,0 +1,451 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>corba</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>corba</module>
+ <modulesummary>The functions on CORBA module level</modulesummary>
+ <description>
+ <p>This module contains functions that are specified on the CORBA module
+ level. It also contains some functions for creating and disposing
+ objects.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>create(Module, TypeID) -> Object</name>
+ <name>create(Module, TypeID, Env) -> Object</name>
+ <name>create(Module, TypeID, Env, Optons1) -> Object</name>
+ <name>create_link(Module, TypeID) -> Object</name>
+ <name>create_link(Module, TypeID, Env) -> Object</name>
+ <name>create_link(Module, TypeID, Env, Options2) -> Reply</name>
+ <fsummary>Create and start a new server object</fsummary>
+ <type>
+ <v>Module = atom()</v>
+ <v>TypeID = string()</v>
+ <v>Env = term()</v>
+ <v>Options1 = [{persistent, Bool} | {regname, RegName} | {local_typecheck, Bool}]</v>
+ <v>Options2 = [{sup_child, Bool} | {persistent, Bool} | {regname, RegName} | {pseudo, Bool} | {local_typecheck, Bool}]</v>
+ <v>RegName = {local, atom()} | {global, term()}</v>
+ <v>Reply = #objref | {ok, Pid, #objref}</v>
+ <v>Bool = true | false</v>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>These functions start a new server object. If you start it
+ without <em>RegName</em> it can only be accessed through the
+ returned object key. Started with a <em>RegName</em> the name is
+ registered locally or globally. </p>
+ <p><em>TypeID</em> is the repository ID of the server object type and
+ could for example look like "IDL:StackModule/Stack:1.0". </p>
+ <p><em>Module</em> is the name of the interface API module. </p>
+ <p><em>Env</em> is the arguments passed which will be passed to the
+ implementations <em>init</em> call-back function.</p>
+ <p>A server started with create/2, create/3 or create/4 does not care
+ about the parent, which means that the parent is not handled
+ explicitly in the generic process part. </p>
+ <p>A server started with create_link2, create_link/3 or create_link/4
+ is initially linked to the caller, the parent, and it will
+ terminate whenever the parent process terminates, and with the same
+ reason as the parent. If the server traps exits, the terminate/2
+ call-back function is called in order to clean up before the
+ termination. These functions should be used if the server is a
+ worker in a supervision tree.</p>
+ <p>If you use the option <c>{sup_child, true}</c> create_link/4 will return
+ <c>{ok, Pid, #objref}</c>, otherwise <c>#objref</c>, and make it possible
+ to start a server as a supervisor child (stdlib-1.7 or later).</p>
+ <p>If you use the option <c>{persistent, true}</c> you also must use the option
+ <c>{regname, {global, Name}}</c>. This combination makes it possible to tell
+ the difference between a server permanently terminated or in the process of restarting.</p>
+ <p>The option <c>{pseudo, true}</c>, allow us to create an object which is not a
+ server. Using <c>{pseudo, true}</c> overrides all other start options.
+ For more information see section <c>Module_Interface</c>.</p>
+ <p>If a server is started using the option <c>{persistent, true}</c> the object key
+ will not be removed unless it terminates with reason <em>normal</em> or <em>shutdown</em>.
+ Hence, if persistent servers is used as supervisor children they should be <em>transient</em>
+ and the <em>objectkeys_gc_time</em> should be modified (default equals <c>infinity</c>).</p>
+ <p>The option <c>{local_typecheck, boolean()}</c>, which overrides the
+ <seealso marker="ch_install#flags">Local Typechecking</seealso>
+ environment flag, turns on or off typechecking. If activated,
+ parameters, replies and raised exceptions will be checked to ensure that
+ the data is correct, when invoking operations on CORBA Objects within
+ the same Orber domain. Due to the extra overhead, this option
+ <em>MAY ONLY</em> be used during testing and development.</p>
+ <code type="none">
+Example:
+\011
+ corba:create('StackModule_Stack', "IDL:StackModule/Stack:1.0",
+\011 {10, test})
+ </code>
+ </desc>
+ </func>
+ <func>
+ <name>dispose(Object) -> ok</name>
+ <fsummary>Stop a server object</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This function is used for terminating the execution of a
+ server object. Invoking this operation on a NIL object reference,
+ e.g., the return value of <c>corba:create_nil_objref/0</c>, always
+ return ok. For valid object references, invoking this operation
+ more than once, will result in a system exception.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_nil_objref() -> Object</name>
+ <fsummary>Stop a server object</fsummary>
+ <type>
+ <v>Object = #objref representing NIL.</v>
+ </type>
+ <desc>
+ <p>Creates an object reference that represents the NIL value.
+ Attempts to invoke operations using the returned object reference
+ will return a system exception.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_subobject_key(Object, Key) -> Result</name>
+ <fsummary>Add an Erlang term to a private key field</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Key = term()</v>
+ <v>Result = #objref</v>
+ </type>
+ <desc>
+ <p>This function is used to create a subobject in a server object.
+ It can for example be useful when one wants unique access to
+ separate rows in a mnesia or an ETS table. The <em>Result</em> is
+ an object reference that will be seen as a unique reference to
+ the outside world but will access the same server object where one
+ can use the <em>get_subobject_key/1</em> function to get the private
+ key value.</p>
+ <p><em>Key</em> is stored in the object reference <em>Object</em>.
+ If it is a binary it will be stored as is and otherwise it is
+ converted to a binary before storage.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_subobject_key(Object) -> Result</name>
+ <fsummary>Fetch the contents of the private key field</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Result = #binary</v>
+ </type>
+ <desc>
+ <p>This function is used to fetch a subobject key from the object
+ reference <em>Object</em>. The result is a always a binary, if it
+ was an Erlang term that was stored with <em>create_subobject_key/2</em>
+ one can to do <em>binary_to_term/1</em> to get the real value. </p>
+ </desc>
+ </func>
+ <func>
+ <name>get_pid(Object) -> Result</name>
+ <fsummary>Get the process id from an object key</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Result = #pid | {error, Reason} | {'EXCEPTION',E}</v>
+ </type>
+ <desc>
+ <p>This function is to get the process id from an object, which is a
+ must when CORBA objects is started/handled in a supervisor tree.
+ The function will throw exceptions if the key is not found or
+ some other error occurs.</p>
+ </desc>
+ </func>
+ <func>
+ <name>raise(Exception)</name>
+ <fsummary>Generate an Erlang throw</fsummary>
+ <type>
+ <v>Exception = record()</v>
+ </type>
+ <desc>
+ <p>This function is used for raising corba exceptions as an
+ Erlang user generated exit signal. It will throw the tuple
+ <c>{'EXCEPTION', </c><em>Exception</em><c>}</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>reply(To, Reply) -> true</name>
+ <fsummary>Send explicit reply to client</fsummary>
+ <type>
+ <v>To = client reference</v>
+ <v>Reply = IDL type</v>
+ </type>
+ <desc>
+ <p>This function can be used by a CORBA object to explicitly send
+ a reply to a client that invoked a two-way operation. If this operation
+ is used, it is <em>not</em> possible to return a reply in the call-back
+ module.
+ <br></br>
+<em>To</em> must be the <em>From</em> argument provided to the
+ callback function, which requires that the IC option <em>from</em>
+ was used when compiling the IDL-file.</p>
+ </desc>
+ </func>
+ <func>
+ <name>resolve_initial_references(ObjectId) -> Object</name>
+ <name>resolve_initial_references(ObjectId, Contexts) -> Object</name>
+ <fsummary>Return the object reference for the given object id</fsummary>
+ <type>
+ <v>ObjectId = string()</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This function returns the object reference associated with the given
+ object id. Initially, only <c>"NameService"</c> is available. To add or remove
+ services use <c>add_initial_service/2</c> or <c>remove_initial_service/1</c>.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>add_initial_service(ObjectId, Object) -> boolean()</name>
+ <fsummary>Add a new initial service and associate it with the given id</fsummary>
+ <type>
+ <v>ObjectId = string()</v>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This operation allows us to add initial services, which can be accessed by
+ using <c>resolve_initial_references/1</c> or the <c>corbaloc</c> schema.
+ If using an Id defined by the OMG, the given object must be of the
+ correct type; for more information see the
+ <seealso marker="ch_naming_service#interop_ns">Interoperable Naming Service</seealso>.
+ Returns <c>false</c> if the given id already exists.</p>
+ </desc>
+ </func>
+ <func>
+ <name>remove_initial_service(ObjectId) -> boolean()</name>
+ <fsummary>Remove association between the given id and service</fsummary>
+ <type>
+ <v>ObjectId = string()</v>
+ </type>
+ <desc>
+ <p>If we don not want a certain service to be accessible, invoking this function
+ will remove the association. Returns <c>true</c> if able to terminate the
+ binding. If no such binding existed <c>false</c> is returned.</p>
+ </desc>
+ </func>
+ <func>
+ <name>list_initial_services() -> [ObjectId]</name>
+ <fsummary>Return a list of supported object id's</fsummary>
+ <type>
+ <v>ObjectId = string()</v>
+ </type>
+ <desc>
+ <p>This function returns a list of allowed object id's.</p>
+ </desc>
+ </func>
+ <func>
+ <name>resolve_initial_references_remote(ObjectId, Address) -> Object</name>
+ <name>resolve_initial_references_remote(ObjectId, Address, Contexts) -> Object</name>
+ <fsummary>Return the object reference for the given object id</fsummary>
+ <type>
+ <v>ObjectId = string()</v>
+ <v>Address = [RemoteModifier]</v>
+ <v>RemoteModifier = string()</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This function returns the object reference for the object id asked
+ for.
+ The remote modifier string has the following format:
+ <c>"iiop://host:port"</c>.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ <warning>
+ <p>This operation is not supported by most ORB's. Hence, use
+ <c>corba:string_to_object/1</c> instead.</p>
+ </warning>
+ </desc>
+ </func>
+ <func>
+ <name>list_initial_services_remote(Address) -> [ObjectId]</name>
+ <name>list_initial_services_remote(Address, Contexts) -> [ObjectId]</name>
+ <fsummary>Return a list of supported object id's</fsummary>
+ <type>
+ <v>Address = [RemoteModifier]</v>
+ <v>RemoteModifier = string()</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>ObjectId = string()</v>
+ </type>
+ <desc>
+ <p>This function returns a list of allowed object id's. The remote modifier
+ string has the following format: <c>"iiop://host:port"</c>.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ <warning>
+ <p>This operation is not supported by most ORB's. Hence, avoid
+ using it.</p>
+ </warning>
+ </desc>
+ </func>
+ <func>
+ <name>object_to_string(Object) -> IOR_string</name>
+ <fsummary>Convert the object reference to the external string representation</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>IOR_string = string()</v>
+ </type>
+ <desc>
+ <p>This function returns the object reference as the external string
+ representation of an IOR.</p>
+ </desc>
+ </func>
+ <func>
+ <name>string_to_object(IOR_string) -> Object</name>
+ <name>string_to_object(IOR_string, Contexts) -> Object</name>
+ <fsummary>Convert the external string representation to an object reference</fsummary>
+ <type>
+ <v>IOR_string = string()</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This function takes a <c>corbaname</c>, <c>corbaloc</c> or an IOR on the
+ external string representation and returns the object reference.</p>
+ <p>To lookup the NameService reference, simply use
+ <c>"corbaloc:iiop:[email protected]:4001/NameService"</c></p>
+ <p>We can also resolve an object from the NameService by using
+ <c>"corbaname:iiop:[email protected]:4001/NameService#org/Erlang/MyObj"</c></p>
+ <p>For more information about <c>corbaname</c> and <c>corbaloc</c>, see
+ the User's Guide (Interoperable Naming Service).</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ <p>How to handle the interface context is further described in the User's Guide.</p>
+ </desc>
+ </func>
+ <func>
+ <name>print_object(Data [, Type]) -> ok | {'EXCEPTION', E} | {'EXIT', R} | string()</name>
+ <fsummary>Print the supplied object</fsummary>
+ <type>
+ <v>Data = IOR_string | #objref (local or external) | corbaloc/corbaname string</v>
+ <v>Type = IoDevice | error_report | {error_report, Reason} | info_msg | {info_msg, Comment} | string</v>
+ <v>IoDevice = see the io-module</v>
+ <v>Reason = Comment = string()</v>
+ </type>
+ <desc>
+ <p>The object represented by the supplied data is dissected and presented
+ in a more readable form. The Type parameter is optional; if not supplied
+ standard output is used. For <c>error_report</c> and <c>info_msg</c>
+ the <c>error_logger</c> module is used, with or without Reason or Comment.
+ If the atom <c>string</c> is supplied this function will return a flat
+ list. The <c>IoDevice</c> is passed to the operation <c>io:format/2</c>.</p>
+ <p>If the supplied object is a local reference, the output is equivalent
+ to an object exported from the node this function is invoked on.</p>
+ </desc>
+ </func>
+ <func>
+ <name>add_alternate_iiop_address(Object, Host, Port) -> NewObject | {'EXCEPTION', E}</name>
+ <fsummary>Add ALTERNATE_IIOP_ADDRESS component to the supplied local object</fsummary>
+ <type>
+ <v>Object = NewObject = local #objref</v>
+ <v>Host = string()</v>
+ <v>Port = integer()</v>
+ </type>
+ <desc>
+ <p>This operation creates a new instance of the supplied object
+ containing an ALTERNATE_IIOP_ADDRESS component. Only the new instance
+ contains the new component. When this object is passed to another
+ ORB, which supports the ALTERNATE_IIOP_ADDRESS, requests will be routed
+ to the alternate address if it is not possible to communicate with
+ the main address.</p>
+ <p>The ALTERNATE_IIOP_ADDRESS component requires that IIOP-1.2 is used.
+ Hence, make sure both Orber and the other ORB is correctly configured.</p>
+ <p></p>
+ <note>
+ <p>Make sure that the given <c>Object</c> is accessible via the
+ alternate Host/port. For example, if the object is correctly started as
+ <c>local</c> or <c>pseudo</c>, the object should be available on all
+ nodes within a multi-node Orber installation. Since only one instance
+ exists for other object types, it will not be possible to access it
+ if the node it was started on terminates.</p>
+ </note>
+ </desc>
+ </func>
+ <func>
+ <name>orb_init(KeyValueList) -> ok | {'EXIT', Reason}</name>
+ <fsummary>Configure Orber before starting it</fsummary>
+ <type>
+ <v>KeyValueList = [{Key, Value}]</v>
+ <v>Key = any key listed in the configuration chapter</v>
+ <v>Value = allowed value associated with the given key</v>
+ </type>
+ <desc>
+ <p>This function allows the user to configure Orber in, for example,
+ an Erlang shell. Orber may <em>NOT</em> be started prior to invoking
+ this operation. For more information, see
+ <seealso marker="ch_install#config">configuration settings</seealso>
+ in the User's Guide.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/corba_object.xml b/lib/orber/doc/src/corba_object.xml
new file mode 100644
index 0000000000..810f06dbba
--- /dev/null
+++ b/lib/orber/doc/src/corba_object.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>corba_object</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1997-11-10</date>
+ <rev>A</rev>
+ </header>
+ <module>corba_object</module>
+ <modulesummary>The CORBA Object interface functions</modulesummary>
+ <description>
+ <p>This module contains the CORBA Object interface functions that can be
+ called for all objects.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>get_interface(Object) -> InterfaceDef</name>
+ <fsummary>Fetch the interface description</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>InterfaceDef = term()</v>
+ </type>
+ <desc>
+ <p>This function returns the full interface description for an object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_nil(Object) -> boolean()</name>
+ <fsummary>Return true, if the given object is a NIL object reference, otherwise false</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This function checks if the object reference has a nil object value,
+ which denotes no object. It is the reference that is tested and no
+ object implementation is involved in the test. </p>
+ </desc>
+ </func>
+ <func>
+ <name>is_a(Object, Logical_type_id) -> Return</name>
+ <name>is_a(Object, Logical_type_id, Contexts) -> Return</name>
+ <fsummary>Return true if the target object is an, or inherit from, object of the given type</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Logical_type_id = string()</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>Return = boolean() | {'EXCEPTION', E}</v>
+ </type>
+ <desc>
+ <p>The <em>Logical_type_id</em> is a string that is a share type
+ identifier (repository id). The function returns true if the object
+ is an instance of that type or an ancestor of the "most derived"
+ type of that object.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ <p>Note: Other ORB suppliers may not support this function completely
+ according to the OMG specification. Thus, a <em>is_a</em> call may
+ raise an exception or respond unpredictable if the Object is
+ located on a remote node.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_remote(Object) -> boolean()</name>
+ <fsummary>Determine whether or not an object reference is remote</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ </type>
+ <desc>
+ <p>This function returns true if an object reference is remote
+ otherwise false. </p>
+ </desc>
+ </func>
+ <func>
+ <name>non_existent(Object) -> Return</name>
+ <name>non_existent(Object, Contexts) -> Return</name>
+ <fsummary>Return false if the target object do not exist, otherwise true</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>Return = boolean() | {'EXCEPTION', E}</v>
+ </type>
+ <desc>
+ <p>This function can be used to test if the object has been destroyed.
+ It does this without invoking any application level code. The ORB
+ returns true if it knows that the object is destroyed otherwise
+ false.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ <p>Note: The OMG have specified two different operators, <c>_not_existent</c> (CORBA version 2.0 and 2.2) and
+ <c>_non_existent</c> (CORBA version 2.3), to be used for this function. It is not mandatory to support
+ both versions. Thus, a <em>non_existent</em> call may raise an exception or respond unpredictable
+ if the Object is located on a remote node. Depending on which version, ORB:s you intend to
+ communicate with supports, you can either use this function or <c>not_existent/1</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>not_existent(Object) -> Return</name>
+ <name>not_existent(Object, Contexts) -> Return</name>
+ <fsummary>Return false if the target object do not exist, otherwise true</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Contexts = [Context]</v>
+ <v>Context = #'IOP_ServiceContext'{context_id = CtxId, context_data = CtxData}</v>
+ <v>CtxId = ?ORBER_GENERIC_CTX_ID</v>
+ <v>CtxData = {interface, Interface} | {userspecific, term()} | {configuration, Options}</v>
+ <v>Interface = string()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = ssl_client_verify | ssl_client_depth | ssl_client_certfile | ssl_client_cacertfile |
+ ssl_client_password | ssl_client_keyfile | ssl_client_ciphers | ssl_client_cachetimeout</v>
+ <v>Value = allowed value associated with the given key</v>
+ <v>Return = boolean() | {'EXCEPTION', E}</v>
+ </type>
+ <desc>
+ <p>This function is implemented due to Interoperable purposes. Behaves as
+ <c>non_existent</c> except the operator <c>_not_existent</c> is used when
+ communicating with other ORB:s.</p>
+ <p>The <em>configuration</em> context is used to override the global
+ SSL client side
+ <seealso marker="ch_install#config">configuration</seealso>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_equivalent(Object, OtherObject) -> boolean()</name>
+ <fsummary>Return true if the target object and the supplied object easily can be determined to be equal, otherwise false</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>OtherObject = #objref</v>
+ </type>
+ <desc>
+ <p>This function is used to determine if two object references are
+ equivalent so far the ORB easily can determine. It returns
+ <em>true</em> if the target object reference is equal to the
+ other object reference and <em>false</em> otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>hash(Object, Maximum) -> int()</name>
+ <fsummary>Return a hash value based on the target object</fsummary>
+ <type>
+ <v>Object = #objref</v>
+ <v>Maximum = int()</v>
+ </type>
+ <desc>
+ <p>This function returns a hash value based on the object reference
+ that not will change during the lifetime of the object.
+ The <em>Maximum</em> parameter denotes the upper bound of the value.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/dataframe1.gif b/lib/orber/doc/src/dataframe1.gif
new file mode 100644
index 0000000000..21bd0afbc5
--- /dev/null
+++ b/lib/orber/doc/src/dataframe1.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe1.ps b/lib/orber/doc/src/dataframe1.ps
new file mode 100644
index 0000000000..a07a64adba
--- /dev/null
+++ b/lib/orber/doc/src/dataframe1.ps
@@ -0,0 +1,6021 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/menuframe1.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 189 248 423 544
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 702 string def
+
+% define space for color conversions
+/grays 234 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+189 248 translate
+
+% size of image (on paper, in 1/72inch coords)
+234.00000 295.99200 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+234 296 8 % dimensions of data
+[234 0 0 -296 0 296] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0000000000000e0e0e000000070707000000020202010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000010101010101000000
+000000010101010101000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000060606000000090909
+000000060606000000010101000000000000
+0101010101010000000000000000000b0b0b050505000000010101020202020202030303
+030303020202020202010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+030303030303030303030303030303030303030303030303010101050505050505010101
+010101050505050505010101030303030303030303030303030303030303030303030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202010101080808060606
+090909000000000000080808000000000000
+030303000000000000060606000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000020202000000
+000000000000000000050505000000000000
+030303000000030303060606060606000000090909080808030303030303030303030303
+030303030303030303030303010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101050505050505040404040404
+040404040404030303030303030303030303030303030303030303040404040404040404
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101040404040404040404030303
+030303030303030303030303040404040404040404040404040404040404040404040404
+030303030303030303030303030303040404040404040404010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404030303030303030303030303030303030303040404040404030303
+030303040404040404030303030303030303030303030303030303040404040404040404
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+0101010101010101010101010101010101010101010101010000000e0e0e000000000000
+000000121212000000000000000000000000
+0000000000000d0d0d010101000000050505010101000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000010101
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000010101
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0f0f0f000000000000161616000000000000
+000000070707000000000000050505edededfffffffffffffdfdfdfcfcfcfafafaf9f9f9
+f9f9f9fafafafcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfc
+fcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfcfcfcf9f9f9f9f9f9fcfcfc
+fcfcfcf9f9f9f9f9f9fcfcfcfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffffffff
+f7f7f70e0e0e000000000000000000000000
+0000000707070000000b0b0b010101fffffff5f5f5edededfffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefefffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffffffffefefe
+fdfdfdfcfcfcfcfcfcfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffffffffefefe
+fdfdfdfdfdfdfcfcfcfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfefefefafafafafafafefefe
+fefefefafafafafafafefefefcfcfcfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffafafafffffff6f6f6
+ffffff0000000b0b0b131313000000000000
+090909000000000000000000000000fffffff3f3f3fffffffefefefdfdfdfbfbfbf9f9f9
+f9f9f9fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fcfcfcfbfbfbfbfbfbfafafaf9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfc
+fbfbfbfafafafafafaf9f9f9fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9fdfdfdf9f9f9f9f9f9fdfdfd
+fdfdfdf9f9f9f9f9f9fdfdfdf9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffbfbfbffffff
+ffffff0101010a0a0a000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcefefeffffffffafafafcfcfc
+ffffffd6d6d6ffffffeaeaeaf5f5f5fffffff5f5f5fffffffbfbfbfffffff0f0f0fefefe
+fffffff5f5f5fffffff3f3f3f6f6f6fffffff0f0f0fbfbfbfffffffbfbfbfffffff9f9f9
+eeeeeefffffff6f6f6ffffffffffffefefeffafafafffffff7f7f7fefefeffffffffffff
+fffffff2f2f2f5f5f5fffffffcfcfcfefefefffffff9f9f9fdfdfdfdfdfdfffffff5f5f5
+f5f5f5f9f9f9fafafaffffffffffff030303090909010101f7f7f7fcfcfcf2f2f2ffffff
+f3f3f3fffffffafafafcfcfcfffffff2f2f2fffffffafafafafafafffffff0f0f0ffffff
+fffffff8f8f8fffffff8f8f8f9f9f9fffffffffffffafafafffffffffffff2f2f2fefefe
+f5f5f5fffffffffffffcfcfcfffffffefefefdfdfdfffffffffffffbfbfbebebebffffff
+f2f2f2e6e6e6ffffffddddddf9f9f9f4f4f4fffffffcfcfcf8f8f8fdfdfdfffffff9f9f9
+e7e7e7fffffff1f1f1e5e5e5ffffffffffffe8e8e8fffffffffffff8f8f8fbfbfbffffff
+ffffffefefeff6f6f6fbfbfbfffffff6f6f6f5f5f5fffffff4f4f4f2f2f2fffffffcfcfc
+f8f8f8fafafafffffffbfbfbfbfbfbf5f5f5ffffffffffffecececfffffffbfbfbfdfdfd
+fffffffcfcfcfefefefffffffffffffffffffffffffffffffefefefefefefcfcfcfdfdfd
+fffffffffffff5f5f5f8f8f8ffffffffffffe6e6e6fffffffafafae4e4e4171717070707
+ebebebf9f9f9fffffffffffffefefef4f4f4fffffff2f2f2f5f5f5ffffffe3e3e3ffffff
+fffffff7f7f7fcfcfcf2f2f2fffffffbfbfbeaeaeafffffffffffff6f6f6fffffffefefe
+ffffffedededfffffffffffffffffff8f8f8f2f2f2fffffff4f4f4f3f3f3f6f6f6ffffff
+fffffffffffffffffff3f3f3fffffffffffffdfdfdf9f9f9fdfdfdf9f9f9fbfbfbffffff
+f6f6f6030303010101000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfc101010080808040404070707
+000000161616e3e3e3f8f8f8ffffffeaeaeafffffff9f9f9fffffff7f7f7fffffff6f6f6
+ecececffffffeeeeeef8f8f8ffffffecececf8f8f8fffffffbfbfbf9f9f9f0f0f0ffffff
+ffffffe9e9e9fffffff2f2f2ecececfffffff0f0f0fffffff9f9f9f7f7f7fcfcfcf2f2f2
+ecececfffffffffffff8f8f8fbfbfbfefefee9e9e9fbfbfbfffffff1f1f1f9f9f9fcfcfc
+fffffffcfcfcf8f8f80e0e0e000000efefef0101010d0d0dfffffffefefeffffffffffff
+f7f7f7fffffff6f6f6fbfbfbfcfcfcfcfcfcfffffffdfdfdfffffffffffffafafaffffff
+ebebebfdfdfdfffffffdfdfdecececfffffff9f9f9f5f5f5fefefefdfdfdfffffff7f7f7
+ffffffedededfdfdfdfffffffffffff9f9f9e6e6e6ffffffecececfffffff4f4f4ffffff
+e9e9e9ebebebe8e8e81111110b0b0b0808080000000303030a0a0a0000000000000b0b0b
+0c0c0cfffffff0f0f0f2f2f2fcfcfcfffffffffffff1f1f1fdfdfdf2f2f2fbfbfbf7f7f7
+f5f5f5fffffffafafafffffffbfbfbfdfdfdfffffff4f4f4fffffffffffff3f3f3eaeaea
+ffffffffffffecececffffffffffffebebebfbfbfbf1f1f1fffffff4f4f4f2f2f2fbfbfb
+ffffffffffffdfdfdff8f8f8f2f2f2f5f5f5fffffff4f4f4fffffff7f7f7fffffffdfdfd
+f5f5f5fcfcfcfffffff2f2f2ededede9e9e9f5f5f5fcfcfcffffffffffff000000070707
+0b0b0bedededffffffebebebfdfdfdf1f1f1f2f2f2fffffff3f3f3fefefefffffffdfdfd
+fffffff6f6f6fcfcfcfffffffcfcfcfbfbfbffffffe4e4e4fffffff8f8f8efefeff3f3f3
+fdfdfdf9f9f9fefefef8f8f8efefeffffffff8f8f8ffffffffffffffffffffffffededed
+fffffffcfcfce8e8e8fafafaffffffe9e9e9fafafafffffff1f1f1fffffff0f0f0ededed
+ffffff040404000000090909000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf8f8f8ffffff070707000000
+fffffffefefef3f3f3ffffffecececfffffffdfdfdfafafafcfcfcf0f0f0e5e5e5ffffff
+efefeffffffff0f0f0f8f8f8e5e5e5f8f8f8fcfcfcefefefffffffeeeeeeffffffeaeaea
+f3f3f3ffffffefefeffdfdfdf9f9f9e2e2e2ffffffd4d4d4fdfdfdfffffff0f0f0ffffff
+fffffffafafaeeeeeef0f0f0fffffffffffff2f2f2ffffffeaeaeaffffffffffffe7e7e7
+f5f5f5e1e1e1ffffff000000edededffffffe7e7e7e7e7e7fffffff6f6f6fcfcfcffffff
+f0f0f0efefefecececffffffffffffedededf6f6f6ffffffffffffe4e4e4ffffffffffff
+ffffffe8e8e8fdfdfdfefefeffffffd7d7d7f2f2f2fffffff5f5f5fcfcfcf9f9f9ffffff
+fffffffffffff1f1f1ffffffdbdbdbfafafaffffffe7e7e7ffffffe9e9e9fffffffdfdfd
+f7f7f7ffffffffffffffffffffffff000000000000ffffffefefefffffffffffff000000
+0000000f0f0fe3e3e3ffffffebebebefefeffefefef6f6f6fbfbfbfffffff7f7f7ffffff
+ebebebf6f6f6fcfcfcf8f8f8fffffff4f4f4fafafae1e1e1ffffffffffffffffffffffff
+e6e6e6fcfcfcfefefefcfcfce9e9e9fffffff3f3f3fffffffafafafffffffdfdfdffffff
+dededef6f6f6fffffffbfbfbfffffffffffff5f5f5f7f7f7f8f8f8fffffff6f6f6f4f4f4
+fffffff2f2f2f0f0f0fffffff6f6f6fbfbfbf4f4f4f7f7f7ffffffe2e2e2222222000000
+fffffffefefef1f1f1f9f9f9ffffffedededfbfbfbe0e0e0f5f5f5fffffffdfdfdf7f7f7
+e7e7e7f7f7f7f8f8f8fbfbfbf1f1f1f1f1f1fafafafcfcfcf3f3f3ffffffe6e6e6ffffff
+fffffffafafafffffffcfcfcfffffff5f5f5ffffffeaeaeaf1f1f1fefefeeaeaeaffffff
+f8f8f8fffffffffffffdfdfdf5f5f5fafafaecececfffffff7f7f7fffffff1f1f1ffffff
+f9f9f90000000b0b0b000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfcfcfcfafafa0404040e0e0e
+fffffff5f5f5ffffffefefeffefefeffffffe7e7e7fbfbfbfdfdfdffffffecececf6f6f6
+fdfdfdecececfffffff6f6f6fffffffcfcfcfffffff4f4f4151515dfdfdfebebebf9f9f9
+ffffffedededfffffff8f8f8fffffff3f3f3dadadaffffffdcdcdcffffffffffffdcdcdc
+fbfbfbfffffffcfcfcfffffffafafae7e7e7ecececf6f6f6f7f7f7dfdfdfffffffffffff
+eeeeeeffffff020202080808f0f0f0ffffffe5e5e5fffffffffffff9f9f9eaeaeaf3f3f3
+fffffffafafaffffffdfdfdffffffff3f3f3ffffffddddddefefeffffffff7f7f7fbfbfb
+f4f4f4fdfdfdfffffffefefeeaeaeafefefefdfdfdfffffff8f8f8f2f2f2fffffff9f9f9
+e9e9e9f4f4f4ffffffdfdfdfffffffdededef3f3f3fffffff4f4f4fffffff2f2f2fdfdfd
+ffffffe5e5e5e2e2e2fefefefafafa0404042b2b2bffffffe3e3e3eeeeeeffffffeeeeee
+101010000000080808dbdbdbfefefef0f0f0fcfcfcfffffffefefeeaeaeae2e2e2fefefe
+f1f1f1ffffffffffffebebebffffffe8e8e8fcfcfcfffffff8f8f8e3e3e3f0f0f0fbfbfb
+fffffff0f0f0ffffffeaeaeafffffff2f2f2f5f5f5fafafafffffff0f0f0fffffffbfbfb
+fffffff1f1f1fafafaf6f6f6f9f9f9edededf6f6f6fffffff1f1f1f3f3f3ffffffffffff
+f1f1f1d8d8d8fafafaf2f2f2fffffff2f2f2f9f9f9fdfdfdfffffff8f8f8d1d1d1fcfcfc
+fdfdfdf7f7f7fffffff6f6f6ffffff0e0e0ef6f6f6fffffffffffff9f9f9f9f9f9f8f8f8
+fffffff5f5f5fffffff4f4f4fffffffffffff3f3f3ffffffffffffd9d9d9fffffff3f3f3
+f0f0f0ffffffd9d9d9e1e1e1f6f6f6f4f4f4f7f7f7fbfbfbfffffff9f9f9fffffffcfcfc
+efefeff1f1f1fefefeebebebfffffffffffffffffff8f8f8ffffffcececefffffff1f1f1
+ebebeb181818000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcffffffffffff000000000000
+f6f6f6eeeeeefffffffafafaffffffeeeeeefffffff8f8f8ffffffeeeeeefffffff2f2f2
+f2f2f2f7f7f7fcfcfceeeeeef9f9f9f8f8f8dededeffffff060606ffffffffffffffffff
+e6e6e6f4f4f4fdfdfdecececd8d8d8fffffffffffff1f1f1ffffffdededeffffffffffff
+fffffff4f4f4ffffffececece1e1e1fffffffffffff6f6f6fffffff7f7f7f3f3f3f5f5f5
+fffffffafafa000000020202fefefee7e7e7efefeff9f9f9eaeaeaf9f9f9ffffffffffff
+f8f8f8efefeffbfbfbffffffeeeeeeebebebf4f4f4fffffffefefeffffffefefeff0f0f0
+ffffffdededef7f7f7f0f0f0fffffffffffff5f5f5e5e5e5ffffffffffffd7d7d7f2f2f2
+ffffffe1e1e1fafafae9e9e9ecececfffffff9f9f9f7f7f7fffffff4f4f4f6f6f6f8f8f8
+eeeeeefcfcfcfffffff3f3f3f5f5f5080808000000fafafafafafaefefeffffffff4f4f4
+ffffff000000000000fffffff5f5f5ffffffe2e2e2f6f6f6ffffffffffffffffffeeeeee
+f2f2f2ffffffe0e0e0fffffffefefef8f8f8dadadaf9f9f9fffffffefefefffffff9f9f9
+e0e0e0fefefef9f9f9f3f3f3f7f7f7f1f1f1ffffffedededfffffffbfbfbffffffe3e3e3
+f7f7f7ffffffcfcfcffffffffffffff3f3f3f3f3f3e1e1e1fffffff7f7f7fafafaf1f1f1
+f0f0f0fffffffffffff0f0f0e6e6e6fafafaf2f2f2ffffffeaeaeaf5f5f5fffffffdfdfd
+ffffffe2e2e2ffffffefefeff1f1f1000000fbfbfbfbfbfbf4f4f4dededefcfcfcffffff
+e3e3e3e9e9e9fcfcfcf6f6f6f2f2f2f3f3f3fdfdfdffffffdededefcfcfcfffffff9f9f9
+fffffff7f7f7f2f2f2ffffffffffffffffffffffffe4e4e4f0f0f0ffffffeaeaeaf7f7f7
+ffffffffffffd7d7d7f5f5f5ffffffecececf8f8f8efefeff3f3f3fffffffffffff9f9f9
+ffffff000000000000090909000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf7f7f7ffffff000000060606
+fffffffafafafffffff8f8f8fefefeeeeeeef2f2f2f8f8f8fdfdfdfdfdfdfffffff7f7f7
+fefefefbfbfbf3f3f3fffffff8f8f8fdfdfdffffff000000000000ffffffecececffffff
+f4f4f4ffffffebebebffffffffffffdededefefefeffffffedededfdfdfdf4f4f4ececec
+f3f3f3f7f7f7fdfdfdf0f0f0ffffffffffffe5e5e5fcfcfcf4f4f4fffffff8f8f8f0f0f0
+fefefee3e3e3212121010101fffffff0f0f0fffffff2f2f2fffffff2f2f2e1e1e1f3f3f3
+ffffffecececfdfdfdfffffffafafafdfdfdffffffffffffeaeaeafafafaefefeffefefe
+ffffffffffffffffffe8e8e8fafafaefefeffffffffefefee1e1e1fafafafffffff6f6f6
+f6f6f6fafafaf3f3f3ffffffebebebe3e3e3fdfdfde5e5e5fdfdfdddddddffffffffffff
+f9f9f9fdfdfde0e0e0ffffffffffff0f0f0f1d1d1de9e9e9f4f4f4ffffffe8e8e8ffffff
+f9f9f9050505131313e1e1e1e7e7e7ffffffffffffe9e9e9f4f4f4fdfdfdd8d8d8ffffff
+f9f9f9f6f6f6f8f8f8f3f3f3f3f3f3fffffffffffffdfdfdebebebf0f0f0fffffffdfdfd
+ffffffe5e5e5ffffffecececeaeaeafffffff2f2f2fffffffefefed7d7d7f3f3f3fdfdfd
+fffffff0f0f0ffffffe4e4e4e7e7e7f3f3f3ffffffffffffddddddf9f9f9fffffffcfcfc
+fcfcfcf5f5f5f0f0f0fcfcfcfffffff8f8f8fefefeecececf4f4f4ecececebebebffffff
+fffffffcfcfcf3f3f3f5f5f50b0b0b060606fcfcfce8e8e8ffffffffffffebebebf3f3f3
+ffffffffffffe4e4e4fffffffafafaf2f2f2fcfcfcf2f2f2ffffffffffffe8e8e8f8f8f8
+f7f7f7fbfbfbffffffe6e6e6ffffffe5e5e5eaeaeaffffffe7e7e7f6f6f6ffffffffffff
+e7e7e7f3f3f3ffffffeeeeeef6f6f6fdfdfdf7f7f7fffffff9f9f9eeeeeeefefeff3f3f3
+ffffff000000111111000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf7f7f7ffffff060606000000
+fdfdfdf0f0f0f0f0f0fefefefffffff1f1f1060606080808f3f3f3f1f1f1060606000000
+050505030303edededfffffff5f5f50b0b0b0000000303030b0b0b0000000404040a0a0a
+060606e9e9e9fffffffcfcfcffffff0000001717170000000303030d0d0dffffffffffff
+fafafaf9f9f9fffffff4f4f4000000000000fffffffbfbfb0b0b0b000000040404ffffff
+0000000808080000000606060000000000000a0a0af9f9f9f8f8f8f9f9f9ffffff000000
+000000272727000000090909030303f0f0f0ffffffe6e6e6fffffffffffffffffff8f8f8
+0808080000000000002c2c2cf2f2f2fffffff1f1f1ffffffedededfffffff0f0f0020202
+000000111111000000010101fafafae5e5e5fffffffffffff4f4f4ffffffdededee9e9e9
+fffffff3f3f3ffffffefefeff1f1f10c0c0c000000f5f5f5fffffff0f0f0fdfdfde1e1e1
+fcfcfc141414000000fffffffbfbfbf5f5f5dededefffffffffffff5f5f5101010020202
+101010000000111111efefeffcfcfcfffffff6f6f6e7e7e7ffffff242424000000ffffff
+f7f7f70000000f0f0f131313fbfbfbf7f7f7ffffffdadadafbfbfbffffffe4e4e4ffffff
+000000121212000000141414212121dbdbdbffffffebebebf4f4f4f7f7f7d4d4d4fdfdfd
+060606090909090909000000101010030303f7f7f7f8f8f8fdfdfdffffff000000000000
+e7e7e7ffffff0000000606060d0d0d000000040404131313000000010101f8f8f8ffffff
+fffffff5f5f50b0b0b000000060606151515000000ffffffdededefcfcfcffffffe5e5e5
+fffffffcfcfc0000001c1c1cffffffffffff0a0a0a0000000505050000000f0f0f000000
+191919000000000000fffffff9f9f9ffffff0202020000000404040e0e0efdfdfdffffff
+f1f1f10f0f0f000000020202000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfdfafafa020202000000
+fffffffffffffafafafcfcfc0f0f0f0000000606060000001111110606060e0e0e060606
+030303111111060606fdfdfdffffffedededffffff000000000000ffffffe8e8e8f4f4f4
+fffffffefefeecececfdfdfd040404010101ffffffeaeaeaffffff020202030303eaeaea
+efefefffffff000000111111060606171717f6f6f6010101000000060606000000fafafa
+fffffffdfdfd020202090909fffffff0f0f0fffffffafafaffffff101010000000ffffff
+ffffffdededeffffff0000000b0b0b0c0c0cebebebfffffffcfcfce1e1e1ffffff000000
+000000edededffffff000000040404141414ddddddf1f1f1fffffff3f3f30e0e0e000000
+fdfdfdfffffff5f5f50000000d0d0dfffffff5f5f5e8e8e8ffffffe2e2e2f8f8f8ffffff
+f7f7f7f3f3f3fffffff6f6f6ffffff060606000000ffffffffffffdadadaffffffffffff
+ffffff0000001b1b1bdcdcdcfffffffcfcfcfefefef8f8f8ffffff000000161616f4f4f4
+efefefffffff0000000c0c0cfffffff1f1f1ffffff121212000000090909090909000000
+0000001414140a0a0a010101030303000000efefefffffffefefefedededffffff000000
+0c0c0cffffffe6e6e6fdfdfd000000171717f4f4f4ecececfffffff6f6f6ffffff010101
+000000f2f2f2f4f4f4ffffff0000000d0d0dfefefefcfcfc000000000000070707000000
+fffffff6f6f6e7e7e7ffffff060606000000ffffffedededf3f3f3fefefee2e2e2ffffff
+fbfbfb000000020202ffffffe5e5e5ffffff000000000000fcfcfcffffffffffffffffff
+000000030303090909000000dddddd101010030303000000000000ffffffe1e1e10e0e0e
+050505fffffffafafaf9f9f9f3f3f3fffffff6f6f60c0c0cffffffefefeffcfcfcefefef
+ffffff0000000b0b0b000000000000000000
+000000010101010101000000020202f9f9f9fffffffefefefefefeffffff020202010101
+fbfbfbf4f4f4fffffffbfbfbf8f8f8f7f7f7040404000000fcfcfcfffffffffffffdfdfd
+f5f5f5000000010101fcfcfcfffffffffffffcfcfc090909010101e6e6e6ffffffffffff
+f5f5f5f4f4f4ffffff000000000000fafafafffffff1f1f1f4f4f4ffffff000000131313
+f7f7f7fcfcfcfcfcfce6e6e60000000e0e0e000000f3f3f3fffffff8f8f8020202ffffff
+f7f7f7ffffff030303131313f1f1f1fffffffdfdfdf4f4f4fafafa0606060f0f0fefefef
+edededffffffe2e2e2ffffff040404020202fcfcfcfcfcfcecececf8f8f81b1b1b000000
+f7f7f7fcfcfcffffff020202070707090909f1f1f1fefefeffffff080808000000ffffff
+fffffff5f5f5fefefef2f2f2171717040404fefefefbfbfbf9f9f9fbfbfbfdfdfdfdfdfd
+fbfbfbf8f8f8f8f8f8f8f8f8ffffff010101191919efefeffcfcfce6e6e6ffffff020202
+080808000000fffffff4f4f4ffffffedededfffffffafafa010101050505e2e2e2ffffff
+f3f3f3fffffff8f8f8101010000000fafafafbfbfbe9e9e9fcfcfc000000060606fafafa
+fffffffafafafafafafbfbfb0000002f2f2ff4f4f4fefefefbfbfbffffff0202020a0a0a
+f7f7f7f0f0f0fffffffcfcfcffffff000000000000fffffffcfcfce2e2e21a1a1a010101
+f5f5f5fdfdfdf5f5f5f8f8f8090909000000f8f8f8f5f5f5fffffffafafa070707060606
+fefefef6f6f6f9f9f9ffffff080808000000ffffffffffffffffffefefeffcfcfcf6f6f6
+000000030303fffffff4f4f4fffffff4f4f4f0f0f0050505060606f8f8f8fffffffcfcfc
+f8f8f8f7f7f70b0b0b0404040a0a0af0f0f0f7f7f7fcfcfc000000ffffffffffff060606
+020202f6f6f6fbfbfbeeeeeefefefeffffffffffff020202f9f9f9f8f8f8f8f8f8fcfcfc
+f8f8f8030303000000010101000000000000
+000000010101010101000000020202f9f9f9fffffffefefefcfcfcfefefe010101000000
+fafafaf4f4f4fefefefafafafdfdfdfbfbfb070707000000fbfbfbfcfcfcfcfcfcf8f8f8
+fafafa040404040404fdfdfdfffffffefefef8f8f8040404131313f7f7f7f5f5f5ffffff
+fffffffefefeececec000000ffffffecececf8f8f8ffffffebebebfafafa040404040404
+fcfcfcfffffffafafaffffff090909000000e8e8e8ffffffedededf8f8f8ebebebf6f6f6
+f9f9f9ffffff0000000d0d0dfffffffcfcfce7e7e7ffffffffffffe1e1e1fefefefcfcfc
+ffffffeaeaeafffffffefefe000000020202fcfcfcfafafaffffffffffff000000ffffff
+fcfcfcfcfcfcffffff000000000000040404f7f7f7fffffff2f2f2020202ffffffd9d9d9
+f4f4f4ffffffdededeffffff0000000d0d0df3f3f3f8f8f8fbfbfbfcfcfcfefefefdfdfd
+fbfbfbf9f9f9fafafafbfbfbededed030303010101060606000000171717000000000000
+f8f8f8fefefef3f3f3fffffff7f7f7ebebebffffffffffff090909fefefef0f0f0e1e1e1
+fbfbfbf3f3f3fdfdfd080808030303ecececfdfdfdfffffffafafa0808080b0b0bfefefe
+fefefefafafaedededf0f0f0030303000000020202fcfcfcfdfdfd0000000d0d0df2f2f2
+fffffffffffff3f3f3f7f7f7f8f8f8ffffff040404000000fcfcfcffffff0000000b0b0b
+ffffffe3e3e3fffffff6f6f6fffffffefefeedededeeeeeefffffff8f8f8020202010101
+fffffffefefefbfbfbfbfbfb000000080808efefeff2f2f2f5f5f5fffffffbfbfb010101
+141414f6f6f6ffffffffffffeaeaeafffffff7f7f7fefefe080808010101fafafaf3f3f3
+ffffffe6e6e6020202060606fdfdfdf2f2f2fffffffffffff9f9f9fbfbfbe8e8e8030303
+0b0b0b000000fdfdfdfcfcfcfffffff9f9f9000000080808f9f9f9f9f9f9f8f8f8fcfcfc
+f8f8f8030303000000010101000000000000
+000000010101010101000000020202f9f9f9fffffffefefefcfcfcffffff020202010101
+fcfcfcf5f5f5fffffffbfbfbfefefefcfcfc080808000000fafafafcfcfcfafafaf7f7f7
+fcfcfc060606050505fcfcfcfefefefdfdfdf7f7f7040404000000fafafafcfcfcebebeb
+f1f1f1ffffff0505050f0f0ff9f9f9f0f0f0fcfcfcf1f1f1fffffff6f6f6131313000000
+ecececf5f5f5f3f3f3eeeeee000000000000fffffff4f4f4f3f3f3fffffffffffff6f6f6
+fafafaffffff000000030303fbfbfbffffffffffffe9e9e9e3e3e3fffffffafafaffffff
+fffffffafafa030303000000010101000000f6f6f6f3f3f3fefefe060606000000f5f5f5
+fffffffbfbfbefefeffffffffffffffdfdfdfdfdfdffffff070707000000f0f0f0ffffff
+f9f9f9fffffff8f8f8f9f9f9131313000000fdfdfdfffffffdfdfdfdfdfdfefefefcfcfc
+fbfbfbfafafafcfcfcfdfdfdffffff050505000000ffffffffffffedededfdfdfd070707
+040404fafafaf4f4f4fbfbfbffffffffffffffffff020202000000fffffffdfdfdffffff
+ffffffeeeeeeffffff000000010101fffffff7f7f7e4e4e4f3f3f31c1c1c000000f5f5f5
+fffffffffffff8f8f8ffffffffffff060606000000f3f3f3ffffff060606000000ffffff
+efefefedededfffffffdfdfdefefefffffff000000141414ffffffffffff090909000000
+000000ffffffffffffeeeeeef8f8f8dadadafffffff5f5f5f8f8f8f8f8f8070707020202
+fefefefffffffcfcfcf7f7f7111111060606f5f5f5fffffffefefeefefefffffff000000
+000000fbfbfbf7f7f7fffffffffffff1f1f1fffffff9f9f90000001a1a1aeeeeeeffffff
+ffffffffffff070707000000ffffffeeeeeeecececfefefeededede9e9e9ffffffffffff
+0a0a0a171717fffffff3f3f3ededede2e2e20a0a0af9f9f9fafafaf9f9f9f9f9f9fdfdfd
+f9f9f9030303000000010101000000000000
+000000010101010101000000020202f9f9f9fffffffefefefdfdfdffffff030303030303
+fefefef7f7f7fffffffdfdfdfbfbfbfafafa060606000000fbfbfbfdfdfdfdfdfdfafafa
+fafafa030303030303fbfbfbfefefefefefefafafa070707000000fffffff5f5f5ffffff
+e6e6e6e3e3e3000000000000000000020202050505000000000000000000000000141414
+fcfcfcfffffffffffff5f5f50d0d0d171717e5e5e5fffffffafafaffffffc9c9c9ffffff
+fafafaf6f6f6050505040404f7f7f7f6f6f6fffffff3f3f3fffffff1f1f1d4d4d4060606
+010101020202f0f0f0ffffff000000101010fffffffffffff3f3f3050505181818fafafa
+eeeeeedbdbdbffffffebebebd9d9d9fffffff7f7f7fcfcfc0000001212120000000d0d0d
+131313000000000000010101000000101010fffffff8f8f8fdfdfdfdfdfdfdfdfdfbfbfb
+f9f9f9f9f9f9fcfcfcfefefef7f7f70707070d0d0debebebf9f9f9fffffffdfdfdffffff
+000000151515fffffff2f2f2fbfbfbf1f1f1fdfdfd0000000c0c0c050505000000000000
+090909111111000000000000000000f4f4f4fffffff6f6f6ffffff171717000000ffffff
+f4f4f4fdfdfdffffffe8e8e8f2f2f2000000090909fffffff8f8f8060606080808f4f4f4
+fbfbfbfffffff3f3f3f5f5f5fefefefdfdfd000000000000fffffff8f8f8e8e8e8101010
+0000000505050404040f0f0ffafafaf9f9f9ecececf1f1f1ecececfafafa111111050505
+f9f9f9f8f8f8fafafaf9f9f9040404000000ffffffefefeffefefef9f9f9f3f3f3060606
+050505fafafafefefef6f6f6fcfcfcfafafaf7f7f7ffffff111111000000fffffff8f8f8
+efefefefefef070707020202fefefefefefefffffffbfbfbfffffffffffff5f5f5eeeeee
+000000121212e3e3e3f5f5f5fafafaffffff090909f3f3f3fbfbfbfafafafafafafdfdfd
+f9f9f9030303000000000000000000000000
+000000010101010101000000020202f9f9f9fffffffefefefafafafefefe020202020202
+fdfdfdf6f6f6fffffffbfbfbfbfbfbfafafa060606000000fbfbfbfdfdfdfdfdfdfafafa
+fafafa040404020202fbfbfbfdfdfdfefefefafafa080808030303ffffffffffffe6e6e6
+ffffffffffff1e1e1e131313fffffffdfdfdfcfcfcfffffffffffffffffffffffff8f8f8
+e9e9e9f9f9f9dbdbdbffffff000000010101f7f7f7eeeeeef0f0f0f4f4f4fffffffefefe
+fcfcfcf1f1f10000000e0e0efffffff4f4f4fffffff3f3f3f8f8f80707070f0f0fffffff
+f9f9f9f5f5f5ffffffededed070707000000ebebebf4f4f4ffffff040404000000ffffff
+fbfbfbffffffefefeffcfcfcffffffe9e9e9fffffffdfdfd0c0c0c050505f8f8f8ffffff
+e7e7e7f4f4f4ffffffffffffeeeeeed6d6d6fffffff3f3f3fbfbfbfbfbfbfbfbfbf9f9f9
+f8f8f8f8f8f8fbfbfbfefefeededed0101010f0f0ffffffff3f3f3f0f0f0e0e0e0ffffff
+000000010101fffffffafafafffffff8f8f8e9e9e9131313000000f5f5f5e7e7e7ffffff
+ffffffe6e6e6fffffffbfbfbfffffffbfbfbe6e6e6efefeff4f4f4000000090909e8e8e8
+ffffffffffffdededefdfdfdffffff161616000000fefefef8f8f8060606080808f4f4f4
+fbfbfbfffffff3f3f3f5f5f5f3f3f3ffffff0e0e0e141414f5f5f5f6f6f6ffffffffffff
+fcfcfc0000001616160303030f0f0ffffffff0f0f0ffffffefefeff9f9f90d0d0d030303
+fafafafcfcfcfafafaf5f5f5010101000000fefefeecececfdfdfdf9f9f9f4f4f4080808
+010101f7f7f7fdfdfdf7f7f7fefefefbfbfbf5f5f5fefefe151515000000fffffff4f4f4
+edededefefef080808040404ffffffeeeeeeffffffecececf7f7f7f1f1f1ffffffffffff
+1b1b1b171717000000ffffffe3e3e3040404000000fffffffcfcfcfbfbfbfafafafefefe
+f9f9f9030303000000000000000000000000
+000000010101010101000000020202f9f9f9fffffffefefef7f7f7fafafa000000000000
+fbfbfbf4f4f4fdfdfdf9f9f9fefefefcfcfc080808000000fafafafcfcfcfafafaf7f7f7
+fefefe060606040404fbfbfbfcfcfcfcfcfcf8f8f8050505040404f8f8f8f0f0f0ffffff
+efefeff1f1f1040404000000e8e8e8f6f6f6ffffffedededefefefeeeeeee6e6e6fafafa
+f3f3f3ffffffecececfdfdfd010101000000ffffffebebebffffffebebebfffffff9f9f9
+fefefefcfcfc000000090909fdfdfde9e9e9ffffffeaeaea181818000000f3f3f3e0e0e0
+fefefefafafae4e4e4ffffff060606060606ffffffeaeaeaf5f5f5000000000000fafafa
+f0f0f0fafafafefefefffffff8f8f8fefefedfdfdff5f5f5060606000000fffffff4f4f4
+fffffff8f8f8e9e9e9e9e9e9fffffffffffff2f2f2f0f0f0f8f8f8fafafafafafafafafa
+f8f8f8f9f9f9fafafafcfcfcf6f6f6000000010101f6f6f6edededffffffffffffffffff
+ffffff030303ffffffe8e8e8fbfbfbe7e7e7ffffff000000010101ffffffe7e7e7f8f8f8
+f0f0f0fdfdfde9e9e9f8f8f8ffffffecececffffffffffffffffff0000000e0e0effffff
+eeeeeef6f6f6fffffffbfbfbebebeb0000002d2d2df0f0f0ffffff060606000000ffffff
+efefefedededfffffffdfdfdfbfbfbfbfbfb060606000000fffffff2f2f2ffffffe6e6e6
+f8f8f8ffffffffffff0000000d0d0d060606eaeaeaf3f3f3fffffff7f7f7000000000000
+fffffffffffffafafaeeeeee0c0c0c010101f0f0f0fffffffbfbfbefefefffffff000000
+000000f5f5f5f3f3f3fffffffffffff5f5f5fffffff1f1f10000001b1b1beaeaeafafafa
+ffffffffffff0a0a0a010101fdfdfdeaeaeae5e5e5ffffffedededfffffff3f3f3ebebeb
+ffffff000000090909f0f0f0ffffff050505fdfdfdf2f2f2fdfdfdfcfcfcfbfbfbfefefe
+f9f9f9030303000000000000000000000000
+000000010101010101000000020202f9f9f9fffffffefefef7f7f7fbfbfb000000010101
+fdfdfdf6f6f6fefefefafafafdfdfdfbfbfb070707000000fbfbfbfcfcfcfcfcfcf8f8f8
+fdfdfd050505030303fafafafcfcfcfcfcfcf9f9f9070707070707f4f4f4fffffffcfcfc
+f7f7f7ffffff000000161616ffffffeaeaeae5e5e5fffffff9f9f9fffffffffffff7f7f7
+fcfcfcffffffffffffe6e6e6020202080808e7e7e7f2f2f2fffffff2f2f2d0d0d0fefefe
+f7f7f7ffffff010101000000fefefeeeeeeefffffff2f2f2000000111111ffffffffffff
+e3e3e3ffffffffffffffffff060606000000f7f7f7f7f7f7fafafa171717030303ffffff
+fffffff6f6f6f9f9f9fafafafbfbfbe3e3e3ffffffededed0000000b0b0bf4f4f4fcfcfc
+f4f4f4f8f8f8fffffff1f1f1fafafaf0f0f0fcfcfcfffffff8f8f8fafafafcfcfcfcfcfc
+fbfbfbfafafafbfbfbfcfcfcffffff0707070b0b0bffffffe8e8e8f7f7f7ffffffe9e9e9
+f5f5f5000000010101ffffffe6e6e6ffffffe3e3e3000000000000f7f7f7ffffffe1e1e1
+fbfbfbffffffe6e6e6fffffffafafafffffffcfcfce3e3e3fbfbfb0c0c0c000000fbfbfb
+ffffffededede2e2e2fffffff9f9f91c1c1c000000fffffffdfdfd0000000d0d0df2f2f2
+fffffffffffff3f3f3f7f7f7f8f8f8ffffff000000000000fefefefafafa000000ffffff
+f3f3f3f5f5f5f8f8f8ffffff000000000000fffffffffffffffffff8f8f8000000000000
+fffffffdfdfdf8f8f8f5f5f5000000080808edededefefeff2f2f2fffffffcfcfc040404
+141414f2f2f2f9f9f9ffffffedededfffffff9f9f9fcfcfc0d0d0d010101f5f5f5f0f0f0
+ffffffeaeaea030303030303fbfbfbfcfcfcfffffff7f7f7f8f8f8f6f6f6fffffff7f7f7
+ffffff000000101010ffffff000000070707fdfdfdf5f5f5fdfdfdfdfdfdfbfbfbfefefe
+fafafa030303000000000000000000000000
+000000010101010101000000020202f9f9f9fffffffefefefafafafefefe030303050505
+fffffff9f9f9fffffffdfdfdf8f8f8f7f7f7040404000000fcfcfcfffffffffffffdfdfd
+f8f8f8010101000000f9f9f9fdfdfdfffffffdfdfd0c0c0c090909dfdfdff7f7f7f2f2f2
+f9f9f9f9f9f9f3f3f30a0a0a000000fffffffffffff2f2f2f7f7f7f4f4f4f5f5f5ffffff
+fdfdfdfefefef0f0f0ffffff0606060c0c0cf2f2f2fffffffdfdfdf5f5f5ffffffffffff
+ebebebffffff000000000000f2f2f2fefefeedededffffff242424000000ebebebfbfbfb
+fffffff9f9f9efefeff1f1f1080808060606ffffffe7e7e7fefefefdfdfd040404000000
+fffffff7f7f7ebebebfffffffbfbfbfffffff1f1f1fffffff9f9f91c1c1c000000ffffff
+fbfbfbf8f8f8fbfbfbfefefeeeeeeef0f0f0fffffff0f0f0f8f8f8fafafafdfdfdfefefe
+fdfdfdfcfcfcfcfcfcfdfdfdffffff0000000d0d0dfefefef4f4f4ffffffecececffffff
+f9f9f90f0f0f010101fffffff2f2f2d4d4d4ffffffffffff0a0a0a020202f1f1f1ffffff
+f7f7f7f5f5f5ffffffe8e8e8f8f8f8f7f7f7fefefefffffff3f3f30d0d0d000000fdfdfd
+f8f8f8f9f9f9fefefef8f8f8000000010101fffffff4f4f4fbfbfbffffff0202020a0a0a
+f7f7f7f0f0f0fffffffcfcfcfcfcfc020202060606f6f6f6ffffffebebeb0b0b0bd6d6d6
+fffffff6f6f6f7f7f7eaeaea030303141414e9e9e9fdfdfdfefefefbfbfb0c0c0c080808
+f8f8f8ecececf3f3f3ffffff111111060606fffffffffffffdfdfdedededfdfdfdf8f8f8
+050505040404fafafaefefeffffffffbfbfbf7f7f70a0a0a060606f6f6f6fffffffdfdfd
+fffffffefefe0a0a0a000000f8f8f8fffffff6f6f6f9f9f9fffffff7f7f7fafafaefefef
+eaeaeaffffff000000010101000000fffffffefefee8e8e8fefefefdfdfdfcfcfcffffff
+fafafa030303000000000000000000000000
+010101010101010101000000000000f5f5f5fafafaf7f7f7fefefeededed0b0b0b000000
+fffffff3f3f3fffffff4f4f4fefefef6f6f6050505000000ffffffeaeaeaffffffeeeeee
+ececec1f1f1f070707ffffffefefeff7f7f7fcfcfc050505090909111111f6f6f6eeeeee
+fafafafffffff1f1f1000000000000030303fefefefffffffcfcfcfdfdfdf8f8f8000000
+f3f3f3fffffff3f3f3ffffff0000000d0d0decececfbfbfbfffffff7f7f7fafafae4e4e4
+ffffffffffff000000020202fffffff2f2f2f8f8f8ffffff070707000000111111fdfdfd
+fafafaefefef060606050505000000050505f9f9f9fffffff1f1f1ffffff000000080808
+181818e9e9e9ffffffffffffededed020202fefefefbfbfbf2f2f20a0a0a1b1b1b000000
+fcfcfcf7f7f7edededfffffff7f7f7171717e6e6e6f7f7f7f7f7f7f1f1f1f7f7f7ffffff
+fcfcfcd8d8d8fffffff4f4f4f1f1f10e0e0e000000f7f7f7ffffffefefeffefefefbfbfb
+ffffff0a0a0a000000060606f2f2f2fffffffffffff6f6f6060606000000070707ffffff
+ebebebfdfdfdfffffffafafa131313ededede4e4e4ffffffffffff000000040404fefefe
+fdfdfde8e8e8ffffff000000000000ffffffefefeffffffff6f6f6f3f3f3ffffff010101
+050505f5f5f5fffffff0f0f0060606000000fffffff2f2f2ffffffececec050505fefefe
+fafafaf9f9f9ffffff111111000000ffffffeeeeeef6f6f6fffffff2f2f2000000000000
+fffffff4f4f4ffffffe3e3e3000000121212080808f4f4f4f6f6f6ffffffeeeeeefcfcfc
+f0f0f0030303050505fffffff8f8f8ffffff0909090a0a0aeaeaeaffffffe7e7e7fefefe
+f5f5f5fdfdfd000000050505fdfdfdfefefefdfdfdfdfdfdf6f6f6ffffffe6e6e6ffffff
+f7f7f7e4e4e4161616070707000000ffffffedededfffffff9f9f9f9f9f9fafafafefefe
+fafafa040404000000000000000000000000
+000000010101010101000000010101f7f7f7fcfcfcfafafa0000000000000707070e0e0e
+0000000f0f0ff3f3f3ffffff0505050000000d0d0d111111000000131313f3f3f3ffffff
+0e0e0e0000000f0f0f000000050505ffffffecececffffff0000000707070000000f0f0f
+090909dadadafbfbfbffffffffffff000000101010000000080808090909000000ffffff
+fffffff5f5f50f0f0f0000001111110b0b0b000000000000ecececfdfdfdffffffffffff
+0000000404040202022020200000000f0f0ffcfcfcf5f5f5ededed1c1c1c000000000000
+070707000000fffffffefefe181818020202080808000000f8f8f8f1f1f1ffffff000000
+000000161616000000000000141414ebebebfdfdfdfffffffafafae2e2e2ffffff040404
+0000000c0c0c141414000000000000f0f0f0fdfdfdfffffffcfcfcf9f9f9fcfcfcf3f3f3
+f4f4f4ffffffdadada0a0a0a0b0b0b101010000000262626000000f5f5f5fbfbfbf3f3f3
+f5f5f5e3e3e31212120000000c0c0c070707f9f9f9f9f9f9f5f5f5ffffff0c0c0c020202
+171717020202000000060606fdfdfde9e9e9fffffff4f4f4dadada0606060f0f0f000000
+0c0c0c010101000000080808fffffff1f1f1fefefef4f4f4fdfdfdffffffe9e9e9ffffff
+0000000000000c0c0c070707030303fffffffcfcfcf6f6f6e3e3e3ffffff000000000000
+111111000000000000000000fffffff4f4f4fffffffefefe0303030000000e0e0e111111
+000000101010f2f2f2ffffffffffff0000000000000d0d0d020202000000fffffffefefe
+ffffffe4e4e4090909000000000000000000020202f3f3f3fafafae0e0e0ffffffe8e8e8
+0b0b0b0808080b0b0b121212000000020202f5f5f5fdfdfdfcfcfcf5f5f5fcfcfcffffff
+fffffff8f8f80000000b0b0b090909eaeaeafffffff2f2f2fbfbfbfbfbfbfbfbfbffffff
+fafafa040404000000000000000000000000
+000000000000010101000000030303f9f9f9fefefefcfcfcf6f6f6ffffffedededf3f3f3
+fffffff0f0f0ffffffedededfefefefffffffafafaf3f3f3fffffffdfdfdfbfbfbf4f4f4
+fffffffffffff6f6f6ffffffffffffffffffedededfafafaf9f9f9ffffffffffffeeeeee
+fafafaffffffe8e8e8f5f5f5f7f7f7fffffffbfbfbf8f8f8f4f4f4ffffffe9e9e9ffffff
+f3f3f3fffffff0f0f0fffffff3f3f3f0f0f0fffffff9f9f9fdfdfdfffffff3f3f3ffffff
+ffffffe8e8e8ffffffeaeaeaffffffecececfffffffffffff3f3f3f2f2f2f9f9f9ffffff
+ffffffffffffefefeff1f1f1fdfdfdf9f9f9fffffffffffff6f6f6ffffffedededffffff
+fffffff5f5f5fdfdfdfffffff8f8f8fffffff2f2f2f5f5f5fdfdfdffffffe9e9e9ffffff
+fffffffbfbfbfdfdfdfffffffdfdfdf5f5f5ffffffeeeeeef2f2f2fffffffffffffefefe
+fdfdfdf1f1f1fffffffefefef5f5f5fffffffffffffdfdfdfffffffbfbfbffffffffffff
+f8f8f8fffffffffffffffffff3f3f3fdfdfdf8f8f8f7f7f7fafafafefefef4f4f4fefefe
+e9e9e9f0f0f0fffffffbfbfbf2f2f2fcfcfcf4f4f4eeeeeeffffff000000000000f6f6f6
+fbfbfbffffffdcdcdcf6f6f6fafafaefefefffffffffffffe3e3e3ffffffe2e2e2f7f7f7
+fffffffefefefbfbfbfcfcfcf9f9f9ffffffefefeffefefefffffff2f2f2ffffffefefef
+fffffff6f6f6f8f8f8fffffffdfdfdeeeeeeffffffebebebfcfcfcfffffffdfdfdf2f2f2
+fffffff7f7f7fbfbfbfafafaf4f4f4fffffff3f3f3fffffffafafafffffffffffff7f7f7
+f8f8f8ffffffdfdfdffffffffffffff5f5f5fffffffdfdfdfffffffdfdfdeeeeeefefefe
+fbfbfbffffffffffffeeeeeef9f9f9fffffff9f9f9fffffffdfdfdffffffeeeeeefefefe
+f9f9f9f9f9f9ffffff000000fdfdfdfffffff7f7f7fcfcfcfefefefefefefdfdfdffffff
+fbfbfb040404000000000000000000000000
+000000000000020202000000040404fbfbfbfffffffffffffffffff5f5f5fbfbfbffffff
+e8e8e8eaeaeafffffff6f6f6fffffff0f0f0ffffffffffffe7e7e7f0f0f0fffffff9f9f9
+f6f6f6f9f9f9fffffff6f6f6f6f6f6e9e9e9fffffff1f1f1f2f2f2e9e9e9fcfcfcfafafa
+fdfdfdfffffff8f8f8fffffff6f6f6fdfdfdfcfcfcfffffff5f5f5edededffffffefefef
+f9f9f9ffffffe8e8e8e6e6e6fffffffcfcfcf6f6f6ffffffedededfcfcfcfffffff8f8f8
+fffffffffffff5f5f5fffffffbfbfbf4f4f4fbfbfbf8f8f8fefefefbfbfbffffffececec
+fcfcfceeeeeefffffffffffffefefeffffffebebebf6f6f6fffffff9f9f9eaeaeaefefef
+ffffffdcdcdcffffffe8e8e8fffffffffffffffffffafafaffffffeeeeeeffffffececec
+f8f8f8fbfbfbf8f8f8fffffffbfbfbeeeeeefffffff7f7f7f9f9f9ffffffedededf3f3f3
+fffffff2f2f2e9e9e9f4f4f4f9f9f9ffffffefefeff1f1f1ffffffebebebf8f8f8f5f5f5
+fffffff6f6f6e1e1e1f3f3f3fffffff1f1f1fffffffdfdfdffffffd1d1d1ffffffffffff
+f3f3f3fafafaf7f7f7fdfdfdffffffffffffeeeeeef2f2f2ebebeb0e0e0e0e0e0efafafa
+e5e5e5fcfcfcffffffedededffffffffffffebebebfffffffefefef6f6f6ffffffeaeaea
+fbfbfbffffffedededfffffffffffff3f3f3fffffff2f2f2fffffff7f7f7ffffffffffff
+fffffff2f2f2fffffff6f6f6ecececffffffedededfffffffffffff0f0f0fefefefdfdfd
+e7e7e7f2f2f2fffffff8f8f8fafafaf2f2f2ffffffe9e9e9f8f8f8f5f5f5fffffffbfbfb
+eeeeeefffffffdfdfdf0f0f0ffffffedededf0f0f0f8f8f8e3e3e3ffffffffffffffffff
+fffffff4f4f4ffffffffffffffffffe9e9e9fffffff1f1f1efefeff1f1f1fafafafbfbfb
+f4f4f4ecececffffff0c0c0cfcfcfce3e3e3fffffffbfbfbffffffffffffffffffffffff
+fcfcfc050505000000000000000000000000
+000000000000020202000000050505fcfcfcfffffffffffff6f6f6fbfbfbffffffffffff
+fffffffffffffdfdfdfffffff2f2f2fefefefafafafffffffffffffffffffffffffefefe
+fffffffffffff8f8f8fffffffffffff8f8f8ddddddfffffffffffffefefef8f8f8ffffff
+e7e7e7fdfdfdf6f6f6fffffffffffff4f4f4ffffffecececfffffff3f3f3ebebebf3f3f3
+fffffffcfcfcfffffffffffffffffffffffffafafaf3f3f3fffffffffffffefefefdfdfd
+dfdfdfffffffebebebfffffff9f9f9fffffff6f6f6fffffff1f1f1fffffffffffffcfcfc
+edededffffffeeeeeefafafaffffffefefeffdfdfdfffffff2f2f2fcfcfcffffffffffff
+e0e0e0fffffff9f9f9fefefef8f8f8eaeaeafefefef5f5f5efefeffffffffffffffdfdfd
+fffffff0f0f0f3f3f3fffffff7f7f7ffffffe8e8e8fffffffffffffdfdfdf9f9f9fefefe
+f2f2f2fbfbfbfffffffffffffafafaeeeeeef8f8f8fffffff9f9f9ffffffdededeffffff
+f5f5f5f6f6f6fffffff6f6f6fffffffbfbfbf5f5f5f0f0f0f9f9f9ffffffe7e7e7ebebeb
+fffffffffffffdfdfdf0f0f0ffffffffffffedededf4f4f4ffffff000000000000ffffff
+ffffffdcdcdcf6f6f6e1e1e1ffffffeaeaeafffffff2f2f2fffffff3f3f3edededffffff
+ecececfffffffcfcfcedededf2f2f2ffffffe3e3e3fcfcfcfffffffbfbfbf0f0f0ffffff
+e2e2e2ffffffffffffe6e6e6ffffffe5e5e5e8e8e8fffffff3f3f3fefefef9f9f9ffffff
+fffffffffffffffffffcfcfcfffffff9f9f9fafafafffffffffffffcfcfceaeaeaffffff
+ffffffe8e8e8f8f8f8fdfdfdf9f9f9fffffffffffffffffffffffffffffff9f9f9f5f5f5
+f3f3f3f8f8f8fbfbfbfefefef7f7f7fbfbfbf5f5f5fffffffffffffffffffafafafbfbfb
+fffffff9f9f9050505f8f8f8e9e9e9fefefef8f8f8ffffffffffffffffffffffffffffff
+fcfcfc050505000000000000000000000000
+000000000000020202000000040404fbfbfbfffffffffffffffffff7f7f7f5f5f5f3f3f3
+eeeeeefafafaf9f9f9f6f6f6ffffffffffffedededf7f7f7f2f2f2f1f1f1fffffff2f2f2
+e9e9e9ffffffe7e7e7ebebebffffffffffffffffffeaeaeaf5f5f5f8f8f8fffffff0f0f0
+fffffff7f7f7f5f5f5f4f4f4fafafaffffffefefeff3f3f3fffffffdfdfdfefefeffffff
+f7f7f7fafafafcfcfcf2f2f2f9f9f9fafafaf9f9f9fffffff2f2f2ffffffffffffe6e6e6
+ffffffedededf9f9f9fffffffafafaf8f8f8fffffff2f2f2ffffffedededfffffffcfcfc
+fffffffffffff7f7f7fffffffffffff2f2f2ffffffedededffffffeeeeeeedededffffff
+fffffff6f6f6fbfbfbfffffffefefefffffffefefef9f9f9fffffff6f6f6ffffffffffff
+fffffffffffffefefef6f6f6f7f7f7eaeaeafffffffffffffffffff5f5f5eeeeeeffffff
+fffffffcfcfceeeeeefafafafffffff6f6f6ffffffe1e1e1f7f7f7f3f3f3fffffff1f1f1
+fefefefffffff5f5f5f2f2f2efefeffffffffffffffffffff8f8f8ffffffffffffffffff
+efefeffefefefbfbfbfffffffafafafbfbfbedededfffffff6f6f6050505101010ffffff
+f7f7f7fffffff7f7f7fffffffdfdfdfefefee9e9e9ffffffebebebfffffff5f5f5e4e4e4
+fffffffdfdfdfdfdfdffffffffffffeeeeeeffffffffffffebebebf4f4f4ffffffe7e7e7
+fffffffffffff3f3f3fcfcfcedededfafafaffffffe3e3e3fdfdfdfffffff6f6f6ffffff
+f1f1f1ecececfffffff6f6f6fefefef8f8f8fffffff7f7f7efefeffefefeffffffe7e7e7
+f9f9f9fffffffbfbfbffffffefefeff0f0f0fcfcfcf6f6f6f4f4f4fffffff9f9f9f1f1f1
+ffffffffffffe8e8e8fffffffcfcfcfffffff5f5f5fffffff3f3f3dadadafdfdfdeeeeee
+edededf5f5f5060606e5e5e5fffffffdfdfdfbfbfbfdfdfdffffffffffffffffffffffff
+fcfcfc050505000000000000000000000000
+000000000000020202000000040404fafafafffffffefefefbfbfbfbfbfbfdfdfdfafafa
+fffffffffffffffffffffffffdfdfdfffffffefefefcfcfcfffffffdfdfdfffffffefefe
+fdfdfdedededfffffff6f6f6f8f8f8f7f7f7fffffffcfcfcfafafafffffff8f8f8f9f9f9
+fffffffffffff9f9f9ffffffffffffecececfdfdfdfefefeefefeffffffff0f0f0f8f8f8
+fffffffffffffffffffffffffefefefffffffdfdfdfcfcfcfffffffafafafdfdfdffffff
+f3f3f3ecececfffffff5f5f5fffffffefefefffffff9f9f9fffffffbfbfbf9f9f9ffffff
+f5f5f5f4f4f4f1f1f1fffffffffffffffffffffffffdfdfdfffffffbfbfbfffffff6f6f6
+f5f5f5fffffff9f9f9fffffff1f1f1fafafafdfdfdebebebffffffecececfcfcfcf9f9f9
+fefefeededede5e5e5fffffffefefeffffffe3e3e3f9f9f9edededfffffffefefeededed
+edededfcfcfcecececfffffff7f7f7fafafae6e6e6fffffffffffff0f0f0ffffffeaeaea
+f8f8f8fafafaf5f5f5fffffff1f1f1fafafaeeeeeefffffff9f9f9e6e6e6ffffffebebeb
+ffffffffffffd2d2d2fffffffbfbfbf6f6f6ffffffffffffd0d0d0191919121212efefef
+fcfcfce1e1e1efefeff7f7f7f7f7f7fffffffefefeebebebffffffe7e7e7e9e9e9ffffff
+ffffffffffffebebebfcfcfcfefefeecececfdfdfdffffffe9e9e9ffffffe0e0e0ffffff
+fdfdfdeeeeeefffffffffffffffffff0f0f0f8f8f8fffffff9f9f9ffffffffffffffffff
+fffffff8f8f8fffffffffffffffffff8f8f8f7f7f7fffffffcfcfcffffffffffffffffff
+efefefffffffebebebfffffffffffffffffffffffff3f3f3fffffff2f2f2ffffffffffff
+edededf1f1f1fffffffdfdfdf9f9f9ffffffe4e4e4fafafaf9f9f9ffffff000000111111
+ffffff000000fffffffffffff5f5f5f0f0f0f4f4f4fefefefffffffffffffefefeffffff
+fcfcfc050505000000000000000000000000
+00010000010001010100000403020af9f8fffffefffcfcfef6f6f6fffffffdfdfff2f2f4
+fffffff5f5f3fcfdf7fffffafcfcfafcfcfcfffffbeff0ebfffffffbfbfdf2f2f4ffffff
+fffffff6f6f8e6e6e6fffffdf1f3f0fefffdf3f5f4fefffffffefff6f5fafffffdfffffb
+fdfef9f3f4effffffbf5f6f1fffffbfffffbfdfef9fafaf8fffefff2f0f3fffffbfffff8
+fffff8fcfdf7f2f3eefffffdf1f1effefefefffefff7f6fcfffefff6f6f8fffffffbfbf9
+fcfdf8fffffbf8f9f4fcfdf8f9faf5fefffdfbfbfbfffffff3f3f5fffeffebebedffffff
+fffffdfdfdfbfffffbf5f5f3fefefeffffffeeecf1fffefffbfbfdfffffffcfcfcefefef
+ffffffedededfffffff5f5f5fffffffffffff5f5f5fffffff5f5f5f5f5f5fffffff1f1f1
+f3f3f3fffffffffffffffffffefefef7f7f7fdfdfdfffffffefefeefefeff4f4f4ffffff
+eeeeeeffffffffffffefefeffffffffefefefffffff7f7f7f7f7f7fefefef2f2f2ffffff
+fcfcfcfffffffefefefffffffffffffffffffffffffdfdfdfffffff7f7f7ffffffffffff
+fdfdfde9e9e9fffffff4f4f4dcdcdcfffffff4f4f4000000121212040404010101090909
+0f0f0ff5f5f5ffffffe5e5e5fffffff7f7f7fdfdfdfffffffafafaf7f7f7fffffffbfbfb
+fcfcfcf1f1f1fffffff9f9f9f8f8f8fffffffffffffbfbfbfffffffffffff5f5f5f2f2f2
+f2f2f2ffffffedededfffffff0f0f0fbfbfbfffffff6f6f6fffffffdfdfdffffffebebeb
+fffffffffffff4f4f4fffffff9f9f9fffffff5f5f5fffffffefefefafafafefefeffffff
+fffffffbfbfbf6f6f6fffffff8f8f8f9f9f9f4f4f4fffffffefefefcfcfcfffffff7f7f7
+fffffff1f1f1ffffffffffffffffffe4e4e4fffffffefefef2f2f2f4f4f4090909020202
+000000fffffff7f7f7f5f5f5fcfcfcfffffffffffffafafafefefefefefefdfdfdffffff
+fbfbfb040404000000000000000000000000
+01040001020003010401000c060118fdf8fffffcfffffdfffdfbfcfdfbfcfefcfffefcff
+fdfdfdfefff7feffeefeffeefafcf7fcfefbfefff4fffff6fdfdfffbf8fffbf9fefbf9fe
+fffcfffbfafffafafcfcfef9fafff8f7fcf5f7fdf9fbfffffffcffede9f8f5f6f1fffff4
+fcfff1e3e7d8fafef0fbfff1fefff4fffff3fefff2fefdf8fffafffffafffffcf0ffffe7
+ffffecf2f7e3fefff6fefffaf8fbf2fdfffcfefefffefdfffefefffdfefffcfefbfdfff9
+fefff6fefff4fdfff2fbfff0fdfff5fbfffafdfffefdfefffdfdfffdfdfffefdfffefeff
+fefffafefff7fffff5fffff7fffefcfffdfffffbfffffcfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+efefeff3f3f3f8f8f8fdfdfdfffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01040001020002000101000c05001bfbf5fffffbfffffcfffcfbf7fcfbf6fdfbfcfdfbfc
+fcfdf5fdfff1fdffedfcfff1f6fbf7f8fdf7fcffebfdffeefcfcfcfcf9fffcfafdfdfbfc
+fffefffdfbfefcfcfcfefffbfcfff8f8fff5f8fff8fcffffeae7fafaf6fffffff8f8fbe8
+fafeedfefff3fefff4fdfff3fcffeffcffedfcffecfdfdf5fff9fffff9fffffceefffee5
+f5f9e0fbffecf4f7f0eff1eefefffaf6f8f7fafafffbfbfffdfefffcfef9fcfff6fdfff5
+fefff4fefff4fdfff3fbfff1fdfff5fbfff9fdfffefdfefffdfdfffdfdfffefdfffefeff
+fefff9fefff5fffff3fffff5fffdfcfffcfffffbfffffbfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f6f6f6f9f9f9fcfcfcfffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefefffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010200010100020100010005030010f9f4fffefafffcf9fffafceefafde8fafceffbfdef
+fbffe8fbfee9fcfdf7fbfcfef4f8fbf5fcf4f9ffe3fbffe3fcfdf7fbfafffdfcfafffef9
+fbf9edf7f7edf9f8f4fcfdf8fbfef7f5faf3f3f8f2f5f9f8fffefff2f0f5edefe2ebeedb
+f6faecfbfef5dfe4e0ecf1ebf9fdeef9feeafafdecfcfbf6fef8fffff7fffffaf4fffced
+eeefe1fffffaecebf1fbf9fff5f4fafffefffcfcfcfcfdf7feffeefdffe8fcffeafefff0
+fffff8fffffdfefefefcfcfcfefff9fdfff9fefffafefefefefefffefefffffdfffffefc
+fffef9fffff7fffff7fffef9fffefcfffdfffffcfffffcffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfdfdfdfefefefefefefffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000020200010000020006f7f3fffcf8fff8f7fcf8fbe6f8fddff9fce9f9fce7
+f9ffdbf9ffe3faf9fef9f8fff4f8fff6fdf5f8ffe0f8ffe0f9fcf3fafafafcfbf6fdfef0
+f9f9e1f7f6e1f9f6effcfbf9fbfcf6f5f8f1f3f5f0f5f7f4efefeff4f5effcffeefefff1
+f8faf5f6fafdf5f8fffcfffff6f9eef7fbeaf9fbedfaf9f5fdf7fffef6fffff7f8fefaf1
+fefef4e4e4e4f6f3fffaf6fffdf9ffe8e6f4fefefcfcffecfdffe1fcffdcfcffe3fdffed
+fffffbfffefffefdfffcfbfffffefcfffef9fffef9fefff9fffefafffefafffefafffefa
+fffefafffefafffefafffefcfffdfefffdfefffdfffffdffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010009020003020200010200000100f5f5f7faf8fff7f6fcf7fbe2f7fedcf7fbeaf7fce6
+f8ffd4f6ffddf8f7fff6f5fff6f9fff5fefbf8ffe7f7ffe3f7faf3f7f7f5f9f9edfdfde5
+fefed8fdfddbfffbf2fffefdfffff8fcfcf4faf9f4fafbf5fffff8f3f5e7e1e4cff3f7e9
+f0f1f6e0e1f5f5f5ffeceffff3f8f1f6fae9f8faeffaf9f7fdf7fffdf7fffdf7fbfcf8f5
+f4f4e8f2f2f0fffbfff4edfff7effffff9fff9f8fdf7fae5fcffdafbffd6fbffe0fdffed
+fffffdfffefffefdfffdfafffffdfefffef9fffef7fffff5fffff3fffff3fffef5fffef7
+fffefcfffdfefffdfffffdfffefefefefefcfefffafefffafffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffefefefdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010010020008020200010300010300f6f7f2fbf9fff7f7fff6fbe5f6fce2f7f9f8f5faf3
+f6ffd7f5ffddf6f8fff5f5fff5fafff5fcfff5fff6f5fdf0f6f7f9f6f6f6f8f9ebfcfce0
+ffffd4fcfcd8fef9f3fffcfefffef3fdfbeffbf8f3fcfbf7edefe2fbffeefbffeef0f5ef
+fcfdffeaeafff5f4fff8f9fff3f8f4f4fbebf8fbf2fafaf8fbf9fcfcf7fefcf5fdfaf6f5
+fafbe9f0f2e7fbf7ffe7dffffff3ffded4ffdddaedfffff3fbffdffaffdafafee3fcfef0
+fefefcfffefffefdfffdfbfefffcfffffcfcfffef7fffff3fffff0fffff0fffff2fffef7
+fffdfefffdfffffcfffffcfffefefffefffafefff5fefff5fffffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010013010009020200010300010400f7f8f0fbfafff9f9fff7faf1f5faf4f5f4fff5f7ff
+f5ffe7f3ffe2f6fafff4f8fff2f7fff2f8fff3f8fff4f7fff5f4fff6f5faf9faeafdfedf
+fdfed4faf9dafcf4f2fdf7fbfdfaebfaf7e6faf5f2fcf8f9fdfef6e4e7dcfefff8f2f5fc
+dfddff28255e1d1858ecedfff3f9f9f5fcecf7fcf6fafcfbfcfbf7faf9f7faf5fcf9f5f2
+eef1d2fafee5efecff150b4818076d2e1f7efff8ffe9e9ebfafdecfafee7fafceefcfdf5
+fefefefffffffefff9fdfcf7fffcfffffcfffffdf9fffef3fffff0ffffeefffff2fffef7
+fffdfffffcfffefcfffefdfffefefefefff7fefff0fefff0fffffaffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010013010009020200000300020500f7faf1fcfcfff8f9fff5f8fff4f6fff4effff3f2ff
+f3fbfef3ffeff3fdfff3faffeff5ffeff3fff1f1fff1f1fff3f2fff6f6fffafceffdffe5
+ffffdffdfbe4fcf5fcfff8fffffcebfcf9e6fdf7f9fffbffe2e2e2fcffffe0e4e50a0d20
+2c295e100c561b1666eae9fff2fafdf5fdeef7fdfdf9fdfffbfcf4fafaf2f8f6fbf6f5f1
+f5fbd7feffe7fbf8fffef3ff19057e1a077bebe2fff8f6fffafaf8f9faf2fafbf6fcfcfc
+fefdfffffffffefff9fcfdf7fffcfffffbfffffcfefffef9fffef3fffff3fffef5fffefa
+fffdfffffcfffefcfffefdfffefefefefff5feffecfeffeefffffaffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000e010007000100000200030500f7faf3fafafff3f4ff16173508083e352d94140e6e
+e9ecffedf8feeffbf9f0fafff0f8ff0d0e51110c73282284141244d7d9e8fafbf6f6f7e7
+f0efddfffff8fff8fffffbfff0eee1f5f3e4fcf7fdfffbfffefdffe3e5f2fcfefff7f7ff
+dddaff221e73211c78e5e4fff0f9feedf8eaf9fdfffcffffe8ecdefffff3efedf0fdfcfa
+ffffe8eff4defefdfffbf1ff1501872a1699f7efffeceafffefeffeff0f4fefefffdfdff
+e9e9f5fefefffefffff7f6fbfaf6fff9f5fffffbfffffefffffbfaf8f7f5fffefff5f4f9
+fcfbfffcfafffdfbfffefdfffdfffcfdfff3fcffebfcffedfffffaffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010009010005000000000100020600f7faf3f8fbfff2f4ffe8e9ff191667201691030074
+14145eeaf2ffe0edf3f3ffffe9f1ff2324771005900f0487eeecfff6f8fffafafff7f7f7
+fffefcd9d6ddf6f0fff7f1fff0eeeff3f2eefefafffaf6ffefeffff8f9fff0f1fff0f2ff
+edebff16116f191279ebe9fff0f9fff8fffbe9eeffe9ebffe7ede3f3f7e8fbfafffffeff
+f1f4e9e3e8e2efedfff8f0ff1d08951d0b91ece4fffbfcfffefdfff4f6ffecebfdfcfdff
+f0eefff9fafff9f7fffefcfffefcffefebfff5f2fffffcfff0eefcf7f5fffefcffeeedfb
+fbf9fffcfafffdfcfffdfdfffdfff9fdfff3fcffedfcffeffffffaffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010002010002000000000100020500f7f9f4f8fcfff2f4ffebe9ff272183191091130c90
+3c39a2d5daffeaf6fff4ffff1f28530706631d0eb32010aef9f5ffe2e3fff1f1fffaf8ff
+edecfafffcffe3ddfff5effffefcffeeedfff0eefffcfcfff3f2ffe7e8fff2f5ffeff1ff
+dfdcff181473110b75efeefff3fdfff1fbfcf5f7ffdfdefffcfffffefff6e4e4eef4f2ff
+f7f8fffbfdfff0efffece6ff210f99271899e8e4fff5f9ffe5e6f8e6e8fdf6f6ffdddefc
+fcfaffe6e5ffd9d6fff8f7ffededfff8f8fff2f2ffe3e3fffcfafff0efffd6d5f4fbfbff
+f9f8fffafafffbfcfffcfef9fcfff6fcfff2fdffeffdfff2fffffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000000002000000020500f5faf3f7fdfbf0f4ffe1dfff19147adfdaff0e0a85
+0702801c1e83e8f2ffddeaff000433f4f5ff1103b21000a8e5e3ffe9ecfffaf8ff181544
+1b1b35000018302e561713460b0841f2f0fff7f8ffe5e9ff2727590c0c421c2046212451
+06064e1f1c770f0a71d8d7ffebf4ff1b252f07074311104cdce0ece6eae928263c1d1b40
+1b1a44c5c7f0f4f6ffedeaff14068d1e1290e5e6fff5fbfff1f5fff2f4ff191b4222244d
+090a3a181750272467eceaffd5d7fff8fbff1b1d4e23245a0b0a440b0a431a1849131339
+f5f7fff7fafff8fdf9fbfef3fcfff2fcfff2fdfff4fcfdf5fffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100000002000000020500f5fbeff7fef7f0f5fff4f2ff0a0665e5e6ff0e0e6e
+2c26ae130f97e7eaff040b4f2a3167e1e3ff0e00ab2314b7dcdcffeff2fff9f5ff1a145c
+242446fbfdffebedff211f60090363ede9ffe9eefff2f9ff11124a2b2c65f4f8ffeff3ff
+f7f8ff111264171578edefffeaf5ffe7efff221e72211b71fbfcfff7f9ffe9e4ff1b164e
+292864f3f4fff8fdffdfe0ff1308882d23a0eaecffe2e8fff0f2ff1c1c5a14154ef8f9ff
+e5e6ffdfdfff0d0a592f2f79eaf1ff151d4e111755e1e3ffe8e6ffdfdefff8f7ff212356
+f1f5fff4f9fff7fdf1faffebfbffeefcfef1fcfdf7fcfcfaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100000000000100020500f4fcedf7fff2eff6ffe0e0ff151668f4fcffd8e0ff
+120e99000098e9e7ff191d80dce5ffd3d6ff1a0eae060093f4f7ffeef2ff0000561c1574
+e3e5ffe4ebfddee1ffe6e5ff241a9f1f1993d5ddff29334c21235cd5d5fff3f7ffdde3ff
+dfe5ff191b65181774dee0ffe6f1fff0f9ff110a71150e78f6f4ffe0e1fff2edff1e195c
+000045eceefff7fefff7fbff1a118e180f8edddfffebf0ff0e0d5919166fe4e3fff3f3ff
+f7f8ffecedff2625750e105dd5e0ff06134a131b662f338c0d0c720f0d72dfe0ffe4e6ff
+eff4fff1f9fcf5feedf7ffe5fbfee9fcfef0fcfcfafcfbffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100000000000100020600f4fdeaf7ffefeff7ffe5e6ff0b0e51deedf4ecf9ff
+1a169f2218cf0901ac060587f2faffecf0ff231aab1d159ee1e6fff7fdff130b78160e7d
+eff3ffecf6fff3f8ffe2e2ff1005a9110ba3dfebff19283d0a0c45f8f8ffecf3ffe8f0ff
+f5fcff0a0e4e171970eff3ffdde7fff5fdff160d84160c89f5f0ffefeefffcf5ff0a0351
+242369edf3ffd3dfeddce4ff120c861a1397e5e7fff2f6ff26238c0e097f121073121365
+0b0f4f10145321236d1a1e67e8f4ffe5f3ff161e710000643536aa02027413137516195e
+eef3fff0f8faf4fee6f6ffe0fbffe6fbfdeffdfbfefdfaffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000000000000000000100020600f5fde8f7fff0f0f6ffe4e6ff1c205df1ffffe6f3ff
+1110881f19b900009426279bdee5ffd0d4ff1d14a3120a93ecf3ffe3e9ff201b8117117d
+dde3fff5fdffcbceffe8e6ff1107a40c0890e7f1ff061431252774ebebffe3e7ffdde2ff
+e9ebff0e0e66161475e5e7fff1faffe8edff1f168b190d93eee6fff1ecffe3daff140e66
+060555eff4ffe7f3fff0faff130e8c100995dce1ffe8efff101080151392ededffc9c9ff
+dfe4ffe5ebffe0e3ffe1e7ffe1ecff12205fd5ddffe2e7ffcfd0ff1a1a8c121272181b60
+eef3fff0f8faf3fce7f6ffe0f9ffe5fbfeedfdfcfafdfbffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0300090100050c0b09000200000300fefff3f3f8f4fafdffeceeff0f1051e1e6ffe7ecff
+d5d6ff16197a12176be3ecffdae5fbf7faff01008e1f14b0d2d6ffe9f3ffd5d9ff20217b
+181a6fdddcffe9e2ff3c35bf03016ceceeffc4ccf0262c601a1990030091181598181598
+10089b09008f0d0781f3f1ffe6ecffeef2ff140f6d170b912c1db60f0194130c7c252182
+0e0c71eef0ffdbe6fff1fcff010086090798eef9ffe0eeff0d167313198b0b0f8ddce0ff
+e5eeffcbd5ffeef2ff030663dee7ff141d5ee4e9ffe1e5ffccccffeceaff0102551e205d
+eff4ffecf3f9fbfff3f9ffe7f7fde3feffedfcfef1f5f6f0fffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0a0313030007050402010100000200f1f3e8f0f1f5f6f7ff070834262664171761d8daff
+f5f8ff111753131b4aeef7fff7ffff0c0d43170c971f16a32e3271e4efffd8e0ff1a2165
+0e13671c1c8a09019400007c2c2e7beaeefff8fdffe4e6ff0000762220b10805920a0595
+f3e9ff271db2170f860f0c5bf7fbffe3e8ffe7e5ff19108304008e1d11a5ece7ff0c0960
+100c6d1f1e6eebf4ff1b2352100e8b040287010d55dbebffd6e1ff0e16790f14890e137b
+0c1654121b54080a5f282a81d6dbff0e144e1d22661d1e6e0e0e64211f73292971d0d1ff
+eef2ffebf0f6eaf0e4f5fde8feffedf9feeafdfff2fffff8fffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0300090100040100000a0a02060800f5f6f0feffffeeeffff4f4fff1f1fff0efffededff
+d8d9ffebeeffe3e8ffe5ebffe2e6ffeaeaffddd6ffd9d5ffe0e7ffe7f3ffeaf4ffdee7ff
+ebf2ffdadfffe6e4ffefedffddddffeef0ffd3d7fddfe3ffe2e8ffeaf0ffc0c4ffecedff
+d3d0ffc9c4ffebe7ffebe9ffd0d2f8f9fcffe4e3ffece9ffeae4ffdcd7fff3f3ffe1e2ff
+e6e3fff5f4ffd7daf9cdd0f9f5f4ffe8e8ffcdd4ffeffaffe3eaffdfe4ffdee0ffd6d8ff
+f0f3ffe7e9fff0efffdfdfffe7ebffecf3ffeaf0ffe8e9ffededffe5e4ffdedefff4f5ff
+e9edfffbffffeef3ecfafff1fefff3f0f3e8fafbf6fffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0100020d0b0c010000010000000100fffffdd6d7dc38374721213d000022353460272554
+24255113153b202342101336181947201f580f0d4c1f2056282f4c1824341c273b0f1a30
+0d1732070f331b1e5313154e10124524255325244c25294f222b5600093628305e080e3e
+181b522d2e66212155211f4e2e2e521515371b1a460a0b3b1b1b4f090c39292e4c0d112e
+100d382b264f1f1c373130520b094812125220244901072902053a33357016184b191a48
+1716421d1a471a17441d1b4211152e292f471c20450d103d2120592827601a184a0e0e34
+323449d6d9e0fcfffbedf3e7e8ebe2f5f7f2ffffffefeef3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+090a05000100000100151513000000d9d8ddfbfafff7f5ffeeedfffefcffece9ffeae7ff
+eeebffe9e7fff7f5fff5f5fff2efffeae8fffcfdffeef1ffe5ebfbf1f9ffebf4fbf7ffff
+f7ffffe6f0faf2fafff4f9fffbfdfffbfcfff4f3ffe9eaffe0e9faf3fffff0faffe4edf6
+f3fafff6faffe4e7f6f9faffeae9fff3f2ffececfff8fafffafefff2f9ffdde4ecfafeff
+fffcfff4effff5f0fff4f0fffefbfff0f0fff2f3fffbfdfff3f3ffeeedfff1f3fffbfbff
+f1ecfffef7ffe3def4fffdfff8fcffeff4f8edeefff6f6fff1efffebe9fff9f7fffcfcff
+eff1fffdfeffd8dad5f7faf3fefffdf0f1f3f8f8fffefeffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010300000100000100060606030207f7f6fefffdfff0eefbfffdffe4e1eaf5f2fbfffdff
+fffcfffffdfff5f1fffaf6fff8f4fffefdfff1f4edf9fff5fbfffff1f7fff6fffcd9e4dc
+f9fffff3fcfbf9fffbf9fff9eff4f0ededf5fbf9fffcfdfff8ffffdeeaeaf7fffef9fff8
+fbfff1f0f8e3fefff6e3e4e6fefdfffefcfffefdfff1f4f9edf2ecf6fdf5f9fefff5f8fd
+fffdfff6f1f7fff8fffffcfff1eff2fffffddbdbddfefefffbf7fffffdfffdfff2fbfbf1
+fffafff9f1fffffdffece9e2f5f7ecfefffaf9f8fdfffdfff7f3ffe5e2fdfffbffe5e4f6
+e9e9f3fefffff8faf5fbfdf8fefffff7f8fcfdfdfff8f8fffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+070b00000300020300000002000009e6e4f1efebf9fffdffe9e7eafffdfcfffffaf2efe8
+fffaf6e3ddddfcf6fafffcfdf2f1ecfffff3fafee5e4e8d7f9fcfffbffffeaf1eaf9fff8
+f8fefef5fbfbf1f8f0fbfff0faffe2ffffecfaf9fee5e4f6eaedffe9effdf8fdfff2f8ee
+f8fee4f3fad9e4e8cdfffff3f9f9fbe5e3eeebeaf2fefffffcfefbf7fbfaf9fcfff9fcff
+fdfcf8fcfbf9fffbfffffdfffffff4f4f5e3fffffad9d9dbf9f6ffdedcddf8fbe0fcfce4
+fffcfffcf4fff9f4eefcfbe7ffffeff6f7e9e5e4e0fffefffffcffebe8f9fcf8fffaf8ff
+fffefff5f5f3e8e9e3edeee8f7f9f6fbfcfefefffffeffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0004000003000c0d08000004090714fffdfff2eefdf4f1fafffefde5e2dbfcf8ecfffff1
+f4eee2fffef6fffdfaf3ece4fafae0f5f9d6f9fddcffffeff2f2fcebedfcf7fcf6e6eee1
+f5fcf5f4f8f7ecf1ebfefff1f3fad0f8ffd6fffff7fffdfff1f1fffcfcffe5e8f1f5f7f2
+ffffecf8fdddf3f6d7ffffeafcfcf2f7f6f4fffefffffefff3f4f9ededf5fcfefff5f8ff
+f9fbf6fffffdf6f4fffbfafffafdeaf0f4dbfefff5fafaf8f5f5f5fffff6f1f4d5f9fce1
+f1ecf0fcf7fefcfaeeffffecfbfae8fdfbeefffff8eeeae9f2f0f5fffcffebe8effffeff
+f3f3f1f9faf4fffff8fcfdf5f4f7f0fefffbfefffff6f7f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00040000030000020000000403010ef8f6fffefafffdf7fffef8f8fbf7eefef8eaece6d6
+ffffeffdf5eafff9f2fffdf0ffffdcfcffd8fbfee1fbfdf0fdfbfffdfcfffbfffcf9fff1
+fcfff3f9fff5ebecf0fbfcf6ffffdff9fed6fffdf1fdfafffcf9fffcf9fffcfbfffdfdff
+fdfff4feffedffffe8ffffe8ffffecfffff3fdfbfcfefcfff9f8ffdddcecfcffffe5e9ec
+fbfffffbfffff4f7fff0f4fdf8fef0fcffefe8ebe4fefffdfafdf6fcfef1fdffeafcffec
+fbfbf9fbfbfbfcfef3fffff2fffff2fffef5fffcf7fdf9f8fbf6fafbf6fcfbf9fcfefdfb
+f6f5f0f7f7edf8faedfafceefbfdf0fcfef3fdfef6fdfef8fffffdfffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00040000030000020000000403010cf8f6fffefafffdf7fffffafefdf8f5fffef6fffff3
+efe7dcfff7ecfffdf4fffaedffffe1fdfedefbfde8fcfcf4fdfcfffdfdfffcfefbf9fff0
+f5fde5e6eddbfffefff9f8fdf8fae2ffffe6e3e0d9f6f3fafcf9fffbfafffcfbfffcfcfe
+fdfcfafdfdf5fffdf0fffeeaf9f9e1fdfce8fffffbfaf9fffefdfffcfeffd4d8dbfbffff
+f7ffffdfe9f2f8fffff9ffffe5efe6d9e1d4eff5f1fcfffdf8fbf0fafeeffcfff1fdfff5
+fcfef9fbfdfafafdf6fbfcf6fcfbf6fffdf8fffdfafefdfbfffbfcfbf9fafcfbf9fdfcf8
+fbfbf3fcfcf2fcfef0fdfff1fefff2fffff3fffff3fffff6fffffbfefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000020000020000000203020af8f6fffefafffbf7fffffbfffbf6fdfdf7f9fffbf8
+fff9f6fcf5effff9f1fffef6fffcf1fdfbeffafaf0fbfaf5fcfcfefcfdfffbfdf8f8ffef
+fcffe4f2fbe0efeef3f6f4fffefcfdf8f7f3fffdfff8f6f9fbfbf9fbfcf6fcfbf6fcfbf7
+fef9fdfef9fdfff9f9fffbf2ffffedfefde9ebebe3fafafceaeaf6eff2fbfcfffddae3de
+dae7f0f2ffffebf6ffe4edfceaf4f3f9fffdfbffffe6ececf6fceef7feeefbfdf8fcfefd
+fafff9f9fef8f7fbfaf7f8faf8f8fafcfafbfffdfefffffffffdfefcfcfcfcfcfafcfdf8
+fbfbf3fbfbf1fcfcf0fcfdeffdfef0fdfeeefdfeecfdfef0fdfef9fdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000200000200000100030305f8f7fdfefafffbf7ffeee6fbfbf3fffff8ffdfd7e4
+fffcfff5eff1faf5f1faf5f1fef9fdfdf8fcfaf9f5fafbf5fbfcf6fbfef7f8fdf6f7fdf1
+e8efdfe1e7dbfefffff5f3fff5f2fde9e6f1e5dfe9fffefffafbebf9fde6fafbedfaf9f4
+fcf7fdfcf7fefdf6fdfcf8f7fffef2e6e7d7fffff4fefffafcffffd9dde6f9fdffeaf2ff
+303b4f0b172f1b2540e1e9fcf8ffffeaf3f0d6dbe1fcfffff9fdeef9fdecfafaf8f9fafc
+fafcf7fafcf7f8f9fdf6f7fcf6f7fcf8f9fdfbfcfefcfefdfbfdfcfbfbf9fcfdf8fcfdf8
+fcfbf6fbfaf5fbfbf3fafaf0fafaeefafbedfbfcecfbfbeffafbf6fbfbfbfcfcfcfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010200000100030400f8f8fafdfbfffaf7fffff8ffeee7ffeae3fffff9ff
+f0e8fdfffcfffffbfcf8f4f5fef8fffdf7fff9f7f8f9faf2fafceefafeeff7fdf1f5f9fa
+f6f6fffcfcfff1f1fdeeeff4f7f5fffffcfffaf4fffffefcf9fbe3f8fddff9faecf9f8f3
+fbf7f8fbf6fafbf6fcfbf6faf7f3f4fffffaf0f2e4f5f9eaeff4eefbfefff7f8ff17194c
+e1eaff1b27410a1334f4fafff1faf9f9fef8fefefffbfafffdfeeefbfde8f8f7f3f7f5f6
+f9f8f4f9faf5f8f7fcf6f7fcf5f8fdf5f9fcf6fafbf5f9f8f4f9f3f7f9f4fafdf6fcfef9
+fefefcfefefcfdfcfafdfcfafefaf7fffcf7fffcf3fefef6f8f8f6f9f9f9fbfbfbfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000005000004010200000100030400f8f9f4fdfcfffaf7ff10082f1e15442e24581b1440
+e5defff8f3fffffefff0eeeffef8fffaf7fff8f8faf8f9f1f8fde9f7ffe7f5fcecf4f6ff
+fcf4ff000040fdfbffe4e6e3ffffffcdccd1fffdfffefdfbf8fce5f8fce3f9f8f3f9f7f8
+fbf7f6fbf7f4fbf7f6f9f7faf6f3fef9f9fbfcffeff7ffe8f9fff6e8ecff0c0763140f73
+e1e7ff17213c1f244adfe3fefcfffbe8ebe0f7f4fdf7f2f9fffdecfdfbe4f9f5ecf9f4f1
+fbf7f4fcf8f5f7f5f8f4f3f8f4f9fcf2fbfaf2fbf8f2f9f2f0f7eff3f9eff6fbf4fbfdf8
+fcfcfcfbfbfdfaf8fdf9f7fcfbf6fafcf8f9fdf9f8fefaf7f6f4f5f7f7f7fafafafdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000b000005010100000200030500f8f9f1fdfcfffaf6fffff8ff2219520e0443fef6ff
+f0e9fffefaffeae9f1efefedfcfbf9faf9f7f8f8f8f8f9f3f8fde6f6ffe2f4fce7f2f3ff
+1000842f1fa4faf8fffbfff1f8fbe8fffff3eeedebfffffdf9fbf0f9faf2f9f7fff9f7ff
+faf9f4fafaeefafaf0faf8f9faf6fffbf9ffe2e7d3fcffecfafff9f1f1ff190ba02114ac
+f2f3ffedf3fff9faffebeafff1f5e7f3f5e0fef7fffffbfffff8e6fdf7ddfdf6e6fff6ef
+fff9f6fff8f6f8f2f2efeeecf4faf8f2fdf9f3fef8f2fcf3f1fbf0f2faedf4faf0f6fbf5
+f6f7fbf6f5fdf6f3fef4f0fef7f1fdf8f2fcfbf4fcfbf6faf5f3f6f6f6f6f9f9f9fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000e000007010200000300030600f7faeffcfefbf9f8ffe1deff231d5d241e64e8e4ff
+f2f2fff1f1fff1f0fff7f6fffaf8fff8f7fff6f4fff4f4fff5f8fff4faf8f3faf2eff1ff
+1200963320b8dbd9ffe8ede9fcfff6f0f3ecfefeffecebfbf6f8fff6f7fff6f3fff6f4ff
+f8f9fdf8faf5f8f7fff8f4fff3f0fffaf7ffe9ebfff4fbfff5feffe4e4ff1c0bbc1806be
+dedbffe7eafffbf9fffbf9ffebecf1fffffdf3ecfef5ecfdf9f4f0f8f4e9faf4f4fff8ff
+fffbfffef7fff5edffe9e5fef1f4fff2f9fff4fefff4fffef3fef6f1fcf6f0f7fdf2f5ff
+f5f6fff5f4fff3f1fff4f0fff5f2fff8f4fffaf5fffbf8ffefeffff1f3fff5f5fffbf9ff
+fefefffffffffffff8fffff8fffffdfffefffffefffffefffffffbfffffbfffffdfffffd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020012010006000300000400020700f6fdedf9ffeff3fbfde9ecff16165c151762e5eaff
+e8f5ff111a4118158a110a8b1c19661b1a54000048221d6f201b6bdddcfff9feff060934
+1205880e00893b397811152ef8fdfff9fdffeceeff2c2d5d181b46080949140e78282580
+f5fdffedf6ff13135b211c801b167adcd7ff1c177e0c0d5deaf4ff1216530c00b01706c6
+2420811b1d4eeff0ffe6e7ff23245214133f07072d1d1c3c3a3a54e6e6fffcfafff4f1ff
+e9e6fffbf9ff130e4e201b6b241f85171771e2e9ffeaf6ffeefbffe1edfb2a3256171952
+1716621a186c11105ef3f4ffe0e3ffe3e4ff2524661919630b0d5a1d206f1312621a1859
+f8f7fffbfdfcfafce6ffffeafffefbfffbfffffcfffffdfffffff6fffff3fdfff7fcfef9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010011010005000400000600020600f5feedf8ffeaf1fcf8ebefff1a1c67121564dfe8ff
+e9f9fff0fdff0703961b13b8d7d3fff3f2fff1edff181272110a71e9e6ffdee4fef7fbff
+180f82211794e7e6ffe1e4ffe0e3ffebedff1110521b1c5dd7ddffe0e5ffd8d4ff15137e
+0b1636dce7ffdadaff0d09842422900d0b790a0681252585e6f1ffeff6ff2014c02111ca
+e7e3ffd3d5fff2f4ff181952100d5af0edffefefffe0e0ff14125d18165fe6e7fff1f2ff
+f1f0ff01004d0d0a57e2deff0d07830e0b7e1d2361e5eeffedf3ff101555171c5ed2d6ff
+e2e4ffd8d7ff1a178809086ee9edff0d1256090969d7d7ffdcdeffe7eaffddddff0f0f59
+f0f1fffefffff1f0dcffffecfff9fafff9fffff9fffffcfffffff3fdfff0fcfff4fafff9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000f000002000400000500020600f4fcf1f7ffeff0fafce1e4ff1b1d68161968f2fbff
+d9e9f6e1efff1613a00d079bf3f4ffe0e5fff1f2ff1211531a1764f1f2ffe6eef9e2e7ff
+150d7a231994e1dfffeaecfff8f9ff121155211d72e7e7ffd8e0fff5fcffdad9ff04045c
+283150f0f9ffdadaff2320891a1b6ed2d4fff5f6ff080d45e4f1f9eaf2ff0a00991407ae
+f0f0ffeff3ffe0e1fff5f3ffe0daff1e187a1410640e08682013a10b0080f8f9fff8fbff
+140e70181179f8f8ffe8eaff1b197e211e850c0f52f4f5ff01008710069ad8d6fff3f6ff
+e8ecffe5e5ff140c962018a1f2f3ff121461120c8619129e120f940d0d7feaebffe8eaff
+f7fafffefffff5f4f2fffbfbfef4fcfff5fdfef8f8fefbf4fdfdf1fbfff1fbfef7f9fefa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000c000002000300000400020500f5faf4f6fef3f0f7fff6f7ff0c0b59141565d7ddff
+e4f1fff2feff00007d2925ade8ebffe9f0ffecf0ff18194f1e1d5fe2e4ffeaf2fdf7fcff
+1c14810f0582f7f3ffe6e5ffe4e2ff110d62150e750d0b5e232949151f3a191c61282b70
+050e2bd5deffe5e6ff0b0b650a0e4ef4faffe8eeffdfe8ffe2f1eee9f2ff3028af160a9a
+dddfffeff4fff8f9ff0f0c5d120a770d0575f1ebffe3d9ff1804bd2414b5dfe0ffeef2ff
+2119892b2299edeeffebf1ffe8e9ffd4d7ffe8edffe2e2ff2316be2214bf040263111749
+0b1435282d670802800f088adee0ffecefff201c8b120b8d1a18930e0f790708583b3d70
+eef0fffdfefffaf9f5f6f2f1faf3fafbf4fcfdf7fbfefaf7fdfdf1fdfff4fcfef9fcfefd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010009010000010400000300020400f4f8f9f5fbfbeef3ffdfdfff1413611e1f6feff5ff
+d4e1f1e0edff14138a1a1691e6ecffe4ebffe8ecff1c1e57101056edefffeff7fff1f6ff
+160f810f0588f3efffe6e5ffe9e6ff231e841a1387dad6fff7fcffeef6ffd2d5ffebeeff
+f1f8ffe5ebfff3f3ff1615611b1e55e8edffc4caeaf7ffffd3dfdff5fbff0f087c170f88
+e9edfff7feffdfe1ff18156c1d1688e8e0ffe7e1ffddd3ff1e09d42211c1e1e4ffe3e9ff
+040075150c89e2e6fff1fbfff3fdffedf6ffe4ebfff0f0ff0700870f048ef7f8fff0f8ff
+d8e4e2f7ffffebebffd5d3fff1f5ff151a42efefffe2e3ffe2e5ff181a7127228600004b
+f1effff8f7fcf2f5daffffe8fbf5f7fcf3fffdf4fffef8fffefef4fefff2fdfffafdfffe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010005010000010300000200020403f6f6fef5f8ffeeefffd7d5ff2f2c7b13125ee6ebff
+f5fffff4ffff0e0d75161481f1f7ffedf4ffe8ecff2c2e67151657e6e9fff2faffe5eaff
+211c82110a7eedebffe8e8ffd0cfff16136c16117826237cdfe3ffeaf0fff5f8fff1f6ff
+131836f2f8ffe3e3ff16165c21225aedf2ffeef3ffd1d9ecf8fffff5faff090365262283
+e2e7fff6feffe1e5ff2020680f0a6e110b7514116c221b8b1404af0d0096d2d6fff7fdff
+2823890a056c2e335df4fffff7fffff1fdfd11172df7faff150f731c1879111346e6efff
+f8ffffced8e1f8fbff15184bd9ddff212845eff2ffeff2ffe4e8ffdee0ff282282292478
+f5f3fffdfcffe1e4c9f7f7dbfcf6fafdf4fffdf5fffdf9fffffff7fffff3fefffbfeffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010004010000010300000200020308f6f5fff4f6ffedeeff201e5d1d1b66010048171a4f
+f2faff09122f07075f1a1976202453dce3ff2d325c020636181b520d123cf1fbfff4fcff
+0e0e562e2d7d070a3d090e34f7fcffe9edff14165112135320205e1d1e560b0c3a21254a
+171a39d1d5fa2e2d670f0e521d1a5d171753f8f9fff6faffe3e5ff0d0f422a25770f0d58
+161c3ceff8ffe0e7ff12173f3031711b1c5f1c1f54eceeff120f6a2a287b1d2343e1e9ff
+d5d8ff151752171d3f192134060e1b232a3c282b4ce1e4ffececff2c2e610708382e315c
+1b1d44191d4225274e171b41eceeff1014392e315012153e1c1c5c211f6a131057e9e6ff
+dad7f2fffefffefef6f0ede6fcf4fffdf5fffef8fffdfbfefefef6fefff5fdfffefdfeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000201000001030000010003010cf5f4fff6f4ffeeedfff3efffe4e1ffdddaffeaecff
+eaf1fff2f9ffe8e8ffe5e4ffe7eaffe0e5ffe6eaffdde0fff4f6ffd1d5fff3fcffdae2f7
+e6e8ffe6e7ffedf3ffe5edffeaf2ffdce3fff3f9ffe7e9ffeae7fff1eeffdfdefff4f7ff
+d9daf9f6f8ffe4e1ffeceafff2ecffdddaffe8e5fff9faffe6e3ffe7e6ffeae5ffedebff
+e9ecffd5dbfbe5ecfff3f9ffe3e6ffe1e3ffeef3ffe7ecffdee2fff2f6ffe8edffecf2ff
+e1e6fff2f7ffebefffe0e2fff2f3fff3f5ffdedeffe9edffebedffe1e5ffeeecffe1dfff
+e7e1fff1efffe0deffeceeffedecffeff2ffe7e8ffdee0ffe8e6ffe3e0fff1eeffeeecff
+fcfbffe5e4e9fffefffdf8fcfcf4fffcf6fffdf8fcfcfbf7fdfdf3fdfef6fcfbfffbfcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000013121002010000000000000bfefcffe7e5fd31305215104617134e1a17501b1d46
+1b2033171d3314154d1110541e1e5e1a1a5a17165c18165f1d1c621e1e5a1b1f44171b40
+151553151555151841151a37151a37151a3815193e1517481b155b1b16581c1a411b1c38
+1c1b3b1b1b411c19481b184f1812521814511a16481a18471c174d1c19521e194f1d1a53
+1a195d1a195b1a1b511a1b51191760171560161652151845161b39171b4118175b19185e
+191b4b181a4d17136716116f1c136c1c175a1d1c3e1c1f321d1e331c1c3e1d18501c1660
+21176e1c136c180f5e14104d15133a191a381f1d4222214d06033a2d285e1b1843080524
+2b2937d5d4d9fcfafbfffdfffffafffffafffffcfdfffef9fffff5fffff8fffefffffeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0302000100000100000d0b0c000009ebe8fbfefcffe3e0fff3edfff3effff5f2fff6f6ff
+f6f9fff2f8fff2f1ffeeeeffefefffecebffe9e8ffeae9ffeeedfff0f0ffedf0ffe9ecff
+f3f3fff3f3fff3f6fff3f7fff3f7fff3f7fff3f6fff3f5fff5f0fff5f1fff5f5fff5f6ff
+f5f4fff5f3fff5f3fff5f2ffebe8ffebe8ffecebffecebffedeaffeeebffeeecffeeebff
+eceaffeceaffecedffecedffebe9ffeae7ffe8e8ffe7eafff3f9fff4f8fff5f3fff6f3ff
+f6f9fff5f7fff4f0fff3ecfff7edfff7f0fff7f8fff7fafff7f8fff7f6fff7f4fff7f1ff
+f9f1fff7eefff3eafff0eafff1f1fff4f6fff9f8fffcfafffefafff6f2fff0ebfffcf6ff
+f0edfeffffffe6e6deedece7fffbfffffafffefcfffffefcfffff3fffff6fffefffffeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+090806010000010000010002000007e9e7f5fdfafffefcfff2eefff3effff4f0fff2f2ff
+f2f4fff1f5fff1f1ffeff0fff8fafff5f8fff3f5fff4f6fff7fafff9fcfff6fbfff4f9ff
+f2f5fff2f5fff2f6fff2f6fff2f6fff2f5fff2f5fff3f4fff1f1fff3f1fff3f3fff3f2ff
+f3f0fff3f0fff3f0fff3f1fff7f5fff7f7fff7f8faf7f8fcf7f6fff7f5fff7f4fff5f5ff
+f6f6fff6f9fff6fbfff6fafff5f6fff4f4fff2f4fff2f6fff1f7f3f2f8f8f2f4fff3f5ff
+f3f8fbf2f7fbf2f3fff2effff3f0fff5f1fff5f6f8f5f7f2f5f4fff5f3fff5f3fff5f3ff
+f6f2fff5f0fff3edfff2eefff2f3f5f4f7f0f6f6fff8f7fff9f9fbeae8f6efe7fff6ecff
+faf4fffffefffafce4ffffeafefcfdfefafffffbfffffdfffffff2fffff0fffefffffdff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000001000009070801000205040afffdfffbf9ffefecfdfffcfffefcfffefdfffefdff
+fefefffcfffffefdfffcfefffefffffcfffffdfefffcfffffefffffcfffffefffdfcfffd
+fefffffcfffffefffffcfffffefefffcfefffefdfffefefffefffffefffffffffffefeff
+fffcfffefcfffffcfffefefffffffffefffafffff4fefff6fffffdfdfefffefcfffdfdff
+fefffffcfff8fefff3fcfffafefdfffcfdfffdfefffafff9fdfff7fbfff9fdfefffbfffe
+fdfff2fbfff3fdfefffdfdfffefdfffefefffffffdfefffffffcfffefdfffffdfffeffff
+fffefffefefffffcfffefdfffffffbfefff8fffffffffffffdfcf7fffefffff8fff1e9ff
+f8f3fffaf9f7fdffe9f0f2dcfffdfefffcfffffcfffffdfefffff0fffff0fffdfefffcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0302000100000a080901000209070cfffdffeeebf2fffefffffefffefdfffdfcfffcfbff
+fcfbfffcfdfffefefffefffffafafaf8faf9f9f9f9f8faf7fafafaf9fbfafafafcf8f9fd
+fcfbfffbfbfffcfafffbfafffcf8fffbf9fffcf8fffcfafffcfdf7fcfef1fdfbfcfcfbff
+fdfafffcfbfffdfbfffcfcfafcfcf2fbfdeffbfceef9fbedfafbedf8f9f1f8f6f7f7f7f7
+f9fbeef8fde9fafee7f9fdeff9f7fff8f7fff8f7fcf6f8f5fbfbf9fafcf9fbfcf6f9fcf1
+fafdecfaffebfbfdf0fbfcf4fefffafefefffffbfffefbfffffbfffefcfffffcfffefefc
+fefdf8fdfef6fefdf9fefefefffdfffdfcfffdfbfffdfbfffaf5fbf3eef4fffdfffffdfe
+fffffbf3f2eefffefffffefffffcfffffdfefffff5ffffeeffffeefffff3fffdfffffcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+090806010000060407010002010000f1eff0e6e4e7fefcfdfffffbfffffafefffafefefe
+fefdfffefdfffffffafffff8fffffdfffffdfffffbfffffbfffffafffffbfffeffffffff
+fffffdfffffffffdfffffdfffffcfffffcfffffbfffffdfffefef4fefef2fefcfffefbff
+fefdf9fefef6fefdf8fefef6fffff4fffff6fffffdfffffbfffff1fffff1fffff8fffff8
+fffff3ffffedffffecfffff4fffdfffffcfffffefffffffdfffffdfefefcfffef9fdfff2
+feffedfeffecfffff2fffff6fffff5fffefcfffbfffffafffffcfffffdfffffefcfffff7
+fefff1ffffeeffffeefffff3fffdfffefbfffdfbfefffbfafffdfffdf7f7fcf7f1faf7ee
+fffff6eae9e4fffefffffdfffffdfffffffdfffff2ffffebffffebfffff2fefcfffefbff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000040205010002070604fffffbfffffbfbfaf5fffff3fffff2fffff3fffef9
+fefdfffefefffefff5fefff3fbfaf5fbfaf6fefbf4fcfcf2fdfbeffbfbeffdfaf5fcfcf4
+ffffeeffffeefffef5fffefafffdfcfffefcfffdfcfffefafffefafffdfffffbfffffcff
+fffff0ffffe9fffff0fffff5fdfcfafdfafffcf6fffcf7fffcfbf6fcfdebfcfdeffbfbef
+fafaf2fbfbf1fdfbecfcfcf4fef7fffcf7fffdf8fffbfaf8fffff8fffef9fffbfffefdfb
+ffffedfeffedfffdfafffefffefdfbfefcfdfefbfffefbfffefdfbfefef4fefef2feffef
+feffebfeffeafeffe8feffedfdfcfafdfbfefcfbf7fefcf0f2f0dbfffff1fffdfffffcff
+fffefffbf8f1fffff3efefe3fffffffffffffffffbfffff2ffffebfeffedfefdfbfefbff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+06030c010005020005010000010100f2f3e5fefff1fafdecfeffeeffffeffffff3fffffa
+fffefffefffffefffbfefff7fdfcf7fffef7fffff2fffff0fffef1fffdf1fffdf8fffef5
+ffffeaffffeafffef1fffdf4fffdf6fffdf6fffef2fffef2fffff8fffefffffcfffffcff
+fffff4ffffecffffecfffff3fffdfffffbfffff8fffffafffffefaffffeeffffeffffff1
+fdfcf7fefdf8fefef4fffdfafffbfffffafffefcfffefdf8fefff5fefff9fcfbfffbfaff
+fcfcf4fffcf5fffbfffffbfffffdfffffdfefffcfffffdfffffff7fffff2fffff2fffff0
+ffffeeffffecffffecfeffeffdfcf8fdfbfcfdfcf8fdfdf1ffffe7ffffeff8f3fafffaff
+fffbfff2f1ecffffeff9faeafffffdfffffffffefffffef9ffffeefeffeffefdfbfefcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000017000010010006000100060a00fdffe4ffffe4fcffe4faffe6feffeff9fcf1ebf0ec
+fcfffff9fbfffcfefff8f8fffaf9f7fffff3faf9e4ffffedf8f5eceae6e3fffefff0ece9
+fefcf0fffff3fffffafbf7f6fbf7f6f9f5f2fffff8fefceff8fae5fffff4fffdffdfdcf1
+fffefffefff9fdffeaf2f5e0fbfafff6f4fffffdfff9f8fdf9faf4f4f7e6ffffedeef1de
+fefff8f6f8f3fbfcf6fffffbfffafff1eff2fffffaf9fcf1fafff9edf6f1f4fcfff9fdff
+f3f3fff2eefffff9fff2e9fcfffefffffffbfffffdfffffdfffffafffffafefff9fefff9
+fffff8fffff8fffff8fffffafffffdfffffffffffdfffffbfffff8fffffafffefffffeff
+fffefffffffdfffffafffffafffffffffffffffffffffffdfffffafffffaffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000c000009010006000000050800faffe6feffeaf8ffeff4f8fbeeeffff3f4fffbfcff
+e5e6ffedf0fff9fbffefeefffffdfffffefffcf8f5f6f5f1faf5f9fffefffef9fdfffeff
+fffcf9fffffafefaf9fffffdfffefdfffffbeeebe6f2f2e6ffffeef2f4e9fffdfffffcff
+ede9f7fffffdffffe8fdffe2fffff4f7f7f5e9e8e6fbfbf9fffffbfdfef8edede1fffff8
+eceff4fbfffff3f3fbfcfbfffffdfffdfbfff6f6f6ebf1edf6fffdf1fdf9f7ffffe7f1f2
+fbfffff9f7ffe5ddf2fff7fffffdfefefff9fefffafefffafefffafefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+02060002040001000500000c020307f8faf9fbfcfff5f5fff1eaff180e6e241c83150f6f
+1a176416155b110e5b211e63ede7ffded8fcfff6ff221c42fbf6ffedecf4f9f7faf5f5f7
+dedce1ffffffefeee9e9ebe0dfdfd3fbfdf2fffffafffffdfffeffe6e4e9faf4fef5f2f9
+fcf8f9fffff3f4f5d3f1f7c9f7fbc9f8fcd7fffff6fbf9fefffdffdfdce5f6f0fafbf8ff
+f2f1fffbfaff080427f6f1fffffbfff9f5fffefbfffbfdfff0f9fee9f8f3f2fff7f2ffef
+e1edd9fefff4f5f1f0fffdfffcfbf7fcfdf7fcfdf8fdfef9fefffafefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+02070002040001000b000015010010f6f5fff7f7fff1eeff190d7d2c1ea70f0389ccc5ff
+eeecffe8ebff212272100f5bf1ebfffef5ff1d106a020048fef8fff5f4fff4f4fcfafaff
+fefbffebe9ffdfe0e5fefffaf8fbf2d7d9d4eeeef8fcf9fff4effff6effffffdffdfdae1
+f6f0fef2edf3f6f4e7ffffe4ffffd8f7f8d9eae5ecfef5fff5ecfffdf4fffff9ffefe9ff
+e1ddff0f0c4f2e2866faf3ffe7e1fffbf6ffe8e6fff1f4fff7ffffdfeef3dfeef3f5ffff
+ecf8e4faffe8ffffece7e6d4fafaf0f9faf4fafbf6fbfcf7fdfef9fefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+05010002000601001700001b010014f5f3fff6f3fff0e9ff24179a08008bece6ffeff0ff
+dae2ffedf8ffe1ecff212761e7e4ffd5ccff13028c1e0f90efeaffeeefffedf0fff4f5ff
+e7e2fff3efffe8e9ffe4e8f3fbfffff1f4fff4f3ffe5e2fff2ebffece6ffe3e1e6faf6ff
+dfd5fff7ecfffff9fff2eefdf6f4f9d0ccdbeee4ffe9ddfff2e7fff1e7fffff8ffe0d8ff
+f2eeff1a15711f1671e4dcfff5f1fff6f3ffe9e9ffecf0ffe9f4ffdfedfff2fcffcfd7ff
+e9f2f7f1f9e1edf5c4f7fdcff8fbe8f8f9f3f9faf5fbfcf7fcfdf8fefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+05000d04000f010013000012020109f4f6fff6f6ffefebff221895291db117119900006c
+eaf1ffdfebfff1fdffd3dcffe0e2ff2d27872616b51e0fa81a18630f1434f8feff000029
+1c1773181272f8faff141a34181f32f4f9ff15155334307a251c5bfff8fff0eef91f1b36
+2d1e792f1e84d9d0ffede7fff8f1fffff6ff21155f16095b201363261b5fe9e1fffaf6ff
+2622760c0869241d7d1a13601c1a3fe1e1fde8e5ff2d2f681720470a1542151b670d1256
+141b2efbfff4fbffddffffdff8fbeaf9faf4fafbf6fbfcf7fdfef9fefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040008040006020001000100030700f5fde6f7fdfbf1f3ff130f7005008b251bca160dc2
+2b27c6000083141c81eef8ffedf6ffdfdfff040093291bb6ddddfff6fdffdbe3faf7faff
+1a1289150c8903034b161b431b223fdce1ffefeeff04005d1c1670ded9ffe2e4fbfbfaff
+1001801c0c90e9e6fff9f9fff6f1ff00004b130b5ef8f0ff150c65140d5d24215ae2e1ff
+e2e1ff3f3d91070254fbf6ffe6e5fffbfbff0d07610d096ae3e8ffe8f2ffd9e0ffeaf1ff
+293148dce4e7e7e7f1eeedf5fafaf8fafbf5fbfcf7fcfdf8fdfef9fefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040000040100020300000300030700f6fee6f8fff5f1f8ffe9ebff26268a0c08930e0aa9
+120daf1f1fb5000284121c75e1effff3faff0d04911a10a4f2f6ffd0dbedf5ffffe3e8ff
+231c9e070088eaecffedf4ff010b26edf5fff0f3ff14146a08065af7f9ffedf3ffebefff
+271aa8050087f0f2ffeef4ff19156a1f1a80e7e4ffddddff302f75070942181c42e7ecff
+f0f3ff0d0c5a100d5af4f3fff8f8ffe9e9ff171070191381121866030a5810137ee8ebff
+d8dcffe7ebfffefbfff9f5fffbfafffbfcf6fcfdf8fdfef9fdfef9fefffafffffdfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0a0900030200010300080a00010200d4d8dbfbffffeaf1ffeef6ffe9f5ffe7f5ffcfddff
+eef7ff030a7400038e080f7aeafafff4ffff110d851b1697eef6ffd3e1ecf4ffffd7ddff
+100a8e1e18a0eaeeffdfeafff4fffff4ffffd0d8ff1920571f2755f1ffffd4e3eaf2feff
+211ba1110d95f0f8ffe6f4ff1718740a0b75ebeffff2fdfff1fdffdaecf0f4fffae3f2f7
+d8ddff3c3b8b0d095eeceafff4f4ffebecffe9e5ff15126d1c226e0004652823bb100a9e
+1e1b76d8d9fffefcfff1f0f6fdfdfbfafbf5f8f9f4fafbf6fdfef9fffffbfefefcfcfcfa
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03030003020001000006050d000010e8e9fefafcffecf1ff16202af4ffffdaececf1ffff
+e3f1ffe4eeff2223af131689e9f8ffd7e4f51c18891e1997f4f9fff0fcfff3fcfff1f6ff
+0e068d030083f5f7ffe4efffe7f4fadfeef3f5feff151d4b030e44e5f0fff1feffd6deff
+02008e06048be0ecffe8f6ff0e136f0d107bebf2ffdbe7ffd6e6fdf1ffffdef2f3ecfbff
+f4faff020151201a70f0ebffe6e5fff2f3ff24206af3f0ffd7daffdadeff120ea1120d9f
+17146ff8f8ffe9e7fff9f8fefcfcfafafbf5f9faf5fafbf6fdfef9fffffbfefefcfdfdfb
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0303001b181302001d00002b06002bfcfbffdde0eff9feff13163ff0f3ffdce2ffe6edff
+dfe5ff070c6a0000751d1f8ce9f2fff3faff130b85090286eae9ffdfe5ffe1e3ffe1e1ff
+3328b21f189cdfdefff5fdfff7ffffe1eff2edf5ff0f164d0c0e7d05048c13139701008c
+211cc01e1da7e7f1ffe0eeff121a6f181d850e127dd9dfffebf6ffd9e5ff0d1665ecf2ff
+e1e2ff0b0a58110c5cfbf6ffdddbfff5f1ff150b6bdad5ffdde0ffeaf0fff0f3ff14166d
+1c1e4fe8e9fffcf6ffefe9fffbfafffafbf5f9faf5fbfcf7fdfef9fffffbfefefcfdfdfb
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030300010000010022040032000022fefcfffcffffdcdff21f1e57090653232476171a69
+04094d272a79282993f4f4ffe6e9fff2f2ff1c128c130888130f662c2b6ff1efff120d69
+150b8601006f1a1861e2e6ffd9e0f2f8ffffe4eaffeceeff120e861b17ac050097ebe6ff
+07019712128a0e155be9f5ffe3ebff060d5e171980161a7d0d135f0f17601c1f80d5d7ff
+e6e4ff1c1a63322c741a14541b1545f2ebff231b71140f6b21246900013c181f6321285f
+d7dcfaf8f9fff5f0fffffbfff9f8fdf9faf4fafbf6fcfdf8fdfef9fefffafefefcfefefc
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+02050005060001000c0200150b0b15d8d9dbf3f7f8f7fafff3f0ffd8d5ffe9e9ffe7ebff
+f0f6ffecf4ffd7d9ffd5d3ffe3e2ffece9ffded5ffddd4ffede8ffd4d1ffdfdcffe6e2ff
+eae3fff9f3ffefedffdedffff9fcffd6daf5ebeeffdcdcfff3f2ffd3d1ffebe6ffe8e5ff
+dad5ffe5e6ffe4e7ffebf3ffdbe1ffe8efffdcdcffeaedffeaedffe2e9ffdaddffe6e8ff
+eaeaffd0ceffe1daffeee6ffe4ddfff2ebffe4e0ffeaeaffeaefffeaf2ffe9efffe0e6ff
+f9fcffe1e3f0edebeef3efecf8f7f2f9faf4fbfcf7fdfef9fefffafefffafefefcfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0103000b0c000b0a0f000005000100fefffaeaece91416231a174224215606082f1b213b
+18202b050c1f191b4b2d2e670a073e312e6728216515105328235b22204f201d4a282655
+130e440e0c3e04022a2c2c4e2625440f102e1b1a3c24244a262551101042211e571e1d57
+1a16512728580e0f2e1116294347522a303e1d1d410000281c1c4220244104061b272c42
+16193c262551221c4c1b13421f173e1d18381d1a390b0c281d233d131c390c1439171d41
+1c21372f2f39fffefbfffff6f6f6eef8f9f3fcfdf8fefffafefffafefffafefefcfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0001000000000000040302070c0c0cebede8fafcf7f3f7f8eaecf9fcfdfffbfefff4f7ff
+fbffffe7edf9eaefffeef0fffcfdffdfe1f0efeff9f6fafdecedf1f2f6f7eef0edd7dcd6
+fefffaf5faf6f9faffebedf9f4f2fff0f0fffefbffece9fff2f1fff1f0fefcfaffeeedfd
+f7f2fffcfafff6f4fff7f9f8ddded6eaede6fdfcfff8f7fffef8ffe5e2fdfafaf8fdfff7
+f8fdffe1e4f5f8f7fffffcfff9f3fffffafffaf6fff9fcffeaf1ffeef8fff7ffffebf4f9
+f7fbfffffdffdbd5dff7f0f7f5f4f2f8f9f3fcfdf8fefffafefffafdfef9fefefcfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020200080808000005000005000002fffffdebeee5f0f3eafcfefbedefeeeff0f4ebecf0
+eef2f3f5f9fafcfffff2f6f9eaebf0fefffff3f7e8f3f8e4f7fbedfbfdf0fffff1fafee7
+e5eacaf0f6dcfefff8f2f3f7fefefff3f2fff6f7ffefeefcf8f7fcfffffbf6f6eef9faf4
+f4f2f5f9f8fdf1eff0f8f9f1fffff1e3e6d3fffff1ecede8f8f3fffffcfff2f3e5f2f5e0
+e8ecebfafdfff5f6faf4f3f9f9f5ffdedae9f8f6fffcfffff7fefff3fdfce7f4e3f3feed
+f9fef8dddce1fffcfffff9fff4f2f5f8f9f4fdfef9fffffbfefefcfdfdfbfefefcfffffd
+fffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200000007000009030305f8f9f3fbfdf0f6f8ebf8f9f3f9faf5fcfdf5f2f4e6
+fbfee9fdffefebeae6f7f6fbf5f5fffefefff2f2f0fffffbf0f0f2fffeffdfdedcfafaf0
+feffeaf8fbe8fefefef4f4fcf3f4f6f1f5f6f1f6f9f4f9fcf5f7f6f4f6f3f5f6f1f5f8ef
+f9fcebfafeeffafafaf8faf9f9fbeef8fde7f9fde4f8fcebf9f9fbf8f9fdf9fbedf8fcee
+f6f6fff8f7fffafbfffcfcfcfcfcfefbfbfdf9f9f9f6f8f5f2f4f1f4faeef7ffe3f6ffe0
+f1f9e4f0f5eff5f5fff9f9fffffefffffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000020000000900000b030305f8f9f3fbfdeff6f8eafcfbf7f3f2eefffff4ffffec
+e9eccff1f3dbfffffafffefffcfbfffeffffedeee8f7f8f2e4e2e5e5e3e8faf6f7fffdf6
+f2f4dfeeefdff9f9f9f9fafefcfffbf5fcf4f3fcf9e9efeffafffbfafcfbf9fafef9fbf8
+faffe9fbffeaf9fbf8f8f9fdfafcf7fafef0faffe9faffebfafdf4fafdf6fafdf4fafcf7
+f9f9fffaf9fffcfdfffdfffcfefffafdfef8fbfdf0fafdecf7fae9fafde8fcffe1faffe0
+f5fde8f3f9eff6f9fef9fcfffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000020000000700000b030305f8f9f3fbfdeff6f8ebeeeeecf6f6f6e9e8e3f1f2e4
+ffffecfeffedefedeee8e5ecfffffff0f3eafbffe8ffffeafffff3fbfbf1fffff4faf9e7
+ffffeaf9fbe5fcfdf5f4f6f1f3f9ebebf3e8f9fffffafefffdfffefcfcfefbf8fffbf9ff
+fdfef8fdfff2fcfdf7fafafcfefcfffefdfffefefcfefff5fefff3fefff7fefefffefdff
+fcfcfafdfef9fffffbfffffbfffffafffff4fdffe6fcffe0fbffe0feffe3feffe8feffed
+fafdf4f7fcf8f9fdfcfcfffffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200000007000009030305f8f9f3fbfdf0f6f7effffefff8f7fdfaf8f9fffff8
+f2f3e3f4f4e8fffdfffaf8fffeffffeaede6ffffe6f0f6d4f6f7e5fdfdf1f0eee1f7f8e8
+f4f5e3fbfdeffefffafcfffbfbfff6e8f1eef2f6ffedeefff7f7fff7f6fbf7f5fff9f7ff
+fcfcfefefffafefffafdfdfdfefdfffefcfffefdfffefefcfefff9fefffafefdfffefefe
+fdfff1feffeefffff6fffffafffffafffff6feffecfdffe8fdffe8ffffecfefff3fefff8
+fdfffcfcfefdfdfffcfefffbfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000100000005000009030305f8f9f3fbfdf2f6f7f1f6f4fffffcfff7f5fff6f6f8
+fefff9f9f9f7f9f7fffffcffeae8fef8fbfff7fce6faffe4fffff6fffffdf4f3effffffb
+fffefffcfbfff5f5fdedf0f5f2f8f6f9ffffedecfff7f6fff7f4fff7f7f9f7f8f0fafbf3
+fdfdfffffefffffefffefefffefff9fefff9fefefcfefefffefdfffefdfffefffafefff2
+feffe8feffe6fefff0fefff5fefffafefefefdfcfffdfcfffdfcfffefdfffffefffffeff
+fdfcfffdfdfdfefffafffffbfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000100000005000007030303f8f9f3fbfcf4f6f6f4f3f0fff8f4fffefbfff2f0fe
+f7f6fbf6f7fce5e2f7f4f1fff0eefffcfdffdde1d2f6fbe5fffffff0eff7f8f6f9eeedf2
+fcf9fffcfbfff9fbfffbfffff3fbfdd3d9f3373485171264fcf9fffcfdf7fbfee9fcffee
+fefdfffffdfffefefefdfef6fdfff2fdfff2fdfef9fdfdfffdfcfffdfcfffdfff4fdffeb
+feffe6feffe6fdfff1fdfef6fdfef9fdfdfffdfbfffdfafffdfbfffdfbfffdfafffdfaff
+fdfcfffefdfbfefdf8fefef6fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000100000005000007030303f8f9f3fafdf6f5f6f8f7f5ffd0ccedfefafffbf9ff
+e8e7f5fcfefff8f5fff0eefff7f3ffdedffefafff6fcfff1f9f9fffaf9fffffefffaf9ff
+fdf9fffefbfff8fafffbfffff9fffdf0f6ff17127009035dfbfafffbfee9fafde8fbfdf0
+fefdfffffffffeffecfdffe6fefff2fefff9fefffafefefcfefffafefff7fefff2feffee
+ffffebfeffedfdfef8fdfdfdfcfef9fcfefbfcfcfffdfdfffcfefdfbfcfffcf9fffcf9ff
+fefcfffffdf8fffef2fffdf1fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000100000005000005030301f8f9f3fafcf7f5f5fd1916353c3662110c351e1d3f
+f5f5fff0f1ff15143424234d1f1d4f121332f8fef2fcffefececf8fefdffeceee9fafcf9
+fbf9fffcfdfff4f9fcf1fceee8f6ddf3fdff0e0b64252178f3f6fff5f9e0f5f7e9f8f8f6
+fcfafffefdffffffe8feffe3fffffafffefffffefffffffffffffffffffbfffff6fffff4
+fffff6fefffafefcfffcfcfffcfef9fbfff7fbfffefcfffbfbfff0fcfff2fbfafffcf9ff
+fefcfffffef5fffeedfffdeefffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010100010000000004000005050503fcfdf7fefffdfbfbfff1efff110d40141043f4f3ff
+f1f2ffeaebfffbfbff090b341a1c43ebf1fffbffeadfeacaf5f8fdf7faffedf6dbfbffe7
+fcffffebeff2f1fae5f9ffdfedffc8f5ffef22266505054dfbfefffdfff0d7d9d6fefdff
+f8f5fff8f7fffeffeffbffeafcfcfffefcffeeedfdfefdfffcfafff7f6fff9fafcfeffff
+fefdfffcf9fff7f4fff2f2fffcfffdf6ffeef6ffeef9ffeaf5ffd6f6ffddfeffffefecfd
+fffdfef4f2e6ffffecfffdeafffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010100010000000004000004030400f9faf4fbfdfaf7f6ffe4e1ff2b286124205bd4d2ff
+fbfbffe6e9ffdfe1ff23245416154ef3f5ffeef7f2edf3effbfbffeceafffcfff8fafff2
+e9eafffbfdfff9ffffe7f5dce4f7caf2fff7eef1ffececfff3f5ffe6eae9f7f6fffcfbff
+fef8ffefedfffcfdfff6faf9eeebfffbf9fff9f6fffcfbfffaf2fffcf8fff9f8fffdfdff
+eeebfffcf7fffcf9ffe5e5ffecf1f5f3fcf9f7fdfff8fffff2fdedfbfff6eaebfffefcff
+fefcfdfffff3fbf8e7fdfaebfffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020200010000010004010004010200f6f7f1f8faf7f4f3ffe8e5ff282363231e60eeedff
+eef0fff7fbffdfe2ff21215d100b69ece7ffd8d9ff2b29680000631c117a131140101036
+241d6d03005523225ef8fcffedf7ff181f4b060084170f96ecebfffbfdffe5e3ff100e40
+0c054b26216319173c3031502c285be8e5ffeae7ff221e5913066f170d6e1d1b4315152f
+2a255d0e094b14114af9fbffe3eafcf1f7ff14136314106e100f5104053b010037110f36
+fefefce0decffffef8fffefdfffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020200010000010004010004020300f7f8f0f9fbf8f2f3fff5f3ff191457100d52f5f5ff
+e8ebfff0f4fff4f7ff1818561a1579d7d2fff6f4ffdcd8ff1b0c9d2d1ca8f6f1fff2efff
+e8e0ff1f158625207ad9dafff5fdffe2e7ff1c16ac10079eebebffeef1fff9f8ff1f1b67
+140e64dad6fff5f6ff0607370c0854f9f5fff1f1ffeae7ff201396291d99f9f8ffdddfff
+f2efff0e0959201e5fdbddffebf2ff1f245e221ca0d9d0ffece6ffeae4fff4edff020039
+fffefffffff3e9e4e8fffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000010004010002030400f9fbf0fbfdfaf5f6fff0edff201a620f0b55dbdaff
+f8faffd3d8fef2f7ff1c1f5424246aeaeaffcdd0fff5f3ff2718a50d0083d9dafff1f4ff
+ede7ff1108710a065be1e3ffd9e2ffe0e7ff15119a2420a8edf1ffedf2ff0b075e1f1882
+f5f0ffe7e6fff4f8fff0f3ff1711731c157ce6e6ffeae8ff170c8f000074f5f4fff3f5ff
+e3e1ff2421721e1f62e1e6fff4fdff0c126000009f180cce0600a30b028fdcd2fff9f4ff
+dddbf0eaebe6fffcfffff8fffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000010004010002030400f8fbf0fcfefbf6f7ffe0ddff1f1b651a1764f7f6ff
+f1f5ffe2e7ffedf2ff111640161a49e9eefff7fdffe7e8ff00007c3e32aef9fcffdce2f2
+f5f1ff090365353386e6ebffe7f3fff2fcff00007e050380eef6ffe2e9ff2e2a880e0777
+d4d1fff7f9ffc6cdeaf4f9ff1d187e0c076eeef1fff5f6ff1c12993127ace6e7ffe7ecff
+f1f3ff1313591a1d64e8edffcedbffe4eeff2321b20c07ac2725ad100e89080081211980
+f3f1fffffdfff0eaf8fffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030000030000010004010002020300f6f9eef9fbf8f2f3ffe2dfff0f0b57242170c8c7ff
+dde1fff7fcffeff7ff0d1539101a35f5fffff3fcfff7faff201597050073f6fbfff9ffff
+e9e8ff221d7b1a186bebf0ffe3efffc1ccfa1616921a1990e3eefff5ffff080a551d1c7a
+e6e9ffdae0ffdce5ffeef6ff19196f060759f3fcffe1e7ff07008b1c149ee9efffe6f3fc
+dce6ff191f4f1f226fedf3ffe9f8ff10224ad0ddffe8f5ffe9f8ff121e522b279611087b
+f2edfff5f2fff6f4f9fffffafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040001030002010004010002000100f3f6ebf3f8f4edf1fdf3f2ff090844292969272962
+f1f6ffe4edffeef7ff26304bf4fdffe9f3fdf0f8ffdfe2ff140d751d1578eef3ffe9f0fa
+f0eeff161266090854e5e7ffecf5fff4fcff1d1c821a1a7ae1eaffeef7ffe3e6ff1c1c62
+050742e6eafff7fcff0e12411e1e64eff0ffd4dbf7f1f5ff170e8b130b84f7fcfff0fbff
+e7f3ff1f284f0c105adbe1ffe3f0ff132440f0ffffd3e3ffe6f9ffdeecff0f0e6c1d1680
+efe9fff1ecfffffefff8f8eefffffbfefffffefffffefffffefffffefffffefffffeffff
+fefffffefffdfefffffefffdfefffdfefffdfefffdfeffffffffffffffffffffffffffff
+fffffdfffffdfffffbfffffbfffffbfffffbfffffbfffffdfffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+04010a040108050308010000000100f1f4ebf4f9f3eaeff2f0f3ffecf0ff1d22400f1633
+131a342a354b0f1a2ee5f0ffecf3ffe5ebfbf7fcff2023440e0d47191552191840f2f2ff
+221f580d0b4a2e2d69101044eceeff3235600303411818541e2046f7fbffebeeff181a40
+0708382c2b6421205c0504401c1b54f5f6fff2f4ff26265a16116516125f15183bf6fcff
+1f28490008372a2f6f121856e7f3ff202d50141d540c134a151d440c1040221c72eee5ff
+fefafff9f6fffcf7fdfefcfdfefffdfcfffdfbfffcfcfffdfcfffdfcfffdfcfffdfafffb
+fbfffcfbfffafbfffcfbfffafbfffafbfffafbfffafbfffcfdfefffefdfffefefffefefe
+fefffafefff7fefff5fefff5fefff3fefff3fefff5fefff7fefffafefefcfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010007010005010002141412040500ebede8fefffff1f4fbeef1ffe4e8ffdde2ffecf2ff
+dadfffdce4ffdfe7fff0f6ffeff3fff4f6ffe6e7ffe5e5fffaf9ffdedcfffaf7ffe3e0ff
+eeeaffeeeaffe5e2ffe4e1fff8f6ffe2e0ffdedcfffbfaffebe9ffecebfff9faffecedff
+ebe9ffd5d1ffe4deffefeaffdad8ffe8e7fffbf9ffdad7ffe7e2fffbf8ffd3d3f9e4e7ff
+ecf0ffe6ecffdbe0ffebf1ffeef6ffd8e0ffe9eefff2f4ffe3e4ffe3e2ffefe9fff1e9ff
+e9e6f9fdfcfafffeffe5e3e4fefffffafffcf9fffdfafffcfbfffffbfffdfbfffdf9fffb
+fafffcfafffafafffcfafffafafffafafffafafffafbfffcfdfefffefdfffefefffefefe
+fefffafefff9fefff7fefff7fefff5fefff5fefff7fefff7fefff9fefffafefefcfefefc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0100000e0d0b000000000100000000feffffdad9e71717311d1b431d1a51322f721e1b68
+231f731f1b722a267d0c0a551917490f0d35110e392a2756161147100b45352f6f0b0447
+1710541c1559231c5f251f5f0802401b1650211c54120d432e295f0905371c1a4226234e
+19144a1913512e276d140d5028235d120e411b164e211c5626206027215d1b184724234f
+15174a191c51181b523236660000241a20442529590a0d401417422324501a174c1b163f
+22202bdfded9fcf9f2fffff8fbfdfaf8fcfbf8fcfdf9fdfcfbfffffcfffffcfffffbfffe
+fbfffefbfffcfbfffefbfffcfbfffcfbfffcfbfffcfbfffcfdfffafefffafefefcfefefe
+fefefefefefffefefffefefffefefffefefffefefefefefcfefffafefffafefff9fefff9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+100e0f010000000000151611000000dad9defdfcfffefbffe7e2fffcf7ffdcd7ffd1cbff
+eae3ffebe3ffd4cffff3edfffbf7ffedebfff9f4ffe8e5ffe1dafffbf6ffe1d9fffcf6ff
+f1e8ffede7ffebe3ffdad5fffef6ffefebffede6ffe7e4fff4eefff6f3fff6f1ffedebff
+f1ebffebe7ffede6ffede9ffddd7fffcf9ffebe5ffdfdcfff3ecffdfdcffd4cefaeeebff
+f0efffeaebffe5e7ffe3e6fff4faffeff5ffedf2ffe3e7fff4f7ffe2e2fffcfaffeeebff
+eceaf5fffffdeeebe2dfdfd5f9fbf8f6fafbf8f9fbf8fcfdfdfefffcfffffefffffbfffe
+fdfffefbfffefdfffefbfffefdfffefbfffefdfffefdfffcfefff7fefff5fefff9fefefc
+fefefffefdfffefcfffefcfffefcfffefcfffefdfffefefffefefcfefff9fefff5fefff7
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000009000007060608000000060604fffffdf4f4f6f7f6fefcf9fffdfbffebe8fffcfbff
+f5f4fffcfbffefeffffcfcffe4e2fafefcffe8e4fdf4f1fffaf4fffcf8ffe6e0fff7f2ff
+f2ebfffef9ffeae3fff2eefff9f3fffefbffe7e2fffefbfff6f2fffefbffebe6ffebe8ff
+fffbfffcfaffeae7f8faf9fff9f5fffcfafff4f0fffdfbfffffcfffefcfffffbffece9ff
+f5f2fffefcffeef0fff0f2fefafefffafeffe6ecf8f9fffffbfdffe4e6ffedeefff8f7ff
+f0edffe3e1ecedeceafffffaf9f9f7f7f9f8f8f8f8f9fbfafdfdfdfefffffffffffdfffe
+fefefefdfffefefefefdfffefefefefdfffefefefefefffafefff3fefff2fefff5fefffa
+fefdfffefcfffefcfffefbfffefbfffefcfffefcfffefdfffefefefefff9fefff5fefff5
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000c03010e0f0e14000000000100fffffae3e4defffffbfffffffaf9fefcfbfff9f8fd
+f2f1f6f9f9f9fefffaf0f0eef8f7fcfffefffaf8fffffdffedebf9f0edfefaf7fffdfaff
+edeafdfbf8fff8f5fffffdffeeecf9fffdfff6f5fdf0eff5fcfbfffffdfffefbfff8f5ff
+edecf1fffffbfdfff4ecede5fffffff1f0f6f3f2f7ffffffeff0eaededebfffdfffffdff
+f2eefdf6f3fcfffffffffffdf5f6f8fcfffff2f7f3ebf0f3f8fbfffbfeffe9edf0fcffff
+eae8fdf7f4fff4f4f6fcfdf7fafbf6f9f9f7f9f9f7fafaf8fdfdfbfffffdfffffdfefefc
+fefefcfefefcfefefefefefcfefefefefefefefefefefffafefff2fefff0fefff5fefff9
+fefefffefdfffefcfffefcfffefcfffefcfffefcfffefdfffefefefefff9fefff5fefff7
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000e00000b0b0a10000000030400fffff8f4f4ecfffff8eae9e5f3f2f0fbfaf8f7f6f2
+fffff8fffff4ffffeefbfcecfdfdf5e4e3dff6f5f1fdfcfaf4f2f3fffefff8f6f7f1eff0
+fffefff5f4f2fffefaf3f2edf2f2eafafaf0fffff6f2f2e8fbfbf1efeeecf4f1fcfffdff
+f0f0e6f3f5dff9fddcffffe4fbfceef6f6eef7f7ebfdfeecffffe8fdffeaefeeecf6f3fa
+fffcfff4eef2fffff8eeeee4f2f2f0fdfffcfcfff6f0f5eef3f8fef7fcfff7feeedfe5db
+fcfdfff2f0fffefffde7e9dcfbfcf4fbfaf5fbfaf6fcfbf7fffefafffffbfffffbfffefa
+fffefafffefafffefcfffefafffefcfffefcfffefcfffefafefff5fefff3fefff5fefff7
+fefffafefefcfefefffefdfffefdfffefdfffefdfffefefffefefcfefffafefff9fefffa
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+02011100000b000005000000000100fafbf3fffff8edede5fffffaf2f1ecf3efecfffff8
+f4f2e6f8f7e5fbfae5ffffebfbfbf1fffffafffffafcfbf6fbfaf5f5f4eff8f7f2fffff8
+f6f6eef5f5edf8f8eefffff4fcfdeff6f7e9f5f6e6fefff1fbfbeffffffbf7f4fffaf7ff
+f4f4e8ffffe8f5fad2f6fad7fcfdedf7f7effffff3f8fae5eef1d2feffe8fefdfbfffaff
+f8f0fdfaf0f8fcf7f1fffff6f5f4f2fffffde2e5dcfcfff8f4f9fcfbfffdf7ffe1faffeb
+f3f4fff3f3ffeff2ebfeffeffcfef1fcfcf2fcfcf4fdfdf5fffff7fffff8fffff8fffef9
+fffef9fffef9fffefafffefafffefafffefafffefafffefafefff9fefff7fefff7fefff7
+fefff5fefff5fefff5fefff5fefff7fefff9fefff9fefffafefefcfefefcfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000d000009000005000000020300f9faf4fffef9fcfbf6fbfaf6f6f5f1fffefdfffffa
+eceadeffffeffdfce7fdfceaf5f4f2f7f5fafcfafff2f0f3fffefffffefff0efedfffffd
+fdfcf8f8f7f3fffffafffffaf7f7effffff8f2f2eafffffaf9f8f6fffdfff3eeffe9e4f8
+fffefffffff1f1f4d9ffffecfdfcf8fffefffffffdfffff7fbfceaf9f9edfcf9fffffaff
+fef2fffdf2fff8f2f4fffefdfaf8fdfffefff1f3f2fafefdeef3f6f7fff2fbffddeef9d9
+f3f4fffcfcffedf3e5fdffe7eff2e1fcfcf0fdfdf1fffff4fffff6fffff6fffff6f9f9f1
+fbfbf3fffff8fffffaf7f6f1fffef9fffffaeeede8fbfaf6fcfcfcfffffff8f9f4fffff8
+fffff3f8fbe8ffffecf5f9e0feffebf0f3defffff1fffff6fefffafffffff6f5faf6f5fa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000a000007000004000000020300f9faf4fefdf9fbfaf8fffefff6f4f7f8f6fbfaf8f9
+ecebe7fffff6f0f1e3fffff6fffefffffdfffffdfffffdfff0eef1eae8e9fffffdfdfcf8
+fffffbfcfbf6fffffaebeae5f2f1ecfffffbfffefafffffdfcfafbebe8f1faf5fffffbff
+e2e0e5f2f2e8ffffeff6f7e7fffefffffcffebe9eeefeeecfffff6fffffbf4f0fffffaff
+fff6fffff5fefffaf7fffefbf9f7fafefdfffcfefffbfffffbfffff6fef3faffe2f4fee6
+fcfaffdedbfffafefff3f7e6fffff3fefef2fffff4f2f2e6f2f2e8fffff5fcfcf4fdfdf5
+fdfcf7f4f3eefdfcf7fffffaf8f7f3f4f3effaf9f5fffefffaf9fffffefff4f4f4fbfcf6
+ebeddfffffecffffe6ffffe4ffffe4ffffe6fbfee9fbfdefeff0eaf7f7f7f9f8fefffeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010006000004000000000000020300f9faf5fdfdfdf9f8fdf8f6fff6f4ffedebf9fdfbff
+fffefffcfbfff3f3f3f2f2f2f2f1f6e9e8eeecebf0fdfdfffffffdfffffbfffff8e6e8dd
+fdfff4f3f5eafffff6fffff6fefff7f5f6f0ecede8fbfcf7fdfdfbf8f8faf3f1fcfffdff
+efefeffffff8fefff2fbfdf0ecececfefdffffffffefefefe4e5e0f1f1eff7f5ffeeebf4
+f2ede7fffff1e3e0cffefcedfffff6fbfcffeaeaffe8e9fff2f5ffdae2e4f9fff4f9ffff
+1a145a181161faf8fffefefffffffbebede2f9faf2fffff8fffff8f5f6f0e6e7e2fffffb
+fffffdfdfdfbfbfbfbfefefef9f9fbffffffffffffe3e2e7f7f5fff1effafffefffffffd
+fefff3ecefdce8ecd1f6fbdbeef3d3f8fddfe8ebd6fffff3fffffafffffff6f5fbf9f8fe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000100000100020200f8f8fafcfafff7f4fffbf7fffefaffe8e3ffeceaff
+f9f7ffe1dffff9f8fff5f5fffefefffbfcfffffefff0f2f1fafbf6fefff8eaece1fefff4
+fffff3f1f5e6dddfd2f8fbf0f7f8f0fefffaf9faf5fefffbf8f9f3fefffaf2f2f0eef0ed
+fefffafcfff8edeee6f9fcf5f2f2f0eeeff1eeeef0fbfdfcfffffffcfdfff5f4faffffff
+f9f8e4f0f0d6ffffece1e2d0e9eddff5f8ffe8e7fff9f9fff9fcfff9ffffe3ebedf0f4ff
+1c127221167ff8f2ffdfdffbf3f3fbfefffbfdfdfbebedeaececeafefffffffffff7f8fc
+e4e3e8f8f9fefaf9fff6f6feeeedf5ececf6fefcfff5f3fefffdffe9e7f4eae9f1eeeef0
+fcfdf8fffff6f6f8eafdffedfcffecffffefebeddffffff6fefff9fffffdf8f8fafdfdff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010100010100000200000100020202f8f6fff9f7fff5f0ff251d56292268271f72221972
+000050352c8918126c191457f6f6fff5f8fdfbfcfff6faf9f7faf3f6fcf0f5f9ebf6fded
+eaeedffcfff3fefff4f9fff5ecefe8f3f8f4f6f8f7eef3eff1f4ebebf2e2f9fdecf3faea
+f8fbf2f3f8f2fefffffcffffe7e9e6fcfffdf4f6f5e4e8e9fefffff7fbfee4e6e5f7faf1
+f6fae1ffffe8f8faecf9fcf1fcfff8fbfeffe8e5ff000045eceffff8fefff1f6ffe6e7ff
+23178712047df4ecfffcfaffdddef0f8fbfff5f5fdf9fcfffdfdfff7fafffefeffe6e8f4
+fefdfffcfefff6f5fff9fafffefdffeff0ffeeecfffefdffedebf8fffdfffbf9fffffdff
+e3e2eafffefff4f3fbfaf9ffe8e7ecf4f4f6efefeffffffdfafbf6fdfef8fbfcf6fffffa
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010200010200000200000100020202f6f6fff8f5fff1eeffe5dfff130d57191369e6e1ff
+eee8ffeee8ff1d18760d0b56ececfff1f2ffe9ebfafcffffeef1f6e1e5e6fcfffde6ebe7
+ecf1edecf1edf6faf9f5f9fcfcffffe4e6f2f8fafff6f8fffcfffffcfff6f1f9e4ecf3e3
+f7fcf8f3f6fde8eaf9e4e6f5f8fbfff2f6f9f6f9ffeaecf9dcddf1f4f5fffcffffe1e5e4
+f8faf5e7e9e8e6e5f3eeefffe4e8f3f4f6ff0f096b2d268deaecffdfe5fdf2f7fff6f7ff
+1d127b2d218fd8d2fffcfbfff9fafffbfdffeef0fff1f3fff1f2ffeff0fffcfdfffcfdff
+e5e5fdeeeefff5f5ffeaeafff8f8fffcfcffe4e3ffe6e6fef5f5fff3f2f8f3f1fcf7f4ff
+fffcffe8e4fdf9f4fff5f0fffffbffece8fff8f5fff9f8fffcfcfafffff6fcfef0f7f9eb
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010100010100010100000100030301f6f7fbf7f6fff0f0ffe5e5ff20214f242659daddff
+dfe2ffebf1ffe9f0ffedf1ffe7e8fff8f7ffeeeeffe4e4fffbfcfff6f8ffdee1f4f2f5ff
+f6f9fffbfdffe5e7fef5f6ffeaeaffededfff3f2fff3f3ffe5e8fbf9feffeaf1e9fbfffd
+e4e7f6f7f8ffe7e6fffaf9fffbfcffedeffff0f1fff2f2ffe8e6fff3f2fff9fbffe4e6fd
+faf8ffe4e2fffaf5fff8f6ffd4d5ffefeeff3429ab07007bf0f3ffdfe8f7f8ffffe3e7ff
+dad3fff2ecfffcfdffeaeef1eff2ffe1e3fafafcffeceeffeceefff9faffe0e1ffeff0ff
+f5f6ffd7d7f9fbfbffeeeeffdadafff6f6fff0effffafafffafaffffffffebe9f4f1eeff
+fbf5ffddd6fffff6ffe9e0fff9f0ffcbc4f0fffafff1eefff3f3f3fefff3feffe9f9fde6
+fffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000010100010000030303f6f7fcf5f7ffeff1ffebecff1c1e44181a4be5e8ff
+d9dcff242b55e0eafff2fbff191b4c120f54170e69161068dcd7fff9faff131430272c3f
+22243be2e5fffbf8ffdad9ff1a19452323570f075a171360f2f4ffeff4fff4f8fff2f5ff
+1e20471d1c4621204c1d1b4a000032ece9ffdddbff2c296218115f2721690f0d34282947
+14124114105a1a117e1c137ceeefff2220690200862b20aa1114471b262cf7ffff1b213b
+1f1b65161056eaeefafbfffff0f1ff252652100f3724274a27284410143129294ff1f3ff
+f8f8ff22244d0b054b211e631b1a44272a4b100f3917173b111322f2f2fef0f1fff2f1ff
+23204f27235e211c5f211b611710532d2860e8e3fffefcfffffffff9fbedfcfee6ffffea
+fffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030000070400010100050500000004e9e8f6fcfcfff3f4fff4f4ff2323571d1a671e1b76
+0e0b66252771f3fbffe9f2ffeff0ff221b821a07b12714c5e7dcffebeaff1f2535f0fbf7
+f0f7ffedf0ffd8d0ff130d6f1c1d49e7e8ff3426af1a0e981a1b5bdbe0fff7f4ff141067
+16155beaebffecf1ffe8ecff3b338807005df3ecfffcf4ff07006a21147dfef8ffe3e4f8
+ecf1ff1c1c5a10038f1f1497eaedfff0f3ff1205912619a5f8fbfff4fffbedf6fdf8fbff
+181274211a7af2f4ffebefffeceaff0a0756262366e6e8ffe7ecff252b410b0c3aebeeff
+e5e9fff8faff0a00801c1191f3f4ffdfe7f4e9ecff15164225284bf6f9ffdfe2ff0e1144
+0a0e4be9eeffcdd0ffedf0ffd9dcff232560f7f9ffe3e5fcfefffffefef4ffffebffffed
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030000090502030300010100010103faf9fffefcffebeaffdad9ff1b1a56242075cec8ff
+eae6ff1a1a64d2dafef2fdffd9dfffeeecff1303ae0f00bc190ca200005beef5ffeffcf5
+f7fffdd5daff0d04832f26a7dadeffe4e9ff110982180f90202366d6dcff0d0978140e8a
+f7f3ffdee0fff7feffedf2ff0d06662d2491f0edffd7d0ff251695180a83e8e3fff7f9ff
+f4faffe1e2ff2014a61f159ceef4ffdae0ff1b109d120794eef4ffdeebe4eef8ffebeeff
+0b047820198de7eaffeff4ff1e1b760b066ce1e0fff4f8fff4fcffe1e8ff0b0c4c1e1f5f
+f5fcffd1d3ff190ba62c1fb5dce0fff3fdffe9eeff1f215a0d0d4bd1d1ffe0e3ff363d73
+2c34720008511a1f7a141977d5d9ffeaefffdbe0fff6fcffebede8fffff3f9f5eafef9f3
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+050306010000020100010100030400f1f2f4f3f2fffcfbffebe9ff2e2c6b1b1a60e8e7ff
+f5f7ffccd0fdf7feffe7f4fcf5fff6ecf8ffeeeeff0a018e261abc160e97f5f9ffe8f5fe
+e4f5e2f5ffff19119b190fa4f5fbfff0fcfff0f8ffe3ebfff0faffe6ecff1b1694261fab
+1b178f0a0c61060f361a234a181872080765f2f7fff5f6ff251d96130b82f1f2ffedf3ff
+e8effff5f7ff17118f161281ebf4fff5fcff02008d1d13a7f5fcffe9f8f5f5ffffeaeeff
+1f189927219fe2e8ffeaf0ff15117f1c178beef2fff1f9fff1fbffeef5ff1c1b7815156f
+f4fbfff5f9ff1c149e040085f5faffd4ddfcdee3ff0a0b5b26217ff3efffeaecffeff6ff
+000034182068191c870909812222920a0d5ef0f7fff9fffdeef3dcf3f5dff1edeefffcff
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000010000040300010100050700f3f4efe9e8f6fcfaffdfdaff0700501e1a67e5e4ff
+cbcdfff7fbffe5e9ff030929c4d5cfebfdfd1f265a191b801007a20a039f000069f2fbff
+edfcffe7f5ff130c96070195e0e6ffe1f1ffddebf8eefdffe2eeffe1e8ff2322a100008b
+dad7ffd5d9ffd9e4ffe9f5ffd6dbfff1f6ffe6f2ffd9e2ff05047c16148fcdd2ffe8f3ff
+eaefffe0e5ff16147f00035af4ffffd9e3ff261eaf1510a0e0e8ffedfeffe9f5ffeaf2ff
+110c8d01007ef0f7ffecf7ff0e0c770e0e7ee7ebffe7f1ffe9f1ffe5edff10116e0c106b
+e5ecffebf3ff1c169a2724a7c7cdfff2feffdee2ff252482150c7fe1d9ffe9e9ff11163e
+dce4fff2f9ffcfceff0c089106048312136deef5ffeaf5e4eef6d1ffffe8f6f1f8f4ecff
+fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000030200060500010100060800fffffbf4f2ffddd8fff2e8ff1f12840e056eebe6ff
+edeafff5f2ff0500652a2687f4f9ff0612421a2459dae1ffebe8ff0701a11910b9010087
+e4ebffe5efff1917960d0c8e171d69ebf7ffe1ebffdeeaff212b66ebf4ff04077a0d0d93
+2523a8e6eaffd5dfffcedbffe0e9ff071254cfe2ffe9f8ff292daa070990e8f0ffe2edff
+e9efff21268113186ce0eaffd7e5fff1fdff171495060587e5eeffefffffdeeaffeef7ff
+0a0981141589dee7ffe3f0ffe3e9ff0004621c1f7ce8eeffe9eeff1b2272000650e2ecff
+f0faffeaf2ff00007b1a199beaf2ffe3f0ffdfe5ff19187e170d8aede3ffd4d4ff1e234b
+edf4ffd8dcffe0dcffdfd8ff1b15992b2b85edf3ffe1ead5feffddf2f5d8ede7f3fffaff
+fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040300010000010000080800020400eeefeafefcfffdf5ff1c1074190c7e1e137b251f77
+18146003005119117e28219110116d1118600d164dd5ddffdddfff2d29b10e05ae1c16ae
+03085cdae2ffe6e8ff11137a070d59050d4c20276d11185c000b43c6cfffe2e7ff222491
+0a0b7f060b6f28327708154c141f5d15245bdef1ffd9e9ff0b0f94010396091375162171
+0d126e040861e5edfff2fdffe9f8ffe2eeff07096e232391101859192451e4eeff000445
+2a2c900c0f6e0f194ee2edffe0e8ff24297a0e12690408630407660e1269242c6de0eaff
+dce6ff050c523131a3171785202866dde7ff1b216d08086a14097f271c84f2f0ff0b0e39
+1c204d171a5d0f0b7917118f040075e6e4ffe9eeffe8f1e0f6fddcffffeafdf7fffff9ff
+fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0604050100000000000e0f0a000200e1e2ddfefdffcec9f1e7e0ffe5deffdfdaffe1deff
+ecebfff9faffe2dfffe9e6ffdedfffedf1ffdfe5ffe7edffdfe4ffdddfffdcd9ffe3e2ff
+e4ebffedf7ffd9dfffdde2ffeef4ffe9efffdbdfffe5eaffeaf3ffebf4ffd6ddffe2e6ff
+ebf0ffd7ddffe0eaffd8e5ffdde9ffdceaffdeedffd8e5ff2223b31d1cb8d6deffccd6ff
+e7ebffe3e6ffedf5ffced9f5e8f6fff0fcffd8ddffe7eaffe8ecffced4fff1f8ffe8efff
+dde2ffecf2ffe0e8ffdee6ffdadfffe5eaffecf3ffdfe6ffdfe2ffecefffe5eaffdae1ff
+ebf3ffe5edffe8ecffe2e6ffd8e0ffe0e8ffe5e9ffeceaffe3ddffd8d1ffe0dffff3f5ff
+d5d7ffd8daffeceaffe0dcfff3f1ffdadafff4f8fffafefdfbfff0feffeffffefdf6f1f7
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010005131116000002000000000100ffffffededf7312f451f1d4414113e211f47212145
+15163216173320214013153c1315461315480e113e10133c2b2e592123541f1f5f111346
+1b2234131b26292d5314174414183b22264b15164c1a1c4f191e3e131931171c39191f43
+0c103f2229570911351e29471b25491622481c28500810580c0994060398090e762c3383
+0f115e1414501a1f3c1b242d273133171f2a161b3b1618491515551e1e5e0c0e4111143f
+23274c080c2f31355a1b1e49191a501b1d4d0a10281f24411f20590a094d1b1c55191b4b
+080d2d4146631115380b0f32232846272b511a1b540e0c4d2421580f0c3b201f49070932
+2223512224550a0b431b1c552022551719401f2138f2f5fefafcf9fbfcf4fbfbf1fffff7
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000007000005010005000004020107f8f7fffcfcfffafaffebebf3f3f3fff8f6fff6f6ff
+f8f8fffcfdfffafdfff3f7f6f3f7faf5f8fdf6f9fef4f6fff0efffedecffeff1fff1f5f4
+f4fce5f4faeef4f4fff4f3fff4f8f7f4faf0f4f7fff4f5fff3f4fff3f5fff3f6fdf2f7fd
+f2f6fff2f5fff0f6ffeff6ffeff5fff1f8ffe4e9ff1f22650000701a168f12156414164f
+f3effff7f5fff9fcfff5fbeff0f5eeeef2f1f1f4f9f5f6fff7f4fff7f2fff6f4fff6f6ff
+f6f8fff5f8fff5f6fff5f5fff6f5fff5f6fff4f8f9f3f6fbf4f2fff5f2fff6f5fff7f7ff
+f5f7fff6f9fff7fafff7fafff6f8fff5f6fff3f1fff2f0fff8f7fff6f8fff6f7fff5f6ff
+f5f6fff3f6fff3f7fff3f8ffeef3fff2f5fff4f7fff8fafffbfcfffdfef9fefff1fdfeee
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000500000401010300000402000ef8f6fffcfcfffafbfdf4f7ecfafdf6fcfcfffaf7ff
+faf6fffafafff9fbf8f4f8eaf8f9f1fbfbf1fcfdedfafaf2f7f3fff6f2fff7f5f8f9faec
+fbfee3fbfceafbf7fffbf7fffbfcecfbfde5fbfbf3fbf9fefaf6fffaf6fff9f9f9f9faf2
+f9faf4f8faf5f8faf7f6fafdf2f4ffeaecfffbfcffe2e2fff9f3ffede9ffe2e3fff6f7ff
+f6f1fffcf7fffffff0feffe4fafbedf9f8f3fcfbf6fffdfffdf8fffdf6fffcf6fffcf8ff
+fcfbf9fbfaf6fbf8fffbf8fffbf9fcfaf9f5f9f9f1f8f6f7f8f3fff9f3fffaf7fefaf9f5
+f5f4f0f6f6eef8f8ecfafaf0fbfaf6fbf9fefaf5fff9f7fffbfcf6fafdf2fafbfff8faff
+f8fafff7fbfff8fbfff7fdfdf3f7f8f5f9fcf7fafffbfbfffdfcfffdfdfbfeffeffdfeee
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010100000004020012f8f5fffdfbfffbfbfdfbfdeffefff7fefbfffcf6ff
+fbf2fffbf5fffbf9fff8f8f8fdf7fffffaffffffebfffee9fefaf7fdf7fffef6fffff8ff
+fffcfbfffdf8fffbfffffbfffffdf4fffef2fffcfdfffafffff6fffff7fffffafffffcf5
+fdfdf1fdfdf1fdfdf3fcfdf7fffffffcfafff0edfff1eefffef8fff5f4fff6f7fbfeffff
+f6f1fffdf8ffffffdeffffd8ffffeefffdf8fffffafffffafffdfafffdfefffcfffffbff
+fffdf8fffdf4fffcf5fffdeeffffe1fefee4fdf9f6fbf5fffbf4fffaf5f9fbfbe1fbfcda
+f8f7e2f9f7e8fcfaeefefcf0fffdeefffef2fffbfafffbf8feffeefeffebfefff2fdfff5
+fdfff9fbfffafdfff9fbfff9f9fcf5fafcf7fbfdfcfcfefdfdfdfbfdfef8fdfff2fdfff2
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010100000004020010f8f5fffdfcfffbfcf7fbfee9fcffecfcfcfefbf8ff
+fbf5fffcf7fffdfdfffefdfbfff8fffff9fffffdf1ffffe8fffeeffffdfafff9fffffaff
+fffdfffffff8fffff6fffff8fffdfffffdfffffcfffffcfffff9fffff9fffffcfffffdfa
+fffef5fffff2fffff3fffef7f0eeeffffefffffcfffbf8fff0edf6fffffdffffefffffef
+f6f1f5faf7f2ffffd9ffffd9fffef2fffcfbfffdfafffff4ffffecffffedfffdf7fffdfa
+fffcf6fffef2fffeefffffeaffffe1ffffe4fffbf2fdf9f8fdf8f5fbf9ecfbfadcfafcd7
+fefce3fffeeafffeeffffff0ffffeffffff0fffdf4fffdf1ffffecfeffe9feffebfeffec
+fefff0fdfff2fefff3fdfff5fefff7fdfff9fdfff9fdfff9fefff7fefff7fdfef6fdfef8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000002000002010103000002020107f8f8fafdfef6fbfeebfcffe0fbffdbfafde0fbfde8
+fbfceefbfcecfcffe2fdffeafdfbfffdfafffffbfafefff1ffffebffffeffffefdfffeff
+fffff2ffffe9ffffe5fffff3fff9fffff9fffffdfefffff7fffcfffffbfffffcfffffdff
+fffefcfffef9fffef9fffefafcfafdf5f3f6fffdfffffffaf4f3e1fcffe4e3e3c9fafce6
+f7f5e9f8f9ebfeffe0feffe6fffcfbfdfafffffbfcfdfef0ffffe2ffffe2fffef2fefdf9
+fffcf5fdfdf1fffdeefdfdf1fffef9fffff5ffffe6fdffe0fdfedff9fbe5faf7f2f7f6f2
+fbf9eafbfde7fefde8feffedfffff3fefef6fffdf8fdfdf5fffff3fffff0ffffeeffffec
+ffffeefefff2fffff7fefff9fffffbfffffafffff6fefff3fefff3fefff5fdfff9fdfffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010101000000020300f8f9f1fdfff1fbfee9ffffeafbffe2fbffdefbffde
+fafeddf7faddf6f8e3f9f9edfdfbfcfbfafffafafcfbfcf6fefff0ffffeffefff5fdfff4
+fdffebfdffe8fdffeafdfef9fdf8fffdf8fffdfef8fdffedfdfff5fdfffcfdfdfffdfdff
+fdfefffdfefffefefefefefffffeffe6e4e9f2f0f1fffdf1f0f1d1ffffe1f1f0dcfffff1
+fafce6fafde8fcfef0fdfdfbfefcfffdfbfffdfdfdfcffeefdffddfdffdffcfef3fcfdf8
+fcfef1fbfeedfbfdf2fbfcf7fefdfffefefffeffecfdffe1fbffdbfafee3f8f8faf7f6fe
+f0f1e9f2f5e4f6f8ebf9faf2fcfcfafdfdfdfefffafefffafefdf9fefdf8fefef4fefef2
+fefef2fefef4fefdf9fefdfbfffffdfffffbfffff8fefff5fefff5fefff7fefffbfefffd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000200010100000100020400f8faecfdfff2fbfcf6fefcfffaf8fbfafaf0fdfeec
+fcfdebf7f6f1f8f0fffaf4fffefdfffbfdf8f9fbf8fafcfbfdfefffefffffcfff4fafeef
+fcfff2fcfff8fcfdfffcfbfffcfafffcfbfffcfff4faffe6f9ffe2f9ffeaf9fffdf9fdff
+fafdfffafdfffcfcfffcfcfffefdfffffdfffffffffffff4f6fad9ffffe6f7f2f6dddbde
+faffe1f9ffe5f9f9fffbf8fffcfafffdfcfffdfffcfdffeefcffe2fcffe8fcfefbfbfdfc
+fbffeafbffeafafcf9fafbfffcfdfffcfdfffdfdfffdfffefcffeafaffe6f8fbf4f7f9f8
+eff1ecf1f3f2f4f3fff8f7fffbfbfffdfefffefffffefffffefdfffffcfffffcfffffdff
+fffcfffffcfffffdfefffdfcfffefdfffefafefdf9fefdf9fdfef9fefff9fefffafefffb
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200010200010100030400f9f9edfdfdfdfbfafff9f6fff5f4fff6f6fefcfdff
+fdfbfffaf4fffceffffef4fffefcfffafdfff8fbfff9fcfffbfdfffcfffffafff6f8fef0
+fafff9fafdfffafbfffafafffafcfffafefffafff6faffedfbffe7faffebfafffefafeff
+fbfdfffbfdfffdfcfffdfcfffaf9fffefdfff0f1ecfffff3f2f4dce6e7d9fffbfff3effe
+f9fce9f7fbeaf4f5fff6f5fff8f9fffbfdfffcfffdfcfff6fbfff0fbfff5fbfefffafdff
+fafff1f9ffeefbfcfefbfcfffbfcfefcfdfffdfdfffdfefffcfff1fbffeaf9fcf1f8faf5
+f5f7f4f7f7fff9f6fffcf9fffefdfffefffffefffffefffdfffffffffefffffdfffffdff
+fffcfffffcfffffdfffffefffffdfcfffdfafefdf9fdfcfafdfdfbfdfffcfefffdfefffd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000200030100030100070300fbf7f6fcf7fff5f3fffafeffe9f0f8edf2ffe4e7ff
+f2ecffe5dafffff2fff8ebffded6fffef9ffcfcbeefefcfffefeffe5e6e8fefffafdfffa
+fefefff4f2fffaf7fffbf9fffefffff9fbf6fbfcfff8f9fdfcfcfafffffdefeef6fcf9ff
+fffcfffaf6fffffbfffefbfffaf8fff0efebffffedfafce6fffff8f5f2f9ebe6fdfdf8ff
+fffdfff8f7fde6e5f3fefdfffcfffff0f4f5f4f9fcfbfffff9fefff6fafffcfdfff0f1ff
+feffffe9ebe8fffffff4f4f4fffffff1f1effffff8fdfff2f1f3e5ebede0fcfdf5fafbf6
+efeff1fdfbffede9ffebe7fefffdffffffffd1d2cdfffff6fffff3fbfdf0f3f2eefffeff
+fef8fff3edf7fffcfffaf4f8fffcfcfffef9fffff7fffef9fefefcfdfefffbfefffbfeff
+feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000200030100040000090200fcf5fcfcf6fff3f3ffdde3f1f7ffffeef2ff29286a
+0b04512f256c1f1247150a34362f59f1effff4f1ffecedfff5f4fffcffffeceeebfcfffd
+feffffeff1fdfefdfffcfefff5f7f6f7fcf8fefefffbfbfffaf9feededeffffeffe9e8f0
+fffdfff0edfef2effffffcfffffefff9faf4fcffececeee0fdfcfff3effffff7ff04002b
+f4f0fffffdfffefefff2f6f7f2f7f1f2f9f2fbfffff9fffffaffffe4e8f3fbfefffcfdff
+f7f7fffeffffe5e5e7fffffff5f5f5e8e8e6fbfcf7f4f5effffffbfbfbfbeeedf5fbf9ff
+161328eae6fdf7f3fffffcffe8e6f3fffffffffff8f8faecebeddff4f6ebfffffbfffdff
+f5f2f9fcf6fffffdfffdf7fbfffcfcfffef9fffff7fefff7fefefcfdfefffbfefffbfeff
+feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200030000030000070103fbf6fdfaf8fff3f4fff9fdff1114490c0867110d6e
+17174de9e6fffffbffeeeaf91a1a24e5eaeed6dbd7fbfffffcfeffdfe2f1eaeef1fbfffa
+e5ebddfbfff3f9fff5f7fdf9eff2f9e8ecf7eff2fbfbfffff1f6effefff3f5f9e8ecf0e1
+fdfff7f8faf7f4f4fcf5f5fff7f8fcf3f4f6f7f8fafeffffeeedfde4deff2e217b2c2076
+f9f5ffd4d5dafdfffefcfffbedf3e9fafff3effbe7f8fff1f3fdf2f9fffbf0f7f0e8eeec
+f2f5fadfdfe7feffffe8e9ebedf0e9fefffff6f4ffece9fff0effdf6f5fff7f3ff1b1447
+1a124be8e2fffefcfff6f6fff8f7ffececf4eef2e3eef5e3f1f6f2fcfffffafaffedecf4
+f5f4fcfffdffede8ecfffefffffdfcfffdfafffef9fefffafefefcfdfffefbfffffbffff
+feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010002030002060201fbf7f8faf9fef1f3ffe2e1ff000060201b931b167a
+eef1ffeff3f6fffefff6f6f42f3430e6ece8f0f6f6e7ebf7dbdbfdf5f5fffbfdffdadee7
+f5fbfbf1f8f1f8fff7eff4faf8f7fff5f3ffe7e8fff0f4fff9fefffbfffff6fdf6f5fdf2
+f9fff6fafffeebeefffbfdfffbfdffe4e6fbfbfdfff9faffedeffffbf8ff2617960f007c
+f9f5fffcfefff7fafffbffffe9ecfbf9fffff6fffbdbe6e0f1faffe6eff6dee7e6fbffff
+fbfeffdbdbf7fbf8fff4f5fffafdffd6d8ede1dcfffaf4ffe8e8ffe8e9fff6f3ff130d57
+1b1366f7f2ffeff1fffafeffe4e5fffbfcffe8edf3fbffffebf0ffeff3fff0f1ffe0e2f1
+fefefff2f2f4fffefffffefafffdfafffefafffefcfefefcfefefcfdfffcfdfffcfdfffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000d00000b010008010000040500f8f9e7f8fbf2f0efff362cb10b019e2c28a0e6e9ff
+f0f7fff8fff3f0f2e4eff1e6f5f9faf0f6ffd7d9ff21205909064d2b286d010137191a4a
+141545e2e4fff9feff000028150c753026961816572728541617470809371f2245f9fdff
+dfe6f0f7fcff19194d12105107064017164f02013b1d1d4ff9fcff0300431302a0412fcf
+170e5d1b193ef8f6ffeceaff09064b0a094d0c0f3c212650090b46f8f9ffeff4ffe7eaff
+201d560f0a4d2e276b2a255f1d1f4522215d271b9b120684f2f1fff1f3ff201d64211b75
+11096c27236f0c1124f8feffeae9ff1e1a66111049121445171a51131649212349f9feff
+fbfffff0f4f3fafdf6f8f9f1fffefafffefcfffdfefefefefefefcfdfff9fdfff5fdfff7
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00001400001100000c000000040600f7fcdcf6fdebeeefff1407ae2216d2000073f2f9ff
+f1fbffeef6e7f3f7e6fefff4f3f9f9f9fdfff5f2ff1610681e196de0dcfff4f3ff201f5b
+150f65e9e4ffdfe0fff9f7ff0c008a110291ddd9ffdfe1fff1f0ff12125a06064ce8ebff
+f3fcff000626373392e3daffeee7ffe1dcfff7f6ff000136f7feffebecff0e00a42514bc
+ece5fff2f2ffe5e4ff141251251e85f3edffebe9ffe5e4ff1d187c080560ecedfff5f7ff
+f3efff0600531c1565ede8ffdde0fff1f2ff120499160a9ef8f8fff2f8ffd7d6ff0d0a63
+1b147bd7d6fff3faffe2eaff1b176c1b1484dcd5ffece8ffe4e4ffe4e7ff323568d2d7f5
+dee5effbfffdecf2e6fefff6fefffafffdfefefdfffefdfffefefcfefff7fdfff0fdfff2
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00011500001300000f000100030800f6fed7f5fee9edefff0e00ab3023e2181985c6d0ff
+f1fdfff0faf2fbfef5eef1e8f0f6f2e5eaff1a1571150e78edecffe6e9fff2f7ffdee0ff
+2b248e120a77e9eaffd6d5ff2517aa0a008df2f2fff1f6ffcaceff28297c1f1d7ee7eaff
+ebf8fe0d16370c02991300cc1000c21106a0e3e4fff1f9ffd9e5f5e4eaff1e14a90d0195
+e7e7fff5f9ffdde1faf1f1ffebe2ff0e048717127919167d0c0684282495edefffeceeff
+e3e2ff25216d221d60ecedfff1faffd2d9ff20169b1b139ad1d5ffe5f1ffeff3ff1a1d64
+1b1776eceeffedf5ffe9f2ff140e781e15a61508a00e05920f0e83dce0ffdadfffe5edff
+f8ffffe0eae2fbfff3fafef0fefff9fefefefefdfffefdfffefefefefff5fdffecfdffee
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030b00010d000013000009030700f6fddcf4fdececf0ff110b8f07009c191b8af1f9ff
+e6f0fff7fffff0f1f5f5f6faf9fffff5f9ff0b046e21188df6f4ffe7eafff5fcffe1e4ff
+21188d0b017cf2f1ffeae8ff2c1eb1090087f5f7ffe2eafff0f5ff07095e0d0b76d8daff
+ecf9ffe2ecff2822a81103b81a0eb8140d9b00015e1a2157f2feffeaf1ff17109c1b139c
+eef0fff4fdfceff4ff1d1d591209861b0fa1dcd7ffe5e0ff120998181290e1e2ffe8ecff
+f1f0ff100e59090542f9fbffedf8fee9f1ff1c16941e1799ecf2ffedf8ffe7eeff080c4b
+121268e9ecfff5ffffdce7f9e5e6ff16108a1b139a130d9308077f161a7d0e125beaf1ff
+f0fafff9fffbf0f9e8fbfff2fefff9fefefefefdfffefdfffefefefefff5fdffebfdffec
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000900000501000015000015020200fefff4e6ede5f8ffffdfe6ff0b0f681c1c9800016d
+f5fcffecf3fffefcffeceaff151a30f7f9ff120a79130984f8f3ffe6e7ffe0e6ffecefff
+12097c140a85f1eeffe6e3ff170b951e1491e6e9fff3fbffd7dfff0b115b181b7cebefff
+e6f0ff000d30f2fdffdae4ffe9f5ff1d256411127e202287d8e3fff0f9ff0a0593150d96
+eff0fff3fbfee7ecff2a2a6a0f0588efe2ffece6ffcfc9ff11079c342db1ececffedf0ff
+dedbff1512611c1759f5f6ffeff7ffe2e9ff2a23a5030084f5f8ffeaf2ffe5ebff242865
+11135ef5fbffdaeae0ebfce91e2a3adbe3ffebf0ffe4e8ff12147b171b7f1c206adbe2ff
+e5effbf9fffbfafff2fcfff1fefff7fefefefefdfffefdfffefefefefff5fdffecfdffec
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000b0000040005031b13102f000007e9ebe8e4eaeae7f1f3f0fdffdeeaff00006f232299
+10154df5f8fff5f1fff3efff222244e2e4fff3eeff00005f191377e3e1fff1f5ff20244a
+1b1670f0eaffd8d7fff0efff0e0676150e75f5f9ffd6dff0eff9ff1b236100005bced2ff
+f1f7ff192648cbd8e9ecfdffe1f0f3eefbff212088050672f4fcffdee8ff2420981b168a
+f2f4fff2f6fff1f6ff00003b1b1287150b900c06701b187f130c8d120e7fe3e5fff6f8ff
+f1f0ff171360181356eaebffe5edfff5fcff0500723630aed6d6ffd6dcfff7faff00043e
+09094ff5fbffe2eeeaf2fff0273333e7f2fff3f9ffe9eeffced1ff0d107114185ff0f7ff
+f0f8fff2fcf4f5fcecfbffeefefff7fefefcfefdfffefdfffefefefefff7fdffeefdfff0
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+091400000500000012000017010005f3f3f3fcffffedf5f7f5fff8d7e7f4f2f8ff121272
+0001411715471b14482a245417173de3e5fff9faff1d1a5f0901682019781b1c48171b36
+1a1b47e8e9ffeef0ff1617451d1965040146303451f8ffff040e29161d5123237d0f1168
+f5fcff0c17351d2353171e54242a5a12185200004ef4f8ffdae3ffe3eeff1114591c1c62
+080b2c303344ebedff2627551b176c2825800b0c4ce8eaff2422750e0e580e1237e0e5ff
+212059201b5e1f1a5a1e1c4bedf4ff111739010056110d6e242462eff3ffdddfff2b2e65
+1b1a6000023f3b405de8f0ff04082d15184d23216a0705591918752d2e81d7d8ffe9edff
+f9ffffedf3f1fcfff6f4f8e9fefff7fffefafefefffefefffefefefefff9fdfff3fdfff3
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000500080e0200000b01000e171518dfdedcededf5fbffffe6f2eef1ffffcfd8ffe6eaff
+f5f6ffe8e5fff0e6ffdad1ffe4e1fff6f8ffd2d5f4eeeefff7efffd7cfffe4e4ffdee2ff
+dbdff8edf1fff3f7ffdadcfff6f5ffefeeffd5d8fbd7dbf6ebf1ffe8ebffdad7ffe9e6ff
+dbdfffe9efffe8e9ffd3d3ffe5e6ffe8e9ffe3e4ffe6e9fff2f9ffe8f0ffedf3ffeff2ff
+e0e0fff9f8ffd9d8faebeaffdddaffd9d8ffeef1ffeaefffd1d3fff8f9ffdfe4ffe2e5ff
+f3f0fff0ebffd5ceffece7ffe3e6ffe9ebfff4f0ffece7fff2f2ffebedffe7e9ffe8e8ff
+e5e2fff3f1ffc9caf6e8e9ffefeeffe7e3ffdad3fff7f2ffe5e3ffc7c8ffefefffe8ebff
+f4f7fffbffffedf0e9fffff6fffff7fffef9fffefcfefefefefefcfdfffcfdfff9fdfff9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000100141217040003030000fffffaeae9ee1013241b203e111b3619262e1b2531
+11133c221d550e033b362d641f1a542c295e21204a14114a241a7b2a1f85120c521f1d4c
+22234227284618173f1a184a060143322d700d094427275d1e1e541615572a258119146e
+1819521f21521919572a2a6a21215d13144c2021572629541015321c23361f2638191d3a
+2e295f1b15531a154d221f581a1555201f593b3e6911143f0c0d430f10482a2b5b1e1b50
+211c5f2119662217652f286e1f1a540e0a45181063110a572c2b57181937222246292854
+29265f2320591c1b47211f51302a740e055e1108651e166b100e4d292a5a1b19410c0c28
+eeedfdfffefff7f6f4f8f8f0fffef5fffff5fffef9fefffafefefcfdfffefdfefffdfeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+080a090606060300000300000b0602f5f1eefcfcfef1f2ffedeeffe6ebfff7ffffdce8e4
+f4f9ffe1dcffede4fff4ebfff4edffd4d2fff8f5ffdbd9fff2ecffe5e1ffeeeafff7f6ff
+f3f2ffecedfff2f1ffe8e7fff2edffd8d4fff9f4ffe9e6ffd3d1ffdad9fff9f3ffdcd9ff
+e5e2fff5f6ffe6e5ffe2e4ffebeaffebedfff5f4ffd7d9ffe7e7fff1f5ffe2e6f2e7e9fe
+f3edffefe7fff9f2fff0edffebe8ffdfdfffe6e9ffeaeffff2f4ffe5e6ffe2e0fff8f6ff
+eee9ffe8e0fff3ebffd3cbffeee7fff1eaffeae1ffe6deffefecfff6f5ffebe8ffe4dfff
+e4defff0eaffede9ffede8ffe0d7fff3e9fff7effff4f0ffeceafffaf9ffe5e2fffffbff
+f7f4fffcf9fffbf6fafbf7f4fffef5fffff3fffff5fefff7fefefcfdfefffbfefffbfeff
+feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0101030000000300000400000b0109fbf4fceceaedfcfeffe3e5ffebf0ffe8f0ffe7f0f9
+fbffffe7e7effffafffff9fff7f4ffe8e8fffcf8ffebebfffdfff9dfe6d4fefffff8faff
+f8f6ffe6e6fee9e8f6fcfefff7f3ffebe9fff4f1ffe8e8fffcfdffe5e8fbf5f6fff9fbff
+f8f8fff1f4fff4f8fbfbffffe8ebf0fbfeffd8d7f9f1f0fffcfaffc8c8eafcfdfff5f6ff
+fcf8fffaf6ffe3e1f6f7f9fffcfffffbffffebeff8f2f8fff1f4ffe9ebfffbfcfff7f7ff
+d9d7effefdffe7e5f3fffdffe9e7f2f8f5fffdf7ffeae6ffeeefeafffffaece9fcfff9ff
+f6f0fffaf5fff0eff7f9f8fffaf5fffffbffecede8f9fbeef4f3f9faf7fff4f1ffefeafe
+fffcfff3edfbfffdfffffdfdfffef5fffff2fffff2fefff5fefefcfdfefffbfdfffbfdff
+feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020200010000050102040003040007fffdfff6f6eefefffff4f6fff7fafff8fdffe4e9fc
+fcfffbf8fbf0faf6f7ece8e9fffff8f2f4f3fefafff7f6fff8fedafeffd3eef3d3f4f7ec
+f2f0fefefdfffbfafff1f2f6fbf9fffefdfffaf9ffeff1f0f8faf7f7f9f4fefffaf5f7f4
+f9fafff3f4f8fefff4fcffeffafdf4f2f3f8fefcfffefafffcf8fffaf6ffefeefffdfdff
+faf9ffedecf1fcfefdf4f7f0f5fbeff3f9effcfffff5fafefbfefff9fcfff0f2fff9fbff
+fdfeffe8eae7fffffaf6f7eff5f5edf6f7f2fffdfff9f9fbfefff1e9ebe0f4effffcf8ff
+f1edfbf1f1f3fffffaf2f2f0fffcfff6f5faf4f8d7f9ffd6ffffedf7f8f2fcfafbfffdff
+fcf6fffff9fffffafefbf7f4fffdf7fffef5fffff3fffff5fefff9fdfefffbfefffdfdff
+fffefffffefffffefffffffffffffffffffffffffffffffdfffffbfffffbfffffdfffffd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00010000000002000a01000b020003f9f9effeffe9fbffece9ecf3f3f3ffe2e1fffbfcff
+fefffffbfff0edf0dbf9fee0f3f9d7f0f3def0edf8f2f1f9fafde2fdffd8fdffd7f8fddf
+f6f4f5f2f0fdf2effaf5f4fafcfafdfdfef8fbfceaf5f9e2f6f9e4f8fbe8fafceff9faf4
+f8f8f8f9f9f7fcfef3fffff8fdfdfffcfbfffbfafffaf8fffaf6fffaf7fffaf9fffafaf8
+fefffaf9fcf5f6f9eef7fbedfbfff1fcfff6f9fafef2f5faf7f8fcfafbfff8f8fff4f4fc
+f6f8f5fbfdf8f8f9fbf0f2f1fcfdf5fbfff1fcfef3fafdf4fbfcf6fbfcfffdf8fffcfbff
+fafee3fcffddfbfdf2f4f4fcf5f2fff9fafffbffe8f7fed5feffdbf6fad7f5f7e1fefef4
+f9f7fcf9f7fcfffff8fefef4fdf9f6fdfcfafffefafffff8fefef2fdfff4fdfdfbfffdfe
+fdf9f8fffcfdfffdfffffcfffdfafffcfafffdfdfbfffff8fdfff5fdfff5fdfff7fdfffa
+fefefefefefffefefffefeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00010000000001000d00000c010100f7fae9fcffe2faffe6fefffffaf9fffcfaffe0dfef
+e8eae7fefff3feffefeef4d8fcffdcf9fbe3f7f3fff9f5fffdfdf1ffffe3fcffd9f9fcdf
+fefdfbfbf7fffaf6fffbf7fffefbfffefdf8fbfde5f8fcdbfafde0fdffeafffff5fefdf8
+fcfbf6fbfaf5fdfcf8fffefcfefcfffefcfffdfbfefcfafdfbf8fffbf8fffcfbf7fcfcf2
+fefff5fafdf2f7fbedf8fceefcfff1fefff8fbfcfef7f8fdf9fafcfbfdfcfafcfbf8faf7
+fafdf4fefffafdfffef7f9f8f5f7f2f5f8f1f6f9f0f7faf1f9fcf3fbfcfffcf9fffdfcff
+f9ffdefcffdafbfdf8f7f6fff7f5fffbfafffbffeef8fedcedf1ccfdffe0ffffeffbfaf5
+fffdfffcfafffffff4e5e6d8faf8f9faf8fdfbf9fafdfcf8fefef2fefef4fefcfdfefcff
+fefaf9fffcfbfffdfffffcfffdfafffdfafffefefcfffff8fdfff3fdfff3fdfff5fdfff9
+fefefcfefefffefefffefeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000000000201000c000009010200f7fae9fbffe9f9feeaf9fbfae5e6ebfefffffeffff
+f3f9eff5faf3f3f6fbfbfcfefffff1fdfdf5faf3fffbf4fffefbfffffff5fdffeafafbed
+fcfafffbf6fffaf4fff9f2fff9f2fff9f5fff9faeaf9fcdffcfee8fefff1fffefcfffefc
+fdfdf1fbfbeffbf9fcfcfafdfffff5fefef2fdfbfcfcfafdfcfbf6fcfcf2fdfdf1fdfef0
+fefff3fbfdf2f9faf4fbfcf4fefff2fffff4fdfdfdfaf9fefafafafbfcf6fbfdf2fafcef
+fcfef3fffff6fffff6fbfcf6f6f5faf6f4fff7f4fff9f8fdfafde8fcffeefdfafffdf9ff
+f9faf2fcfef3fcfafffbf6fffbf5fffdf9fffdfef6fafde8fefef4f1eff0fffcfff4efff
+ebe6faf1eef7e4e4dcfffff4faf8fbf8f5fcf7f5f8faf9f7fefdf8fffdfefdf8fffbf6ff
+fcfafdfefdfbfffdfffffcfffefbfffdfcfffefefefffffafefff7fefff5fefff7fefff9
+fefefcfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000400000501000c000007010200f7f9ebfaffebf8fcedfcfefbfafcfbeaede2f9ffee
+eef6dffcfff8f7f8fff5f6fffafafaf8f8faf8f2fff8f3fffcf8fffdfdfdfcfcf2fafbf3
+f8f6f9f7f5fff9f3fff7f2fff7f0fff8f6fffcfdeffeffe6fbfceafbfbf3faf8fbf9f7f8
+f9faecf9f9edfaf7fefbf8fffefff1feffedfdfcfafdfcfafcfdedfdffe9fdfeecfefff1
+fffff4fcfdf5fbfcf7fbfcf7fcfef3fdfff4fbfcf7f9f9f7f9faf5f9faf2f8fbeaf7fae7
+f8faecfafceefafdeaf9fbeefbfafffcf9fffcf9fffcfbfffcffe0fbffddfbfbfdfaf8ff
+f7f7f7f9f9fbfbf8fffcf8fffcf7fffdfafffcfdf7fafcefe9e9ebfffcffe4ddfcf1ecff
+f8f3fffffeffe9e8e3ebece4fdfbfcf8f8faf7f6f4f8f9f3fefef6fffffffcf7fff6f3ff
+fcfafffdfcf8fefcfdfefcfffefdfffefefffffffffffffdfefffafefff9fefff9fefff9
+fefffafefefcfefefcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000900000901000a000005020300f6f8eaf9fdeef6f9eeeaefe9fcfff8e8f1d4fcffdf
+faffdddee7d4e4e6fbfcfbfff7f7fff6f7f9f7f6fbf7f8fdf9f8fff9fafef9faf4f8fbf0
+fbfcf4fbfdfcfcfafffaf9fffaf8fffafcf9feffebffffe8fcfcf2f9f8f6f6f4f9f5f3f4
+f6f6ecfafaf2fdfafffffcfffdfef0fdfeeefcfbf7fcfbf6fcfee8fdffe5feffebfefff1
+fffff6fdfef8fcfdf7fbfcf7fafaf8f9faf5f7f8f0f6f8edfbfcf4f9fbf0f8faecf7fae9
+f5f8e7f4f7e2f5f9e0f6f9e6fbfcf6fbfafffcfbfffcfdf5fcffd5fbffd2f9fce9f9faf4
+f6f7eff7f8f3f9f8fdfbfafffcfbfffafafafafbf3fafbf3fdfdffe2e2eef8f4fffefcff
+f3f1fefbfcffeeeeecfefffbfffffdfafcf7f8faedf8fde9fdffebfdfff2f9f9fbf3f3fb
+fbfbfbfbfcf7fbfcf7fcfcfafdfdfdfffffffffffffffffffefefefefefcfefffafefff9
+fefff9fefff9fefffafefefcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000004000004010006000004020300f6f7f1f8faf9f5f5fdf3f4fff5f7fff0f5f1e9f1e6
+fbfff8e7ebf7f6f3fffbf7fff9f8fffafafffafef0f9fdeff8f9fdf7f7fff6f7f9f6f9f2
+fdfff2fbfef3fafbfff9f9fff8faf7f7fbecf7fde3f7fce6fcfcfcfaf7fef7f5f8f6f5f3
+f9f8f6fdfbfefffdfffffdfffcfbf7fcfbf6fbfaf8fbfaf5fbfde8fcfee8fdfdf1fefdf8
+fefff9fdfef8fcfdf5fbfbf9f9f8fff8f7fdf7f8f0f6f8eafefff7fbfcf6fafbf6f9faf4
+f6f8ebf3f6e5f4f7e2f8fbe8f4f5edf6f7f1f8f9f1fafdeafaffdafaffdaf9fce7f9fbed
+f9fce9f7f9ebf7f8f2fbfcf6fbfdf0f8faedf8f8f6fafafcfefffffbfcfffdfcffdfdeee
+fefeffdddde5f0effff0effffcfcfffafcf7f8fcedf9feeafbffeafbffecf8fbf0f4f6f1
+f9fbfaf8faf9f7f9f4fafbf5fdfef8fefefcfefdfffdfcfffefdfffefefffefffafefff9
+fefff7fefff7fefff9fefffaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010100010100010100000002020202f5f4faf7f5fff3eeff171053100853342f72292466
+00003a1c1769170c82251c89f7f1fff8fafff8ffe8f7ffe3f6fafdf5f7fff5f7fff6fafb
+f8ffeff5fcecf3f7f6f3f7f6f5fcecf4fce5f1f9e4eff2e9fbf9fff9f7fff7f7f5f8f9f4
+fbf9fffdfbfffcfbfffbfafff9f6fff9f7fff9f8fef9f9f7f9faf2fafbf6fbfafffcfbff
+fbfbfdfcfdf8fcfef3fbfbfbfaf6fffaf7fffafbf5fafceefefffafbfafffaf8fffaf8ff
+f7f7f9f3f4eff5f6f0fcfdf5f4f5eff6f8ebf8fce3fafee5fbfcf4fafaf8f9faf4f8faec
+fdffe4f9fee0f8fbeafbfdeffbffe6f7f9ebf8f6fffcf9fff9fafef8fdf7e3e7e6fcffff
+e8ebf0e1e2f7fcf7ff09043ef4f4fff4f7fcf5faf4f6fcf2f7fcf5f7fdf1f6fee9f6fdeb
+f5f9f8f4f8fbf3f8f2f7faeffbfef3fdfff9fdfcfffbf9fffffcfffffcfffefefcfefff7
+fdfff5fdfff5fdfff9fdfffaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010300010200010100000004020204f5f3fef7f4fff1edfff5ebff0b006610056debe3ff
+ebe5ffeee9ff241c8b150f73f0ebfff1f2fff4f9f2f4fceff5f7fff4f5fff7f7fff8fbff
+f7fcf8f3fbf0f2f5faf4f9fffafefffafffef7fcf6f1f5f8f7f5fff6f4fff6f8f5f9fbf8
+fbf9fffaf7fff5f4fff1effff7f3fff7f3fff7f5fff7f6fff7f7fff8f8fff9f6fffaf7ff
+f8f8fff9fbf8fcfcfafbfbfffcf6fffbf8fffefefefefffafbf9fff7f5fff7f3fff8f5ff
+f6f1fff1effff6f4fffdfefffaf9fffafcfbfcffeafcfff2fcf8fff9f5fff7f3fff4f5f9
+ffffedfaffe6f9fbf0fbfdf8fbfcf4f6f7fbf8f2fffcf7ffeeeffff8fdfff9fdfce4eae8
+fcfeffebeaff0a00601b1174ede9ffeff2fff3f5fff4f8fff5f5fff4f7fff7fcf6f8fff5
+f3f7fff1f5fff0f6f2f4faeef8fef0fcfff6fcfbfffaf8fffffbfffffcfffffdfefefff7
+fdfff3fdfff3fdfff9fdfffcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010300010100010002010007050507faf9fef8f8ffefeefff0e8ff251c79170f72e7e3ff
+d4d4fff7fcffd0d6f8e6eaffe5e6fff4f5fff0f0ffe3e6fffbfaffe3e4ffeeebfff3f5ff
+e8ebfeeff6fff5f8fff8fcffeae8fff4f5ffe1e4f5fbffffdedefff9f8fff7fbfeebeff0
+f7f7ffdfddfff2f0fff5f2ffebe8fff4f0fffcf8ffe6e3ffeaeafff1f0fff9f3ffded9ff
+f6f8fffcfffff2f1fffcfcfff5f0ffe7e6ffececf6f9fcfff7f3ffe0defffefaffeae8ff
+f5ecffddd7fff2eeffebebfff6f2fffcfcffe5e6eafcfeffe5dcffeee5fff3eaffe8e6ff
+f3f4f9f7fcf8f3f3fffbfbfff6f2ffece8fff6edfffaf4fff9f7ffebefffe0e4f0f9ffff
+ced0e9e9e6ff210f9f130495f0e9fff1f3fff8f8ffe5e6fff5effff1eefff1f1fff4f9ff
+f1f6ffdde3f9f8ffffe7efe2fbfff0fbfff1f0eff4fffcfffffafffffbfffffdfefefff5
+fdfff2fdfff3fbfffafdfffeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010300010100020006010009030303f7f9f6f8f9fbf1f1ffe5e0ff0a0362171078f3f0ff
+e3e6ff121a31f2fefae8f4f0f8feff0000311e196b17136719185216184b1a185713144c
+1c1f42f4faffeff4ff1417420801602a257ff4f7ffdee4f4262851181945020818f9ffff
+e1e6fc1b1d440e0c4d18155a2525590000331813632b27710c0e35060733221c76100b5d
+e6e9fcf5fafef0f0fff3f0ff0b0a362122411d20330d0f2807043dfbf7ffdfdfff0d0b3d
+20157b180d73fbf8ff0e0e301d1b4ddedcfff8f9ff04032b261f6d2c22820700572c276a
+f7f8fff0f3fff6f8ff12103f0c0555292177140e540a0643100d50111248292d48d7deee
+f9fdff14125b1907a91606a70d08582a2e54dbdcfff8f8ff0600660c056d0704470f1141
+2428580f1539dee7eef9fff8dee7d2fefff3fcfcfefdf9fffff9fffffbfffffefcfefff3
+fefff0fdfff3fbfffefbfffffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030200040200040108010007010100f4f6f1f8faf9f5f5ffe3ddff2e258e0a007a0e0876
+1a1a601f2847e7f6f1e8f9e7d4e1daf3f8ff251b95110889d3d3fff2f7ffdcddff21235c
+12153ee6edffeff7ffeff3ff11058d13098ce8ecfff4fdffeaecff07084123274de3e9ff
+e7eefef8fbff120c70201981e8e9fff8f9ff1109791a1281e6e8fff8faff12097c1b1380
+f4f8ffeff5fff8f5ff100b5b232355f7faffe1e5fff6f7ff342f810a0555f8fbffeaeaff
+3123ac03008101004132345a17174df3f2ff0b0a441e1c5bd9d5ffe3ddfff7f0ff120d61
+23225bdfe1fff5f8fff4f3ff1409831d128aecebfff5f8fff2efff16156123264fe5edff
+dae1f1e8eaff1607a02c1eb9ececffe9f1ffe7ecff0c0d4d251c91e0d7fff8f3ffd1d0ff
+ebefff131a4ee0e9faf8fffbeef7e2fdffeefffffff9f5fffff9fffffbfffffefafefff2
+feffeefdfff3fbfffffbfefffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030100050200050209010005000100f2f5eaf7fcf5f6f9ffeceaff140e700b0474dddbff
+e3e7ff0a1630eefff9f3fff0f5fff1e1e7ff2418a81a0da5f4f6ffe3eafff4f7ff020441
+1b1e53edf3fff0fbffe1e5ff2114ac2013abe0e4fff3fcfff1f6ff0e11581b2058f5fdff
+e9f5ffdbe2ff1b1495090284eaefffd4d9ff0c048d120a91e6ecffd9dfff140d91160f90
+eaeffff4fbff1310691a157be4e6fff0f5ffe7ecffdadcff0d096a191671f0f5fff2f4ff
+1c0ea9392bc9e4e4ffe9efff2b2f5ecaccffe6e5fff7f4ff1716660e0c5f1814721d1a73
+0d0d55f0f3ffe4e9ffe3e4ff2115a510068dd3d7ffe4ebffdcdbff03005913164df6fdff
+e5f0f6f1f6ff180d980d0191e4e7fff5feffe2eaff090c431913810c038207016b2d2c89
+d9ddfff2f9ffdfe9fff7fffef6ffe8feffedfffffdefecf7fffafffffbfffffef9fffff0
+feffeefbfff5fbfefffbfdfffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03000205000605020d010004000200f2f7e1f7feecf6fbffe3e4ff2a296f1e1d6dd8dbff
+f5fdffdeecf9eafbf5d4e7d4ddefd7f3fcff12089c0b009adde3ffdde8fae1e7ff2c2f74
+000043ecf3fff4ffffd6deff0700912318b4e4e8ffe2eaffdde1ff1b1c76121660f3faff
+c2cfe2f4fbff1c14a81f16ade8effff4fbff1d14ad1f16addce4ffe5edff1009951a13a1
+e6ebffecf3ff060469231e920506591f2360262d5b21256218157c0f0d6ef2f8ffdcdfff
+170ca81f13b1dcdfffeef8ffe6f0ffeef4ff151374120e7d03025ff2f3ffe9e9ff0d0d63
+1d1e6eecf0ffd6defff4f8ff04008f221aa3f1fafff5fffff3f6ff0f0e6b13165bd2daff
+e3f2eff2fcff09047c181192ecf2fff4fffff5ffffeef6ff14146a1d1a851d1b80141478
+080b7613196debf5ffdde9e9f3ffe7e4ecd4fffffafffdfffffafffffbfffffef5ffffee
+feffecfbfff5fbfdfffbfcfffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03000904000804010a000000010400f4f9e2f6fdedf4f9ffdcddff292a6d0e0e56e3e7ff
+ced6ffdeebffedf9ff26344ee2f1f4f4fbff160ca12016adf5fbfff2fdffd4d8ff15156d
+242381dee1ffe9f4fff5fdff130b95150aa6e9e9ffe5e9ffdde0ff191c830a1066d8e2ff
+edfdffdee8ff0b05a50903a3dfe9ffe0eaff06009e1611abdce9ffeaf7ff120f9c1610a8
+ecf3ffe1eaff18177f15148cdfddffe0e5ffe8efffd9e2ffdfdfffe9ebffd1d7ffe7edff
+1810a4000088f4f9ffe7f6fff0feffe2eeff221f9404008deeeaffd8d9ffe0e0ff2f338e
+12136dd3d9ffeaf2ffe1e8ff241bb2090590e1ebffd5e3f0e6eaff070566272781ecf1ff
+f2ffffd9e4fa2c279d140d91e2e6ffc2cce7d0dbef2c3556d7daffe3e3ffedebff110f7a
+0d0d85121679f1fcffeaf8fbf4ffeafcffeaf1f2ececeaeffffafffffbfffffff3ffffec
+feffecfbfff7fbfdfffbfcfffefeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03000b030007020005000100030600f7fce6f6fbf7f0f2fff3f1ff100d641b1873ededff
+d4d6ffeef1ff08068100006ee1e7ffced2ff170fa207008ee7edffd7e0fff4f5ff07037c
+100a90f1efffdfe8ffe6eeff201b9911089f0f0a8b05047c0c0b8a101386202684e4efff
+d8e8ffe7f1ff1813b51a16b5ecf7ffdee9ff1916af1210a2eaf9ffcfdeff0807910d09a4
+dbe1ffedf6ff0000611c1d93141194d6d8ffd9e3ffd1deffdadeff15197adee4ffe5ebff
+201da0141490e3ebffe9f9ffe3f4fbebf8ff19159e0500af160cba1b16ae17168e171a81
+0b0d74dee4ffebf4ffe4ebff040096110d9ff2faffd9e5ffdee1ff22208b08057aeaebff
+dfebfff4fdff0a048a1f16b1f1f1ffe5ebffe6efff0f1841eff5ffecefffdddeffe1e1ff
+2121a3020672edf7ffeffcfff9ffefeef7daecede5fffefffffafffffbfffffff2ffffeb
+feffecfbfff7fbfcfffbfbfffefeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03000b030007010002000100040800f7fdeff5faffecefff0d0d4d1f1e6e1412660c0c62
+19197315147c1b159b18148feaedff262a741d1991151381141b4fe3eaff12126a130e82
+18119215127decf1ffe7eeffeeedff0b06861c17971e1997dcdaff282a970d126d111a5f
+eaf6ff020a5216149c0c0a91020b4ce6f0ff11109010108815224eebf8ff1314881d1a9d
+151a6ee4e8ffe5e7ff24248819158d0c0b731e255b1b23510a0d5c10116beff2ff0a0c63
+0f0d7b141478191f5be3eeffe5f3fedfe8ff0b0780241ab91a10ad120b97e1dfff090a66
+11126f2e3182dde3ff0c105a211d98141089000040eff7ff181b6211106d1f1c870d0d65
+ecf4ffe7eeff0a05790e078b141273191c5feaf0ff1b224c090f3f161a570f115e171875
+00006af3f4ffe6ecffe9f1fef8fff3fbfff0fffffaf5f3f6fffcfffffcfffffff3ffffee
+fefff0fdfff9fbfdfffbfcfffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+06000f030009010004080806000200e2e8e8f8ffffebf0ffe3e7ffe3e6ffe3e6ffe4e5ff
+e4e5ffe5e4ffe5e2ffe4e3ffe7eaffe5ebffe4e8ffe6ebffe7f1ffe8efffe5e8ffe3e3ff
+e5e5ffe4e5ffe3e6ffe1e6ffe2e4ffe1e2ffdedfffdcddffe7e4ffe6e2ffe4e1ffe3e2ff
+e3e3ffe4e3ffe6e1ffe8e4ffe6e6ffe6e6ffe6e3ffe6e3ffe6e8ffe6e8ffe6e4ffe6e3ff
+e8e8ffe8e9ffe8e8ffe8e8ffe8e7ffe8e7ffe8eaffe8e9ffe8e7ffe8e5ffe8e6ffe8e5ff
+e8e4ffe8e5ffe8e8ffe8ebffe7ecffe7ebffe7e6ffe7e4ffe7e4ffe7e5ffe7e7ffe7e8ff
+e5e6ffe5e7ffe5e8ffe5e7ffe5e4ffe5e4ffe5e7ffe5e8ffe6e8ffe5e8ffe5e7ffe5e8ff
+e5ebffe5eaffe5e7ffe5e6ffe6e9ffe6eaffe6ebffe6ecffe6ebffe6ebffe6eaffe7e8ff
+e8e7fff4f1ffe8e7fff0f1fffdfeffe3e5e4fffffff7f7f7fffefffffffbfffff8fffff6
+fffff8fffffdfefffffefeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03000c14111c09080d000100000302f9ffffc4ccd91f273c171d3d181c41181c3f191c3d
+1b1b3d1c1b3b1c1b3b1b1b3d1b1e41181e40191e3e1a20381b232e1b232e191d3a17193f
+181b3e17193f171940171a43191c47181c49181b481618481e1b501d1a4f1b184d1a184a
+1a184a1b194a1d1b4a1e1d491d1c481d1c461d1c441d1c441d1d431d1d411d1d411d1d41
+1a1a401a1a3e1a1a3c1a1b3a1a1b3a1a1b3a1a1a3e1a194318164718154a18154c18154a
+18164718174318173f18183c1d1d3f1d1d3f1d1d3f1d1d3f1d1d3f1d1d3f1d1d3f1d1d3f
+1b1b3d1b1b3d1b1b3d1b1b3d1b1b3d1b1b3d1b1b3d1b1c3b1a1d3c191e3c1a1d3c191e3c
+1a1d3c191e3c1a1d3c191e3c171a39161b39171a39161b39171a39161b39171a39191a39
+120f2e221d3b141029fefbfff6f4fffffeffd9d9dbfffffdfffffbfffffafffffafffffb
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000b010007000002060807000100eaf0f0f9fffff8fffff5fbfff5fbfff6fafff8faff
+f9f9fffbf9fffbf9fffbf9fff9f9fff7f9fff7f8fff8fafff9fdfff9fdfef8f8fff6f5ff
+f6f5fff4f6fff5f7fff7f9fffafcfffbfffffbfdfffafcfffcfdfffbfcfff9fafff8faff
+f8fafff9fbfffbfdfffcfefffbfdfffbfefffbfefffbfefffbfefffbfefffbfefffbfeff
+f8fbfff8fafff8fbfff8fbfff8fcfff8fcfff8fbfff8fafff7f9fff7f8fff7f8fff7f9ff
+f7f9fff7fafff7fbfaf7fbfefafbfffafafffafafffafafffafafffafafffafafffafaff
+f8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff7f9fff8fafff6fbfff8fafff6fbff
+f8fafff6fbfff8fafff6fbfff8fafff6fbfff8fafff6fbfff8fafff6fbfff8fafff8faff
+fefbfffffbffece9fefbf8fffaf8fff3f2f8f9f9f9e8e8e6fffffbfffffafffffafffffb
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+13101b000005000002040605070c08f0f6f2f0f6f6e0e7edf3f9fff3f9fff5f8fff6f7ff
+f8f7fff9f7fff9f7fffaf7fff9f7fff7f4fff6f4fff7f5fff8f7fcf8f8faf7f4fbf5f2f9
+f6f3faf6f3faf5f4f9f8f7fcfbfbfdfcfcfefcfcfcfafafafbfcfef8fcfdf9fafcf6fafb
+f8f9fbf7fbfcfafcfbf9fdfcfafcf9f8fdf7fafcf7f8fdf7fafcf7f8fdf7fafdf6f8fdf7
+f9fafcf7fbfef9fbfaf7fcf8f9fbf6f7fcf5f9fbf6f7fcf8fbfcfef9fdfffbfcfef9fefa
+fbfef7f9fff1fbffecf9fff1f7fafff7f9fff7f9fff7f9fff7f9fff7f9fff7f9fff7f9ff
+f7f9fff7f9fff7f9fff7f9fff7f9fff7f9fff7f9fff7f9fff7f9fff6fafff7f9fff6faff
+f7f9fff6fafff7f9fff6fafff8fafff7fbfff8fafff7fbfff8fafff7fbfff8fafff8faff
+dad8edfaf7fffffcfff8f6fff8f7fdefeff1fffffdfdfef9fffffafffffafffffafffffb
+fffffdfffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000707060c0f0f11000100000200f5faf3fcfffafbfffbfbfffffcfffffefefffffdff
+fffefffffefffffefbfffefdfffbfffff9fffff8fffff7fffff9fffffafffffafffef8ff
+fffafffff9fffff8fffffbfffffbfffffbfffffbfffffbfffffefffefffffffefffeffff
+fffefffefffffffefffefffffffefffefffffffffffefffffffffffefffffffffffeffff
+fefcfffdfcfffefcfffdfefffefdfffdfefffefefffdfefffffefffefefffffefffeffff
+fffffafefff4ffffeffefff3fcfffdfcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffefffffcffff
+fefffffcfffffefffffcfffffefffffcfffffefffffcfffffefffffcfffffefffffeffff
+fffdfffffdffeae8f3fffefff4f3f8fffffff7f8f3fffffafffffafffffafffffafffffb
+fffffdfffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000004000004000002000200090c05f7fdf1eef2e3f2f6e7f8fbf0f8faf5f9f9fbfaf8fb
+faf8f9fcf9f4fdf9edfdf9edfff9f6fff6f7fcf3f4faf3fafbf2fffcf3fffbf4fbf9f4f8
+fdf5fffcf4fffbf2fffcf3fffff5fffff5fffef4fffaf3fbfbf9fefafafcfafafcfafafc
+fafafcfafafcfafafcfafafcfbfbfdfbfbfdfbfbfdfbfbfdfbfafffbfbfdfbfafffbfaff
+fbf9fffbf9fffbf9fffbfafffbfbfdfbfbfdfbfbfdfbfafffaf9fffaf9fffaf9fefafafa
+fafbf5fafceffafdeafafdecfafdf6f8fdf9f8fdf9f8fdf9f8fdf9f8fdf9f8fdf9f8fdf9
+f9fefaf9fefaf9fefaf9fefaf9fefaf9fefaf9fefafbfdfafafcf7fafcf7fbfcf7fafcf7
+fbfcf7fafcf7fbfcf7fafcf7fcfdf8fbfdf8fcfdf8fbfdf8fcfdf8fbfdf8fcfdf8fcfcfc
+f2f1f7f9f8fffaf9fff6f6f8fffffffffffdfffffae9eae4fffff8fffff8fffffbfffffb
+fffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0303030909090d0e10000100000200fefff3ffffecffffeafcffeafdfef0fdfcf8fffbfa
+fffbf8fffcf3fffdeaffffe3ffffe2fffeddfdfcdefcf9e8fdf6fdfdf8fffdfbeffafbeb
+fffcf7fef9fdfdf7fffef8fffff9fffffafffff8fdfdf7f9fffcf9fefdf8fefdf8fffef9
+fffef9fefdf8fefdf9fefdf9fffefafffefafffefafffefafffefcfffefafffefcfffefc
+fffefffffefffffefffffffbfffffafffffafffffafffffbfffefffffefffffefffffffb
+fffff6fffff1ffffedffffeffefff6fefffafefffafefffafefffafefffafefffafefffa
+fdfff9fdfff9fdfff9fdfff9fdfff9fdfff9fdfff9fdfff9fefff7fefff7fffff7fefff7
+fffff7fefff7fffff7fefff7fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffffa
+fffffffffffff5f5f5fffffdf3f4effbfcf6f2f3edfffff8fffff8fffff8fffffbfffffb
+fffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020300000000030406000002080903fffff3f0f4d9feffe3fdffe5fdfeecfffbf8fffafe
+fffbfcfffcf7fffdeaffffe1ffffdafeffd5fafcd4f8fae4f9f5fff9f7fff9fbedf7fce5
+f9fcf1f9f9f9f9f8fefcf9fffefbfffffbfffffafafdfaf5fffcf5fefef4fefef4fffff5
+fffff5fefef4fefef6fdfdf5fffff7fffff7fffef9fffef9fffef9fffef9fffef9fffef9
+fefdf9fefdf8fefef4fefef2fefff1fefef2fefef4fefdf8fefdfbfefcfdfefcfdfefdfb
+fefef6fefef2feffedfdffeffffff6fefff8fefff8fefff8fefff8fefff8fefff8fefff8
+fcfff6fcfff6fcfff6fcfff6fcfff6fcfff6fcfff6fcfff6fdfdf5fdfdf5fdfdf5fdfdf5
+fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfdf5fdfcf7
+f9faf5f8f8f6fffffdf0f1ecfffffafffffafffff8f3f4ecfffff8fffffafffffbfffffb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000100010005000004040300f9faecfeffe2fbffdcffffe3fbfae8fffefffef8ff
+f4eefcfffefff1efe3f7f9e3fcffe2f4f7d8f6fbddf9fbf6f1effff3f3fff1fbf3e4f0da
+f8fffcf3fbfee0e4eff2f4ffedeef3fffffffafaf2fffff6fffff5fffff6fffff6fefef4
+f9f9effafaf0fefef6fffff8fffff8f1f1e9fcfbf6fdfcf7e7e6e1fffffafffffaf3f3eb
+eeeee4fffff3f8f9e9ffffeff0f1dffffff1f4f4e8fffffaf0eeeffffeffeceaeffbf9fe
+fffefff8f7f3fafaf0fdfff4fffff8fefffafdfff9fcfff8fdfff9fefffafefffafefffa
+fdfff9fdfff9fdfff9fdfff9fdfff9fdfff9fdfff9fdfff9fffef9fffef9fffef9fffef9
+fffef9fffef9fffef9fffef9fffef9fffef9fffef9fffef9fffef9fffef9fffef9fffef9
+fffffbfffffbfffffbfffffafffffafffff8fffff8fffff8fefff9fefff9fefffafefffa
+fefefefefefefefefffefeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200010005000005040203f9f9edfeffe2fbffdaffffe5fffff3e9e5f3faf4ff
+fffafffffcfffcfcfefffffafdfff7f6f9f2f0f5ef00011815115d12125aeef8ffe8f8ee
+ebf8ff0a1626171e31f9fffffbffffe8ecebeaede2fefff3eeefe7fdfcf7fffffafffffa
+fffffafffffaf5f4f0fffffbeeede9fffefafffffbfffffbfbfaf8fefdf9e7e6e4fffffa
+fffff6fcfdeffcfdedf4f5e5fffff1edeee0fffff8fcfbf7fffeffe9e6effffdfffffdff
+f3f0f9fdfbfffffffdfbfcf7fefffafcfef9fcfef9fbfdf8fbfdf8fdfffafefffbfefffb
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafefffafffefafffefafffefcfffefa
+fffefcfffefafffefcfffefafffefcfffefafffefcfffefafffefcfffefafffefcfffefa
+fffffafffffafffffafffffafffffafffff8fffffafffffafefff9fefff9fefffafefefc
+fefefcfefefefefefffefeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000100020006010009040207f9f9f1ffffe4fdfedef8fae2f4f3effffbfffcf6ff
+f5f1ffece9ffc3c5dcf8fbfff9f9ffe7e8fff9fcfff7f7ff0a027c1f1c8fe1eaffe9f9ff
+dfedff1724461a2246ecf3ffdee5f5f7fffffbfff8ecf2e6fffffde8e8eaf9f9fbeaeaec
+e3e3e5fafafcf2f2f4fbfbfdfffffffffffff4f4f6efeff1f2f1f6fefeffe6e5eaffffff
+eaebe6f3f4eef6f7effffff6f3f5eaeeefe7fffffdfdfcfffffdfff7f4fff7f4fff4f1ff
+fcf9fffffdffeeedf3f3f3f5fcfcfcfcfcfafbfbf9fbfbf9fcfcfafdfdfbfefefcfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffefcfffefcfffdfefffefc
+fffdfefffefcfffdfefffefcfffdfefffefcfffdfefffefcfffdfefffefcfffdfefffefc
+fffffbfffffafffffafffffafffffafffffafffffbfffffbfefffafefffafefefcfefefc
+fefefcfefefcfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000020002000801000c04010af9f8f4ffffe8fdfde1fbfcecfffefff1ebffded7ff
+18125c0b084bf8fbfff2f6fff5f5ffe9e9ffeaecffe7e4ff2118a90f0991e4eeffedfeff
+dceaff121e48252e57e6effff8fffff0f8fbfbfff8f5fbefe5e7e6feffffe5e4e9feffff
+fffeffe9eaeefffefff0f1f5fcfbfff4f5f7fffffffbfcfefffffffefffffdfdfff3f4f6
+f0f0f0feffffefefedfefffbf7f8f2fcfef9f4f4f4edeef3efedfaf0efffe5e2f5fefdff
+f4f2fff5f5fdfffefff0f0f0fbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefffdfefefefe
+fffdfefefefefffdfefefefefffdfefefefefffdfefefefefffdfefefefefffdfefefefc
+fffffbfffffbfffffbfffffbfffffbfffffbfffffdfffffbfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01030001010002000801000e06000ffbf6faffffedfdfce7f6f6eefaf8fff3edff2d277f
+1f197d15116f000146e2e6ffedeefffcfdffe2e4f9e2e0ff1106911e189ee8f4ffdef1f7
+e6f6ff0916390e173ee3e9ffecf1ffecf1f5f9fff3fbfff3e2e4e1f0f4f5fcfdfff9fdfe
+f4f5f7e8ecede7e9e8ecf0efeff1eeedf2ecfefffbf1f6f0f3f5f0e9eee8f0f3ecfcfffb
+f7f8faeaeef1feffffdadfdbfafcf7f0f5efe4e6e5fcffffe4e4ecfcffffe6e6f0f6f9fe
+fcfdfff3f8f2e2e5dafdfff5fbfcf7fbfbf9fcfcfafdfdfbfefefcfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefefdfffefefefefdfffe
+fefefefdfffefefefefdfffefefefefdfffefefefefdfffefefefefdfffefefefefefefe
+fffffdfffffdfffffdfffffdfffffdfffffdfffffffffffdfefefefefefcfefefcfefefc
+fefefcfefefcfefefcfefefcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01030001010002000a010012060013fbf6fdfffef1fbfcecf7f7f7e9e8fff4edff07006c
+18138b1e1b8e121671e3e9fff1f2ffedeef0f9fcfffbf8ff1c0f9b040083f4fdffe3f4fb
+f2ffffd4dffff0f6fff8fafff3f3ffe7e7fffefeffeff0f5fcfeffe1e2f4f4f5fff0f2ff
+e7e9f8fbfdfff7f9fff0f2fefcfefffcfffffcfffffbfefff5f8fff9fcffdcdfe4eef0fc
+f3f3fff6f6ffd5d5edf4f5fffcfefff6f8ffebedfccecfe1f3f4fff8f9ffedeeffedeffc
+fbfefff1f5f4e5eae3ecf2e8f9fbf6fbfcf7fcfcfafefffafffffdfffffbfffffdfffffb
+fefefcfefffafefefcfefffafefefcfefffafefefcfefefcfdfffcfdfffcfdfffefdfffc
+fdfffefdfffcfdfffefdfffcfdfffefdfffcfdfffefdfffcfdfffefdfffcfdfffefdfffc
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefc
+fefefcfefefcfefffafefffaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01030001020004000c030013060015fbf5fffefef4fbfbeffefeffdbdaff332d8718108a
+ded8ff0d0c8e181c87e1e9ffcacad6fffff4fffffdebe7ff2314a31b0f9fe1e7ffebf8ff
+050c401a1c66060257ede7fff1e9fff0e5ff271d52281e50201c4f0100332c295eeceaff
+f0eeffdfddfffbf9ff12113d1a194511103a0100282a2951131339d6d6fafbfbffe6e4ff
+2c27690f095116115427236018154eedeafffaf7fff3f1ff252257070537181645212048
+1213321a1c33fbfefff1f4fbf7f9f8f9faf4fbfcf7fdfef8fefffafffffafffffbfefff9
+fefffafefff9fefffafefff9fefffafefff9fefffafefffafdfffafbfffafbfffcfbfffa
+fbfffcfbfffafbfffcfbfffafbfffcfbfffafbfffcfbfffafbfffcfbfffafbfffcfdfffc
+fffffffffffffffffffffffffffefffffffffffefffffffffefefffefefefefefefefefc
+fefefcfefffafefffafefffaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03010003000004000c03000e06000af9f8f6fdfff1f9fcf5f1f2ffebebff17156905016f
+e9e8ff0e0f8d0b0e8f141776f8f8ffebebdff0f1e9f9f6ff100092190aa5f7f9ffebf2ff
+f2f5ff13135d1f1c6ddcd7fff1e9ff180d5b25176eddd1ffefeaffebeaff1f1a74030056
+f8f8ffe1e1ff0d0a590f0a64e7e2ffe4dfffe9e6ffefeeff1a1a56ededffd9d7ff151263
+030052f9f3ffd5cefff2ebff28217e110d61eae9ff1f1e64100c61e9e4ffefebffe5e0ff
+eeecff0a0a3ce8ebfff6f9fff5f6f8f7f8f2fafbf5fcfdf7fdfef8fefffafdfef9fdfef9
+fefffafefffafefffafefffafefffafefff9fefff9fefffafdfffafbfffafdfffcfbfffa
+fdfffcfbfffafdfffcfbfffafdfffcfbfffafdfffcfbfffafdfffcfbfffafdfffcfdfffc
+fffffffffffffffffffffffffffefffffffffffefffffffffefefffefefffefefefefefe
+fefefcfefffafefefcfefefcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040007100a1603000b030000030500fbffdfecf2d8fbfffff1f3ffe6e7ff070b4aeff4ff
+cfd6ff0f1279100bad100b9be3e3ffeef2f5fcfff4ebebff10009b1906aff1f0ffeaefff
+d8dbff202252242754e1e4ffe7ebffe9e8ffded5ff1c157d161b520f1551140f8d08047f
+ebf2ffdfe7ff1e1c871c15a31a11ac060094120d8de3e2ffe4e8ffdfe2ff0e0a821e1a92
+dcdbffe8e5ffe3ddffd9d0ff130d89121179ecf1ff0e125b06027d271fb006008b1b1593
+ddd7ffdfdeffe3e5fff2f7fff9fafcf9faf2f9faf4fbfcf6fdfef9fffffdfffffffefefe
+fffffffffffffffffffffffffffffdfffffbfffffbfffffbfffffdfefffdfffffffefffd
+fffffffefffdfffffffefffdfffffffefffdfffffffefffdfffffffefffdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+05000f03000c090311060501000600feffdcf1f9e1edf4feebebff18186221265d00022d
+242f5c1d2377140db31e16b9f7f6fff5faffd8e2daf9fbff1b0ca52716bce5e3ffe9eeff
+f7fbff0206331f244af0f6ffe7f0ff1f245c262195050179eff6ffd7deff0f08a32926b3
+f2fdffdeedffe0e2ff0f0c971e18ae0c089a1a1895060a6e0a105ce9efff1f1aaa090590
+1a1c690709441b1b731d19870f0b8305076eecf4ffe1ebff1012830b08932521ac0f098f
+201a941b1b73f7fcfff3fafff9fbf6f9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0300050a0710010009080806000400e8eed2f6fbf4dfe3fee3e1ff120f66f5f9ffe7efff
+e2ebfff0f6ff0e089c0a049a0a0a62e0e5fff7ffffd5daff0b008b2a1eb2d4d7fff0f8ff
+dfe3ff191c5f0c124ceaf1ffedf5ff00003a171882e1dfffcccbffe4e0ff1003b3050090
+e3ecffe8f9ff111751d0d6ffe3e7ffdfe6ff090d56161d63080d4fe9ecff1a11aa2b23b6
+eeedffd8ddfff5fdffe7edffecefffe5eaffcbd5ff0f1a47dee7ffd2d8ffecedff1f1f83
+080473020451f7ffffe1eed0f9fdecf9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0f0e0c000002040309000002000300fcfff4f5f9fff4f3ff241e76120c6cd7d8fff7fbff
+e6eeffdfe3ff191590110b911d1e78f4fcffe6f2fff4feff1f1b8c08057ae6edffedfaff
+eef3ff050b55182061d5dfffe3efff242e6c151b710e11780e0a83231ba5160aaa0e0884
+f5fdffe8f5fd262d5be2e7ffeef6ffe6eefff5fcff000535282e5ef0f2ff00006d120c86
+171658eaefffe2ebfce7f1ffe8ecff0d1256f4fdff172444eaf7ffeefaffd4daffd7d8ff
+23218427286bdfebe1f9ffdff9feeaf9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010206101115000200f4f8f9e4e6fd0c09421b11711c14791a175cf7faff
+e4e9ffe2e5ff1915761c1886171a6b000030eaf7ff07162b1f236c080e5815243bdcedff
+000740081058303a770d1a4fe9f7ff111f5000093d16205b1c1e68e3e0ff1712781f1d70
+151c38d4dcef2a2c671718590d123a050b2b11163e1d2347f2faffeaf1ffeceeff141454
+090b3c181c422d3252060b331e22611a205cd3ddff121e36010c2c1e2654171b5a1a1c67
+1b196df4f4fff1fbfaeff9e0f9fdeef9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0b0e03090c050000020000040a0e0df8fbffeff0fffaf6fff6edffe8dffff5f0ffedecff
+edf0fff3f4ffe2deffe2ddffecedffdae1fff0fcffdce8feebf2ffe4ecfff0ffffd4e4f4
+ebf4ffe7efffced8ffebf6ffcfdcffdeecffe3f3ffe7f4ffe2e7ffdadafff5f2ffdeddff
+f1f4ffeff2ffe7e3ffdfdafff0f0fff2f3ffe2e2ffedeeffe3e9f9ebf1fdf3f6ffe2e4ff
+f9fbffeff0ffdddcfff2f2ffe8e9ffebf1ffd6e0f9f0fdffe5edffd9deffedf0ffddddff
+ebeaffd7d7ffe7edfbf7fef7f9fcf3f9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200060a0b090d10000100edf0f7ececff221e511008550400492b275a292945
+21232f232438130e4628226c1f1c6d29296f040835191e44282e60080f3d141e37161f40
+0d1158141669101559060e4c2028690e1750131f4517203d2b2e4d06062c1c1950221f58
+12113d1613481d156b21187516105a1b155d0f075c221c6423224a1f203f00002b322f66
+02002f16134c241f730d086213115c0c10402b3445121e2e191c511818620e0d5b1c1b61
+30316722244d222244fcfdfff9fbfaf9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300030905000104000104040905e0e4e5fcfeffeae9ffe9e4fffef6ffeeeaffdad9e9
+f6f6f8f7f7fff9f2fff7effff0ebffd7d6fff6f5ffe5e8ffeaecfff1f4fff2f7fff1f6ff
+eeeeffecedffebeeffe2e6ffe9ecffe2e6ffedf4ffeaf1ffecf0fcf5f6ffeae5ffeeebff
+f3effff2effff9f0ffeee7ffebe2fff0e9ffeee3ffede6ffefebffeeeefff8f1ffeae5ff
+f6f0ffeae6fff6efffe6e1ffefedffecf0ffeef7ffe9f3fde9ecfff0f0ffe2e2fff3f2ff
+d2d4faeeefffecebfff0eefffafafaf9fbf0f9faf4fbfcf6fdfdfbfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000104000104000106000102000400f5fbf1fcfefdfafafff8f5fff9f5fff9f7fff9f9fb
+faf9f5f9f8fdfaf3fff9f3fffffafffaf8fff6f3fff3f2fff5f5fff8f8fff9fafcf7faff
+f0f0fff0f0fff2f5fef4f9fff7f9fff8fafff7fcfff5fcf5f6f9f0f3f5f4fcf8fff0eeff
+fffeffe3e5e4fffefffafaffedebf9f7f5fffaf3ffe1ddfff8f7fdfcfdffefe9fff7f2ff
+f5effff3effff0edfff0effff3f4fff2f8fff2fafdeff9f8f7fefff2f8fff2f6fff8f9ff
+f7f9fff3f4fff3f3fdf8f8faf7f8f2f9fbf0fbfcf6fcfdf7fcfcfafdfdfbffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000009000007000106000100010400f7fbecfcfff2fafdf4fbfbfdfbfafffdfcfafdfdf5
+fefef6fefcfdfef9fffff9fffffbfffef9fffbf6fdfbf5fffdf8fffef9fffbf9faf9f7fa
+fdf9fffcf9fffbfdf2fcfef3fdfcfffdfbfff9fbfaf7faeffafdeaf8f9f1fcf9ffefebff
+ffffffeef1e0f3f6e1e7ead9fffffbe5e4ecfffcfffdfbffebede2eef0e5fdfbfffefaff
+f8f5fff6f3fff5f4fff4f6fff7fafff7fcfff7fcfff3fdf5f6ffeef3feedf5fafdfbfdff
+fafcfff8f9fef8f9f3fbfdf0f7f9eef9fbf0fafbf5fcfdf7fcfcfafefefcffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000c00000b000106000100020400f8fbe6fdffeafbffe8fdfeeefdfef0fdfef0fefff1
+fffdf4fffdfefffafffff9fffff8fffff7fffff6fffff6fffff8fffff8fffef5fffbf3ff
+fffbfffffbfffffcf5fffdf8fffcfffffbfffdf9fffaf8fbfafceefffffafffafff2ecff
+f8f6fff8f9f3fafceefffff6faf9fff2f0fdfbf9fffffffffefff0ffffededeee6fefefe
+fcfafffafafcf9faf4fafdf2fafff4fbfffafafffff9fff8f8ffe0f6ffdcf8ffeffcfffd
+fefffffcfdf8fcffecffffecf8faecf8faeffafbf5fbfcf6fdfdfbfefefcffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000c00000b010006000000030300f8fbe6feffe8fcffe4fcfee6fcfee8fbfde8fbfcee
+fdfaf5fcf8f9fcf6fffcf6fffff8fbfff8fbfff6fffff7fffff6fffff6fffff4fffcf4ff
+fbf4fbf9f5f4fbf7eefcf9f2fffbfcfffcfffffbfffefcfffffff1f8f9f3f8f2fff8f2ff
+fffdfffffffae8eadce2e4d7fcfcfee7e6ecf9f9f9fbfcf7f8faeffafceefdffedf4f7e6
+fefef6fdfcf7fcfcf2fcfef0fefff1fcfff6fcfffffafffcfaffe1faffddfaffeffdfff9
+fefff7fdfdf1fdfeecfdfeecf9fbeef8faeff9faf4fbfcf6fdfdfbfffffdffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010009010007020005010000050200f9faecffffedfcfee8fdffe7fcfee8fbfcecfafaf0
+f8f7f5f7f5f8f5f3f8f7f3f4fffbf0fffcedfff9effdf8f4fcf6f8fbf6fafdf7f7fdfaf3
+f7f5e8f4f5e3f7f5e6f8f9e9fcfdedfffff4fffffdfffffaffffedf9fbeefefafffdf9ff
+f2f2f2f7fae9fafde8ffffeff1f3e6fffff6d7dac9f1f3e8f7f6fef7f6fbe2e5d4ffffea
+fffdf0fefbf6fbf9fcfcfcfcfefff3fefff8fefefffbfefffdfff0feffeffdfffafdfdfb
+fbfdeffbfcecfcf9f4faf6f3fafaf2f8faeff8f9f3fafbf5fefefcfffffdffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040004030004050001030000050100fbf8f3fffdf4fefcefffffeefeffeffdfdf3fbfaf6
+f9f7faf8f6fbf6f4f5f6f5f0fdfbeefefdebfdfceafbf9ecf7f6f1f7f6f2f9f9f1fbfcee
+fbfee9f9fce9f8faeff9fbf0fbffecfdffeefefffafdfff5fdffe8fafdecfffdfffffcff
+ecececeeefe7fffffde1e1e1ededefffffffe2e3ddedecf4fff7ffe3dcfffffffff1f3de
+fefdebfefaf1fcf7fdfcfafffefef4fefff7fdfdfffcfcfffcfff8fefff6fffffffbfbfb
+fafbe9fcfbe9fbf5f5f6f1f7fbfaf5f8faeff7f8f2fafbf5fefefcfffffdfffffffefeff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+060000040000070000040000060006fcf5fcfffbfffefaf9fffcf7fffcf7fcfafbfbf9fe
+faf9fff9f8fdf8f9f3f8f9f1f8f9f4fbfcf6fdfff1fcfef1f9faf5f7f7f5f7f9f4f9fcf3
+fcfff4fafff8f8fbfff8fbfff8fff3fafff2fafffcfafff8feffe8f2f7e1f0f0fafcfaff
+fefdfffdfbffdfdaff2b255529244dddd9fef4f1fffef7ff0000573b2d8ce4e1fffafbf5
+fefdebfefbecfcf8f7fbfaf8feffeffefff5fdfcfffbfafffafdf6fefff4fffffffbfaf8
+fbfae5fdfce7fdf7f7f7f2f6fcfbf6f8faeff6f7f1f9faf4fffffdfffffdfffffffdfdff
+fffffffffffffffffffffffffffffffffffdfffffbfffffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040000040000050001040004060004fcf5fcfff9fffef8fffbf6fafbf6faf9f6fff9f6ff
+f8f3fff6f4fff6fafff7fcf8f5f7f2fafdf6fffffafffffff9fdfff4fafff4f9fff4f9fc
+fafffff6fdfff3f8fff3f6fff8fbfffafffbf9fffdf9fff6f5fee1fcffeafcfffff5f7ff
+f3f3ffedebffefe9ff1d165a0f0947fbf7ffe3e1ff19125523119b19088afcf9fff0f1f3
+fcfcf0fdfbeefcf9f0fefbf2feffeffffff5fefcfffcfcfff9fbf0fefff3fffcfffbf9fc
+fcfbe7ffffeafefaf9f7f4fffaf9fff5f8fff5f6faf8faf7fffffafffff8fffffafefdfb
+fffefffffefffffffffffffffefffdfefffdfcfffffefffffefffffffeffffffffffffff
+fffffffffefffffefffffefffffefffffffdfffffdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010500000300010005010009060100f9f4f0fdf5fffef5fffffcffece9f2fcf9ffe2dfff
+251f81100e71dae2ffdbe5f1edf5e8f8fbeaf6edf2fef8ffeef2ff21295af7fcffe7ecff
+eff4ffeff3ffeaf2ff282c6bf9f1fff9f0fffffffffcfff4f1fbe2fbffeaf4fdeaf0f6f4
+fbfcffe2e0ffdcd9ff2d296415124bfbfaffedf0ffefecff1300972412a6efedffeaeeef
+fffffffdfcf7ffffeffeffeae8e9d9fffff8f7f6f4f9faf5fffff0fffff5fefafffffcff
+f4f5e3fdffeafaf8fdf3eefff6f6ff191b4cebeffff4f8fbfefff4fcfee9f9f8e4fffff4
+fffdfffbf5fffdfbfcf8faf7f6fbf7f9fffff3fcfff6fcfff7f9fffefefffefdfff6f6f6
+fffefff1ecf0fffcfffdf8fcfffefdfffdfafffcf9fffefcfffffffffefffefffffeffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00080000040000000b010010050102f9f4f0fff5fdfef7ffe8e4e5fffdffece8ff14105a
+0d068a18159a121b68eefcfff9fffaf6f6eafff3ffede1ff151869020a5be5e9fff9fdff
+f5f8ffdde3ff1f26810d0d6de2d3fffff6fffffcffedf2ecf7fffddbe6e2f0faf2f2fbff
+e1e3fff4f6fff4f4ff06073d070544f3f5fff8feffe7e9ff13029c3324bfdad9fffbffff
+e2e1f1faf8fff8f9f4f2f3edfffffffffefffffdfff9f7fffffffff6f6f8fffcfff6f4ff
+fffffaf9faf4fffcffede9ff05025d2a2a84d6d7fff7fcfffefffdf6f8ebf9f6f1fffdff
+e5def0fffbfffdfcfff2f6f9fbfffff2fbffebf7fff5fdffeef0ffe7e8fcf8f7fffffdff
+f2eff8fffdfffcf7fdfffdfffffdfdfffdfafffcf9fffefcfffefffffefffefffffdfeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00070000030000001001001b050015f8f3fafdf9edfefce5f6f5e0f2f1f6f0ebff120c70
+0e05940b099100035ce5f2ffd4dde6f4f3f8fff5ffefe3ff1d1c91000373eaeffff5faff
+eaeffff5f9ff04067f080685fff2ffe4d5ffebe8fdf9fcffeef2fff2f6ffdfe3fff7fdff
+edefffe1e4ffdadcfff7fafff4f2ffd4d5ffeef3fff6f9ff2314ab0b009adbd8ffe3e6ff
+fcfafff3effff4effff9f5fff0edfff9f4ffd8d0fff7effff6f1ffeeecffe9e8f6f8f8ff
+f4f4fef1effff9f4fff0e9ff2f28a900007af7f4fff1f2ffeaeafffdfbffede7fff9f0ff
+f3ebffe8e2ffe6e4fcfbfefff3f9ffd0d9eaf4ffffebf4fff2f7fff5f6fff8f7fff5f4ff
+edebfff5f3ffeae8e9fffdfafffdfafffcf9fffbfcfefcfdfffefffffffffffffffefeff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00040000020000000c010017050019f8f2fffcfbe6fdfedce9ecd1fefeff09034917117f
+e9e3ff06068a2b33a2eaf3fff1f8fffefefff9eeff2518600b07902124a711164e1e2538
+eef5ff12175110129b241faf190a5b30244cedebff171a3b181862101164dcdeff1b2151
+202454dae1ff1a1f4900002e04044af2f6ffebf2ffdde3ff1e13a0180ea3242373151a44
+13153b1e1c4d1a1363e0d9fff1efff242254281f7a0f065ff6f4fffbfdff090c1f1f2235
+242541f5f5ffc8c7f1221e6b130c960c079717167402043df3f6ffdddcfefef5ff00003e
+38316517113d18163e202248e4eafff5fdffd3deff182051151a42282b560f0e481d1a53
+26244be0def3fffffdf3f3e7fefdf8fffbfafef9fffdfbfefffffdfffffbfffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000d000009010002010004050010f8f2fcfcfbe7fbfee3fbfef5e7e9ff100d5a131278
+edf0ff04097e030897000073e0e8fff7fafff2e9feefe4ff2723b5090a96edf4ffeff9fa
+f0fafbd4daff1f20ae080499e7dcfff5ebfff6f8ffecefff120f78201d901d2065050e37
+000526f4ffffedf6ff202950171d51eaf3ffe2eefcf4fdff0d07852e28aed7dafff5feff
+e9f0ff2424561b0f8b120684ededffd6d7ff1e1484302792e6e9ffe9f0faf9fcff060737
+080939eceefff9fdfff1f5ff13128920209cd6ddfff5feffe0e8f3eef2ff1a1363211672
+efeaffe8e6ffdfdeff2b2b6710154ddde5ff000654182069ebf2ffced3ffece9ffe1ddff
+12114bfafbfff3f6eff4f7e2fcfcf4fbf9fcfbf8fffcf9fffffefafffff8fffffbfefefc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01001800000c01000001010005000bf6f3fcfafbebfafdecf1f4fde3e4ff211e75e5e5ff
+ccd4ff212a91181bb80a0d9ae8effffbfffff9f2fffff5ff010090050893f5fcfff0fbf3
+f8fffbe2ebff0405911e1aacf1e7fff2ebfbfbffffe5e9ff201b9c110b93eff4ffeefaff
+182538deeaffdae4ff111a4328315cdae5ffeffeffdae4ff120e8702007df4faffcfdced
+e4eff3f0f4ff1c0ea30c0095f2f3ffe5e9ff3026a3050074f6fbffe4eff3dee0ff343576
+272765d5d9ffdde4f6e3ebff191b8c151790ccd6fff4fffff0fdff1c213f181075dbd2ff
+d7d6fff9fafff8f8ff020548181d5dd8e0ff182075151b6f0f17561b1f66161280f1ebff
+e9e6fff3f6ffe6ece0feffe8fafcf1faf8fdfaf6fffbf8fffefdf8fffff4fffff8fefffa
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+02001301000901010001010003000bf6f3fefafaf0f9fbf6eff1ff21215d1e1d7b101276
+1e277200005d0508a51517aae5edffd5daf0f6eefff1e9ff07048f181ca1d9e0ffeff9f8
+e0eae9e7f0ff0a0d901d1ba2f8f0ffe1daeaf7fdffedf1ff1e15ac050092e8f2ffe1f3f7
+e8f9ffcfddf7f2fcff0b144d07133becfbffe3f4fcf2feff0d0b8a171495e7f1ffe4f3f8
+f5ffffeef5ff0700921b10ace5e7ffe6ecff0300802a23a4f4faffdfecf4e1e3ff0b0d58
+151659f2f8fff7ffffecf4ff161594090890edf5ffe4f1ffe5f2ff080f3b1c148e190e8e
+1414501f2549050a42242a681e2760dde7ffe9f2ff000855252e6f0209591c1a99080384
+000055eef1fffbfff4bec5a4f9fbf0f8f7fdf9f4fffbf7fffefdf8fffff3fffff5fefdf8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020011010005010200010200030200f6f3faf9f8fdf9f7ffe8e5ff0e0b5ae9e9ffdbe0ff
+e5f1ffeaf5ff00009309099f121866f4f6ffece4fff8efff18169b2427a8e5eafff8ffff
+f3f8fff1f6ff040885151493ddd5fffffaffeff3ffe5e7ff150bac070197f2fdffeeffff
+e0f0fdf2feffdee4ff131869192358eefbffd7e5ffe2ebff16129a1c199edbe5ffeaf7ff
+ebf4ffdaddff2b23ad160f90f2faffd7dfff3934ac0d0688f1f4ffe0e5ffeeeeff1a1879
+010255f5faffdae5fbeff7ff211fa4080594d4daffe6f1fff4ffff191f5b241ba8e4d9ff
+e7e8ffd9e1ffe2e8ffe0e5ffe4ecffd8e1ff171e6cdae3ffd7e2ffe1e9ff0400881e17a3
+1a1879ecefffeaf3e2f6ffddf9fbf0f8f7fdf9f4fffaf6fffdfcf7fffff0fffff5fefdf8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+070016030004030300060700010300f1f0ecfffaffeae4ff160c6c100a6ef6f6ffe7efff
+dfeeffeaf9ff0b0d941c19ae0e0e6ef5f2fff5eafff3e8ff1d1c9b0d118fdcdbfff0f0ff
+f3f0ffe1e0ff1a1f9707087efaf0ffeee5fff2f2ffdfdeff1107a82119ace4ecffdceaf3
+e9f4ffe0e6fff2f1ff080673121467e8edffe5ebffe2e4ff0d0598130c96e8eeffe5edff
+e2dfff3630ac14107fe4e7fff5ffffdfedee0c0e5b1e1896100796140a9f100794140e8c
+110e77f3f6ffeef8ffe3ebff181598070294e3e6ffdfe8ffe1e9ff2e317e0d029e1106a0
+ebedffebf1ffdde1ffe4e6ff141a68e4e9ff050962d5dbffd6e1ffdde5ffeae7ff211aa4
+201e7fd2d5fffbfff3f9ffe0fbfdf2faf9fffaf5fffcf8fffefdf8fffff1fffff3fefef6
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030002030000141300101300010300fffffbe3dfff292268251b7e0f08680b0d4af5fdff
+eefcffedf9ff24279004047c0b0c68120e5afeeffff6e9ff02036f242894171368130c52
+fbf4fff8f5ff171c820c0e7214094d140941f9f8ff1919711c149e1d17931c2252f0fcff
+f5feffdce0ff1d1b8009057412116f090a5ce4e6ffe9e8ff0c0589221c960a0f49181d55
+1e198f000075f7f6ffeff8ffe7f4edeaf8f9f7f9ff14107f1e0fb01508b0e1d6ff191586
+2a258903064de8eefff5fbff1512831c1893000352131a50f1f8ffd0d2ff261dac2a21b0
+0a0a5412184a181a6712126c1b1d72e3e5ff2a2b88202579111b58121a631b1a9202007b
+d5d2fff8fcffebf3e4e8efcefbfcf4faf9fffaf5fffcf8fffefdf8fffff1fffff3fefef6
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0708001717000100000100040d0b0cf7f6fef5f2fffcf9ffece7fff0edffe1e2ffe2e5ff
+e3e9ffe1e8ffeef4ffe4eaffdee2fff9f7ffd8caffefe5ffeaeeffdae1ffe0ddfffaf1ff
+e2d9ffece9ffe0e8ffd6dbfffff6ffeee2ffe0deffe2e3ffd8d3ffede9ffe4e7ffcad0e6
+f2f7ffe0e2ffdedcfff6f2ffe3dffff2eeffd1ceffece8ffe5dfffdfdcffe8ebfff0f4ff
+e7e6ffededffe9edffebf3ffe3e9ffedf3ffd0d0ffe1deffded4ffd1caffece9ffdfe1ff
+e0e0ffe9ebffeff0ffe7e9ffeae9ffe1e4ffeef2ffeaf1ffd9e0fcf0f3ffded8ffccc6ff
+ebecffe0e5ffedeeffdcdaffe4e2fff0eeffc5c5ffe4e6ffdce3fff4faffdbd9ffefeaff
+f1efffd8dbfcebf1e5faffe6fbfcf6fbf8fffaf6fffcf8fffefdf8fffff3fefff5fdfef8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0305000303000f0d10080412000007fffdffd6d4ea221e411c19461412413c3e650f113a
+212354202350111633040b252a30540706302d204c29204d09103e1b23511916450e0534
+3027561a17441a234c232b521e163b170b2f1c1d3c24284d292a5a1412410405232f3146
+1b1d322a2b471817411a174e1c1759211c5f2a25670e0a471512492726500a0c23101324
+0c112714192f242a38080d201d20411415412e2e621b1a541a175c22215b0e1130202539
+2528471517400000321414481619461c20451519320c112423283b1c1f42211e65242166
+1f2340191e320a0b391a19532625611a195316174f26285813193b0a113b16165e1b1964
+09093d2b2d46f3f6effffff1fcfbf9fbf8fffaf6fffcf9fffefdf9fffff6fefff7fdfef8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+070500090700010000010000040500f5f5f7fffcfffefbffece9fff5f6ffe6e8f4fcfeff
+f1f1ffe9e9fff5f7fffbffffe6eff6e9ebf7fff6fffef6fff0f8fff0fcfffefdfffaf4ff
+f2ecf8f3f3fff3ffffdee7f6f0e9f9fffaffe4e7ecf7ffffdde0e7fefefffefdffe7e6f4
+f1f1f9fafbfffafbfff4f4fff5f3ffe0ddfcf6f2fffefbfff1f0feecedf1fefffdfdfff3
+ebf3dbfbffeff0f5f9f9fbfffbfcffeeefffebecfffafdfffbffffeff6efe9f0e8fbffff
+ebeff8e8ebfcfbfdfff9fbfff1f2fff1f2fff6f7fff4f5fffbfeffe4e6fdf4f4ffebedff
+dfe5e1fbfff8f4f8fffafdffe9ebfaf4f6ffeef2f3eff5f5f9ffffeef4ffe9ebfff9f8ff
+fcfbffd9d8e8fffffdecece4fcfafbfdf8fffcf6fffcf9fffefdfbfffffafefff9fdfef9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030005090408010000020200030500ecede8f6f3ffefecfffefefffeffffecefe4eaebe5
+faf8fff6f4ffffffffe7eae3f9fff8eff4eefdf3fbf9f1fef8fffff7ffffe9eae4f3efe4
+fffef4fdfef8effafcf8fffffffbfff7eef3f6fcf2fbfff4fbfef3fffefaedeaf5f6f2ff
+fffdfffffffdf1f1e5fffff3fffff6fefdfbf2effae7e4edfffffafefff1dcddcdfbffe6
+fcffdbf4fbdaf3f4f6f4f2fffbf8fffdfbfffefeffe9ece5f1f6e0ebf2d3feffe6f7fce8
+fefffde9eaeffdfeffeff0f2ebece6fffffbfcfafff9f8fffefcfffefdfff3f3fbfcfffd
+fefff1f7fbeaf3f5f0fdfefffefffffffffbfeffeefefff1eef3effbffffeaecf9fcfeff
+f6f6fffbfaffeae8ebfffefffef9fdfdf8fefcf7fdfcfafdfefcfdfffffdfefffafdfdfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+02001a01000e010100090a00000300f4f5edfffeffecebf1f7f9eee9edd6f3f8daffffed
+f5f4f2fffeffe5e2ddfffff6ebf4e3f7faf1fff8fffff8ffeff4ffe9f2fbecece0ffffec
+fdf6e3fffff6f8ffffeff4fff8ecfffaeef8fefff8f3fbecfffffaf0ebeffff9fffffaff
+fdf6fff5eff9fffff6fdfce7f1f2d2f7f7ddfffefbfffaffe8e4e1f9f6edffffeeffffec
+ffffecf4f6e8f6f5fbfffcfff6f2fff1eefff1f1effffff6f6f7effffff1f7fdd7f7fddb
+f7f7f7fefcffebebebfffff3eef1d2ffffe8f2f1eff4f2ffeae7fcfffdffeff0eafbffee
+e1e3d5f6f7f1fffefffaf7fff4f1fff3f0fbfdfcf8e8e9e1f9fcf5ebf0eafefffae8e9e3
+f2f1edf1edeefffdfff8f1f9fff8fffef8fcfcf7fbfcfafbfefcfdfffffffdfffcfcfefb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000015080614010100010200080900f1f1e9fbf9fcfbfbf9ffffeff8fee2fbffe6f2f5e0
+f7f9ebfffff6fefbf2fafaf0fbfff3f5f8effef7fefff9ffe6eaf6f9fffffafaf2f2edda
+fffee5f7f8e8f4f8fff8fbfffffafff2e9eef7fae7f3fbe4f9f9eff5f1f0fef9fff9f3fd
+f7f1fff3eef5fffcf3fdfde5ffffdceff0cef7f3f0fffdfff2eeedfffff8fffef1f1efe0
+fcfcf0fffffbf8f5feeeeafbf9f4fffffcfff1eee9f6f3ecfffdffe5e4e0ffffe8ffffea
+f3f2f0fefcfffffffaf1f3deffffe3eef2d1fefff1fffefff6f2fffcf8fff8f9f1feffee
+fdfff1fbfdf2ebeae8fffdfff9f5fff4f0fffffefff8f7f2fefffbf7faf3edf0e5fffff4
+f5f5e9fffffafbf5fffbf4fffef8fffbf8fffaf8fdfbfbfdfcfefbfefffafbfff7fafff8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000200010200030000070200fcf7f4fffbfdfbfaf8fefff6eef4e8fbffffe7eee7
+eaf3d6feffe6e8eaddfffffbfcfffbecf1ebfffffffffffdfcfff6f6fcf2fffefff6f5f3
+fcfee6ffffecfefffffbf9fffef9fffffff6ffffe3fbffdbfbffecfbfff0fcffebfcffed
+fcfff6fbfef7fafeeff9fee7fbffe0fcffeafdfdfffdfcfffbfdfcf9fcf3f9fcf1fafcf1
+fefef6fffefcfffcfffffcfffffbfffffbfffffcfcfffdfffaf3fbfffcfffdf8fefffeff
+f9f8f4fafbf3fefff3fafeedfcffeefeffecffffe6ffffedfdfcfffcfafffcfcfefdfff4
+fbfee9fcffe3fdffe1fdffe6fbfcf7fbfbfdfcfdf7fdfef8f5f9f8fcfffff6fafbfefffb
+eff3e2fbfef5f6f3fffcf8fffbfafffafafff8f8fff7fafff8fff3faffeef8ffecf9ffef
+fefffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000600000400010101030004090005fef5f6fffcf9fbfaf6fefffde7edebf9ffffebf7ed
+f9ffedf6fee7fefffbfffffffefffdf6f8f3fdfffafefff8fefff1fcfdf5fffcfffffdff
+fdfeecffffeafffffdfffafffffafffffffaffffeafdffe3fafceefafeeffbffe7fcffe6
+fdfff2fdfff5fdfff5fcffedf9ffe1faffebfcfcfffdfcfffdfff9fdfff0fdfff5fefff8
+fefff7fdfcf8fffafffffafffffcfefffcfcfffbfdfffafcfffdffeae5e9fffcffedebf0
+f8f9f4fefffaeff3f2f3f7f6fbfdfcfdfef8ffffeffffff1fdfdfbfcfbfffdfdfdfefff9
+fcfef3fdffedfdffe4fdffe4fcfef1fcfdf7fdfef8fcfef9f8fcfbfafefff6f6fefafbfd
+f5f9eafcfff2f9f8fefaf9fffbfef7f9fcf5f6f9fff7fafff9fff4faffeef8fff0f9fff2
+fefffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00040000020001000803000b060007fef5f8fffcf3faf9f4f4f4fcf9ffffe5f3d9f8ffec
+e1e9ebf7f9fff6f6ffe3e3e5f3f4ecf4f6ebf0f1ebfcfdf8fbfcf7f6f3faf3ecffeee9ff
+fdfbefffffebfffbfffef5fffef5fffff8fffff9fffdf8fef8f6fbf8f8f8fafcf1fbfdf0
+fdfef6fdfef9fdfdfbfdfff2f9fee0fafee7fbfafffcfafffdffedfdffe4fdffedfdfff1
+fefff3fbfcf4faf9f7fbf9fafffcfbfffdfafffbfafcf9f2fffff1fffeeaffffeffffff4
+fefffddddfecf9f8fff0effff9f9fffbfcfffdfcfffdfdfffcfff4fbffecfbfff0fcfef9
+faf9fffaf9fffafafffafcfbfafdf4fafdf2fafcfbfafbfdfefff9f7f8f3f8f5fef5f2f9
+fffff7fcfdedfdffe9f9fddafcffcbfaffd0f9fbf0faf9fefcfef9fdfff9fdfefffcfdff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000010201000c03000c06000bfbf5f9fefbf4f8f9f4f7fafff9ffffebf9dfe8f6df
+e6ecfaf5f4fff8f6fffffdfffffffbfffff6f1f1e9f8f7f2f9f8f4fcf9fffef4fffff8ff
+fcf8edfdfae9fdf7fbfcf3fffef2fffff3fffff3fffcf4fff9f3fff7f5faf9f8f3fafaf2
+fbfaf6fbfaf8fbf9fcfbfaf5fcfee6fbfceafbf8fffbf8fffbfde8fafde0f8f9e9f7f7ed
+fcfef3fbfef3fbfcf4fbfcf4fcfbf6fcfbf6fcfbf7fbfbf3f5f6e4eff1d9cbd0b2feffef
+e2e6e7f3f4ff1914541f1b56f4f5fff8f8fffaf8fffbfafff9feeaf9ffdff9feeafafcf9
+f8f7fff7f4fff7f4fff7f6fff8faf5f9fcf1f8faf7f7f9f4fdfeeef6f4e5fdf9f6f5f1f0
+fffff6f8f7e5ffffebfdffdafcffc4fbffc8fbfae5fdfaf3fefef2fffefafffbfffdf9ff
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00010500000701000c03000c05000cfaf2fdfdf8fcf7f7f9f9fdfff4feffeffbf9dee9ed
+edf3fffcfcffd9d2fbede6ffefecf7e7e6e2f8f8ecfdfef0fffff4fffefffdf5fffff7ff
+fdf9edfdfae7fff6f9fff4fffff5fefff6fbfff6f9fdf7f9fcf7fbfcf8f7fdfaf3fdfaf1
+fdf9f6fcf8f7fcf7fbfbf7f4fffdf0fdfaf3fbf4fffcf6fffdfbeefdfceafaf6f7f6f4f9
+f9fbf6fafff4fefff3fcfff1f9fbeef7f8f0f9f9f7fcfcfcebebe9fefff6fcffead6ddcb
+f9fffff2f6ff0a065a15115ef0f2fff3f7f6f6fafdf6fbf4f5fee1f4fddef5fbedf6fbf5
+f8fdf6f6fafdf4f4fff5f6fff7fbfaf8fef2f7fdf1f7fce8fcfdddf7f7d5ffffe6f8f6e1
+ffffeaf4f0e4fff9fffffbfffbf9e2fbfbd9fcfbdffefde1ffffe2ffffeffff9fffff8ff
+fffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000900000901000d03000c05000af9f1fcfaf7fff5f5fdeef2fbe1e8f8ecf5ff373d5d
+171c2f010217231c482a2055fdf5ffddd7f9fffefff2f3ebe7e8daeeeee6f2eefcfffdff
+fffeeafcfbe7fdf6fdfff8fffffafefdf8f5fdf8f4fffcf7fefaf7fdfdf5fdfeeefdfef0
+fdfcf8fcfafbfbfaf5faf9f4faf9f5f8f6f9f7f4fff9f7fcfdfef0fffff2fcf9fff8f6ff
+f7fbfef7fef7f8fff3f8fef0f5fbedf5f8eff6f7f9f8f7fffefbff000018f1f5f6e7ede9
+f8ffffeef3ff1a1772292579eff1fff2f8eef4f9f2f5fbf1f4fbebf4faecf4f9f3f6fbf5
+fafff1f8fdf6f5f6fff7f7fffafefffbfff9f9fef8f8fceefcfddef9f9d7fffce9fefbec
+fffce9f4efe9faf2fffff9fff9f5f2f9f8e4fbf9e4fffde6ffffe7fffff3fff9fffff6ff
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00010700000901000f03000c040004f8f3f7f9f8fef3f5ffebefff1418471d1f69080c4b
+f0f7fff9fdfff1eaff25196316087a21167fe0dcfff5f7fffcfff6fcfff1f1f3f0f5f8f1
+faffe4f6fbe7f7f5fffbf7fffbfafff7f7f7f8f7f5fbfcf7f8f9f3f8fcedf9ffe3f9fee7
+fafcfbf9fbfaf9feeaf8fde9f6f7fbf3f3fdf1f3f0f4f8eaf9fee7fafeedf7f7fff2f3ff
+f6fcfff1f8ffeef6f9f1f7f5f4fbf3f6fbf5f2f5fceeecff0f0657221a6df3f5fff8ffff
+e7f1fbe8f1ff111167131260edf4fef2fbe8f4fbf3f5fafef4f7fff4f7fff5fafef6fdf6
+f8fff5f5fbf7f2f5fff4f6fff8fdfff9fffff6f9fff4f7fffdfdf1faf8ecf4f0fefffbff
+f9f7f8f7f5f8f3effffdf9fff6f4f5f6f6ecfaf6f3fefafbfffcfffffcfffff9fffef8ff
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000005010014010010030000f8f5ecf8f8f6f1f3ffececff21217907076beeefff
+dde3fbfbfffff9f4ffefe3ff190a9b1a0ca1f8f5fff4f8ffeff7ffecf5fae7ecfff7fcff
+f1f9fbeef2fdeeedfff3f1fff3f5ffeff2fbeff2f9f4f7ffeef2feedf4faf0f8ebf0f9f4
+f3f4fff2f6fff4fbf4f2fbf8f2f1ffecedffebeefdebf4f1f0f6f6eff5ffecebffe6e7ff
+f7fbffedf2ffe5e8ffe9edfff5f9fff8fdffeff3ffe5e3ff1f118a1c108eebeaffe8eeff
+f4ffffdce7ffe2e4ffe6e6ffeff4fff3faf3f5fafef6f8fff6f3fff5f2fff7f8fff8fbff
+f5f9fff1f5ffeef0fff0f1fff4f4fff6f5fff2f2ffeff0fffefdfff8f7ffebe7fffcfaff
+f3f3fff8f8ffedebfff6f6fff1f2fff4f3fff6f2fffbf5fffffafffffdfffffbfffcfafb
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000010001001a010015040400f9fbe3f9feeaf1f2ff0d0676100995181588e1e4ff
+dfe3fffbfeffdfddeaf3ecff160a9c2b21c00b0b6be0e6ff141b52181e5c16166e1e1e76
+04074c282872100c6d2d2a830c103fe7edffeaf0ffe9efff1f215a20255d141a3a181f4b
+201c7ad2d2ffe1e6ff1219471a13831d188ef1f3ff0f173c0d1045f3f5ffe1dcff1f1a80
+08094a1c1f561312580f0f4ff3f5fff3f8ffebf1ff25245e19099d2514b20f0a64171c42
+f5ffff020e282d2d91110f7ce8e9ffedf1fff8fcff121341231d730e07660a074c29295f
+212252eff1ffe9edff2a2a5e160d781e14841f1d5c12143d121341292a5821234cdbdeff
+f0f1ffe3e5ff25266710124f0d0f4020215a16106a1e1765fafafffcfff8f9fbf0fffff6
+fffffdfffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000500000100010018010013040500f8fdddf7ffe7eff2ff160e952018bd161493e4e6ff
+ecefffe6e9f8fffefffbf5ff170fa2130eb3161b83e8f2ffe7efff02085e181b86dedfff
+e8edffd7dcff12137d0505691a1f61e4eaffe3e7ff181973101072d8dcffe2e8ffe6ecff
+03007e121189f1f7ffe5edff0d0694120d9b1e236507133911184fdfe4ff0f0c7f151285
+f0f1ffe3e2ffede6ff1812761e1b60f4f6ffdbe0f3eeeeff2919b0000091efebffdae3ff
+e6f4f7ecf7ff111085110c8cf5f4ffe6e7ffe8e7ff0b07531d1676ebe4fff5f2ff010040
+100a60eeeaffdadcfff6f5ff170895170899dad6ffeef1fff1f1ff1718580d0f48eef3ff
+d9dfff1f236c080b68e4e6ffdddeffebe9ffdfd8ff100b67f0f1fffcfff8ecf1dafdffe9
+fdfef6fcfcfcfcfcfcfefefefffffffffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00040000020001001301000e030600f7fedff6ffeceef2ff0c05870c04a7332fb8e7e8ff
+eaeeffeff4faf6f5f3f6f3ff100aa00401aa131a82dce8ffe4edff0d1663081063e0e9ff
+ddecffedfcffe4edff181d71151a6bd4d6ff1d16b4160db6e6e2ffe8ebffd8defff1f7ff
+0f0c9113138dced8ffdde9ff2d2aad00007acbd8faf1ffff081921e9f7ffdde3ffe6eaff
+191a6d130f7005007d2015981e1679f3f2ffe9efffe8eaff100387271ba5f8f8ffe4f0ff
+edfbfee5edff16129b221ba9dadcfff8fbff1710771e1686e6e2ffe3e5fff1f7fff2f4ff
+1e148f160c89f8f9ffeff0ff0d018b2518a4e6e5fff4f8ffced3ff050950181b6aeff6ff
+d4e2ff0b15501314920905a2110ca60c0891e8e6ffe5e4fff4f6fffbfffff0fbd3fcffd8
+f9fbedf9f9f9f9f9f9fbfbfbfefefefffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00040000020001000c010007030500f7fce6f6fdf6edf3ff1e1c8713119900007df2f5ff
+ecf0fff7fafff6f3faf0eaff1812962324b2060f5edeebffe9f4ff222c74101861e4f0ff
+f1ffffdceff3dfebff161e5d1d246cddddff1304c10f00c114128f00004e0e174e01094a
+07077515177cf2feffe6f1ff1a1991070779f1ffffe5f9eee2f5f3dceaff222876060668
+191971ece7ffe8dcff090088150b7ef3effff9ffffebefff2a209003006ee9ecffe7f1fb
+f5fffff3faff2520ae06008bedf1fff6faff0c04712a2198f4f3fff1f6fff1fbfceaefff
+1e1491150a8dd6d8fff6f8ff271c9f170c8ff6f8ffe1e8fff0f5ff13166521237ae6ecff
+dfecffe7f3ff191b92100da21816a70c0b8d04026f373686e9eafff9fcfff7fedcf4fbd1
+f7f9ebf7f7f7f8f8f8fbfbfbfefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000200010101000000030400f7f9f4f4faffedf3fff2faff01075f181a8b1c1f7e
+edf2ffdde0e7fffbffe7dfff0f0e6b000258eefdfff1ffffe6f0ff0e155b1a206cd4deff
+e0eff2f1fffcf3fdff0006300d143eeff0ff1004a62519b7eef1fff5ffffdfedf0f5ffff
+f5faffe4e9ffe6f0ffe1e8ff100c7d171286e9efffe0ebffebf5ffe9edff160f902b22af
+e8e3ffdcd8ffe8deff1f149413097ae0dcffe3e7f3f6f9ff1b1471160f6ff8fcffd9e3ec
+eaf5ffe6ecff0b08891e1a93ecf4ffe7efff030252211e79eef1ffdfe7fcf7ffffe8f0ff
+1d1977000057f7fdffeff4ff0f07811c1589f5fcffe8f3f9dadcff09065d1c1e6be1e5ff
+f1faff000a4fd2dcffe4eeffe0e9ff161c6a24208f000055edecfff5f6fbf2f2e8fffff3
+f9f8f4f8f8f8f8f8f8fbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010200000100030301f5f8fff4f9ffebf4ffc2d1f227356619206e070d57
+f5fafffcfcffe7dfff31295c151456f4fcffeafafac9d9d9e7edff252676242381dcdeff
+f2f9ffe6f0fa1015352a2e51f8fffff4f6ff11078223199310133ee5eff1f2fcfbf5fdff
+edf1ff0c0f3ae7edffeaedff2923871b147be3e5fff6fcfff8ffffdadcff291ea0120495
+221c7e0e0d5d0e086a100971261e85f0edffebeffafbfeff1f176a110b63e4e8fff7ffff
+f5fbffeaeeff08076f292a84e2ecfff3fcffeff1ff07075120225df2f8ffdfe9f2222a3d
+171858edeeffecf3ffe5e9ff160f7f120d73ecf4fff7ffffe8e7ff464390020145e0e4ff
+d0d5ff1f2765f0fcfff1feffe2efffdee4ff27227e2a217af6f2fffefbffe5dfe3f9f3f5
+faf8f9f9f9f9fafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000004000100010300000100020308f5f6fff4f8ffebf5fff1ffffe0f3ffe3f5ff1d2a4d
+131552181155281e53100638e5e3ffdadffcedfae9f7fffcf2f1ff00005e24179b1a0f89
+251f691a174c231f5ce2e1fffcfffff5f8fff5eeff170e5f373268000026191641221f4c
+100c3f383467fcf9ff100b4119106318105b1f1e3de7ece5e8f2cffcfffb100758241884
+15115e0f0f4ff9f6ff0c085220186d0f0a4af7f9ffe5e8f9211a6a19136d262956040a2a
+e7eaff2226652d3274030b3c121e2adee8f4f4f8ff212169110e6522216d070d311d243e
+191e48f6faffe7ecff0c0f461f1a7e110e691c2242e8efff35345c00003337336e242657
+ebf1ff00082c252c620e154c1a214b21264c161446eee8ffe0d7f2fffafffff9fff4eaf2
+fdf8fcf9f9f9fafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000009000002010300000200030207f7f6fff6f8ffeef4ffdeeafaf2ffffdfedf8e8f1ff
+e7e5fff5edffe6ddfff0e9ffefeefff8feffe1ebe3e9effdefe9ff281aa10a0098e3d3ff
+e3d8fff0e8ffeae3ffefedfff9fefae2e7e3f2effff3ecffebe5ffebe5fff8f2ffd7d1ff
+f2edffe8e4ffe8e4ffefeafff1eaffebe5ffebeafff3f7faf8ffe2eaf0e2f9f4ffe5ddff
+f1eeffe2e1ffdfdffff9f8ffded8ffe4e0fff6f7ffeaebffdcd6fff2ebffe3e3ffebeeff
+dadcffeef0ffd9dffff1f6ffeef6ffe5ebffdfe2ffe2e1ffeeeaffdcd8ffebecffeef2ff
+e2e7fff1f5ffdfe1ffeeeefff1eefff2f0ffd1d4fdf5f8ffe2dffff6efffe7e3ffeeedff
+e7ecffedf3ffebf0ffd7dbffe6eaffe3e7fff4f5fff4f1fffffbffece3f4fffafffff6ff
+faf8fbf9f9f9f9f9f9fbfbfbfefefefffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000e121619000400000400010300fffeffede8fc2e2a451e1b361c1b3a1c19441b1752
+1b14641b14611b1948191b410f1142161a47171c392626620c008a1a07b81906b72010ae
+110781272185201b75191955212a33151e270d0d4d26227615135416154f1816571a1857
+1a1a4e18194916164a1515491a1a4e1a19521a18591a1a501a1e391a1e391a19521a175e
+1c18641e185e1d1a511c19501b16581a16511a1a3e191a391f1d4e1d1a531a1651181750
+18184c18184e17165216154e171844191a461b1a541d1b5a1e1d571d1c551c1a591b1a53
+1a1c421c1e441f1e571f1d5c1d1c561b1b4f1b1c4c1d1b4d241c5823195620194c1b1847
+18184c1a1b531e205d22245f000235282d571b1e3f080a2328293ed3d2e2faf8fffffcff
+faf9fefbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0001130001060004000c1300010200deddd9fffbffd6cee6f4ecfff2ebfff1e9fff0e7ff
+eee6ffebe9ffebeeffeaefffe4e7fff7fcffe1e5ffedeeff170c8c2215ad0a00891e168f
+1a1478afadfff8f5ffe3e6ffe0e8f3f7fffff3f4ffdddcffeef0fff0f3fff3f3fff3f5ff
+f4f6fff2f7fff1f3ffeef2ffebeeffeaedffebe9ffeaeaffebecffeaeeffebecffebebff
+f4effff3effff3f2fff2f1fff2f0fff1f0fff1f2fff0f1fff3f4fff1f1fff0eefff0eeff
+f1f0fff3f2fff2f0fff1efffeeedffefeefff0edfff1effff0f1ffeeeeffece9ffeae7ff
+eeeffff0f1fff1effff1eeffeeeeffedeeffedecffefebffebe2ffede3ffece6ffe9e7ff
+e8e6ffe7e7ffe8eaffe9edfff7fcfff1f5ffeef4fff9feffedf0fffcfeffe4e4eeecedf2
+fbfbfdfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000012000007000300040a00010200ebeae8fffcfffffbfffbf5fff9f5fff8f3fff7f1ff
+f5f0fff2f3fff2f7fff1f9fff6fcffe3eafdf0f6ffe9effff9f8fff3f3fff9f9ffecefff
+f0f2fff8fcfff0f1ffeaeefff3faffe9f3f2e2e8f8f3f8ffedf2ffeef3fff2f4fff1f6ff
+f3f7fff0f7fff0f4ffedf3fff5f9fff3f9fff5f6fff3f6fff5f8fff3f9fff5f8fff5f7ff
+f1f1fff2f0fff2f3fff1f3fff1f3fff1f3fff1f4fbf1f4fbf1f3fff0f1ffefeefff0efff
+f2f3fff4f6fff4f5fff4f5fff7f8fff8f9fff9f8fff9f9fff8fafff7f9fff5f4fff3f2ff
+f8fbfff9fcfff9f8fff7f6fff4f6fff3f5fff4f5fff7f5fff7f3fffaf5fffbf9fffcfbff
+fbfbfff8fcfff6fafff4fafff1f7ffe5ecfeecf2fef5fafff8fbfffefffff9fbfaffffff
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00001201040d050800000300040600fffefffffaffefecf5fffefffffffffefefffcfcff
+fbfbfff9fdfff9fffff8ffffedf5f7fbfffffbffffeff4faf6f9ffe6eaf6eaeff2f8fefa
+f7fdfdeff4fae8ebfef7fafffbfffffbfffff4faf8fbfffffcfffffcfffffcfffffcffff
+fcfffffcfffdfcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfdfffcfefffcfffffcfffdfcfffafcfff8fcfff8fcfffafcfffffcfffffbfdfffcfeff
+fcfffffcfffffcfffafcfffafafefdfbfefffcfefffcfffffcfffbfcfffdfcfefffcfeff
+fafff9fafff8f8fafff5f7fff2f6f5f1f6f2f3f7faf7f7fff3f2faf4f1f8f5f4f9f7f8fd
+f6f8fff5f9fff3f7ffeff5fff6fcfff9fffffbffffeef1f6f7f8fcf8f9fbfdfdfdf0f0ee
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0201130000090103000002000a0b06fafafcf2eff6fffefffafaeef9fbedf8fbf4f6fafd
+f5f9fff3f9fff3fcfbf3fdf2fbfff1eef4e6e8ebf0fcfeffe7eaf1fcfffffcfff4f7ffea
+f6fee9fcfff4fcffffedf0f9ebedfcf3f5fff8fcfbfbfffafcfefdfcfdfffcfefbfdfffa
+fdfffafcfefbfcfefdfcfdfff8f9fdf8f9fbf8faf7f8faf7f8f9fbf8f9fbf8faf7f8faf7
+f8faf9f8faf9f8fbf4f8fcedf8fde7f8fde6f9fdecf9fcf1fbfdfaf9fbfaf7f8faf8faf9
+f9fcf5fafef0faffe8f9ffe5f6faebf7faf1f8faf7f9fbf6f9fdeefafef0fafbfdfafcfb
+fefff3fefff1fefffdfdfffefafdf2f9fdeffbfef7fcfef9fdfdfbfcfafdfaf9fffbf9ff
+fdfdfffcfffffcfffffafefff2f6ffeceefafafcfffbfbfffefefff2f0fbfffdfffffdff
+fdfdfffefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040311000007000100000100090909f9f9fbf6f5fafffffbfffff1feffedfcfff1fcfff8
+fbfffffbfffff9fffff9fff6f9ffe5f4f7e4fffefff1eefffbfaffe6e6e6fcfef3f8faec
+fffff1f5f7eaf4f5f0fffefffffcfffcf9fff4f4f2f2f3ebfefefefefefefffef9fefff7
+fffefafefefcfffdfffefdfffffdfffffffffffff4fffff4fffefffffefffffffdfffff8
+fcfef3fbfef3fbfef5fafef0faffebfaffebfafdf2fafcf7fdfffefbfdfcf9fcf5f9fcf3
+fbfef5fcfff1fbffe5faffe4feffeffefff4fefff8fefff8fefff1fefff3fefffbfefffa
+f7fbeaf8fcebf7faf3f5f7f2f3f7e9f1f5e6f2f5eaf5f6eefdfff2faf9f4f5f3fef6f4ff
+f9fbfafcfff8fdfffcfafefdfefffff6f7f9f4f5faf4f3fbfffeffe9e7ecfffefffffeff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000007010206000100000100030408fefffffeffffeaece7f9fdecf7ffe8f7ffeaf6feef
+f6fcf8f6fcfcf4fdfcf6fdf6f1f4e1fffff3f5f2fdefeafffffbfffdf9ffeae6f4fffdff
+faf7fefffdfffffdfff7f3ffebe6fcfaf6fffffffdfffff8fffdfffefcfffffdf6fefef4
+fffcf9fefcfffffafffffbfffcf6fffaf8fbfcfbe7fafbe9fcf7fdfaf7fffcf8f9fafaf2
+fffff3fffff6fffffffefefffdfdfdfdfdfffcfafffcfafffefcfffcfbfffbfcf6fbfdf2
+fefffafffffafffff3fffff3fdfff4fcfdf5fbfcf7fafbf5f9fbf0f9faf2f9f9f7f9f9f7
+fffff8fffff6fffffdfffffdfffffafffffafffffbfffff8ffffedfbfdeff7f5fff8f6ff
+fdfff1ffffeaffffedfdffeef0f3deffffeffdfff2fcfcf2fffff4fbf9eaffffefeeefe1
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000201000100040507000004ebecf0fefffff9fefafafff6f9fff4f9fff4f9fff8
+f9fffff9fefff7fefff9fefffefdf9fefaf7f8f3f9fffcfff2ecf8fffcfffffafffffbff
+fff9fff5eefff9f2fffffcfffffafffffcfdfffff2fbf9ecfffefdfffdfefffff3fffeef
+fffef2fffdfefffafffffafffff9fffffbf8ffffe1ffffe3fffbfcfff9fffffbfafdfdf1
+fefff0fefff5fdfcfffcf9fffbf8fffaf6fffaf5fff9f5fff8f5fff7f6fbf6f7eff8faef
+fbfbf9fefefffffffffffffffcfdf8fcfdf8fcfdf8fcfdf8fdfef9fefffaffffffffffff
+f9faf5fcfdf8fefefefefefefdfdfdfbfbfbfafafafbfcf7fcfef1f8f8faf5effff7f1ff
+fcfcfaffffedfdffeff9fcebffffedffffeff3f3e9fcfcf4fffef2f6f4e5ffffeff9faec
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010200000100000100000002010506f8fcfdfcfffff7fcfffbffffecf1f7fbfffff9ffff
+ebf1fdf3f9fff9fefffbfdfffaf5fffdf7fffffffaf7f5e6f1f0defffff1f2efeafffdff
+f8f1fffffafffef6fff6f0fafffff4ffffe7fbfcdaffffe4f2f2e8fffffaf2f3e1ffffea
+ffffeaf1f1e9fffbfff0eafffffdfffafbe9ffffd8eef4c8fbfbf3fffeffe8e8e0fffff1
+ffffedf7faeffdfdfffaf7fff1ecff1b15451d1745f2eefffbfafff0f1f3f7faeffcfff4
+f8faf7fefefffcfbfffefdfffefffffbfdf8f3f5f0fefffbf0f2effefffdfefffdfefffd
+fdfefffeffffebeceefefffff2f3f7fdfefffeffffeff0f5e8e7f5fbf5ff110460170a62
+fcf6fffffefff2effafffdfffffdfefffcfffffbfffffafffffbfffffcfffffdfefffefc
+fffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010300000100000100000002010504f6fcfafafffff6faffeff1fff9fdffe2e6ffeef2ff
+f9fdfff9fdffd1d4f3f9f9fffef7fffcf6ffeeede8f8fae2ffffe8dee0c8fffff3faf9f7
+fffbfffffbfff5f1fffffdfeeaecd6f8fcdbffffe4fdffeafffffbedededfffff6f0f3e0
+f2f4dcfffffbd6cdf8fff7ffeae6f4ffffefe3e9bbf6fdd3f0efebf8f7fffffefcfafcf1
+edf1e2fefff8ececf6f5f2fffbf4ff2c2362110a3ef6f2ffe9e8f8feffffd1d4cdeef1e8
+fefffdf2f2fafbf8ffeeebfff0f0f8fefffbfefff8edf0e9f2f4f3fefffffdfffafefffb
+fbfcfff5f6fafdfffefbfdfcf4f5faf0f0f8e5e6eafcffff2a2a440000392f1f9b200e84
+ebe4fff8f5fffffbfff7f3fffffcfffffcfffffafffff9fffffbfffffcfffffdfefffefc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010300000200000100000100010600f5fbf7f9fefff3f8ffe3e5ffedefffe7e8ff161849
+03052b1114351a1a3e2a29531c1549ede6fff9f8fefffff3fafdecfffff3e6e7dfedeee9
+f4f4f6fffffff0f0eefdfff4ffffece0e3d0dbdbdbfffdfffffcffebe9fef3f1fefeffff
+fffff4e3e3effdf0ff170b5ffdf8fffefff8f4f9d9feffecf1effde3e0fbf6f3fffefeff
+fefffdf7fcf6fcfffff1f1ffede8ff10094c2d2a59eeeeffe5e8efe6eae9fbfffefbfffc
+eef3ecfcffffe8e7fffcfbffe6e9f0f3f9eff4faecf3f9effcffffedf1f0e7ede1e1e7dd
+fcffffe9ecf1fbfffcfcfffbe0e3e8fcfffffcffffeceff6f1f6ffe7e5ff28189c170885
+fcf6ffe4e3e8fffdfff9f7fafffff3fffef5fffcfffffcfffffdfafffef5fffff0fffff2
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000200000200000100000100000700f2fcf3f5fdffeff5ffecedff181661181562262567
+1c1d4beff2fff0f1ffe8e8ff343160f1effffcfdffe3e5f1dadde4edf0f7f9fbfff8faff
+fcffffdde1e0fcfff8dfe5d9e4e9e3fcfffffcfbffebe8ffe3e0fffcf9fff9f7ffeaebff
+f1f5f6eeedff11037425168deeebffeaeef1e2e8daedf2eefcfbfff1eefff7f5ffeae9ff
+f1f2fff0f4fff3f6fbedf0fffcf6ff1f1a5c201e46e2e4f9fcffffe5eaf0eaebfffbfeff
+e8ede9e8eeeef5f4ffeeeefffcfeffe4eae6fcfff8eff6effcfffff8fdffedf2ebfbfffb
+dddfebfbffffe9edeef1f7f7f6f8ffeff2fff0f2fedbdfebe5ebfff1f0ff0d009022149d
+ebe8fff9fafcfbfafffffefffffff2fffff2fffcfffffcfffffdfafffff3fffff0fefff2
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100000201000200000700f1fceef2fcfdebf2fff5f5ff000059110b6b171463
+f9faffe0e4fff0f2fff6f9ff0c0e27e7e8ffe3e2fff1efffe9e7fffbf9ffe3e1fffbfaff
+e7e9fff1f5fee0e7e0fbffffe6e7fffaf7ffd0c9fff4ecfff5f2ffefedffd6d4fff7f8ff
+f2f8fff9faff2414aa0b0096e0ddfff9ffffeef5fde2e7fae8e8ffeceaffebe9fff5f4ff
+f8f8fff0f2fff8fcffeef4ffe4e0ffdddbffdedefff3f9ffe4e8f4eff3fff7f4ffe0e1ff
+eff3fcf9fffff1f1ffe5e7fff5f7ffe3eaf4f8fdffe5ecf4fbfdfff9feffe8edf1dce3e9
+f4f5ffdfe2fff4f7ffe4eaf6fbfcffdde0fffafcfff5f9fff4faffe0e2ff2112b5080094
+fbf8fff9fcfffbf9fff9f8fefffff7fffef9fffbfffffafffffcfffefefefefffafefffa
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000000000103000200000700effceaf0fafbe9efff06045817117f1f1784f8f4ff
+e6e7fff9feffe4e8f1e6ebeeeaf3f2f8fffff7f7ff1110561917561010500a074e1a195b
+242555ccd1eef9ffff20273a22205f161267110b651f1b721e1b681c1c6225256deaedff
+d7e1ed0d10431909b11c0bb9111157081120eaf4fff7feff1b1e551c1d600000460f0d58
+181469d0cffff9fefff4fbff12114d2e2e6e1e223ff2f9fff2f7ff1e2050110b63171465
+1216310f17242a2b571d1f52171940f8fdffd1d6eaeef4ffd3d4ff11143d262b411c223a
+1415453b3d70f8fbffeff4ffdadbff393b6e0a0b37060c301f284700014a1f12b9180aa8
+e1e1fffbfffff5f5fdfdfcfffffff3fffef9fffbfffff9fffefcfffdfefffdfffefdfffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010002000002000106000200000700eefbe7eef8f7e7edff171673241f970b037ae1dcff
+ebecffeff5fffbfffdfbfff3e7f5dbe7f3efd9daff0707512a2b64f7f9ffe4e1ff222073
+15135eeef0ffe0e4ffe5e9ff090363140f76f8f5ffd6d7ffdde1ff171b5a1e2262e1e8ff
+f4ffffebf3ff1b0eb51103b0ebf0fff5ffffebf9fc0f1a2c0c133fdde2ffe8ecfff0f1ff
+3730a2140f75e2e6fff4fbffeeedff0f10531d223fdfe7faf2f6ffeaeaff1d129210087f
+f8fafff2f9ffd9daff2223630c0d46eef1fff8fbffe8ecff373678060747f8fbffe4e8ff
+d8d6ff0a0a5412134be4e7fff3f1ff161561232266ecf2ffe8f5ffe6efff180fa80f0697
+f1f5ffeff8e7fafdf6fffff6ffffe9ffffeefffcfffffbfffefdfffdfffcfdfff9fdfff9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010009010007010006000100000800effbe5edf7f6e6ecff110e670d097a292596e5e5ff
+e8ecfff8ffffeaf6ecf0fee7f4ffe7f5ffff0b0e5126267ce8edffe3eaffeef2ffdddeff
+0f0c731c1c74f4fcfff0f7ff1a17801f1b8adaddffedf3ffe5ecff0d15530d1256e5f1ff
+edfff3dceaff3026c70800a6e5edffe2f5eff0feffeffcffe8edff0e155b1a21580d105d
+0d078f231f9af5fcffdde8fef1f5ff12155c030a36f0f9ffeef5ffe1e2ff2117ab09018b
+eff4ffeff8ffedf1ff15185f232860e8eeffe6e8ff0f12591a1674e1deffeceefff2f5ff
+e8e8ff2a2a720a0d42f5f7ff0a056b150f7befeeffe7edfff1ffffd8e5ff2118b1150b9f
+f0f5fff1fbe3feffedf7fae5ffffeefffff3fffdfefffcfffefdfffdfffcfbfff5fbfff3
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0f062101000e010004070800080d00dee5d3fbffffe1e4ff0d0d5321217b1a1a7cecf1ff
+dce6ffe1f0ffeefffbeefff4e7fbf2dfeaff161678000068f4fbffe4efffecf8fff0f6ff
+1c169c16128ae1effaeefefe1c1d79161482ebf1ffe7f3ffdfe8ff2a3376070c5deefaff
+def3e2eafbff1610a41611acf2ffffe2f7f0e4f2ff131c5d0d0d7f171a85ebf5ffdee8ff
+05019415149ed5e2ffebfdffe5f0ff212974161e67d3deffe6f4ffeff7ff0700952119ac
+dbe3ffe8f5ffeef3ff12165f212c4ce2edffe9ecff1212760c06821a16851418571c234d
+1d2353060d370c162ff5faff00007c0c0392f3f4ffe1ebffedffffe3f0ff06009f3627ca
+f6f7fff8fde9fdffe0ffffe8fef7fffff7fffffbf5fffef5fefdfffefffffcfff4fbfff0
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+03001203000b010000080900000400edf1e0fafeffeaebfff8f8ff090858030460080d61
+f1fbffe7f5ffebfeffecfeff1b2946f2fbff22218706086febf0ffe4efffeef8ffd5ddff
+130c9a0d0b86f0fffff2ffff0a0876120f92f4f9ffebf7ffeaf2ff000758141776dbe4ff
+f2ffffe5f5ff221cb0030098dee9ffe6f8ffdde7ff1f2482100b9be6e4ffdde5ffdee7ff
+1311a31715a4e9f7ffe4f6ffe8f2ff0b116500005df1f8ffddecffdfe8ff1a15a70e0997
+eef6ffeefcffeff2ff12146b151d4be1e8ffd1d3ff2f2b990c0296e4dcffdfe0ffe7edff
+eff5ffdce3ffe9f2ffe4e8ff1108972e23bddeddffeaf2ffc9daeaf1fbff190db90400a1
+f3effffcfff8f9f9ddffffedfff4fffff3fffffcf3fffeeffffdfffdfefffdfff0fbffec
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0300001c1912050600010300050900fefff1dee2e5fbfcffdfdefff8f4ff110d6c161475
+0e1063e3ebffdae4ffe6efff090b60d1d2fff1f2ff0b0e5d0f0f69e9e9ffdad8ff1d1b88
+0e0789e5e4ffdae4ffeaf2ff190dad0e02acdedfffe1e9ffd9dbff282a91110e81e1e5ff
+d8e3ffedf7ff000093261ec3dee2fff1fdffebeeff0a0a7c0e04a3110b9f20227713186a
+2420ab0d0a8fdee6ffe0ebffe4ebff0e116e222294caccffe6f0fff4faff0802861d179b
+ebefffd3dbffdcdbff25218f110d6ce0deffe2e1ff1510762314b507009bd7d1ffe6e5ff
+dedefff2f2ff09094fe5e2ff1f199509018825209413156c0913461b20721405ba1805b9
+efe8fffdfcfffafaf0fef9f3fff2fffff2fffffaf7fffdf1fefcfffcfdfffcffedfaffea
+fffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030000010100030400070900000300fffff6feffffe3e3fffbf8fff4f0fff8f4ff100b65
+1614682d2f790a0e4d12155c332e92dfdbffdbdcff15165724207f1b158302006a211b89
+1c1585f5f2ffe8edff191a5a0e01991507a5201f6fedf2ff0d0d6317147d2925940c0b68
+edf4ffd4d8ff2a20b411079e212370000034e5e6ff201c8d12089c342cb6000058dfe0ff
+1d19880c08762d3073e9efff1014532c2d80171286201d86dfe5ff0c12441510771a147e
+111350f5faff0b0863130d7b2b2192130b6ef7f4ffdfd9ff2313a72415b02f27961c186d
+000047191864171664f1eeffd9d4ff1d1a850a06740d0b6c161e5dd2d6ff190cb41e0db5
+1a1267e9e6ffedebeef1edecfcf2fffdf3fffef8f8fefbf6fdfafffcfcfefbffecfbffe9
+fffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0301060604070100000101000b0b09d8d8daf8f8fffcfcffe9e7ffeae7ffd6d1ffede8ff
+efecffe6e4ffe5e4fff2f1ffe2e1ffe2e1ffdfe0ffe9e9ffdfdcffc0bcfff8f7ffc2c1ff
+d5d0ffe8e4ffdddeffecedffd6d2fff8f3ffd3d2ffdcdcffe6e4ffdcdbfff7f5ffe5e5ff
+e5ebffe7ebffece6ffe6dfffe7e8fff3f7ffd4d5ffece9ffe8e2ffc5c0ffe8e9ffe5e6ff
+d2cffff6f3ffc7c7fdeeefffe5e6ffe6e5ffd4ccffd4cdffeff2ffeaeffff4f5fff5f5ff
+ebeeffdee2ffe1e0fff6f0ffefe3ffddd1ffeee9ffeee8ffdacfffded2ffddd4ffeae7ff
+f9f7ffdedfffd9d9ffdddfffeeefffe8e8ffdbdaffeceeffd7deffebefffddd3ffd6c8ff
+f1e9fffef9fffffefffffefbfcf4fffdf5fffef8fafefafbfdfafffcfcfefbffecfbffea
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000b0c08160a0815000009000009fffdffeeedfb1a192b2b29412e2b4a1e1a3f1c1740
+181542100d3c2d2a5913103d1c1c4221214725244c2c2a591a17501917490b0c28252645
+1c18551b16592422530c0c323637560f0f312726502d2e5e13134521215517174b181a43
+171c30262a4522205f00003b1e20471316371c1d4b16154f1a175c1c1a592f315a121331
+1b1b371b183725234807062625263b2a284d241b6a2f27720e0f2b1a1e29080a23232645
+0a0e291d203f1d1e4c1310491106483a306c1c163a201c3f302863221c5c1b164e24234f
+0303272f325317193f12163c0c10351a1f452a2d5800052d151e3d040a3a19156c1d1771
+1813490d0920edece8fdfbeefdf8f2fdf8f5fefafbfdfbfffefbfffdfcfffcfff1fcffef
+fffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0000100000100000120401160e0b1eefecfdfffdfffbfaffeae9eeecebf0fffefff9f7ff
+fffcfffcf8fff8f3ffeae6fde9eaeff6fafbebedf9eff0ffdfe0f4fcfffffcfff8edf2ec
+edeefffcfbfffafaffeff2fbecf2e4f2f8eae6e9f2eff0fffcfdffe1e4f3e3e7f3fbffff
+f7fdf9e6eceaedf1fcfbfefff5f9ffedf1fcedf0fff8fbffe2e4f9fbfeffeef3f9eff3f2
+f6f7f2faf8f9fffcfff1edfcf7f7f5f5f3fed4cefeefe8fffafafffefffdeff2f7dde0e9
+fcfffffbfffff2f5fffcfdfffffcffe6dfeffffbfff1eef9f6f2ffe4e2edf6f4ffe6e7ec
+f3f7f6fafffee3e7f2f9ffffecf2fff8ffffeff7f9f8fffdf6fffbf3fcfff2f6ffeaebff
+fefdfffffffff0f2ddf3f3d7fefce3fefbeafffbf8fefbfffffcfffefdfffdfff7fdfff3
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000708061103010f00000c00000cfffdfff0eff4f8f9f4f1f1e5f7f8e8fafbebefefe5
+fffffdebe8f1fdf5fffffcfffefff7edf1e2fffffbfdfffefffffdeff2e9f3f6e5fbfff0
+fffffddedfe4f1f0f8fefffdfdffe6f9ffe1fffff8f4f5f7e8e9ebf6fbf7fefffae8eee4
+f6f9eefcfff4e9eddcf2f8eaf2f4f1fcffffeff0f4eff3f4fcfef9eff5ebfefff8f0f4e6
+fbfcecf4f1e8f2edf4f8f3fafffff6f4f3effffaffeee9fffffeffd2d3cefffefffafbff
+e9eaecf3f7f6f1f2f6fbfbfbf5f2e9e7e3dafffefdefebeafffff6fffff3fafaeefffff3
+eff4e0fcfff4f8fcffe8ecf5fbffffd9e2dff0f9e8effbe3f7ffeae3efd9f3fbeefcfffb
+f1f3f0fcfef3f0f3d8ffffdffefedafefee4fffcf7fffcfffffcfffffefffffffbfdfff7
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000300010200000100020200f8f9f4fefef4fcfdebfdfde3ffffe4ffffe3faf9e5
+faf7f0fdf8fefef5fffaf3fff4f3f1f6f8edfafaf2f9faf2f9f9eff9faf4fdfbfeffffff
+fafaf2f9fbf0faf9f7f9f9f7fafaf2f9fbeefafaeef9faf2f9f9f9f8faf9f9faf4f8fbf2
+f9f9f7f8fbf2f9fce7f8fde9fafafcf9f9fffaf9fffafcfbfbfdf2fbfff1fcfdf5fcfdf7
+fffffaf7f3f2f8f2fcf5f0f7e9e5e2fffffdf9f5fffbf7fffcf9fffdfafffdf8fffcf9ff
+faf9fef6f8f3f4f5f0f2f3ebfffff1f3f0e1efece5fffefbf2efe8f7f7edfffff3fafdec
+fafceef9fbf6faf9fff8f9fff8fbfff6fcfaf6fbf4f4fcedf3fde4f4fde0f4fddef6fbe4
+f7f9ecf7f9ecf8fbe0f8fcd9f9fbd4fafadefcf9f4fcf9fffdfafffdfcfffefffafefff9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000400000400010300000200020300f8faeffeffeffcfee6fbfcdcfafbd9f9fad8f9f9df
+f9f5e9f9f3f3f9f1fef9f3fff9f8f6fbfbf3fdfcf7fcfcf4fafbedf9f9f1faf7fffdfaff
+fcfbf6fcfcf0fcfcf4fcfbf9fcfafdfcfbf9fcfcf0fcfcf0fbfbfbfbfbfdfbfcf6fbfcf6
+fbfbfbfbfcf7fbfee9fbfeebfbfbfdfbf9fffbfafffbfbfbfbfdf2fbfdeffbfcf4fbfcf7
+eceaebfbf9fef6f3fcfffdfffdfbfceae9e7eeedebfffefffaf8fbfbf8fffdf6fffef8ff
+fdfcfafafceef9f9edf8f9ebe4e3d1fffff3fbf7f4fefcfdfffefbf1f1e9eaeae0f9f9f1
+f9f9f9faf9fff9f8fffaf9fffafbfffafbfff9fafef9fbf8f9fcf1f9feeaf9ffe5fafee7
+fafbf3fafbf5fbfcecfbfde5fbfcddfcfbe6fbfaf6fdfafffefbfffffdfffefffafefff9
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000300010300000100020300f8faeffdffeffbffe8ffffe4fbffdcfbffdcffffe3
+ffffecfcfaeefcf8f7fffefdfbfbf3fcfbf6fdfbfffdfbfefbfbeffbfbeffcf9fffdfaff
+fffdfffffefafffff7fffef9fffdfffffdfffffff7fffff7fefefffefdfffefefcfefffa
+fefefefefffafefff0fefff2fdfdfffdfbfffcfbfffcfcfefbfcf4fafcf1fafbf3f9faf5
+eef0effefffff6f7fcfcfdfffefdfff0f1ebffffefecefdaf8faeff9f8fdfcf6fffef9ff
+fefff1feffe4ffffe7fcfee9fdfeecfffff8e9e6effaf8fff6f5f3fdfef8eaeaeafffeff
+f8f4fff8f5fffafafafbfcf6fcfbfffcfafffcfafffbf9fffdfbfffdfcfffdfdfdfefcfd
+fefbfffefbfffefcfffefdf8fcfcf0fdfdf3fefcfdfefcfffffdfffffefcfffef9fefdf8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010100000000020200f8f9f4fdfff4fbfdeffbfee9f1f5dcf1f3dbfafce6
+fafbe9f1f2e4f1f1e9fbfbf3f9f9edfafaf2fbf9fcfcfafbfdfef0fffff3fffefffffdff
+fffdfffffefafffff2fffff5fffdfffffdfffffff5fffff3fefefefefefffefefcfefff9
+fefff9fefff5fefff3fefff5fffffdfffffffefefffcfcfcfbfcf6fafcf1f9fbeef7faef
+fbfffce5eaedf3f7fff9fdffeef0fcd7dcd8fbffe3f2fad5f8fce5f9faf4fbf7fffcf9ff
+ffffe7ffffdcffffe3fcfee8f9fce9e2e4dff1effff0edfff8f8fffffeffeae9eef1effc
+f7f1fff8f4fff9fcebfcfee6fdfbfcfefafffffafffefafffffafffffbfffffcfffffcff
+fffcfffffcfffffdfffffefffefcfdfffefcfffdfefffefffffffdfffefafefef6fefdf8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000b00000b01000a000007020107f8f7fcfcfdfffafcfbfefffdf7f9f4f7f8f3fffffa
+fffffaf8f9f3f8f9f1fffff8fafaeefafaeefbfceefcfdeffeffeffffff6fffefffffeff
+fffefafffff3ffffebfffff0fffdfffffdfffffff0ffffecfefff9fefefcfefff9fefff5
+feffeefeffeefefff3fefff7fffff4fffff6fefff7fdfef8fbfcf4fafceff9fce7f7fce6
+f9fff6bfcbcbf6feffecf2ffe5e9fff4fcfff8ffe3faffd8f9ffdffafdeafbfaf5fbfbf1
+fdfedffcfed9fdfbe4f9fbe6f9ffe9ecf3ecfcfbfff6f2fff5f3ffdddbf0f1f2f4feffff
+f6f1fff8f6fffafedbfeffd6fffdf6fffcfffffcfefffdfefffafffff9fffff9fffff9ff
+fffbfffffcfffffcfffffcfffffcfffffdfffffffdfffffafffffafffef9fefdf8fefdf8
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00000b000009010006000004020106f8f7fcfcfcfffafafff9f8fff3f1fff3f1fff6f7ff
+f9f8fff2f4fff5f5fffbfcfffdfef9fdfdf1fcfdedfcfdedfefef6fffef9fdfcf8fcfbf7
+fefdfbfefdf8feffedfeffeffefcfffefcfffefff1fdffeffdfef9fdfdfdfdfdfbfdfff4
+fdffe8fdffeafdfef9fdfdfdfffff3fffff1fffff6fdfef8fcfcfafbfcf4fafee7f6fee6
+e3f1e4f4ffffd8e1ff0b10472b2f5fdae0f8e0ecd8fbffe3f8ffe6faffebfafceefafbeb
+fbfbe3faf9e4fbf6f0f7f6f1f1fae9f6ffffe9eaff0d07510f08583f3a72f3f7faf4f7ec
+f7f4fff8f6fffdfedfffffdafffdf2fffcfcfffef5fffef5fffcf9fffafffff8fffffaff
+fffcfdfefdf9fefcfdfefbfffffbfffffcfffffffbfffff6fffff8fffef9fefdf9fefdfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000100000100010300000200020300f8f8f6fcfcfffaf8ffeeecffeeeaffede8ffede9ff
+eee8ffeeebfff0ecfff1f0fffdfcfffbfcf6f9faf4fafaf8fdfcfffefdfffcfef3fafbf5
+fefcfffefcfffefefcfefff7fefffafefefcfefffafefefcfefdfffdfdfffdfdfffdfffc
+fdffecfdfff0fdfdfffdfcfffefff8fefff3fdfff9fcfdfffbfbfffafbfffafeedf6ffec
+ebfbfa0d1c391d236d030663121467d8ddfff7ffffdfebdff8fff7f9fef7fbfdf2fbfbf1
+fcf9f4fbf6fcfcf2fff9f4ffebf4f3eef8ff282961f4eeff1f109f050069fcfffff9ffe1
+f8f8f6f9f8fefefbf6fffdf1fffdf2fffdf3fffef0ffffecffffe2ffffe6fffcf6fffdf6
+ffffe6ffffe4feffeffefdf9fcfafffdfcfffefef4fffff0fffff5fffef9fefcfdfefcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010100000200010300000200020400f8f9f3fcfdfff8f9ff1c19441f1b581e1765191468
+1914641e1a641f1e5a1e1d47f6f8fff6f7fbf5f5fff8f8fffcfefdfefff8fefff1fdfff4
+fffefffffdfffffefffffffffffffffffffffffffffffffffefffffcfffffcfffffcffff
+fcfff6fcfffafcfefffcfefffcfffdfcfff6fbfff9fafefdfafcfff9fcfff8fef4f5fff4
+e8f7fceefcffd4d8ff10127911126cf5f9fff7fffff0fafcf7fefff8fdfff8fef2f9fdef
+fafafafbf8fffcf8fffaf8fff8ffff0f18350d0f4ce9e3ff1405921f1383f1f3fff6fce0
+f9faf4fbf9fefcfafffffbfcfffdf6fffef2fffef2ffffedffffe2ffffe2fffef1fffef1
+ffffe4feffe2feffebfefef6fbfafffcfbfffefef4fefff1fffff7fffefafffdfffefcff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030000020100030200010100030500f7f9eefbfef7f6f9ff131335f4f3ffdfdaff1a156f
+1a166bdeddfff2f6ff101533ecf1fffbfeffe8e7fffbfdfff2fbdefcffdcf5fde5f6faeb
+f6faebfdfff7faf9fffffcfff8f3fffffcfffffffbf4f6ebf9fff4eff9f0edf6f1f9ffff
+f9fffff3fafff6fdfff8ffffeff8f7f7fff9f0fbeaf9fff6f2fbfae6eef1f9ffffeef8f7
+f4feffdfe7ffebedff07075d121354eef3ffdce4eff6ffffe9edfff6fbffecf4e9fbfff1
+f0f5efe3e8e2fcffece4ece1e7f0ff0c134a2f3372e3e2ffeae3fffef6fff6f3fff3f1f2
+fbf9fcfbf9fefcfafffcfcfefbfdfcfafefdfafffffbfffefffff8fffff6fffffbfffffb
+fffff6fffff6fffffafffffdfffffffffffffffffbfffffbfffffdfffffdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030005040005030104010000030500f6faecfbfff1f6fafb171932ddddfff1eeff110c66
+100f5ff1f2ffdae3ff141c31f5fbffe8eafff1eefffbf9fff7ffe8f0fcd4ebf0f3fcfeff
+fcfffbfefffff7f4fffef6ffede5fffff8fff3f0f7fffffffbfdfff3f8fff8fffff2faff
+dde3f9f2f8fff8fffff3fafff8ffffecf3fff3fbfff1f9fff3fbfff1f8fff4f8ffeff3ff
+f4fbfff3f8ffd7d6ff1c19702a296be2e5fff8fefff8feffefefffe8e8fff9ffffeaf1f7
+f4f6fffbfefff3fbf0f4feffeaf2ff11165a111554e1e2fff1eefff8f5ffdad5e9fffcff
+fdf8fefdf9fafcfafbfbfdfcf8fefef7fffff7fffff8fffffeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010007020006030007010000030400f6faecfbfff1f6fbf7f0f2fff4f5ffeae9ff1c1968
+1c1c62eaedfff4fcffeff7ff14183e211f6a06007d1a117e101624f2fbfa1816550d0653
+0c0c32edebff1a13591e1169241771372c710e0a25151039110778180e891f1e64dcdfff
+f8fcfff0f4ff15174a13144c1f215205063e1b1865eceaffeaecffdcddff1b147c150e78
+10124d1e235b02015f18157e181570e3e3ffe3e6fff4f6ffefeaff080264141158080647
+1e196d0e095bdeddfff6f7ff0f14561c20671115521c1e51101036dbd8f3fffcffece7ed
+fdf9f6fdfaf3fcfcf4fcfdf7f9fef8f9fffdf8fffffafffffeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010007020008030009010002030400f7f9ecfbfff0f6fbf5f9fcffe1e1ffe8e6ff1a195f
+1a1a56e8edffe0e9f8f7ffffe5ebff0604582717b81b0da2dcdefff8fcffebe4ff211787
+e6e5ffebebffeae2ff160b740b006ae5dbfffcfaffe9e7ff150985281ca40c085ceeeeff
+eceaff0d0a5712105be3e2ffe9e9ffedeaff2c229d020070efeefff8f7ff1e158804006d
+f3f7ffd4daffe3e3ff232087080462f0effff4f6fff2f2ff1109760d0477f7f0ffede7ff
+e9e0ff1d1481363088e2dfffdbdeff242b71141855e1e3fffbfbfffefcffd9d8e0fffffd
+fdfaf1fdfbeefefceffdfdf1fbfef5fafff9fafffefbfffefeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000902000a03000b010004030400f7f9eefbfff0f6fbf4ecf0fcf4f5fff1f1ff10104c
+101245f1f5fff3fcffebf6f8f6ffffe7eaff2415b80900a1eeebffe7e7ff0500791c138a
+eeeeffeef1ffece8ff140d6d322a91d8d3fff0f0ffdfe3fee6e6ff0e0f523d4077e7e6ff
+050084261ba6f1efffebedffe4e6ffc0bdff2a1eb03125b5cccbff292c6108094af7f9ff
+e7f0fff4ffffc7caff0c0d5d2c2e78d6dafff4f9ff1013482e2b86e0dbffd0cdffe3e0ff
+ddd7ff221c7e140f61dedcffd7daff1118601c205fdce0ffe5e8ffebecfeefeef3fffff7
+fdfbecfdfce8fefde9fdfeecfcfef1fcfff6fdfffafdfffeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+01000702000803000b010005030301f7f8f0fbfff1f8fbf4f0f2feecedffe1dfff26255e
+262658dee3ffe9f2f9ecf7f3dbe9e9ebf1ff09008f1609ae130f80eceaff1c178fe7e2ff
+e4e9fff2f9ffc7c9ff242373221d79f1eeffe1e5fff7fdfff2f7ff06093c000433edebff
+0b00a12415b80a0957050a30292e5842428c060085090089e1e0ff0e11480e104de8eeff
+e5eeffd5e0fef4f8ff21236e14175eedf2ffd6dcff2227510908580f0c651d1b66313076
+272377181468060348f6f5ffedf0ff040a56191e5ef2f6fff9fcfff0f2fffffffff8f8ee
+fdfce8fdfde5fefde8fffeeafdfef0fdfef6fefffafefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010002020005020109000005030303f7f8f2fbfef3f8faf5f9fbfffbfcffe3e1ff130f4a
+120f44dfe1fff9fffff1fcf8f4fff3e9f6ff1e1d85150e9c17119703007711126fedf2ff
+f5ffffe7f5f6f0f9ff0b10471c1c62ecedfff5faffeff3ffd3d2ff0d0c5c30326defedff
+0800952c20b0edf0fff2fcffe1eafbe0e4ffd8d4ffe1dbfff1f0ff0c0c56080369e6e5ff
+f4f8ffd7deffe4e5ff05046115156ddaddfff3f8ff0d123c1a1965f3f1ffdbdaffd2d2ff
+f0efffe5e5fff9f9ffd3d4ffdce0ff0a105e0f1456e7eaffe8ebfffcfdfffefffff9f9ef
+fdfce8fdfde5fefde8fffeeafffdf0fefef6fffefcfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010000020100020106000004030303f7f8f3fbfef5f8faf7f7f9fff5f4ffe8e3ff211d5a
+201d56e4e3ffeff1ffedf7f9dceadbf2ffffcfd2ff1a169118129a1e1b90ecf1ffe5f1ff
+f3fff9e5f5ebeaf5ff171d4d090c51eaedffe4eaffecf1ff25227d2d2a83dbdeffedefff
+1912821e1882080c39e2ebfce9f1fff0f5ffe8e7ff1d1b6ed3d5ff393a7a130e74161178
+0d105716195c191971222083242283d6d8ffe9eeff23284e0d0e5116145fe8e8fff6f8ff
+eef0fff6f7ff1c1f42edf0ffeaedff1f22710b0e53f2f5ffe5e8fff1f2ffedeef2f6f7ef
+fbfcecfdfce8fefde9fffdeefffcf3fffcf9fffdfefffdffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030500010200050505000002000002fffffff3f5f0f2f3f5f8f7fff1edff241c571b1458
+1c1558241f57f2f0fff7fcffebf5f7f5ffffe3e5ff0b08730b067e252384e9f1ffd8e6e6
+e8f9e7f2fffce3ebff0c10501b1b710b0b610d1151272b6b1b196defedffe4e9ffeff6ff
+e1e5ff1f21521414502b2b6b0c0c482a2a6a0a07541e1e5eeaf0ffeaf0ff1b1b5924236f
+151657242568f0edff130f6e1c18791a1967e8ecffeff4ff1e1f570e0c4d1c1c4e0f1138
+1f22430f102c25273cf0f3ff0b0c4f1d1c6a0b0c4f101147fbfbfff9fafff5f5fdfbfcf7
+fbfbeffbfceefefceffffef2fffffafffefffffafffbf9feffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040700000200030301101012050507f8f8fafefffdf5f6f8f3f2ffede9fff6eefff0e6ff
+f0e6fff5efffeee8fff3f2fff6f9ffe5e6ffece8ffe0d9ff1e1884f1f0ffdce2fff7ffff
+f3feffcdd5ecf7f7ff0d0a71201892f0ebffe5e5ffe5e4fff0edffdfddffedf0fff8feff
+e7eef8e1e5fff9f6ffe4dfffeeeaffdbd8fff6f2ffe6e6ffe9eefff9ffffdadbffe6e6ff
+eeeeffd5d6ffefebfff2edffc6c0fff1eeffdde1fff4f8ffe5e4ffe7e5fffbf8ffe1dfff
+efeffff9faffd2d2eef2f2fff6f4ffe3e2fff6f4fff4f2ffe9e7fff3f1fff3f1fcfdfdfd
+fefdf8fcfcf2fdfaf1fefbf6fffcfbfffcfffffbfffdfaffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300090b00090a05000002000004ffffffdddddb18181a22202e181333231a51190e50
+190e5221195517103c1f184c1e16691208792b1bb11e0fa002005f29266d16174f0b0d3e
+1b1d4d1c1a651106892a1bc01100b01708ab0e05820e0868201c69000038242156201f49
+0304232020461813531f1865221c640f0a4d24205d242158181645242251211e5318154e
+15144e1313531c17671d1771271f86211b71090b341d1d3f252063110a5a1b1360150e54
+16104c2d285e261e57130e4815114e221e59140f451f1c491e1a3b222036282633f0eff4
+fffffffcfdf8faf9f5faf9f7fcfafdfefcfffffcfffffcffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+1013000002000000000f0e13010006d7d6dbfdfdfbfbfbfbecebf3fffbffe8e0fffcf3ff
+fcf2ffe6ddfffff9ffe9e1ff160a5e2b1d8f0a008532229ffaf3ffe0defffbfaffe4e2ff
+e2e0ffdedaff372aad0e009e1f0cb51b0da227208ae7e3ffeae5fffcf9ffe5dfffece9ff
+faf6fff9f8ffe0dafff0ecffefe8fffcf9ffedeaffe6e6fffcf6fff1edffeae4fff5f2ff
+e4e4fffbfaffe9e6ffdfdaffece4fff7f0fff2f2fff3f4fff6f2ffe4daffeae0fffdf4ff
+f0e9ffe9e1fff7eefff4ebfffaf3fff5effffaf3fff1ebfffaf6fffffcffd7d5e2efeef4
+fefefffbfbfbf9f9f9fafafafdfbfefdfcfffffdfffdfcffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300000300000000000007020109fffefff2f3eef8f9f3fcfcfef4f2fff7f0ffefe6ff
+efe6fff6eefff3eefffaf5fff8f0fffff5fff0e4fff4eafff6f4fff7f9ece3e6dffeffff
+f6fafdededfff9f2ffe7deffccc3fffbf4ffdbdbfff7fbfff7f8fdfeffffd8d6e3efeeff
+eeebfff6f5fffffdfff6f6fffbf8fffbfcfff6fadff9ffe5efedfaeae7fffffbfff6f5ff
+f8f9fbf5faf6dee1e6fcfdffedebfff2efffedf1e0eff4ddf7f7fffffafff9f3fff8f3ff
+fdfafffdf9fffcf7ffe8e2fcf3eaffe8dffafffbfffcf7ffd8d4e5e4e2effffefff3f2f8
+fafbfdf9fbfafafcfbfbfdfcfefefefefffffdfdfdfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000300090c03050409000009000009fffeffe3e4defffff6fafbf5f1f1f3fffbfffff9ff
+fff9fffffbfff1eff4fcf8f9fffbffeee7f7fffafffff8fff8f4f1ffffeff7f9e1f2f6dd
+f6f9e8feffffe0ddf8fdf8fffefaffe6e6fef9fdfcf8ffeff2f5e4f9fbeefffefffffeff
+f2eff8f7f6fbf9f8f3fbfcf6f8f6f7eef0e5f6fad7ffffe4fffefffffdfffffdffeff0eb
+f8fbeae9eed8fefff3fefffffefcffe7e5f0ffffddffffd8f1f3e6fffdfff4f0ffe8e4f2
+faf7f2fffef7fffefffffcfffffbfffffbffded6e1fffafffffdfff8f5fce7e6ecf9f8fd
+f9fafcf9fafcfafcfbfcfefbfefffbfcfffbfbfef7f8fbf4fffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00020003050004030900000b050310faf9fef5f6eefffff3fdfef0fcfcf4f2f0f5f0edf8
+f1eef9f2f0f3fffdf1fffff0e5ded8fffdf7fbf4eefffdfffbf0ffece2fbfffef2f9f9df
+fffff3f4f3effbf9fcfcfbffefeff1e9ebe8f6f9f0f7fbedf7f7ebf4f3eff8f2ffe6e2f0
+fffbfafffffaf7f3f4faf8fbfefafbfffefffffdfff6f3fef5eefeeeebf4f0ede6fffff1
+fffff1fcfef0f2f4e9f3f2f7ede9fffffcfff9fed6edf4c1f8f9e9fcf7fdfffcfffffdff
+fffff3f9f6e3f3eee8fffdfaf1e9e6fff9f6fffaf8fef9f6e4e0dffffeffffffffffffff
+fbfcfefafcfbf7fcf8f8fdf7fafff8fafff5fafff2f8fef2fefffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+00030000010000000500000904020de3e2e7fffffae4e6d9f7f8eaefefe5fffffdfcfafd
+fdfbfefffffbf2f3e5fdfceafffff4fffbeff3f0dffffdfaf6eafff3e8fffffffaf6f5e1
+fefbf2f1f0ebfbfbf3fbfbf1fbfdf0fffff4fafdf4fcfdf5fffff8fffefffef8fff5f1ff
+fffcf9f2f2eafffdffeceaeffffbfcf2f0f5fef6fff9f4fffff9fffffefffdfbeffdfeee
+f7f9ecfdfef6fffffafaf9fefdf8fffffdffeef1d4ffffdffffff3f4eff3fffbfffbf6fa
+f4f2e5ffffeffffdf4fbf6f0fffdf4f6efe7fffef8f8f3efeeeae7fffffdeeeeeefefeff
+fdfefffbfdfcf8faf7f6fbf5f8fdf6fafff6fbfff5fbfff5fefffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+060604000000030305000004000004fbfbfdf2f2f0fffffbfbfcf7fbfcf7fbfbfbfbfbfb
+fbfbfbfbfbf9fbfcf7fcfbf6fcfbf7fcfbf7fcfbf6fcfbf9fcf9fffcf9fffcfbf9fcfbf6
+fcfbf7fbfbf9fbfbf9fbfcf7fbfcf7fbfcf7fbfbf9fbfbf9f8f8f6f9f9f9fbf9fefcfbff
+fefdfbfffffdfffefffffffffffefffffffffffdfffffefffffdfffffffffffffbfffffa
+fffffbfffffdfffffdfffffffffefffffefffffff6fffff4fffffbfffefffffefffffeff
+fffffbfffffafffffbfffffdfffffbfffffbfffefcfffefcfefdfbfdfdfdfcfcfcfcfcfc
+f9f9f9fafafafbfbfbfcfefbfdfffcfefffdfefffbfefffbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffbfbfbffffff
+ffffff0101010a0a0a000000000000000000
+0000000707070000000a0a0a010101fffffff5f5f5ecececfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf8f8f8f9f9f9f9f9f9fafafa
+fcfcfcfdfdfdfdfdfdfefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafafafafaf9f9f9f9f9f9f9f9f9
+f7f7f7f7f7f7f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffafafafffffff6f6f6
+ffffff0000000b0b0b131313000000000000
+010101060606000000000000070707f0f0f0ffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffffffff
+f7f7f70e0e0e000000000000000000000000
+0101010000000b0b0b000000000000070707010101000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0f0f0f000000000000161616000000000000
+0101010000000505050707070404040000000808080a0a0a020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202010101010101010101010101
+000000000000000000000000010101010101010101010101010101010101010101010101
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202010101010101010101020202020202020202020202020202
+020202020202020202020202010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+0101010101010101010101010101010101010101010101010000000e0e0e000000000000
+000000121212000000000000000000000000
+000000000000000000080808000000000000000000000000020202020202020202020202
+020202020202020202020202000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202010101
+010101010101010101010101000000000000000000000000000000000000000000000000
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101000000000000000000000000000000010101010101010101
+010101010101000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000020202000000
+000000000000000000050505000000000000
+0101010202020000000000000000000a0a0a050505000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202010101080808060606
+090909000000000000080808000000000000
+0202020000000a0a0a000000090909000000030303000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000010101010101010101020202020202020202020202020202020202020202020202
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101000000000000000000010101020202020202020202030303
+000000000000010101010101010101020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000060606000000090909
+000000060606000000010101000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe2.gif b/lib/orber/doc/src/dataframe2.gif
new file mode 100644
index 0000000000..26778932b4
--- /dev/null
+++ b/lib/orber/doc/src/dataframe2.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe2.ps b/lib/orber/doc/src/dataframe2.ps
new file mode 100644
index 0000000000..31ef4f1f90
--- /dev/null
+++ b/lib/orber/doc/src/dataframe2.ps
@@ -0,0 +1,8597 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe2.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 92 278 521 514
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 1287 string def
+
+% define space for color conversions
+/grays 429 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+92 278 translate
+
+% size of image (on paper, in 1/72inch coords)
+428.97600 236.01600 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+429 236 8 % dimensions of data
+[429 0 0 -236 0 236] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0505050000000c0c0c000000090909000000030303000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202010101010101010101010101
+010101010101020202020202000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000000000000000000000000000
+0303030404040000000000000000000b0b0b050505000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202030303030303030303030303030303030303030303030303030303
+030303030303030303030303000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000030303030303030303030303030303030303020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000040404030303020202020202030303030303020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+0202020101010000000a0a0a000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+0202020000000606060808080505050000000909090b0b0b010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+030303030303030303030303030303020202020202020202030303030303030303030303
+030303040404040404040404010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101020202020202020202020202
+010101010101010101010101020202020202020202020202030303030303030303030303
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101020202030303030303020202020202030303040404
+020202030303030303030303030303040404040404040404010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404030303030303030303030303020202020202020202030303030303
+030303030303040404040404010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101000000000000000000000000000000
+0202020000000b0b0b000000000000080808020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000010101010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101010101000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+010101070707000000000000090909f2f2f2ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafdfdfdfffffffdfdfdfafafaf8f8f8fafafafdfdfd
+fcfcfcfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcf9f9f9f9f9f9fafafafbfbfb
+fbfbfbfcfcfcfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+0000000707070000000b0b0b020202fffffff7f7f7eeeeeefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfd
+fefefefffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafa
+f9f9f9f9f9f9f8f8f8f8f8f8fafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffffffffafafaf7f7f7f9f9f9fcfcfc
+fdfdfdfdfdfdfefefefefefefffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfafafafbfbfbfbfbfbfcfcfc
+fdfdfdfefefefffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfc000000000000000000000000000000
+060606000000030303000000000000fdfdfdf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdf9f9f9fafafafafafafbfbfb
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfbfbfbf7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfefefefffffffdfdfdf7f7f7f4f4f4f6f6f6f9f9f9
+fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafaf9f9f9fafafafafafafbfbfb
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdefefeffffffffffffff6f6f6fefefef9f9f9f8f8f8f5f5f5fffffff1f1f1ffffff
+fbfbfbf7f7f7fffffff8f8f8fdfdfdfffffff8f8f8fdfdfdfffffffcfcfcfffffffbfbfb
+f8f8f8fffffffffffff0f0f0fffffff6f6f6f5f5f5fffffffefefefafafafafafafafafa
+fffffffffffffcfcfcfafafafafafafdfdfdfffffff2f2f2fffffff2f2f2f9f9f9fefefe
+fdfdfdf7f7f7fffffffffffff2f2f2f5f5f5fffffffdfdfdfffffff1f1f1fffffffdfdfd
+fffffffafafaf7f7f7f9f9f9f8f8f8fffffff1f1f1f8f8f8f1f1f1ffffffefefefffffff
+fafafafffffffafafafffffffbfbfbfffffff9f9f9fefefefffffffffffff6f6f6fbfbfb
+fefefefcfcfcfffffffdfdfdfffffff1f1f1fffffffefefefffffff5f5f5fcfcfcffffff
+f7f7f7ffffffebebebfafafafcfcfcfffffff7f7f7fefefefffffff9f9f9fffffffcfcfc
+f8f8f8fffffff7f7f7fffffffffffff6f6f6fdfdfdf0f0f0f2f2f2fffffff6f6f6ffffff
+fdfdfdfffffff5f5f5fefefefffffff5f5f5fffffff7f7f7fcfcfcfffffffefefefdfdfd
+fdfdfdf7f7f7fffffffdfdfdfffffffffffffffffffffffff6f6f6efefefffffffffffff
+fffffffafafafffffffcfcfcfffffff6f6f6fffffff3f3f3f5f5f5fcfcfcf8f8f8ffffff
+fafafafffffff6f6f6f4f4f4fffffffffffffcfcfcf1f1f1fffffff8f8f8ffffffffffff
+fffffff2f2f2fafafaf8f8f8ffffffffffffffffffe9e9e9ffffffffffffe8e8e8ffffff
+fffffff6f6f6ffffffebebebfdfdfdfbfbfbecececffffffe7e7e7fffffffdfdfdffffff
+fcfcfcfffffffffffff9f9f9f8f8f8f9f9f9fffffffffffffafafafffffffbfbfbffffff
+fffffff6f6f6fffffffffffffbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffff
+f4f4f4fffffffffffffcfcfcfffffffdfdfdfffffff2f2f2fffffffffffffffffffefefe
+fefefefefefefdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fffffffdfdfdfdfdfdf5f5f5ffffffeaeaeafffffffbfbfbf0f0f0fffffff2f2f2
+fffffff4f4f4fffffff6f6f6fffffff4f4f4fffffffffffff8f8f8ffffffffffffffffff
+fffffff5f5f5f8f8f8ffffffddddddfdfdfdfffffff6f6f6fffffff2f2f2fffffffdfdfd
+e9e9e9f9f9f9f3f3f3fffffffffffff4f4f4f3f3f3fffffff6f6f6fffffffffffff7f7f7
+fbfbfbfffffff6f6f6f3f3f3fffffffffffffbfbfbffffffffffffffffffebebebececec
+f8f8f8fffffff8f8f80808080d0d0d020202fffffffffffffdfdfdf1f1f1fffffff3f3f3
+fffffff3f3f3f6f6f6f4f4f4fffffff6f6f6f6f6f6fffffff6f6f6fffffff5f5f5ffffff
+fffffff2f2f2fffffff5f5f5fefefefffffff3f3f3f7f7f7f0f0f0fefefefffffffafafa
+fffffff9f9f9fffffffffffff6f6f6fffffffefefefffffffbfbfbfefefef1f1f1f0f0f0
+ffffffe7e7e7fffffff4f4f4fffffff4f4f4fffffffffffff9f9f9f1f1f1e0e0e0ffffff
+f2f2f2fffffffbfbfbedededfffffffffffff5f5f5f5f5f5f6f6f6ffffffffffffffffff
+fafafafffffff7f7f7ecececeaeaeaffffffffffffecececfefefefffffff9f9f9f0f0f0
+fcfcfcfdfdfdfffffffffffff6f6f6fffffffafafafffffffffffffffffffefefeededed
+fffffffffffffffffffffffff8f8f8f7f7f7fffffff5f5f5f2f2f2f2f2f2f2f2f2fcfcfc
+efefeffffffffffffffffffffdfdfdfafafaf3f3f3ffffff000000000000fffffff5f5f5
+f5f5f5ffffffeeeeeefffffffffffffefefefffffff1f1f1ffffffefefefffffffffffff
+f0f0f0f5f5f5eeeeeefffffffffffffffffff7f7f7ffffffffffffeaeaeaf7f7f7f8f8f8
+f9f9f9fffffffefefef3f3f3fdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfbfbfbfafafa
+fffffff9f9f9fffffff2f2f2ffffffebebebffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffeeeeeefdfdfdfcfcfcfffffff8f8f8222222000000050505030303010101000000
+f1f1f1ffffffe0e0e0fffffff1f1f1fdfdfdfffffff9f9f9fefefefbfbfbe6e6e6ffffff
+ffffffe8e8e8fffffffffffffffffffdfdfde0e0e0fffffff6f6f6f3f3f3f3f3f3ececec
+ffffffffffffefefeffbfbfbfefefefafafafbfbfbfcfcfcf7f7f7f9f9f9fcfcfcf9f9f9
+fffffffffffffffffffdfdfdfafafaf9f9f9fafafafbfbfbfbfbfbf1f1f1ffffffffffff
+fefefe000000000000fafafa181818000000f9f9f9f4f4f4e0e0e0ffffffecececf4f4f4
+f2f2f2fdfdfdfffffff8f8f8ffffffffffffeaeaeaf2f2f2fafafaf3f3f3fffffff9f9f9
+f5f5f5fefefef2f2f2fffffff0f0f0fffffffcfcfcfffffffffffffdfdfdfffffff0f0f0
+ffffffeeeeeefffffffffffffcfcfcfffffffdfdfdf1f1f1fffffffffffffdfdfdffffff
+eaeaea000000060606040404050505090909000000000000131313000000020202fbfbfb
+ffffffe7e7e7f6f6f6ffffffefefeff4f4f4fcfcfcfffffffffffffbfbfbfdfdfdffffff
+eeeeeefdfdfdedededfffffffffffffefefefffffff4f4f4f5f5f5fdfdfdf0f0f0ffffff
+fafafaf6f6f6fffffff8f8f8fffffffffffff1f1f1fbfbfbfefefef0f0f0fcfcfcffffff
+fbfbfbf8f8f8fafafae9e9e9fffffff1f1f1fffffffffffffffffffffffff7f7f7f1f1f1
+fffffff9f9f9fbfbfbfffffffafafafdfdfdfdfdfdf1f1f12424240a0a0a000000f4f4f4
+f3f3f3fffffff8f8f8f2f2f2ffffffffffffeeeeeeeeeeeefffffffffffff3f3f3f5f5f5
+fffffffffffff8f8f8fdfdfdf2f2f2f1f1f1e6e6e6fffffffbfbfbfffffffffffffafafa
+fdfdfdf8f8f8f2f2f2fffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fffffff6f6f6fffffffcfcfcfffffffffffff4f4f4eeeeeefcfcfcfdfdfdfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+e5e5e5fffffff8f8f8fffffffdfdfdffffffeaeaeaffffff000000080808ffffffffffff
+ffffffefefefffffffefefeffffffffafafaecececebebebffffffffffffffffffffffff
+fcfcfcf8f8f8e5e5e5eaeaeaf7f7f7fbfbfbf3f3f3fffffffdfdfdfffffff1f1f1f5f5f5
+fbfbfbefefeffefefefcfcfcf2f2f2ffffffffffffe9e9e9fffffff6f6f6f8f8f8ffffff
+fffffff3f3f3f0f0f0f8f8f8fffffffffffffffffff9f9f9f7f7f7ffffffd9d9d9f9f9f9
+f5f5f5040404fffffffafafaedededffffffdededefffffff2f2f2f6f6f6fafafaffffff
+f3f3f3fffffffcfcfcf2f2f2eaeaeaffffffe2e2e2fffffffbfbfbf3f3f3fffffff7f7f7
+f6f6f6fffffff7f7f7fffffffffffffcfcfcfffffff0f0f0fdfdfde5e5e5f6f6f6fdfdfd
+fffffff9f9f9efefeff5f5f5f1f1f1fffffffdfdfdfdfdfdf5f5f5e9e9e9fdfdfdffffff
+ffffffe8e8e8ffffff000000000000fffffffffffffffffff8f8f8000000010101050505
+fffffffffffff6f6f6fffffffffffffffffffefefee6e6e6f5f5f5f3f3f3f6f6f6ffffff
+fefefefcfcfcf6f6f6fcfcfcf5f5f5e9e9e9fdfdfdfffffff3f3f3fcfcfcfffffff1f1f1
+ffffffffffffffffffe8e8e8fffffff0f0f0f6f6f6f8f8f8fffffff5f5f5eaeaeaffffff
+f3f3f3fffffffdfdfdfffffff3f3f3ecececfafafaf2f2f2ededededededffffffffffff
+fafafaf7f7f7fffffff4f4f4fffffff3f3f3ffffffffffff0000000b0b0beaeaeaf8f8f8
+fbfbfbf8f8f8fbfbfbffffffebebebfefefef0f0f0ffffffeaeaeafffffff4f4f4ffffff
+e8e8e8fbfbfbfdfdfdf8f8f8fffffffffffff5f5f5ffffffe3e3e3f9f9f9e9e9e9fcfcfc
+fffffff8f8f8fdfdfdf0f0f0fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfcfcfc
+f3f3f3fffffffffffffefefee8e8e8fffffff8f8f8fffffff8f8f8f8f8f8f9f9f9fafafa
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffeeeeeefbfbfbefefefebebebfffffff3f3f3fefefe000000050505fffffffefefe
+f5f5f5f9f9f9f7f7f7fffffff3f3f3f4f4f4fafafafffffff2f2f2e9e9e9ffffffe9e9e9
+ddddddfffffffffffffffffffffffff0f0f00a0a0ae0e0e0fffffff1f1f1f9f9f9ffffff
+f9f9f9fbfbfbffffffedededfffffffdfdfdfbfbfbf4f4f4fffffff9f9f9f7f7f7f3f3f3
+f2f2f2fffffffffffffefefef9f9f9f3f3f3f6f6f6ffffffeeeeeefffffff0f0f0ffffff
+0000000b0b0bfffffff1f1f1e7e7e7fffffff6f6f6efefefffffffffffffe3e3e3ffffff
+fffffffafafafefefefffffffbfbfbf4f4f4e1e1e1ffffffedededffffffeeeeeeffffff
+fffffff3f3f3ffffffebebebf9f9f9f4f4f4fefefeecececfdfdfdfffffff7f7f7ffffff
+ecececfffffff4f4f4fffffffffffffdfdfdf3f3f3fcfcfcfffffffffffffcfcfcf5f5f5
+fffffffdfdfdfbfbfb1010101b1b1bededede5e5e5fefefefdfdfdfcfcfc000000131313
+000000fafafafafafae2e2e2eeeeeee9e9e9f6f6f6fffffffefefefffffff3f3f3e9e9e9
+fafafaf8f8f8ffffffdbdbdbfffffff8f8f8e8e8e8fffffffffffff1f1f1fdfdfdf7f7f7
+d8d8d8f0f0f0f2f2f2fbfbfbffffffebebebfdfdfdf7f7f7edededfffffff9f9f9f3f3f3
+fefefeffffffe8e8e8f1f1f1fffffffffffffffffffafafaffffffebebebffffffe7e7e7
+fafafafffffff9f9f9eaeaeafffffffafafaefefeffffffffffffffdfdfdffffffe4e4e4
+fcfcfcfffffffbfbfb030303fffffff6f6f6fefefefffffff1f1f1f3f3f3fafafaededed
+fffffff7f7f7fafafaebebebffffffffffffeeeeeef2f2f2fffffff7f7f7fcfcfcffffff
+f2f2f2f8f8f8fffffff4f4f4f9f9f9fafafafbfbfbfcfcfcfcfcfcfdfdfdfcfcfcfcfcfc
+fffffffefefef7f7f7fbfbfbf6f6f6fffffff1f1f1edededf7f7f7f7f7f7f8f8f8fafafa
+fbfbfbfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+eeeeeeffffffefefefffffffffffffe4e4e4ffffffeeeeee0e0e0e090909f0f0f0f6f6f6
+fefefeffffffe8e8e8efefeff9f9f9fffffff8f8f8f7f7f7fffffff7f7f7f6f6f6ffffff
+ffffffe0e0e0fdfdfdf4f4f4ffffffececec171717fafafafffffffdfdfdffffffe9e9e9
+f6f6f6fefefee4e4e4fefefef3f3f3e7e7e7f5f5f5ffffffdfdfdff6f6f6fffffff5f5f5
+ffffffe8e8e8f8f8f8ffffffefefeff9f9f9ffffffeeeeeee0e0e0ecececfafafaececec
+111111090909eaeaeaffffffffffffe5e5e5f9f9f9fafafafbfbfbffffffffffffe9e9e9
+f0f0f0efefeffdfdfdefefeffdfdfdf2f2f2fffffff9f9f9fffffff8f8f8f9f9f9efefef
+f1f1f1fcfcfcf2f2f2f8f8f8fcfcfcfffffff1f1f1ecececf0f0f0ffffffe7e7e7ebebeb
+dfdfdff0f0f0d9d9d9f0f0f0fafafafffffffdfdfdfffffffdfdfdf4f4f4ffffffffffff
+f6f6f6ffffffe9e9e9000000000000fffffff4f4f4ffffffe9e9e9ffffffffffff000000
+000000fffffff8f8f8ecececfffffffcfcfcffffffeaeaeaf4f4f4f8f8f8f3f3f3fafafa
+fcfcfcf3f3f3ffffffffffffdbdbdbfffffff8f8f8e0e0e0f6f6f6f8f8f8f5f5f5fefefe
+fffffffffffff2f2f2fffffff5f5f5fffffffefefef2f2f2f1f1f1f4f4f4ffffffeeeeee
+ebebebf1f1f1ffffffe3e3e3f9f9f9f8f8f8ebebebe4e4e4fffffff5f5f5fffffff8f8f8
+f7f7f7e9e9e9eeeeeeffffffe1e1e1fafafafffffff8f8f8fffffff1f1f1d1d1d1ffffff
+f8f8f8f0f0f0eeeeee131313f6f6f6ececececececfdfdfdf3f3f3fffffffefefef2f2f2
+ffffffefefeffffffffcfcfcf7f7f7f7f7f7eeeeeefffffffafafaf6f6f6ffffffefefef
+fdfdfdffffffe1e1e1fdfdfdfafafafbfbfbfbfbfbfbfbfbfbfbfbfafafaf9f9f9f9f9f9
+f1f1f1f6f6f6fafafafffffffffffff0f0f0fffffffefefefafafafafafafbfbfbfcfcfc
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfcfcfcfcfcfcfcfcfcf4f4f4fffffff3f3f3fefefe000000000000ffffffffffff
+efefeffafafaf1f1f1fdfdfdfefefeebebebfffffff0f0f0f3f3f3fffffff4f4f4ffffff
+fffffff4f4f4fffffff9f9f9ffffff0707070b0b0bf7f7f7eeeeeefefefef3f3f3ffffff
+fffffff6f6f6fffffff6f6f6fffffff8f8f8fafafaf3f3f3fffffffcfcfcfcfcfcf0f0f0
+f7f7f7fffffff8f8f8f3f3f3fffffffffffff1f1f1fefefefafafaffffffddddddf9f9f9
+0000000a0a0af4f4f4e8e8e8f4f4f4f2f2f2fffffff6f6f6f3f3f3f5f5f5eeeeeeffffff
+ffffffffffffeaeaeafffffff3f3f3f6f6f6ffffffe6e6e6fafafafffffffdfdfdffffff
+fffffffcfcfcfcfcfcf4f4f4f2f2f2ffffffe9e9e9f4f4f4ffffffe2e2e2fafafaffffff
+ffffffe9e9e9fffffffbfbfbf5f5f5fefefefdfdfdf8f8f8f3f3f3fffffff7f7f7f3f3f3
+fefefeffffffe9e9e91c1c1c0c0c0cf0f0f0fcfcfcfdfdfdf5f5f5f6f6f6f0f0f0000000
+040404f1f1f1f7f7f7fffffff2f2f2ecececfffffffdfdfdf5f5f5f6f6f6ffffffffffff
+e4e4e4ffffffe2e2e2fefefeffffffe6e6e6fcfcfcf6f6f6fcfcfcfffffff1f1f1ffffff
+fefefed8d8d8fffffff2f2f2e8e8e8f9f9f9fffffffffffff4f4f4f6f6f6f7f7f7ffffff
+fbfbfbf7f7f7f3f3f3fffffffafafafffffffffffff2f2f2eeeeeeffffffdadadaffffff
+fffffff0f0f0ffffffffffffeeeeeee8e8e8fffffff5f5f5f9f9f9ffffffffffffe7e7e7
+f6f6f6ffffff030303000000ecececfffffff7f7f7fafafaffffffffffffeeeeeeffffff
+ebebebeeeeeeffffffffffffd6d6d6fffffff6f6f6fbfbfbecececf9f9f9fdfdfdffffff
+fcfcfcf5f5f5fefefefffffff9f9f9f9f9f9fafafafbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+efefefffffffe1e1e1fcfcfcefefefffffffffffffdededefbfbfbfbfbfbfcfcfcfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f8f8f8ffffffeeeeeef7f7f7f7f7f7ffffffe4e4e4ffffff0a0a0a030303fffffffcfcfc
+f4f4f4f8f8f8fcfcfcffffff080808080808fcfcfcf1f1f11414140000000c0c0c000000
+fdfdfde8e8e8ffffff0505050000000000000404040e0e0e1b1b1b000000191919f0f0f0
+fafafae6e6e6ffffff0000000000000303030d0d0d0b0b0bfcfcfcf8f8f8ffffffffffff
+fafafaf0f0f0111111000000ffffffededed0c0c0c000000080808f4f4f40303030f0f0f
+0f0f0f0000000f0f0f0d0d0d080808f9f9f9fafafaf8f8f8fafafa050505050505030303
+000000000000101010fefefef2f2f2ffffffedededfefefef2f2f2f4f4f4030303010101
+000000010101f9f9f9ffffffe9e9e9f9f9f9fefefef5f5f5f4f4f4000000141414000000
+000000000000ecececfdfdfdfefefefefefefffffffafafafffffff5f5f5ffffffffffff
+eaeaeaf6f6f6ffffff000000050505f6f6f6fffffff9f9f9fefefef7f7f7f9f9f9080808
+000000fefefefffffff9f9f9fafafafdfdfdf0f0f0f3f3f30404040e0e0e0b0b0b000000
+181818ffffffe9e9e9fffffffcfcfcfcfcfcfbfbfb1a1a1a000000fffffff4f4f4171717
+0000000b0b0bf7f7f7e4e4e4ffffffedededfefefefffffffefefef3f3f30f0f0f000000
+030303131313020202fdfdfdfffffff6f6f6f8f8f8fffffffcfcfcf8f8f8141414000000
+0909090b0b0b000000000000fffffffffffff5f5f5f9f9f90c0c0c000000ffffffffffff
+0000000000000000000c0c0c040404000000040404151515edededfafafafdfdfdf1f1f1
+0e0e0e0d0d0d0000000d0d0d131313e4e4e4fdfdfdf7f7f7fffffffafafaf5f5f5eaeaea
+121212000000ffffffefefef0202020303030606060909090b0b0b0d0d0d0e0e0e0e0e0e
+000000ecececfbfbfbf9f9f91010100000000000000b0b0bfafafafafafafbfbfbfcfcfc
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd030303000000fafafaffffff
+f7f7f7efefef1212120000000505050000000b0b0b0000000303030d0d0d000000101010
+000000f4f4f4fdfdfdfffffffcfcfc020202020202f9f9f9ffffffe9e9e9fffffffdfdfd
+fafafafafafa1e1e1e000000ffffffefefefe7e7e7151515000000fffffff7f7f7dbdbdb
+0a0a0a000000161616070707fdfdfd0a0a0a0000000b0b0b020202f5f5f5fffffffafafa
+000000040404fffffff3f3f3fffffff3f3f3ffffff080808000000fffffffffffff7f7f7
+fafafa000000000000010101fffffff4f4f4fcfcfcf3f3f3ffffff0e0e0e000000ffffff
+fdfdfd070707000000020202f8f8f8ffffffedededffffff070707000000e9e9e9efefef
+f8f8f8000000010101fffffff6f6f6f3f3f3fffffffdfdfdfffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202000000fffffff6f6f6fffffff7f7f7ffffffe4e4e4151515
+000000f1f1f1ffffffedededffffffeaeaeaf8f8f8070707020202fffffffbfbfbf9f9f9
+000000000000fffffffcfcfcffffff0303030000000d0d0d000000191919000000080808
+010101262626030303060606e8e8e8ffffffe6e6e6fffffffafafa000000141414ffffff
+fcfcfcf3f3f3141414000000f8f8f8f8f8f8fefefef8f8f8ffffff020202000000ffffff
+ecececffffff080808000000ffffffffffff0000000f0f0f000000040404fffffff9f9f9
+f8f8f8ffffff060606050505fdfdfdfffffffdfdfdefefeff3f3f3ecececffffff000000
+000000fffffff1f1f1f3f3f3000000020202fdfdfdffffffefefeff5f5f5080808171717
+000000010101fcfcfc1313130707070202020c0c0ce6e6e6f5f5f5000000040404fbfbfb
+fffffff1f1f1ffffffffffffefefef000000fffffff2f2f2fafafafbfbfbfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd000000040404f8f8f8f0f0f0
+f6f6f6ffffffe3e3e3ffffff000000030303eeeeeefffffff5f5f5e9e9e9dfdfdf080808
+090909fafafafdfdfdffffffffffff080808070707fbfbfbedededf5f5f5ffffffdcdcdc
+ffffff181818000000fffffff2f2f2fffffff4f4f4ebebeb1f1f1f000000ecececffffff
+f3f3f3ffffff000000030303000000fffffffffffff1f1f1262626e1e1e1f8f8f8ffffff
+0a0a0a030303fbfbfbf3f3f3e3e3e3f8f8f8e7e7e71212121a1a1aefefefe7e7e7f4f4f4
+fdfdfdffffff060606181818fffffffafafaffffffffffff0000001a1a1afffffff2f2f2
+e0e0e0202020000000000000e8e8e8fcfcfcf8f8f8101010050505ecececfffffff9f9f9
+ffffffe7e7e7191919000000fffffff6f6f6fffffff7f7f7fffffffefefeffffffffffff
+fcfcfcfffffffcfcfc0202020f0f0ff8f8f8f8f8f8f4f4f4ffffff131313191919000000
+ffffffffffffefefefe9e9e9eeeeeeffffff020202000000fefefeffffffe6e6e6f0f0f0
+ffffff0b0b0b000000ffffffedededf5f5f5f1f1f10b0b0b0f0f0ffbfbfbfbfbfbeaeaea
+f7f7f7f0f0f0000000151515ffffffffffffffffffe6e6e6131313060606fdfdfdfafafa
+ebebebfafafaffffff0101010e0e0effffffefefeff4f4f4000000040404fcfcfcf6f6f6
+ffffffffffff151515030303fcfcfceaeaeafffffff1f1f1030303060606fffffffafafa
+f8f8f8fdfdfd030303030303f4f4f4f2f2f2f9f9f9ffffffebebebffffff000000000000
+fffffff9f9f9fffffff5f5f5ffffff000000020202fdfdfdffffffededede9e9e9f4f4f4
+151515030303000000ffffffeeeeeef3f3f3080808fffffff9f9f9030303080808fdfdfd
+eaeaeaffffffe3e3e3fafafafdfdfd010101ffffffe2e2e2fbfbfbfbfbfbfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd070707111111fffffffafafa
+ffffffecececfefefefbfbfb000000000000ffffffefefeff6f6f6fdfdfdffffff000000
+0c0c0cf8f8f8f7f7f7f9f9f9fcfcfc070707050505f7f7f7fffffff8f8f8fffffff5f5f5
+f6f6f6010101fffffffafafafcfcfcd9d9d9fffffff6f6f6050505010101efefefededed
+fafafaf7f7f70e0e0e000000fffffffffffff5f5f5ffffffd7d7d7ffffffeeeeeef0f0f0
+000000040404fafafafffffffefefeffffffffffffefefeff6f6f6f9f9f9ffffffffffff
+f6f6f6fbfbfb141414000000fdfdfdf1f1f1e3e3e3f2f2f2222222f1f1f1f3f3f3ffffff
+ffffff0000000a0a0a0a0a0affffffedededf3f3f3040404ebebebfbfbfbf1f1f1f7f7f7
+e7e7e7ffffff000000191919f4f4f4fafafafffffffefefefffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202111111000000000000010101000000050505f6f6f6fafafa
+ffffffedededfefefefffffffefefee9e9e90e0e0efffffff4f4f4e5e5e5ffffffe1e1e1
+ffffff0909090e0e0effffffebebebffffffffffff000000050505fbfbfbe9e9e9ffffff
+fffffff3f3f31717170f0f0f000000fbfbfbececec0d0d0d000000fbfbfbfffffffefefe
+f3f3f3fffffff5f5f5f1f1f1000000040404fefefeeeeeee090909000000fffffff4f4f4
+fffffff9f9f9e4e4e4fbfbfbf8f8f8fbfbfbfffffffafafa030303040404fffffffbfbfb
+f9f9f9fdfdfd030303050505fffffffffffff9f9f9d8d8d8ffffff000000000000ffffff
+fffffff6f6f6efefeffcfcfcecececffffff000000000000f1f1f1e4e4e4ffffffffffff
+000000000000fffffffcfcfcffffffecececf8f8f8f8f8f8f6f6f6010101000000202020
+f2f2f2fffffffbfbfbfbfbfb0808080d0d0de9e9e9fffffffcfcfcfcfcfcfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd000000000000f2f2f2f4f4f4
+ffffffebebebffffffe6e6e6000000191919f7f7f7f3f3f3ffffffffffffe6e6e6010101
+060606f5f5f5f6f6f6f7f7f7f9f9f9030303030303f7f7f7e8e8e8fdfdfdfffffff9f9f9
+0a0a0a000000ffffffe8e8e8f8f8f8f5f5f5fcfcfcffffff0000001a1a1af0f0f0ffffff
+f4f4f4ffffff0000000a0a0af6f6f6fffffff4f4f4f7f7f7fffffffdfdfde6e6e6f1f1f1
+0606060b0b0bf8f8f8f9f9f9ffffffedededdbdbdbfffffff6f6f6ffffffedededf8f8f8
+1c1c1c000000040404080808f0f0f0fffffff8f8f8050505000000fffffff6f6f6ececec
+fefefeffffffecececf4f4f4fefefeffffff000000000000fffffffafafae4e4e4ffffff
+fcfcfcf5f5f5050505060606fffffff4f4f4fefefeefefeffffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202000000f3f3f3fdfdfdffffffffffff000000242424ffffff
+f6f6f6ffffffe9e9e9f2f2f2f9f9f90909090d0d0df3f3f3fffffffdfdfdf5f5f5ffffff
+f1f1f1000000090909ddddddffffffe8e8e8ededed0a0a0a101010fafafae9e9e9ececec
+fbfbfbecececf8f8f80a0a0a050505fefefeffffff020202000000fafafaf1f1f1f5f5f5
+ffffffdfdfdfefefeffdfdfd101010040404e9e9e9ffffff000000161616000000ffffff
+f7f7f7f1f1f1ffffffe8e8e8fffffffffffff0f0f0f1f1f1000000000000fdfdfdfafafa
+fbfbfbffffff0606060a0a0aeaeaeaffffffe6e6e6f9f9f9ffffff0606060b0b0bffffff
+e5e5e5e5e5e5fffffffffffff1f1f1fcfcfc080808000000fffffff6f6f6f3f3f3d7d7d7
+181818111111f3f3f3f2f2f2f3f3f3fffffff5f5f5eeeeeefffffff8f8f8242424000000
+fffffff3f3f3eeeeeef9f9f9010101e8e8e8fffffffbfbfbfcfcfcfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd1818180b0b0bfffffffdfdfd
+f1f1f1f0f0f0ffffffffffff060606030303e7e7e7ffffffefefeffdfdfdf6f6f6151515
+010101f5f5f5fcfcfcfdfdfdfbfbfb040404050505fcfcfcfffffff9f9f9eeeeeefafafa
+0000000808080b0b0b070707141414000000030303000000111111000000ffffffebebeb
+fffffff5f5f50000001b1b1becececeeeeeefffffffafafae8e8e8e9e9e9fbfbfbffffff
+050505000000f7f7f7fdfdfdf5f5f5fffffff4f4f4f0f0f0ffffff0000000f0f0f000000
+f0f0f0ffffff060606070707fafafad8d8d8ffffff0000000d0d0de8e8e8ffffffffffff
+eaeaeaf2f2f2fffffff8f8f8e4e4e4ffffff0000001d1d1d000000020202000000000000
+060606181818010101000000fffffff9f9f9fffffffffffffffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202000000fffffffffffff3f3f3f9f9f9ffffff000000010101
+dadadafffffff4f4f4dadadaffffff0000000101010909090f0f0f111111020202000000
+040404000000232323fafafaf7f7f7f5f5f5f8f8f8090909000000fbfbfbffffffebebeb
+e5e5e5fffffff9f9f90808080d0d0df5f5f5e9e9e90a0a0a000000fffffff0f0f0f0f0f0
+efefeffefefef6f6f6ffffff010101000000fffffffefefee3e3e30909090f0f0f101010
+191919000000fffffff6f6f6f4f4f4fffffff8f8f8ffffff000000000000fcfcfcfbfbfb
+fcfcfcfefefe0606060b0b0bf6f6f6f7f7f7fffffff3f3f3ededed000000080808eeeeee
+ffffffffffffe5e5e5f7f7f7f7f7f7ffffff040404080808e7e7e7ffffffffffffffffff
+000000161616f6f6f6fffffffdfdfde3e3e3fbfbfbf2f2f2f1f1f1fbfbfb000000151515
+f4f4f4eaeaeaf7f7f7ffffff000000fefefefefefefffffffdfdfdfefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd000000000000ffffffffffff
+f4f4f4fffffffefefeffffff000000000000fbfbfbfffffffdfdfdfdfdfdffffff060606
+000000f5f5f5fdfdfdfefefefafafa010101030303fbfbfbf0f0f0f8f8f8f8f8f8f4f4f4
+040404000000fffffff6f6f6e6e6e6fefefefffffffafafaf7f7f7e9e9e9ffffffe7e7e7
+dededeffffff030303000000fffffff8f8f8e8e8e8f0f0f0fffffffdfdfdfffffffefefe
+000000000000fffffffffffff6f6f6eaeaeaf0f0f00f0f0f000000fcfcfcfbfbfbffffff
+ffffffd6d6d6080808090909fffffff9f9f9f1f1f11c1c1c020202fdfdfdf8f8f8f0f0f0
+f1f1f1f4f4f4f0f0f0fcfcfcfdfdfdf8f8f8000000000000f7f7f7fffffff4f4f4ffffff
+fafafae0e0e0fefefefafafaf5f5f5f7f7f7ebebebfffffffffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202070707eeeeeef9f9f9ffffffe3e3e3ffffff0000002f2f2f
+ffffffe0e0e0ffffffffffffececec0303030a0a0af9f9f9fefefed3d3d3f5f5f5ffffff
+ffffffffffffe5e5e5eeeeeefafafafffffff9f9f9090909030303e7e7e7f6f6f6fcfcfc
+fffffffffffff9f9f9000000000000f9f9f9ffffff0000000a0a0af3f3f3fcfcfcffffff
+f2f2f2f1f1f1f1f1f1e9e9e90b0b0b060606f0f0f0fefefeffffffe0e0e0f6f6f6000000
+000000161616000000f4f4f4fffffff9f9f9f9f9f9ececec050505020202fefefefdfdfd
+fcfcfcfbfbfb010101070707f7f7f7ffffffdbdbdbffffffffffff0505050b0b0bffffff
+f4f4f4dfdfdffffffffffffffefefef6f6f6111111000000fffffffffffff9f9f9ffffff
+050505000000f7f7f7fafafafffffff8f8f8fffffff8f8f8f6f6f6ffffff020202000000
+161616f5f5f5ffffff0000000b0b0bfcfcfcfbfbfbf2f2f2fefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd131313060606fefefef6f6f6
+f6f6f6f7f7f7f3f3f3efefef0a0a0a1a1a1afdfdfde7e7e7f9f9f9fafafaf9f9f90d0d0d
+060606f7f7f7fafafafafafaf8f8f8000000010101f7f7f7fefefef8f8f8eaeaeaffffff
+080808080808f7f7f7f7f7f7fffffffdfdfdeaeaeafcfcfcfffffff3f3f3fcfcfcffffff
+fffffff8f8f8000000111111fffffffffffff2f2f2fffffff4f4f4f1f1f1eeeeeef4f4f4
+0c0c0c040404ffffffeeeeeeebebebffffff060606030303e7e7e7fffffff9f9f9ffffff
+e2e2e2ffffff000000000000ffffffdededeffffff000000000000fffffff1f1f1ffffff
+fffffff8f8f8d7d7d7ffffffecececffffff0e0e0e000000fffffff6f6f6fbfbfbfcfcfc
+ffffffffffffffffffe9e9e9f7f7f7fffffffcfcfcfbfbfbfffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202070707fefefef6f6f6e6e6e6fffffff9f9f9ffffff000000
+f1f1f1f6f6f6eeeeeeeaeaeaededed323232000000ffffffecececffffffffffffdedede
+e8e8e8e8e8e8fffffffbfbfbecececfbfbfbfbfbfb000000070707fffffff3f3f3fdfdfd
+fffffff5f5f5f2f2f2000000151515f6f6f6ebebeb151515111111fcfcfcf4f4f4ffffff
+eeeeeefffffffffffffafafa030303000000ffffffffffffd4d4d4fffffffffffffdfdfd
+fefefe1111110808080d0d0dfffffff9f9f9eeeeeeffffff070707020202fefefefefefe
+fcfcfcf9f9f9000000070707e2e2e2ffffffffffffe2e2e2f1f1f1191919000000f7f7f7
+fffffffdfdfdfffffff2f2f2ffffffffffff0000000f0f0fd7d7d7ffffffdfdfdfffffff
+050505000000ffffffeaeaeafafafafbfbfbf6f6f6fdfdfde6e6e6f8f8f8ffffff141414
+0e0e0ee1e1e1fcfcfc080808efefefedededfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd000000040404fefefef7f7f7
+fffffff0f0f0ffffffffffff000000080808f1f1f1fcfcfcf9f9f9fffffff6f6f6010101
+151515fffffffcfcfcfbfbfbfbfbfb060606050505f9f9f9f6f6f6f8f8f8ffffffe7e7e7
+010101000000f9f9f9fffffff3f3f3e4e4e4fffffff5f5f5e8e8e8ffffffeaeaeaebebeb
+f9f9f9fbfbfb131313070707f2f2f2fffffff5f5f5fefefefffffffffffff5f5f5f6f6f6
+090909000000fffffff6f6f6ffffffe4e4e4090909000000ffffffe6e6e6fbfbfbfefefe
+ffffffdcdcdc0d0d0d181818f7f7f7fbfbfbf8f8f80101012a2a2acfcfcffefefef6f6f6
+e9e9e9fffffff8f8f8efefefffffffededed0000000f0f0ffefefefdfdfdfffffff3f3f3
+e9e9e9f4f4f4dfdfdffbfbfbf5f5f5f8f8f8fffffffdfdfdfffffffefefeffffffffffff
+fcfcfcfffffffcfcfc020202000000fffffff5f5f5ffffffe9e9e9fcfcfcf1f1f1060606
+010101fbfbfbfffffff3f3f3ffffff0000000d0d0df7f7f7fdfdfde6e6e6f6f6f6fcfcfc
+ffffffffffffffffffe9e9e9ffffffe5e5e5ffffff000000000000ffffffefefefffffff
+ecececffffffe8e8e80808080f0f0febebebf8f8f8070707000000fffffff5f5f5ffffff
+fffffff3f3f3f3f3f3fcfcfc0303030e0e0ee4e4e4ffffff181818f9f9f9fdfdfdf9f9f9
+f7f7f7ffffff000000070707f7f7f7fafafafffffffafafa050505000000fcfcfcfefefe
+fdfdfdfbfbfb0101010a0a0afcfcfcfffffff5f5f5f5f5f5fefefe090909000000ffffff
+fffffff5f5f5f7f7f7fdfdfdfefefef5f5f5080808000000fffffff9f9f9ffffffe9e9e9
+141414040404d1d1d1fffffffefefef4f4f4fdfdfdfefefefffffff1f1f1f3f3f3000000
+000000ffffff000000151515f2f2f2fffffff9f9f9f5f5f5ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff1f1f1fffffffbfbfbfefefeffffffedededffffff0e0e0e000000fffffff7f7f7
+f1f1f1fdfdfdf9f9f9fbfbfb020202151515f1f1f1fffffff9f9f9f5f5f5ffffff000000
+000000f9f9f9fffffffefefefefefe000000050505fefefef6f6f6fffffffafafafcfcfc
+f2f2f2000000121212f9f9f9fefefefafafafffffffcfcfcfffffff2f2f2fffffff6f6f6
+fdfdfdfcfcfc010101000000fffffff8f8f8fcfcfcfafafafbfbfbffffffeeeeeef6f6f6
+0a0a0a101010fcfcfcfefefef6f6f6ffffff000000000000ffffffeeeeeef1f1f1fefefe
+fffffff5f5f50b0b0b000000fefefeecececfffffff4f4f40202020e0e0effffffefefef
+fdfdfdf6f6f6f3f3f3ffffffe5e5e5f3f3f3ffffff080808000000f9f9f9f6f6f6fcfcfc
+fffffff0f0f0ffffffeeeeeefffffffffffff9f9f9ffffffecececffffffe8e8e8ffffff
+f0f0f0ffffffffffff000000000000fffffff7f7f7fffffffffffffbfbfbd4d4d4101010
+000000fdfdfdfffffffafafaf4f4f4f8f8f8101010000000f4f4f4fffffffafafaffffff
+e0e0e0e9e9e9fffffff9f9f9fffffffffffff7f7f7000000050505fefefef7f7f7efefef
+fffffff5f5f5070707030303fefefefbfbfbffffffeaeaea050505131313eeeeeeffffff
+f9f9f9fdfdfdf8f8f8010101090909f6f6f6fffffff5f5f5000000ffffffebebebfdfdfd
+ffffffeaeaea020202222222f2f2f2fffffff8f8f8fcfcfc020202020202ffffffffffff
+fefefefbfbfb070707131313fffffff3f3f3f1f1f1fffffffcfcfcfcfcfc010101060606
+fffffff2f2f2f1f1f1fffffff3f3f3000000060606f4f4f4f7f7f7fffffff8f8f8e0e0e0
+111111000000fffffffffffff6f6f6fffffff3f3f3fcfcfcf5f5f5efefeffffffff3f3f3
+000000000000080808f2f2f2f4f4f4fffffff7f7f7fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+eeeeeeffffffeaeaeafcfcfcfffffff5f5f5eeeeeeffffff0000000e0e0ef3f3f3ededed
+ffffffffffffecececffffff000000000000fffffffffffff9f9f9ffffffdcdcdc383838
+000000fffffff0f0f0f8f8f8ffffff0303030d0d0d000000f0f0f0fffffff7f7f7f8f8f8
+ffffff030303070707000000f8f8f8f5f5f5fefefeebebebfafafa000000e2e2e2fefefe
+d5d5d5ffffff000000050505ffffffebebebf4f4f4fbfbfbfefefefffffff1f1f1ffffff
+010101000000fffffff2f2f2f8f8f8f4f4f4070707090909000000fffffffafafafdfdfd
+0000000e0e0e101010262626ecececffffffecececffffff0b0b0b000000000000ffffff
+e9e9e9ffffffececec060606f8f8f8fffffff0f0f00000001111110b0b0bfefefeffffff
+fbfbfbfffffffafafa0b0b0be9e9e9fafafafffffffafafafffffffefefeffffffeeeeee
+f7f7f7efefefffffff090909161616eaeaeaf2f2f2f1f1f1fdfdfdffffffeeeeee060606
+0e0e0e080808ffffffecececf6f6f6f7f7f7060606080808121212f5f5f5fafafaeeeeee
+ffffffffffff0f0f0fe7e7e7dadadaeaeaeaf3f3f30f0f0f0d0d0df7f7f7f8f8f8ffffff
+e5e5e5141414050505f1f1f1edededffffffd5d5d5fffffff6f6f60000002f2f2fffffff
+ebebebffffff000000060606f6f6f6f1f1f1e6e6e6ffffff090909efefeffffffff9f9f9
+f5f5f5181818040404d5d5d5ffffffe5e5e5ffffffffffff070707000000fffffff7f7f7
+f0f0f0ffffff0000000d0d0d0d0d0de6e6e6ffffffffffffffffffebebebffffff121212
+000000fffffffefefef1f1f10404041b1b1be8e8e8fffffff7f7f7e8e8e8eaeaeaffffff
+000000212121ffffffeeeeeefdfdfdefefeff0f0f0f5f5f5fffffffffffff4f4f4fdfdfd
+141414000000030303fffffff0f0f0e6e6e6ffffffe5e5e5ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffddddddfffffff0f0f0fefefeffffff0e0e0e0707070000000d0d0d060606111111
+ffffffeaeaea0c0c0c0000001313130303030b0b0b000000f0f0f0f5f5f5141414000000
+050505000000050505e9e9e9f0f0f0ffffff000000191919090909000000050505fcfcfc
+e4e4e4fffffff1f1f10f0f0f0c0c0c1f1f1f000000000000030303fffffff3f3f3ffffff
+0101010707070000000d0d0d000000101010f5f5f5fffffffffffffcfcfc131313000000
+0f0f0f0000000707070c0c0cfffffffbfbfbf8f8f81919190000000000001b1b1b020202
+fffffffdfdfd0e0e0e0000000d0d0d030303e8e8e8f9f9f9fefefe020202030303000000
+000000000000000000fafafaf7f7f7dbdbdbfafafafefefef8f8f8000000131313000000
+000000070707000000fffffffefefefcfcfcfffffffafafaeaeaeaedededffffffffffff
+f7f7f70d0d0d000000090909060606000000030303fffffffffffff6f6f6f6f6f6ffffff
+0000000e0e0e000000060606fffffffbfbfbebebebffffff000000060606080808000000
+0d0d0d000000fffffffcfcfcffffffcececeffffff000000050505080808010101000000
+252525000000f6f6f6fffffff1f1f1eaeaeafffffff0f0f0fffffff7f7f7000000171717
+090909000000121212f8f8f8ffffffefefeffefefefdfdfd000000080808000000000000
+0000000f0f0ff7f7f7f4f4f4fffffff5f5f50000000808080000000404040a0a0a000000
+fcfcfcfefefeffffff0101010d0d0d070707090909010101eaeaeaffffffecececeaeaea
+050505000000000000000000000000f2f2f2fefefef2f2f2ffffffefefef171717050505
+000000101010000000040404ffffffe1e1e1ffffffffffffe8e8e8f1f1f1fffffffbfbfb
+090909191919000000f6f6f6fffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+e1e1e1fffffff0f0f0fffffffffffffbfbfbeeeeeeffffffffffffefefeffffffff4f4f4
+f5f5f5fffffff9f9f9fffffff1f1f1f3f3f3fffffff0f0f0ffffffffffffedededffffff
+fbfbfbfffffff6f6f6fffffff8f8f8fcfcfcfdfdfdf6f6f6ffffffffffffffffffeaeaea
+fffffff4f4f4ffffffecececf9f9f9f0f0f0fbfbfbfcfcfcfffffff2f2f2fffffff3f3f3
+fffffff9f9f9fffffffefefefdfdfdf0f0f0fffffff8f8f8f3f3f3ffffffeeeeeeffffff
+fffffffffffff5f5f5fafafaefefeffffffff0f0f0efefefffffffffffffebebebffffff
+efefeffffffff5f5f5ffffffffffffe8e8e8fffffffefefef3f3f3fafafafefefefbfbfb
+fffffff8f8f8fffffffafafafffffffffffffffffffffffff6f6f6fffffffbfbfbfdfdfd
+ffffffffffffffffffe3e3e3f9f9f9f1f1f1f2f2f2fbfbfbfffffffffffff6f6f6f6f6f6
+fffffff8f8f8fffffffffffffffffffefefeecececfffffff1f1f1f6f6f6ffffffe1e1e1
+ffffffffffffffffffdcdcdcfafafaebebebfffffffdfdfdfffffffefefefffffffefefe
+f5f5f5f8f8f8fffffffffffff1f1f1f7f7f7eeeeee111111090909fafafaf0f0f0ffffff
+f6f6f6f3f3f3f8f8f8f9f9f9f1f1f1ffffffe8e8e8fffffffbfbfbffffffffffffffffff
+f7f7f7f9f9f9f4f4f4f3f3f3fcfcfcf4f4f4efefeffffffff6f6f6ffffffefefefffffff
+fafafaf8f8f8fffffff9f9f9eaeaeafdfdfdfffffffffffffefefeffffffe6e6e6ffffff
+f9f9f9f0f0f0f9f9f9fefefefcfcfceaeaeafdfdfdfdfdfdfffffff4f4f4ffffffeaeaea
+ebebebfffffffffffffffffffffffff8f8f8f5f5f5fffffff3f3f3fffffff0f0f0ffffff
+fffffffffffffffffffefefef5f5f5fefefee8e8e8eaeaeafdfdfdfefefefffffff7f7f7
+f0f0f0000000fffffffffffff6f6f6ffffffeeeeeeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff4f4f4f8f8f8f7f7f7f0f0f0fcfcfcf9f9f9fefefefcfcfcf8f8f8f8f8f8ffffff
+fdfdfdfffffffdfdfdf9f9f9fffffffdfdfdeeeeeefafafaf7f7f7eaeaeafffffffdfdfd
+f7f7f7f8f8f8f7f7f7ffffffffffffedededfffffffffffffefefefcfcfcfafafaf0f0f0
+eaeaeaffffffe9e9e9fffffffffffff9f9f9fffffff1f1f1fbfbfbf1f1f1fffffffcfcfc
+f9f9f9f4f4f4fffffff0f0f0fffffffffffff5f5f5fffffffffffff7f7f7ffffffffffff
+ebebebfdfdfdf5f5f5ffffffffffffffffffffffffffffffffffffdfdfdfffffffffffff
+fbfbfbfffffffcfcfcfffffffffffffefefef3f3f3f4f4f4fffffff8f8f8f8f8f8ffffff
+e9e9e9f1f1f1ffffffe5e5e5fffffff9f9f9f3f3f3fbfbfbfefefefafafafdfdfdffffff
+f3f3f3fafafafbfbfbfefefefffffff1f1f1fffffff9f9f9fbfbfbfbfbfbf6f6f6ffffff
+f0f0f0fffffffdfdfdfdfdfdf5f5f5fcfcfcfffffff0f0f0f8f8f8f9f9f9ffffffffffff
+f8f8f8fdfdfdeeeeeefffffffefefefefefefffffffdfdfdf2f2f2f3f3f3fffffff3f3f3
+ffffffffffffe1e1e1f5f5f5f2f2f2ffffffffffff000000101010fefefefdfdfdeaeaea
+edededffffffeaeaeaf4f4f4fffffffbfbfbfffffff7f7f7f6f6f6fefefefbfbfbf0f0f0
+fefefefffffffffffffffffff8f8f8fbfbfbfffffffafafafffffffffffff9f9f9f6f6f6
+fbfbfbfefefeffffffefefefffffffffffffefefefeeeeeef7f7f7f8f8f8fffffff4f4f4
+fffffffcfcfcfffffffafafafffffffffffffafafafefefefefefeffffffdbdbdbffffff
+fffffffdfdfdeaeaeafbfbfbeaeaeafffffffbfbfbfdfdfdfdfdfdfefefefffffff8f8f8
+fffffff8f8f8f4f4f4fbfbfbfffffffffffffffffffffffffbfbfbf9f9f9f7f7f7f8f8f8
+ffffff000000f7f7f7f8f8f8ffffffffffffedededfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcf4f4f4fefefefffffffbfbfbeeeeeefffffff2f2f2f5f5f5fffffffefefeffffff
+edededf0f0f0f7f7f7fdfdfdf5f5f5f9f9f9fffffffffffffcfcfcf8f8f8f3f3f3ffffff
+fffffffffffff4f4f4fbfbfbfffffff8f8f8fafafae1e1e1f4f4f4fffffffffffff8f8f8
+fffffffbfbfbfffffffdfdfdfafafafffffffffffffafafaeeeeeefffffffefefeefefef
+f6f6f6fffffff7f7f7f3f3f3ffffffeeeeeef3f3f3fbfbfbfbfbfbecececebebebffffff
+f4f4f4fafafaffffffebebebffffffe9e9e9fffffff5f5f5fdfdfdf1f1f1ffffffe7e7e7
+fdfdfdfffffff8f8f8eeeeeefcfcfcfffffff5f5f5ffffffffffffe5e5e5fdfdfde1e1e1
+fffffff5f5f5ddddddfffffffffffff3f3f3fffffff3f3f3fffffff9f9f9fefefeededed
+ffffffeeeeeef3f3f3fffffff6f6f6f8f8f8f1f1f1fffffffcfcfcfffffffefefee9e9e9
+fefefefffffff7f7f7fefefefcfcfcfffffff5f5f5fefefeffffffffffffe7e7e7fcfcfc
+fffffffbfbfbfffffffcfcfcf9f9f9fffffff2f2f2f9f9f9ffffffefefeffffffffefefe
+eaeaeafbfbfbf3f3f3fefefefefefef6f6f6f8f8f80303030e0e0ee8e8e8f1f1f1ffffff
+fffffff4f4f4ebebebfffffffffffff4f4f4fffffff9f9f9f4f4f4fffffff8f8f8fcfcfc
+f8f8f8fffffff8f8f8f9f9f9fffffffbfbfbfefefef0f0f0fefefefefefeffffffffffff
+fbfbfbeeeeeefdfdfdfffffff3f3f3e4e4e4e8e8e8fffffffffffff2f2f2fffffff2f2f2
+f9f9f9f4f4f4f4f4f4fffffff2f2f2fffffff4f4f4f0f0f0f4f4f4fffffff5f5f5f9f9f9
+ffffffeeeeeef2f2f2fffffff2f2f2fffffffffffffffffffdfdfdf7f7f7fcfcfcf6f6f6
+fdfdfdffffffebebebf9f9f9f0f0f0e1e1e1fdfdfdfffffff6f6f6f6f6f6edededffffff
+000000fffffffffffff3f3f3e0e0e0fdfdfdfffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffff0f0f0fffffff6f6f6efefeffffffff6f6f6fffffff7f7f7f5f5f5ffffff
+f5f5f5fffffffffffffffffffdfdfdf3f3f3fffffff1f1f1ffffffffffffecececfcfcfc
+fcfcfcfcfcfcfcfcfcffffffebebebffffffeeeeeefffffff4f4f4fffffffffffff2f2f2
+fffffff5f5f5fcfcfcedededffffffe5e5e5fffffffffffffffffff4f4f4fafafaffffff
+fffffffefefee9e9e9f9f9f9fffffffffffffffffffffffffffffffffffff7f7f7ffffff
+fffffff6f6f6ffffffeaeaeafffffffefefef7f7f7fffffffefefeffffffedededffffff
+fafafafffffffcfcfcfdfdfdfffffff7f7f7fffffffefefef0f0f0fffffffafafaffffff
+f1f1f1ffffffffffffe3e3e3fffffff9f9f9fffffff9f9f9efefeff2f2f2f2f2f2ffffff
+f8f8f8e9e9e9ffffffe8e8e8efefefffffffffffffffffffffffffe3e3e3ffffffffffff
+f0f0f0e8e8e8fffffff8f8f8fdfdfdfdfdfdffffffe1e1e1fffffffefefefffffff9f9f9
+fbfbfbfffffffafafaf0f0f0f9f9f9fffffffdfdfdfdfdfdfffffffffffffefefef7f7f7
+fffffff1f1f1ffffffffffffecececfffffffefefe000000000000fffffffffffffdfdfd
+ebebebfcfcfcffffffecececf8f8f8f8f8f8fffffffefefefffffffbfbfbf7f7f7ffffff
+fffffff1f1f1ffffffffffffefefeffffffffcfcfcfffffffffffff4f4f4edededf9f9f9
+f4f4f4ffffffffffffffffffffffffffffffffffffeeeeeefffffffcfcfcebebebffffff
+fffffffffffffcfcfcf3f3f3fffffff3f3f3fffffffffffffdfdfdeeeeeefafafaffffff
+f8f8f8f8f8f8ffffffecececfffffffffffffbfbfbf2f2f2f8f8f8fffffffffffffbfbfb
+f8f8f8ffffffeaeaeafffffffbfbfbffffffe5e5e5edededf4f4f4eeeeeeffffffe1e1e1
+1d1d1df5f5f5fffffffefefeffffffeaeaeaf6f6f6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+02000b010005000100000200040500fcfcfefffefffefdfffffefffffffdfffffbfffffb
+fffffdfffffffffffffffffffffffbfffffbfffffdfffffffffffffefffffefffffeffff
+fefffffefffffefffffefffdfefffafefffafefffdfefffffefffdfefffffffffffeffff
+fffefffefffffefffdfefffbfefffffefffdfefffbfefffafefff8fefff8fefffbfefffd
+fefffffefffffffefffefffffffffdfefffbfffffffefffffffffffefffffffffffeffff
+fffefffefffffffffffefffdfefffffefffdfefff8fefff6fefffafefffbfefffffeffff
+fefffffefffdfefffafefffbfefffffefffffefffffffefffffdfffffefffffffdfffffb
+fffffffffefffffefffefffffffffffefffbfffffbfefffbfffffafffffbfffffdfffffd
+fefffbfdfffcf2f3f5fcfdfff0f1f5feffffe3e5e4fefffbfefff8fdfff9fcfefdfeffff
+fdfcfffefffffbfbf9f6f8f5feffffe6e8e5fefff8fefff8f0f2edf1f3f2fefffff6f7fb
+fefffff6f8f7fcfdfffdfefff3f3f3fffffdffffffeef0effefffff1f3f0fafcf7fefffb
+f4f6f1fefffbf2f4f1fefffdfdfffefeffffeeeff1fefffff7f8faf3f4f6fefffff2f4f3
+feffffe9ebeafefffffeffffedefeefefffff4f6f5f4f6f5fcfefdf0f2f1fefffff1f3f2
+f8faf9fefffff5f7f6fefffffefffff9fbfafefffffafcfbfdfffee3e5e4fefffff8faf9
+fdfffef8faf9fcfefdf8faf9fdfffef4f6f5fefffffcfefdfefffffbfdfcfcfefdfeffff
+f7f9f8fafcfbfefffffdfffef0f2f1feffffe2e4e3fefffffefffff7f9f8fefffff1f3f2
+fdfffefeffffeff1f0f7f9f8fefffffefffff7f9f8fbfdfcf1f3f2fefffff5f7f6f0f2f1
+fefffffefffffdfffefefffffefffffefffff1f3f2feffffeff1f0fefffff6f8f7feffff
+fefffff7f9f8eff1f0fefffff7f9f8fafcfbfbfdfcfefffffefffff7f9f8fbfdfcfeffff
+f7f9f8eaecebfefffff8faf9fefffffeffffeaeceb050706030504fbfdfceff1f0fcfefd
+f9fbfafeffffeaecebeceeedf8faf9fefffff5f7f6fefffffefffff4f6f5feffffeceeed
+f7f9f8fefffff2f4f3fdfffefefffffcfefdf1f3f2fefffff1f3f2fefffffefffffafcfb
+fefffffefffff6f8f7f3f5f4f7f9f8fdfffefefffffcfefdf3f5f4fefffff7f9f8feffff
+f5f7f6fafcfbfcfefdfefffffcfefdfeffffedefeef4f6f5fefffffefffffefffffbfdfc
+fdfffefbfdfcf3f5f4fefffffbfdfcebedecfefffff8faf9fefffff6f8f7fcfefdf8faf9
+fefffffeffffedefeef3f5f4fbfdfcf3f5f4eef0effeffff0b0d0c030504f5f7f60c0e0d
+f9fbfaf4f6f5eceeedfefffffefffffefffffefffff7f9f8fefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffffffffffffffffffffffefffeffff
+fefffffefffffefffffefffd000000000002010004010004010002
+00001b00000c030900000600030500fbf9fefefafff7f2fffffdfffdfcf8fffff4fbfcee
+f6f7f1f9f9f9f6f7fbfefffffefff3fefff2fcfef9fcfdfffcfcfffbfefffbfffffbffff
+f6fbfff7fcfff7fdfbf7fff4f8ffeaf8ffeafafff6fafffbfcfffbfcfffdfdfefffafdff
+fcfcfffafdfffbfff7fbfff5f8fefaf8fff8f8fff1f8ffeaf8ffe7f8ffe9f6fff0f8fff7
+fafefdfafdfffcfcfffafdfffcfff6fafff4fcfefbfafefffdfefffbfffffdfffcfbfffe
+fdfdfffbfefffdfffefbfffaf8fdf9f8fef4f8ffe6f9ffe3f9ffeaf9fff3f9fdfff9fcff
+fbfffffbfff9fbffeefbfff2fbfefffbfdfffbfdfffdfbfff9f2fff9f4fffaf9f4fffff6
+fffefffefbfffefcffeceefdfcfefdfafff4fcfff2fafff1fcffeffcfff1fcfff8fcfff8
+f8fef0f7fff4f7fcfff7fbfff8fafff9fcfffafefffbfff5fcffecfcffedfcfffffcffff
+fefdfffcfffffefffbfcfffaf9fffdf9fff9f9ffeaf9ffe8f9fff4f9fffffafcfffafcff
+f3f7f8eaefebfcffffe3e7eafefffdf0f2edfafbfffcfffff6fffae2ece1f9fff6f9fff4
+f9fff4ecf7e7f9fff6f9fff9f9fffdf9fefffafdfffafdfffafdfffafefffafefffafefd
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefafefdfbfffefcfffffcffff
+fafefdf7fbfaf4f8f7f2f6f5f0f4f3000100000100060a09080c0b010504040807fbfffe
+fbfffef5f9f8f0f4f3f1f5f4f6faf9fcfffffcfffffcfffffbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefafefd
+fafefdf9fdfcf9fdfcf8fcfbeff3f2f9fdfcfcfffff0f4f30001000e1211000100f5f9f8
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffefffff9f7fafcf9fffefcfffafcff
+f9fdfff7fffff9fffbf9fef800000001000503000c04000c030005
+00002000010d010900000800030400fef9fffffbfffef5ffede7e9fffff4fefde9ffffec
+fffff3fbfbf3f6f7f2faf9f5fffdf1fefceffcfcf2fcfbf7fbfafffbfafffbfdfaf9fef7
+fcfff8fcfff6fcfff6fcfff3fcffedfcffeffefff8fefffbfffffafffff8fffff8fefff9
+fefefcfffffbfefff4fefff4fefffafcfff8feffeffcffeafeffeafcffecfcfff4fcfff8
+fefff6fffffafffefffffffffffff4fffff1fffff6fffff8fffff8fffff4ffffedfffff1
+fffffdfffffffffffbfffffafefff8fefff3feffe6feffe6feffeffefffafefffffeffff
+fefff8feffecfeffdffeffe3fefff8fefffffefffffffdfffffafffffcffffffeffcfce4
+edece7f9f6fdf6f4fffefffffffff3feffecffffedfffff1fffff3fffff4fffff6fffff3
+fdffecfaffebfcfff2fcfff6fcfef9fdfffcfefffafefff3faffe0fbffe0fbfdf0fbfbfb
+fbfafffbfbf9fbfdeffbfeebf9fcf1f9fdeef9ffe3f9ffe3f8fcedf8fbf4f8f9fbf8faf7
+fefff3f6faebfafbf6f0f0eefffff6fffff4fffff8fffff8fcfff8fbfff6f2fbeaebf4df
+f7ffe9f8ffe9fcffeff8ffeffcfff8fcfffdfefffffefffffefffffefffdfefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafdfff7fbfef7f9fcf3fefffaf5f8effefffaf1f4ebf0f3ecfefff8f2f5eefefff8
+fefffafbfef5f7faf3f8fbf2fdfff9fefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafdfff7fefffaeef1e8eff2ebfefff8edf0e9fefff8d7dad3fdfff7
+fafdf6fafdf4fafdf6fafdf4fafdf6fafdf4fafdf6fafdf4fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafffff6fffef2fffff6fffefffcfdff
+f8fdfff7fffff8fff9fbfff700000003000404000e040010040009
+000017000207000800000700020300fffbfcfffcfffff8f9ffffedfffee3fcf8dbffffe6
+f3f2d6f1efd6ffffecfffbedfffcfbfffcfafffeecfffeebfffdf5fffdf7fffef5ffffeb
+feffd7feffd3fefedcfefce5fefaf1fef9f6fdf8f4fdf8f2fff8f0fef9e5fefcd6fdfcd0
+fdfad7fefae1fff9ebfff8f0fff9effefaeefffbe7fefbe8fff9f1fff8f6fff7f8fff9f1
+fefde1fefddefefbeafefaeffefbeafefbe8fefce7fefddffdfed4fdffcdfdffc6fdffcb
+fdfcddfdfae9fdf9eefdf9eefffaeafffbe8fffaecfff9f3fff6fefff6fffff7fcfff9ef
+fefbdcfefeccfeffc1feffc5fefbd8fef9e3fef9e6fef8eafcf6e8fdfbe6ffffdcffffda
+ffffdbffffe4f1efd8ffffe3fdfdd7fcfed7fdfbe2fdf9eefdf7fbfdf7fbfdf9eefdfbe4
+fefaddfcfcd6fdfdcbfdfdc9fdfcd0fefbdafffae7fffbe8ffffe2ffffdcffffe3ffffe6
+ffffe8ffffe8ffffe1ffffdfffffdfffffe2fffeebfffdeffffdedffffe9ffffdeffffd7
+ffffd3ffffdcfffce8ffffeffdf8e2fffbdefffeddfaf6d9e8e7d5fffff3f6f5e3ffffea
+ffffe6f2f3d3f9f8d9ffffe6fefce7fefbeafffaecfffaeefffaeefffaecfffbe8fffbe7
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffbe8fffce8fffdeafffde9
+fffdeafffbe7fffae7fdf8e4f6f1deffffecfaf5e2ffffecffffedf5f0dcfffbe8ede8d4
+fffdeafffae6fcf7e4fdf8e4fffbe8fffeeafffdeafffbe7fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffce9fffce8fffbe8fffbe7
+fffbe8fffae6fffae7fffae6fffae7fffae6faf5e2f0ebd7ffffedfffbe7ffffedfbf6e2
+ffffecffffebffffecffffebffffecffffebffffecffffebfffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6fffae7fffae6
+ffffecffffebffffecffffebffffecffffebffffecffffe3ffffd6ffffd5ffffe4fcffee
+f9fff5f9fff8fafff5fefff601010003000004000b04000c040009
+000013000106010600010500050300fffbf2fffeebfbf7d4ffffccf9f8b5f6f4b7fdfcbc
+ffffb9ffffb9ffffb5f4f2a8fffabffffabdfffdb1fffdb1fffbbafffabefffabefffab6
+ffffaaffffa7ffffafffffb9ffffcaffffd0ffffcdffffcafffec7ffffbeffffabffffa2
+ffffa2ffffaaffffbbffffc2ffffc2ffffc0ffffbcffffc2ffffcefffed1fffeccffffc2
+ffffafffffabffffb6ffffbdffffbfffffbdffffb9ffffb2ffffa8ffff9fffff9affff9d
+ffffa9ffffb2ffffbbffffbdffffbbffffbdffffc4ffffcbfffed1fffed1ffffcaffffc0
+ffffb0ffffa7ffffa3ffffa5ffffaeffffb5ffffb7ffffb8ffffb7ffffb8f9fda6ffffac
+f8fda3ffffaef2f59cffffa8ffffa9ffffb0ffffc5ffffd5fffce3fffddcffffc0ffffb7
+ffffbfffffb8ffffa0ffff97ffff9cffffa9ffffbbffffc2fffdb3fffeacfffeaaffffab
+fffeb0fffeb0fffeadffffabfffeaafffcb4fff8c6fff8c6fffbb8ffffabffff9dffff99
+ffffa0ffffa6f8f5a4ffffb6f7f3a9fdfaadffffb8ffffb8ffffcafffec7fbf7baf5f2ad
+ffffb6fffeacffffacfbf9a6ffffb4ffffb8ffffbbffffbdffffbdffffbbffffb9ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb9ffffbaffffbb
+ffffbbffffbaffffb9ffffb9ffffbafffdb3ffffb6fffcb2fffcb2ffffb5fffbb1ffffb8
+ffffbbffffb9ffffb8ffffb9ffffbbffffbbffffb9ffffb7ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb9ffffb9ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8fffdb3ffffbcffffb7ffffbafffeb4f0eaa0ffffb6fffeb4
+fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8ffffb8
+fffab0fffab0fffab0fffab0fffab0fffab0fffab0fffbaaffffa2fdfda7fbfbbffcfed7
+fcffebfbfff3fbfff2fefff3010100040000060005040009030009
+000013000007010400010400070400fefae1fdfac5f3f39dd8dc64f1f46ffeff85e9ec6b
+ebf159e7f047d7e230ffff51f4f93df7f93cf7f842f7f747f7f64ef4f454f2f256f1f057
+e8e84ae8ea47e9ec47eaed48ecee4fedee54ecf055edf156eaea54eaea54eae950eaec43
+ebf031ecf22eedf13af0f044efee44efee46f0ee44f0ed4af1ea54f1ea53f3ec46f0ef3d
+ecf03bebf03bebf03cebef42ebee47ebed4aebee49ebee47ecf044ecf043ecf041ecf13d
+ecf238ecf236ecf238ecf13cf0f044f0ef45f0ef45efee44efef43eeee42eeee42eeed45
+edeb49edea51ede858ede858edea51edea4dedeb4bebec49dae33cf1fd53e2ee44f4ff56
+e7f34be6ef44f3fe4af8ff4aeaf43beaf14bebea6bebe77bede67eede96cedf144edf142
+f0e967efe866efee44eef132eef033eeef3cefed4defec53f4f250f4f34bf5f346f5f549
+f6f251f6f452f7f44df7f44df6f050f6ee5bf7ec6ef7ed67f7f54bf7f83af8fa35f7fa3b
+fafa4cf2f449f3f740f7fb46ffff5bf4f559efef59dad94bebe863e3e15affff7ae6e74d
+edf049fdff52ffff56ebef3aecef3cecef40eeed43eeed45eeed45eeed45eeed43eeed43
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44eeed43eeed43efee44efee44
+f0ef45f0ef45efee44efee44f0ef45eceb41fffe54f3f248f4f349ffff56efee44f3f248
+f0ef45efee44efee44f0ef45f1f046f0ef45eeed43eceb41efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44eeed43eeed43eeed43eeed43
+eeed43eeed43eeed43eeed43f4f349ebea40ebea40f8f74dfdfc52faf94ff2f147f5f44a
+f6f54bf6f54bf6f54bf6f54bf6f54bf6f54bf6f54bf6f54befee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44efee44
+f6f54bf6f54bf6f54bf6f54bf6f54bf6f54bf6f54bf6f54ff6f55cf2f26ef4f597fcfebf
+ffffe1ffffeffefff0fffff1030100040000060000040005030009
+000010000007010300010300080400fef9d9faf8adecf078f8fe60e3e941f5f561f8f95f
+eff637f7ff2ceefb18ddea00f4fe09f8fd0bf9fb1bf9fa20f8fa1df7f91cf5f61ff3f321
+f4f627f4f626f4f920f6fc20f7fc23f8fe28f9fe2ef9fd34f5f835f6f835f6f930f7fb22
+f8ff0df9ff07fcff0ffdff16fcfe17fcfc1efefa25fff92bfff929fff924fffb19fffc17
+fbfd1ef8fe1ef9ff17f8ff17f9fe1df8fe1ef9fd20f8fe22fafe25f9fe26fafd28f9ff23
+faff16f9ff0efaff0cfaff0ffdff1bfeff1ffdfe1cfcfe15fcff12fbfe11fafc15fafa1e
+fbf92afbf734fbf53ffbf53dfbf82ffbf928fbf928f8f931faff46eef93de6f423ecfb22
+ebf822ecf71df9ff22e9f50df8ff1cf8fe2af9f846f9f653faf64dfafa3afaff16faff1a
+fdf844fdf646fcfb24fcfe14fbfd14fbfc1afcfb25fcfa2cf2f022f2f021f2f11df2f220
+f4f12af3f228f5f51bf5f41df6ee27f6ed30f7ed36f7ef2cf8f514f8f907f6fa05f6f90c
+eeef17f0f31cfeff1eecf30ff8fc2bf3f637eded41fefd57eeeb44dddb2efdfc42f4f52f
+f4f722ecf111f9fc15f8fc11fbff15fbfe17fcfd1bfcfd1dfcfc1efcfc1efcfd1dfcfd1d
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efcfd1dfcfd1dfcfd1dfcfd1d
+fcfd1dfcfd1dfcfd1dfdfe1effff22fcfd1deced0dfcfd1dfcfd1deced0dfbfc1cffff21
+fcfd1dfdfe1efdfe1efdfe1efdfe1efdfe1efcfd1dfbfc1cfdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efbfc1cfbfc1cfbfc1cfbfc1c
+fcfd1dfcfd1dfcfd1dfcfd1dffff20f4f515ffff29e8e909f0f111f0f111f4f515fbfc1c
+f6f717f6f717f6f717f6f717f6f717f6f717f6f717f6f717fdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+fdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1efdfe1e
+f7f818f7f818f7f818f7f818f7f818f7f818f7f818f6f71ff1f22cebed44f0f076fefdad
+ffffdaffffedfdfeeefffff2030100040000060000040000030007
+000007000002000100030100090200fff9dcfdfba8f0f370dde339f9fb4fede75ffef96a
+fafa40e7ec16ffff28f8ff19fcff18fefe22fffc33fffc31ffff1efefe10fcfd0cfafa0c
+f8f70ff6f80ff6fb09f6fb09f4fb0ff5fa19f5f727f4f630f2f431f3f42af3f815f6fc08
+f6fd00f9ff00fcfe03fdff06fcfc04fdf912fff32bfff32ffff61bfff712fff712fff718
+fdf823faf922fcfc12fafe09fcfd09fafe09fcfd09fafe0bfcfc10fafc15fcf91efafa1c
+fcfc0efaff05fcfe03fcfe05fefd0dfefc11fdfb10fcfb0dfcfb0afbfa0cfaf810faf716
+fbf817fbf71cfbf527fbf523fbf911fbf90efbf719f8f337fefa75cfd048ffff40e8f50f
+e9f50df7ff19feff1ef8fb16f9fb14f9f91bf9f729f9f729fbf81dfbfb11fbfc08fbfc0b
+fdf822fdf822fcfb0dfbfb05faf908faf90bfaf911faf81af8f423f9f429f9f429f8f52e
+fbf336faf72cfdfc14fefc14fef22cfff22ffff61bfffa12fffb13fffd0effff07ffff0c
+fefc1bfdfd23fcfe1fe2e60debec22ffff49d7d13bfffe70fff75affff60dbd21bf6f028
+ffff2afcfb15faf909fcfc08fdfd07fdfd09fefb0cfefb10fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fdf911fdf911
+fcf810fdf911fdf911fdf911ebe700ffff20f9f50dfbf70ffbf70ff8f40cffff1eeae600
+fdf911fefa12fefa12fefa12fdf911fdf911fefa12fffb13fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fcf810fcf810fdf911fdf911
+fefa12fefa12fffb13fffb13faf60ef4f008ffff1af8f40cffff1cffff18fdf911f2ee06
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12fefa12
+fefa12fefa12fefa12fefa12fefa12fefa12fefa12fdfb13faf819f1f12ff4f166fffda2
+ffffd8fffeedfcfcf2fefef4030100040100060000040000030004
+000100000100000000030000080000fffadefffea7f5f86df2f745ffff581f1500271e00
+f5f33efeff2ee9ed12fafc1ff7f71df8f625f9f532fcf62efbfa12fafa04f7f701f5f501
+fdfc0cfbfc0bf9fd0af7fb11f4f724f3f333f1f03df1ef44f2ef48f2f13ff3f42af3f817
+f6fb09f8fc05fcfd0bfdfe0dfdfa0bfdf816fff32bfff329fff711fff908fff70ffff716
+fff921fefa1ffffc11fefe08fffd08fefe06fffe06fefe08fdfb0afcfa0ffdf816fcf914
+fdfb0afcfd02fdfc01fcfd02ffff0bfefd0dfefd0ffdfc0efcfb0dfbf910faf714faf714
+faf80ffaf716faf327faf426faf80ffaf908faf712f7f03d2218002a2100ecef3ef2fa19
+f0f90af9ff0eeff205fdfd11fbfa0cfbf90efcf813fcf811fcfa07fcfb03fbfb05fbfa09
+fdfb12fcfa0ffbfb03fafa04f9f70ef9f615f8f618f9f426f6ed3af6eb43f5ed42f6ee41
+f7ef46f8f238f8f81efbf918fcf126fff023fef70bfff903fff90dfefb0efdfd07fdfe0a
+f9f812f7f91cf9fa20fdfe36fffc55ece556362f00201800291e00fff94ce6dc22ffff35
+f3ef12fbf90efffe09f7f600fffe03fffe03fffd06fffd08fffc0afffc0afffb0cfffc0a
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffc0cfffc0afffb0bfffa08
+fef909fef907fffa0afffa08fdf808fdf806fdf808fffd0bfffe0efef907fffb0bfffc0a
+fffa0afffb09fffb0bfffb09fffa0afffb09fffd0dfffe0cfffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffb0bfffb09
+fffc0cfffc0afffd0dfffd0bfffc0cfffb09f3ee00ffff11fcf707f8f301f9f404ffff0e
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08fffa0afffa08
+fef909fef907fef909fef907fef909fef907fef909fcfa09ffff12f9f726f8f45ffffd9f
+ffffd9fffbf0fcf8f5fefdf9030100040100060000040000030002
+000200000100020204030004060002fffae0ffffa6eced61e0e330fdfc521f13001e1100
+f2ec3effff33fdfc2ee7e618ecee1ffafc2dffff36eeef18ffff17fbfc0bf0ef09f1f00c
+fbfb11fbfd14ebed0df6f634fff96befe671f9f37beae46cfaf17cfaf17afcf374dbd63a
+ebee1bffff1fe9e915fcfb2dfffb2dfefa29fcf721fef919ffff0efffb02ffff0efaf506
+ffff15f0ed02f4ee04ffff17fcf50ffffe19f0e905fffd16ffff1afcf90efffd13f6f304
+ffff0df6f400ffff0cf6f401f9fa09ffff17f7f910fbfd16f7f816f3f315ffff27e5e507
+edef06ffff2fe4dc31eee63bfdfc28f1f20efeff1ff4f0461d0f001e1000efed5cdce115
+feff1af7fe03f0f200ffff07ffff07f1f000ffff0cfffd0afdfa0bf9f609fffd12f8f60b
+fefe12feff0ef5f602f9f810e8e617fffc40e8e42dfef558f8eb78fff089f8ec72f6ec68
+f4ec63eee951eceb38fbf934fffb29fbf618edea00ffff1bffff13f5f509f2f506edf104
+feff1ee6ec0efbff28fcfc4ce3d9771f1200e9e46f262100292100fffd4cfffa3af1ec1e
+ffff1ffeff0efeff04ffff02fcfd00fcfd00fdfd00fdfc01fdfc02fdfc02fffb04fffb02
+fffc05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03fefd05fefd03
+fffe06fffe04fffe06fefd03fefd05fdfc02fdfc04fdfc04ffff0cf6f21ff9f35dfffda3
+fffbd7fffaf6fffefffefcff030000030100040000040000030000
+000200000100020107030007060004fffadeffffa4ebef5dfbff48f5f44a2518002c1d00
+f9f645fafa28eeed23ffff38fdff30eef51ceff41cfbff1fe3e800f5fb07fafb17ffff29
+f6f811f7fa15eff31ae6e733211900251a001b1400231e00171100171100211700262100
+ffff45e8f013feff3bf3f436ffff3de8e818f4f418ffff24eaeb00fdff08f8f804ffff10
+fffe11ede901ffff26f8f313eee907fbf614fffe20fffb1df3ee0ef5f10af7f407ffff13
+f8f40cfffb13ffff12f4f408ebee07f3f913f1f613f8fd1ce5e910f0f31efcff2afbff26
+f0f512e6e71fffff83221600e5e235f9fb2ef4f81ffbfa4a261b00110400fffc6fffff3f
+f2f90dfaff04fafb09fefd0df6f403fbf906fdfc04ffff13e7e400ffff25f3f20effff1a
+edf104ffff17f8fe08ffff1cfcfe31d7d71dffff61140e001a0a002112002218001e1700
+2f28002d2800fffc87faf565ecea25ffff25e5e700e5e800e9ed00ffff1ef4f918ffff2e
+f6fd24f3fd23f4ff24dfe23b241900160700fffd8e2c2d00302c00ddd721f1ed2afaf925
+ffff1cf3f402f0f200fdfe00fcfd00fcfd00fcfd01fdfc01fdfc02fdfc02fdfc02fdfc02
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03fefd03fdfe03
+fffe04feff04fffe04fdfe03fefd03fcfd02fdfc02fdfc04fffe0cf7f11ffaf25ffffda5
+fffbdbfff9f9fffdfffdfcff010000030000040000040000030000
+00020000010402000b010009040002fffbddffffa3eaf05ceaf132f7fa4b190d001f1200
+f8f93cf4f81bf5f62cf2f528f0fd17f8ff18f3fe1bf6ff18fcff0ff4fd02ffff14d9dd00
+ffff19e4ea04ffff2ce6eb2fdfdd66201a00242100eded7be6eb53ffff7a1a1700232300
+e9f12af3ff23f5fb39e2e826e1e80ffbff21f0f61ae9ed10fdff1fe9f004f8fd0bf1f508
+f1f212ffff29fbf928e5e40dffff1cf7fa09f1f20effff24f2f218ffff31f2f40df8f917
+ffff2bf2f11df6f715feff1cfbff28eff91ff0fb1bfdff28f4fd26f5fe2bedf524e6ef1a
+f4ff1fffff54120500251500fcf67eecee43f7ff2de2e9272220002a2800f1f651edf524
+ecf504f7ff0bf8f81ee8e315fbf724f7f316ffff1be2e200ffff2afdfd29ebf00feef60d
+edf50aebf604e8f500e1ed00f2fb16ebf41fe6ed25ffff711f1600150b00f3f087ffff89
+0f0e00130d002b1e001c1200fcfd57e0e606ffff1dfeff17eaf505e3ee0be1e81ee7ee2e
+dee523f7ff35e1f20ef1fa491e14001c0f00e8eb76dfe641efee3effff4ff1ef28f4f420
+ffff1cffff13f9fd06ffff07fbfd02fbfd04fbfd06fcfc06fcfc08fcfc08fcfc06fcfc06
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fefe0afdfe0afefe0afcfd09fdfd09fbfc08fcfc08fcfb0afffe11f7f024f9f264fffca7
+fffaddfefaf9fffefffdfcff000000010000030000040000030000
+000200000202010109000007040000fffcddffffa6e8ef63f0f946edef50fcefa0e6da84
+fefe50eef327f6f64af7f950e9f235ebf735f1f846e1e62adee704eff904ffff16f1f908
+f2f80ee8f009edf613e0e725ffff802423000c0c00e0e37ce9f062dbe149fbfc7af0f26a
+f7fd55dce236dbde49ffff67feff33d0dd00faff3cffff4fe3e923fcff33eff51ff5fa2e
+fffe4ef7f352e6e145fcfb49ebf115f7ff16f4f923ecee29ecec34eeee38f6f737f5f53d
+f6f155e1dc42f6f640fafc43edef4ce0e541e8ee34f6ff42fbff52ebf04cf8f95df4f954
+f0f737dde0472615001d0b00fbf19af2f465d8df20f3fb45f9fa85d9dc69e0e83deaf628
+f0fa20ffff3af7f151fff86afff561ffff5be0dd1ceeef25eced2ff1f53cfcff4aedf23d
+ffff50edf435ffff45feff38fdff3bebf72bd7e317e7ed4d2d2600130d00dce163f8ff6e
+f0f7761213001409050b0000efee7aedf23ed8e414effc26effa34feff55f2f75cf6fa68
+e9ef5be8f04bf8ff41dce6491810000e0300d8db74faff65ffff4df3f12af4f422f8fa1b
+eaee03e7ed00ebf000f7fc00fcfe03fcfe05fcfe07fcfd09fdfd07fdfd07fdfd07fdfd07
+fefe08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fcfe07fcfe07fbfd06fbfd06fcfb0afffd15f6f02af9f266fffda7
+fffcd9fcfbf6fefffffcfcff000100000000030000040000030000
+000400000300000302000002030000fdfce0feffb3e7ec74f1f7611e1f00190a00231400
+e5e35cf0f2531b15001a13001d1700ece5951a0f00362e00fdfd4df2f818faff13ffff15
+ecf20cffff2beef80efdff3becee67191800181500fefbb8ebe9961d1c00f7fa6dd7da4f
+221f00201900271d00100a00e7f031fcff38292b001918000f1200e4e945faff5bf4f56b
+1c12001b0d003b2e00211a00feff51f1f932ffff57dbdb49353100201a00363200160f00
+2c1e00fff5b6fffb980f0a001f15002f27002d2a001f1f000f08002018002c1f001c1500
+fcfd730f0f00291900170600150c00212100ffff6c171b000c09000e0e00ffff77e1ed31
+f6fb571711002f1e00240d00261100160400362d00f7f564f7fb5e1d2200222200131000
+1a1300241d00110800292500181800eaef55feff52e0ea4d100c00201e00dfee4bcae019
+fbff56f6ff7f1510000d02001e1500e2df82eef45cf3fa5e2a29000d0800211e001b1800
+110d00ebea8edde166191c001008001d1300312e000e0e00eded33dede00feff19ffff1b
+fafe07fcff04ffff05ffff04fdfe00fdfe02fdfe03fdfe03fefd02fefd02fefd02fdfe02
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03fdfe02fdfe02fcfd01fcfd01fcfc06fffe16f4f02cf8f364ffffa2
+fdffd0fbfdeffcfffdf9ffff000100000000030004030004040004
+000400000400000400000100010000fdfcdefdffb4e5ec7ce0e759ecef7a0d00001d1000
+eced6df5f964ffffa41c12001c12002114001a09001c1000e4e13ef5f920eff20bebef02
+fcff18e2e800fbff18dee71ee3e465161300120d001611002019001e1a00fdff71f6fa68
+f1ee830e05001e0d00332600eaec65feff62101000f5f57dfbff6cf5f869f2ef88171100
+211a00f4ebb40d0100241d00161b00ced537f1f27d292400120900fff9bed6d180e7e09a
+2315000d0000fef9a5ffffae1a0a000e0000f7f38fe3e369ffffa9130800120100261800
+f5f384e7e5741103001c0d00eae587e3e55ef2f75cfafc7f1f1a00070500d1dd49e9f64e
+efef7d1b11001a0800f4e1b9f6e5b1120400191000f8f490f1f76fe7ef760b0c00100c00
+f3eaaff0e5a3fff9c4190d00302a00e8e971ced730f4fc692d2900141300e6f550f4ff38
+cde618edfd66090800180e0c1c1100ded8a4e7e7831718001a1400f6edc6f1eabcf0e9bb
+1f17002f2a00f5f88fecee8b1009000e0600eeeb9cffff7affff3cecef02f5f604ebed00
+f1f400fbfe00ffff02eff100feff01ffff01fffe04fffe03ffff01ffff01fffe00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00fefe00fefe00fdfd00fdfd00fcfc04fffd18f3f12cf6f461ffff9c
+fcffc9faffe6fbfff6f7fff9000100000002010007030009040007
+000400000300000500000300000200fcfed7fcffafe4ee74d6e447f9ff7e0e06000c0500
+f8ff63dde738c9cc59242100140e00f3eba0efe3992f2700f5f438ffff22e6e705ffff1f
+fcff12faff0ff3fc0febf031fef9931d14001f1800efeba4f3f085131300d8d94fe8ec51
+faff51e7e7611203000e00001307001c1700f6fa72f8ff5aedf93debf05e0e0200271c00
+e7eb7ce6f06d0d0f002122001d2500e9f0801a16000b0100eee2e6d6cdbef5f4b3e6e79b
+110d001e1d00dbe560dde26a110200251600e4e951f4ff3eeff651e3e172281a000e0000
+e7e576f8f880170e002e2600d9db53edf547f3fd46dce3571d1a00040500feff7fd9e551
+1510001d1300dcd676f9f577d3d544ffff881b14000e0b00e2ec6fd8e56f0f16001e2000
+cfd05bf4f073fdf4a5120600110900f4f28df6fd62e3e9650b03002d2703d5df5ad3e72d
+dff634eafa660b0d00140e000d0800f6f3bc1a15000a0400f1ebb9e5dfabddd8a1eae4b2
+1d14000b0600d3da50f1f7730b03000f0700ebee6deaf336e7e90afcfd09ffff14fcfd01
+ffff02f4f600ffff05ffff03fffe03fffd04fffd08fffd06fffd04fffe03fffd01fffe00
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+fffe01fffe01fffe01fffd00fffd00fffc00fffc00fdfb06fffe18f1f22cf5f65dffff95
+faffc0f8ffddf9ffedf7fff400020000000401000b03000c04000b
+000400000300000400000200010100fdfddbfcffb4e5ed73e9f74ae2eb542821000f0900
+dae443f7ff50e6eb751b1a002f2c00e5e078ece771faf65ff0f326edf009ffff20eef007
+f2f603eaf000feff1df0f13bf0e8861f1400110b00f1ef98e5e85df7fb68fcfa89eff070
+eef93be0e741ffffc80e0000251305150b00e5e37ce3e951e2f02be9ef59241404120400
+edf379e1f04ff5fe7fe9ef81f0f688e6e79b0c01000e00140e0206110b002b2d00181d00
+161600232700e5f54deffb67130b000a0400f1fe4ceeff1ecfdb21eaeb690f0400332600
+edec6de3e35f1b1100120900fcff60f4ff35dbe81ef1f965141100141200cfdd4af2ff69
+0e0900120600ffff93e2e74ce8f045eaee632c2600080600effd72e3f36e0609000f0e00
+f6f96ef2f357ebe3811d1300342a00dedb72f0f853e9ef67140600150802e8ef7ff1ff5b
+f0ff5de3ed70201f000e09001b1c00fbfaaa0a01001b1100221c001614002726001b1a00
+191600282900f4fb5fe7eb621408001b1000f0f75cebf61cf2f60bfefe06f0f100e5e600
+ffff0cfefe00ffff07f4f400fffe03fffd04fffd06fffd06fffd04fffe03fffe01fffe00
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+fffe01fffe01fffe01fffd00fffd00fffc00fffc00fdfb06fffe16f1f22af5f561ffff9b
+fdffc6fbffe0fcffedf9fff200020000000201000c01001003000e
+000500000400000201000002080307fffaeafffbc3f3f681eefa36f3fb4d110600190c00
+f1f666edf854fcff961b1900222100e5e561ecee4bf8fd3ef8ff26f0f80fedf406fcff0e
+f1f800ffff17e0e60aebeb3dfcf6881c1300271f00dddc72e9f249d7de42fcf4b3221a00
+eef45eeaf251262300221b001a0e002419001f1400d8d586ebf74df1fb5c0b0200231700
+f1ee8ddce24ee8f243f2fa59d8d76dfef3c515010d2e1a23e6dea0eaea7cdbdf54eef269
+e8e77deff078e1ed35f3ff59090b00121900e2f83eddf41eebf556ffff97140a001a1000
+dddd3df2f05d241400190a00f4fa50eefe21d7e712f5fe67140b00130b00e7f44fd9e837
+130f001e1600f3f08fdadc5ff2f574eff186110a00201e00e5f346eefd5c0c0700110800
+f2f26ee7e94ae8e1761d15001e1700e9ea68e9f52ff6fd61220f11210e22dedf79d0da45
+f4fa800f0e00211b00100b00f0f76df2f5721c0e001e0e00deda7fe0e459f4fc5be7f047
+e3eb46d6de3bf0f654f7f5841100002c1d00e3e752e5f115f6fa0dfbfb05fbfb03fcfc04
+fdfe03feff03ffff04ffff02ffff03ffff03ffff03ffff03ffff03ffff03ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02feff01feff01fdfe00fdfe00fdfd05ffff11f6f42df9f16cfffeaf
+ffffdffdf6ecf9f7ebfffff400030000010000000c000013010012
+000500000500000201010005080009fdf3eafcf1c3efeb7deef62ff5fa4517080042330a
+e8e967cbd13be5e585191700262300eaeb61f7fc4ae6ed25e7ed19f0f618ffff27dbe200
+f7ff09f0f70bf0f326faf953ece5711e1400251d00e3e172fbff5bffff72130800110500
+f0f2732329001d1c00e6e18fe5de9a1106001e0f002f2600f9ff60ecf54e150f00110800
+171200ffff7dffff54eef44a221e00e3d8981c0b00130500262200f7f968fbfd6cfcfc76
+f0ec7e1c1c00e2eb2ee8f44c111600081000f2ff69e7fb44eff56d0e0c00271f00fffa7a
+ffff46fdfc541e0b00221100f1f259e6f22ce7f435feff792216000f0500f9ff5ee4ef3b
+fbf994161000161300ffff95fbfa90171400393300d0ce69f8ff4fe4ec491c1200190b00
+e8e564e7e64effff9c190f001a1100ffff86e8f424e9ef470f0000140004efee84ffff7b
+1b1900241e000b0400332f00dce530e9ef451b0f00140500312d00ffff6ed6db36f9ff53
+f8fe521c2100ebee55ffff94180800190c00ffff65f4ff1df7f90ffaf909fbfa0afcfb0b
+fdfc0bfdfd09fefe0afefe08fbfb03fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fafc01fafc01fafc01fafc01fafc01fafc01fafc01
+fafc01fafc01fafc01fafc01fafc01fafc01fafc01fafc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01fbfc01
+fbfc01fbfc01fbfc01fbfc01fafa02f9fb02f9fb02f9fb02f9fb02f9fb02f9fb02f9fb02
+fafc03fafc03fafc03f9fb02f9fb02f9fb02f8fa01f8f905fefe10f5f42afaef6ffffbb6
+fffde8fff7f5fefaf1fffff300030000020000000c000015000015
+0004000004000200010400050a0007fff1e8fceebfefe77cf4f63d2d2c00251300251300
+110c00ffff87151000231c00211900181300eeee4ef8f945ffff46e7e723fcfd33f6f622
+ffff21e9ed12ffff47f3ee522920001c12002b21002f28001c1d001b19002115001c1000
+3533001515002a2400ebe390f2ed891f1900110600120b001c2100f9ff50f0ef711d1800
+3e3700110c00201d00211f00373400fcf87afffe792726001e1e00232100201800120800
+261c00292400faff4afeff680b0800171500070d002a3100383900161400fcf870ebe93e
+e5e90cffff411a0800241100170f00222000fafa761d1b00190e001910001b1d00f4f955
+e6e75b222000221e00151000151000252100262400f8f96dd8dd391c1e002017001d1100
+272000f4ee64221400251400251600201b00f3f83a262800281a002b1b001f1d00292b00
+191800161300ffff9fddde52f8ff30e8f126ede872463d001f1b001916001c1600261f00
+231c00231d00fefb7a151000261c00302a00111900fbff19fefd19fffb1bfffc1afffc1a
+fffe19ffff18ffff18ffff17ffff14ffff14ffff12ffff12ffff10ffff10ffff10ffff10
+ffff12ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12
+ffff12ffff12ffff12ffff12ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14ffff14
+ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12ffff12
+ffff12ffff12ffff12ffff12ffff14ffff16ffff16ffff16ffff16ffff16ffff16ffff16
+ffff17ffff17ffff17ffff16ffff16fffe15fffe15ffff15f9fb11f1f228f7ef6afff9af
+fffbe0fff5effcf8ecfffff100030000020000000b000015000015
+0002000100000600060700050f0005fff5e3fff5b8f6ed76ffff42f1f13bffff9fe6d880
+f4f25fe9eb48dada56f0ee75fffd7cf0ed5ef1ef4cf4f446f3f147fef955ece443fdf64e
+efeb32fefd43ede940d3cd37ffff80fbf279e4df5deeea62f8f769fefb7ae7df7cfffb93
+f3f264ffff73f9f287e8e176eae959f9f965e5e068ffff8ae9ee3cdfe627ffff5ee4e44e
+dcd94cffff7df3ee6efdf971fafa5ef0f342d4da14f6fc36f4f746fffe66fffb83fffc8f
+f3ec78fffd77f1f24ededd5e211902100604f4f0b1dedf79f7f57ef4f367f3f14ff7f737
+fbff15fafa26eee25cfff38affff80e7e459e9e661f3ef72ebe577ffff8ce7e84febef42
+f7fc47eaee42e9e85afffb7dffff83f7f668e0e438f4f944fafe51eeef55fdf880fcf580
+fffd69f7f061ede077fff798fffa8aebe657f4f63dffff4fece36cfef687e2e246f1f44d
+ffff6ef7f968eff054e9ee39f2fc21d9e20beaeb45edeb58f8f75ef9f667fbf480ece37c
+e1d873faf37ffffc6fd9d840fbf86bdfdf3fffff3af7ff18f7f514f8f514faf515f9f613
+fbf614faf712fcf813fbf911fcf810fbf90efcf90efbfa0cfcf90cfbfa0afcf90afbfa0a
+fcf90efbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efbf910fafa0efbf910fafa0efbf910fafa0efbf910fafa0e
+fbf910fafa0efbf910fafa0efbf910fafa0efbf910fbf90efbf910fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf90efbf90efcf90efbf90efcf90efbf90efcf90efbf90efcf90efbf90efcf90efbf90e
+fcf90efbf90efcf90efbf90efcf90efbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90efcf810fbf90e
+fcf90efbf90efcf90efbf90efcf90efbf90efcf90efbf90efcf90efbf90efcf90efbf90e
+fcf90efbf90efcf90efbf90efdfb12fcfb13fdfb13fcfb13fdfb13fcfb13fdfb13fcfb13
+fcfa12fbfa12fcfa12faf911fbf911faf911faf810f9f810f9fc17f2f42ff5f16cfff9ac
+fffadafff5e9fcf9e8feffed00030000020000000b000013000015
+03000004000407000c080007100000fff8d6fff9a3f8f361f2f623eff41be5e23bffff59
+f8fe2ce6f10effff36d5de11f4fa38f5fa3cf5f73ae5e535f1eb55fff879fffa8de0d265
+f4e86efffb77f5ec61eee856efec51e1e036ffff44f8ff37f4f843eff146e8e943eff145
+e9ee32eff33edcdb43fafa5ceaf02af1f92aedf03ddcdf2ef6fc36e9f120e8f021f8ff37
+f8fa3df1f23ff9f852e7e73bf9fc39f7fd27faff21ffff2df8fc33d2d512ecf027eff428
+ebef26e9ea37e9e35bfaefa01002000f0100ebe4aef2ef8ee4e15cf0f052fffe51e1e11d
+f3f515fafd16fcfc28f4f627e7eb18f2fa29f8fe3ae9ed36f6f948dee22df8fe3ae6ef1c
+f4ff1ff1fb21ffff4ae8eb3cf3f647eff436faff2aedf818ebf421f4fa36f5f845e6e83c
+edeb3efbf74ef8f15af0eb51efed42f5f53df7f83ae8ea2df5f545eff33cf5fd2ee7f01b
+f5fc34e8f029ecf423f9ff2df0f926f8fd2dffff3ae7eb22f9fe32dcdf1cfcfc4cefee46
+f7f650ecec3ee8eb2cffff47eef22ceaee28f8fc33e9ed1af9fa18fbfb0ffcfa0ffbfb0d
+fdfc0efcfd0cfdfc0cfcfd0bfdfc0bfcfd09fdfd09fcfe07fdfd07fcfe05fdfd05fcfe05
+fdfd07fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fcfd09fafe07fcfd09fafe07fcfd09fafe07fcfd09fafe07
+fcfd09fafe07fcfd09fafe07fcfd09fafe07fcfd09fcfe07fcfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07
+fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfe07fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09fdfd09fcfd09
+fdfd09fcfd09fdfd09fcfd09fdfe0cfbff0cfdfe0cfbff0cfdfe0cfbff0cfdfe0cfbff0c
+fbfc0af9fd0afafb09f8fc09fafb09f7fb08f9fa08f7f90ff9fd20f4f63df7f375fffbad
+fffddafffcecfffeebffffed000300000200000009000012000015
+04000205000608000c0800070d0000fff6cffff89df4f162fafd3affff36f5f642d2d31f
+faff31faff25dde909faff31f6fd3dd6db26ffff54ffff5f1511001a1000170a002b1e00
+2b2000261d00271f00eae75ceeed54f6fa4de8f02bf3fc33eff43ff0f445f7fc47fdff47
+f3fa3af6fc44ffff5df0f448f8ff36f7ff2ffaff42f7fd45e1e72bfaff41dde51ef6fe37
+f2f836edf138f7f94ef7fa4be0e624ffff39ecf522e8ef23d7dc20ffff56eaf31effff2e
+f8ff28f3f742fffc8a180e00231a000a03002c2700272500f7f773e2e246ffff5cffff4f
+f1f033ffff3ff6fa1febf113f6fc26fcff37e6ed2df7fd41ecf236ecf333f1fa2fffff3b
+d5e00afbff33e9f030f8fe44f0f63ef3fa3aeaf422e2ed15ffff3cf5fe33d3da1afbff48
+ffff55f2f14bf7f44dfdfd4dfcff40f5f73af0f044fcfe53f7fb42f4fa34f8ff30f7ff2f
+eff82fffff44e7f023dfe720eaee39eef23df1f733e9f024f9ff36ffff43e9ee2ffaff41
+eaef33fbff42f3f937dce21ef1f731ffff4bdbde2ffdfd4df7f830f9f925f9f925f9fa23
+f9fa23f9fa22f9fa22f9fa22fbfc22fbfc22fbfd20fbfd20fbfd1efbfd1efbfd1dfbfd1e
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20f9fd20f9fd20f9fd20f9fd20f9fd20f9fd20f9fd20
+f9fd20f9fd20f9fd20f9fd20f9fd20f9fd20f9fd20f9fd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22
+fbfc22fbfc22fbfc22fbfc22fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20fbfd20
+fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22fbfc22
+fbfc22fbfc22fbfc22fbfc22fcfd25fafe25fafe25fafe25fafe25fafe25fafe25fafe25
+f8fc23f8fc23f7fb22f7fb22f7fb22f6fa21f6fa21f5f926f3f731eff24df3f07ffdf6b2
+fffadbfffaedfffeedffffef000300000200000007000010000012
+0502000600000600070700050b0000fff7d7fffaaff6f382ebea5cf0f158f9f76efffd76
+f7f96ae6e954f5fb5de3e752eef071e6e770d1d354ebec6dffff89fbf982ffff93d6d459
+ebeb69f4f46ee8e864e9ea68f0f172e9ec6bf3f76fe0e459ebee61f7fb69ecf05de7eb56
+fbff66e6eb51d4d845f7fb66e7ed4fe3e94be4e853e1e552e5e956f2f664ffff79d7db48
+f3f65decef56e8ea5bf5f66ae7ea53e1e54adcdf46feff6cf3f46cebec62ced138dce13f
+ecf051fcfd73eae482fdf89dd9de68f5fe81dee476e0e277e2e36cf0f06ee3e351e0dd4e
+e1db5ffffb7beeed57ebec52f5f66cf8f778ddde5fffff7deff361feff64f0f84de5ed42
+dfe44af7fb68f9fe66e8ed52f3f85eedf25af0f461faff65e2e941e2ea3ff6fc5cfeff6d
+e5e65cf4f569f9f963edf250edf349f6fa5bf3f274e4e269e7e958f7fd5fe9ef4fe2e84a
+e1e64ceaee59edf15ff3f66bffff7ee7e763eff15fe3e64df3f661ecef58d6db39f8fe56
+f9fe59e7ec4aeff25debed5cf0f260ebed5edfde60fffc7eefec5df1ee55f1ee55f1ee55
+f1ee55f1ee53f1ee53f1ee51f4f154f4f154f4f252f4f252f4f250f4f250f4f250f4f250
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f2f252f2f252f2f252f2f252f2f252f2f252f2f252f2f252f2f252
+f2f252f2f252f2f252f2f252f2f252f2f252f2f252f2f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f154f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156
+f4f156f4f156f4f156f4f154f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252f4f252
+f4f154f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156f4f156
+f4f156f4f156f4f156f2f256f2f254f2f254f2f254f2f254f2f254f2f254f2f254f2f254
+f2f254f2f254f2f254f1f153f1f153f0f052f0f052eff152f3f75af2f46cf5f196fbf6bf
+fff9e3fff9f1fefcf0fdfdf100020000010000000500000c00000e
+0203000202000300020400040b0100fffce5ffffcafbf8abffffa8f6f297fdf9a2ffffaf
+fbf7b0fffdb6fefbaaffffafffffbbe5e59bffffb6ebee95ffffa5fcfe9bf2f58efeff96
+feff94ffff96ffffa0f6f897fdffa7ffffb1fcfeabffffb0ffffa5feffa1fdfea1feffa1
+fdff9cffff9bfcff8fffff96ffff9cffffa2fcff98ffff9cffff9cffff9ef2f396ffffa9
+f6f78fffffa1f6f696ffffa6fefe9cffff9cffff9cffffa5ffffb3efec9bffffb5fefca5
+f6f598ffffa5ffffaff8fa99ffff8beffd76fdff9ffdffadf4f2a5ffffadffff93ffff95
+fffeb9fff8b7f2ef92ffffa6f9f6a5fffdb4ffffbff8f7a7ffffa3fcff91fbff88fdff90
+ffffadffffabeff18cffff9affff9afbfd98ffffabffffabf2f685ffff8efafe8fffff9e
+ffff9dffff98ffff95fdff89fdff88ffff98fffda8ffffafffffa2f0f38affffa0ffffac
+f6f79affffacffffabffffb0fffda8ffffa5ffffa6fffea1ffffa7f6f696ffff93ffff8c
+fdff89ffff95fcfb9fffffaef9f89efdfca2ffffb3f7f5a2ffffa7ffffa3ffffa4ffffa3
+ffffa3ffffa1ffffa1ffffa1fffea0ffff9effff9effff9effff9cffff9cffff9cffff9c
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+fffea0ffffa2fffea2ffffa2fffea2ffffa2fffea2ffffa2fffea2ffffa2fffea2ffffa2
+fffea2ffffa2fffea2ffffa0ffff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+ffff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9effff9e
+fffea0ffffa2fffea2ffffa2fffea2ffffa2fffea2ffffa2fffea2ffffa2fffea2ffffa2
+fffea2ffffa2fffea2ffffa0fffe9fffff9ffffe9fffff9ffffe9fffff9ffffe9fffff9f
+ffffa1ffffa1ffffa1ffffa0ffffa0ffff9ffffe9fffff9affff90ffff9afffcbcfffcd8
+fffdf3fffcfcfffcf9fdfdf500010000010000000500000900000b
+000500000300000100000000050402fcfaedffffe1fffdd7ffffdffffaddfffce2fffef1
+fcf0fafff5fffffcfffffff0dbdbb7ffffd6f8f9cdd8d9adffffd6fafccdf9fccdffffd6
+ffffd7feffd6ffffd8dadbb1ffffdafcfdd5ffffddfcfcdafffee1fffde7fffcecfffdea
+fffee1ffffd5ffffc7ffffc7ffffdaffffdcffffd0ffffc9ffffcaffffcdffffd7ffffd8
+ffffd0ffffd0ffffd9fffeddffffd9ffffd6ffffd2ffffd4ffffe2fdf7e7fffdfbfffdfb
+f9f3e3fdfbd5fdffbde6ee9bfdffb0f8ffb9f8fbd0f9f7e0fcf8ecfffde2ffffc2ffffc3
+fffae3fffae9ffffd0ffffc8ffffd0fffedbfffee5fffee3ffffd5ffffd0ffffd3ffffd9
+fffee1fffee1ffffdcffffd9fcfad4ffffdfffffe4fffbdefcfad3ffffd6ffffcdf5f5bf
+ffffc9feffc5fcffcafbfdccffffdaf3f4caffffd6f1f0c0ffffd6edebc4fffce3ffffef
+ffffefffffedfaf6ddffffdfffffcdffffccffffdaffffe2ffffe4fffee1fffed7fffed0
+ffffd4f5f3ccffffe6f2edd7ffffe8ffffe0f9f8cafefdcdffffdffefbdcfffbdef2efd0
+ffffe3f7f4d3f4efcfffffe0fffdddfffeddfffdddfffedbfffedbfffedbfffedbfffedb
+ffffddffffdffaf6d3ffffdffaf6d3fefbd8ffffdcfaf7d4ffffddffffdcffffdcfffedb
+fffedbfffddafffddafffddafefad7fffedbffffdeffffdefffedbfffcd9fffddaffffdc
+ffffdffaf7d4fffbd8ffffdff9f5d2ffffdfffffdcfffedbfffedbeae7c4ffffdfffffdc
+ffffddf7f4d1fffedbffffdfffffdffefbd8fffddaf2efccffffdff7f4d1f4f0cdffffde
+fffedbfffedbfffedbfffedbfffedbfffedbfffedbfffedbffffddffffdffaf6d3ffffdf
+faf6d3fefbd8ffffdcfaf7d4ffffddffffdcffffdcffffdbfffedbfefedafffddafefeda
+fffddaffffdcffffddffffdbfefbd8fbfbd7fffedbffffdeffffddfaf7d4ffffddf9f6d3
+ffffddfffedbfffedbfffddafefad7f9f6d3fffbd8ffffddffffdffdfad7f2eecbffffdc
+fffddafffedbfffedbffffdcffffdcfffedbfffedbfffddafffddaffffdffdf9d6f9f6d3
+ffffdef8f5d2fffcd9ffffddffffddfffedbfffedbfffedbffffdcffffdcfffddafefbd8
+ffffddf5f2cffffcd9ffffddffffdefcf9d6f6f2cffffddafffedbfcf9d6ffffdff0edca
+ffffdeffffdcfffddafdfad7fffbd8f9f6d3ffffdfffffdffffcd9f8f5d2fffedbfdfad7
+fffbd8ffffdff3efccfbf8d5ffffdffefbd8ffffdffefbd8fffcd9fffcd9fffbd8fdfad7
+fffbd8fffddaffffddffffdefffddafffddafffddafffddafffddafffddafffddafffdda
+ffffdffffddaffffddfbf8d5fdf9d6ffffddfffddaffffdffefad7ffffdffcf8d5fdfad7
+ffffdff8f5d2f6f2cfffffddffffdcefecc9ffffdfebe8c5ffffdffffedbffffddffffde
+ffffe3f0edcefffcdeffffe3ffffe1fffddefffbddfffedfffffe1ffffe0fffee0fffedf
+fffddfffffe0fffee0ffffe1fffedefffedbfffedbfffddafffddafffedbfffedbffffdc
+fffedbffffdffffedbffffdff3efccffffdeffffdcffffdef6f2cfffffdff7f3d0fcf9d6
+ffffdffcf9d6ffffddfdfad7fdf9d6ffffdcfcf8d5ffffdffaf6d3fbf8d5ffffdff9f6d5
+ffffe3fbf8d9ffffe3ffffe3f8f3d5f5f2d3ffffe3fffcddffffe3f7f4d5ffffe3ffffe3
+fcf7d9ffffe0fffcdefefbdcffffe1ffffdfffffdfffffdfffffdfffffdfffffdfffffdf
+ffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd6ffffbfffffc1fffed9fffbed
+fffafefffafffffdfffffdfe000100000100000004000005000005
+000500000500000300000100030502f9fbf0feffebfafce7fbf8effffffafdfaf3fffdff
+f3eaffefe5ffe6e1f8fefcffffffeddbdfc4ffffeff0f2e4fffff3fffff3e6eadcf4f7ee
+ebedece4e5e7efefedfffffae9ebdefffff4eeefe7faf9f5fdfbfcfdfbfffdfafffdfaff
+fdfbfcfdfef0fdffe0fdffe1fffff7fefdf8fdfeecfeffe6feffe4ffffebfefef2fefef4
+fdfeecfdfeeefdfdf5fdfcf8fdfcf7fdfdf3fdfeeefdfef0fefdfbfcf9fffffafffdf8ff
+faf8fbfeffedfeffd6f1fac3fbffd4f8fedcf6f8eaf6f6f8faf5fffcfaffffffddffffdb
+fffcfffffbffffffebffffdeffffe0feffeafefcfdfefcfffefff1feffeffefef6fefdfb
+fefcfdfefcfdfefdfbfefdf9fffefaf5f4f2f3f1f2fdfbfcf2f1eff8f8f0fbfcecffffea
+f6fcdafdffe2feffeefffff8f5f5f7fffffaedf0d3ffffe2f6f7e7fffffdfffdfff1edfb
+f2eff8f9f7fcfaf8f9fffff6ffffe4ffffe4fefef4fcfafbfcfbf9fdfcf8fffff7fffff6
+deded6fffffaf6f5f3fffefff5f3f8fcfbf7ffffeaf4f7dcf6f6ecf6f5f3fffffdfefdfb
+fdfcf8fefdf9fffffbf8f7f3fffffbfffffbfffffbfffffafffffbfffffafffffbfffffa
+fbfaf5f0efeafffef9f2f1ecfffffaf3f2edfffffafcfbf6fffffafffffafffffafffef9
+fefdf8fefdf8fdfcf7fdfcf7fffef9fffffafffffafffffafffef9fdfcf7fdfcf7fefdf8
+dfded9faf9f4f2f1ecfffffafffffaecebe6fcfbf6fcfbf6edece7fffffaf4f3eeedece7
+efeee9fffffaf6f5f0fffffaf5f4eff5f4effffffafdfcf7fcfbf6fdfcf7fffffaf7f6f1
+fffffafffffafffffafffffafffffafffffafffffafffffafbfaf5f0efeafffef9f2f1ec
+fffffaf3f2edfffffafbfcf6fffffafffffafffffafefff9fdfef8fdfef8fcfdf7fcfdf7
+fcfdf7fdfef8fefff9fefff9fdfef8fcfdf7fcfdf7fdfef8f8f7f2fffef9fdfcf7fffffa
+fcfbf6f8f7f2fffffafffef9fffffafffffafdfcf7fbfaf5f1f0ebfefdf8fffffaf3f2ed
+fefdf8fffef9fffef9fffffafffffafffef9fffef9fefdf8fffef9f4f3eefffffafffffa
+fcfbf6fffffafffffaebeae5fffef9fefdf8fefdf8fffffafffffafffffafffffafffffa
+f7f6f1fffffafffffafffffaf6f5f0fffffaebeae5fffffafffffaf9f8f3f5f4effffffa
+f7f6f1efeee9fffffafffffaf3f2edfffffafffffaefeee9e8e7e2fffffafffffaeeede8
+fffffadfded9fffffafffffaf2f1ecfdfcf7f4f3eefffef9fffffafffffafffffafffffa
+fffef9fdfcf7fbfaf5faf9f4fffffafffef9fffef9fffef9fffef9fffef9fffef9fffffa
+fffffafefdf8f4f3eefffef9fffffaf8f7f2e8e7e2f1f0ebfffffaf8f7f2fffffaf9f8f3
+ecebe6fffffafffffaf3f2eddfded9fffffaf8f7f2fffffafcfbf6fdfcf7fefdf8f8f7f3
+fefdfbfffffdf1f0eef1f0eef1f0eefffffdfdfcfaf3f2f0fffefcfffefcfffefcfefdfb
+fefdfbfffefcfffefcfffefcfffefafffef9fffef9fffef9fffef9fffef9fffef9fffef9
+fbfaf5e9e8e3f7f6f1fffffafefdf8fffffaf6f5f0f7f6f1fffffafffffafdfcf7f2f1ec
+f3f2edfffffafffffaf5f4effffffafffffaeeede8faf9f4f0efeafffffaf7f6f1fffffb
+fffefcfcfbf9f1f0eeeae9e7fffffdefeeecebeae8f8f7f5f1f0eef3f2f0f9f8f6f7f6f4
+fffffdf7f6f4fffffdededebfdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefff1fefddefffddcfffbeffffafc
+fffafffefafffffcfffffdff000000000000000000000002000002
+000400000400000302000200000700f6fceefcffeaf8fee4feffedfbffeaf9fde2fdffe8
+edefe4fffff8fffff1e7ebd4eaeed5feffeffafdf6eceeedfcfffff5f9f8fbfffff5faff
+f2f5fffbfdffe9eafcfafcfffbfcfeebeceef4f4fefefefffcfefbfcfff6fcfff8fcfff6
+fcfff6fcfff1fcffe8fcffeafdfff5fdfff9fdfff3fdfff2fdfff5fdfff9fdfffcfdfffa
+fafff1fafff1fafff8fafffbfafff8fafff8fafff8fafff9f9fdfcfcfffbf9ffeef5fee1
+fbffe0fcffe3f9ffeafafff2f9fff3f9fdeff7fbecf7faf3f9f8fffcfcfffcffe8fcffea
+fefdfffefdfffdfff0fdffdcfcffd6fcffe2fbfcfffbfafffdfff9fdfff5fdfffcfdfeff
+fdfefffdfefffdfffefdfffcfefffdfefffffefffffcfdfffefffffefffdfefff6e0e4d3
+f9ffeefbfff3f9fff4eef4f2fbfffffafffff3fddbfcffe3eaefe8ebeef3f5f6f8fefffa
+fcfff1fbffeefffff8f4f7ecfeffecfcffecfbfff9fafff9f9ffeef9ffecfafff4fbfff7
+fcfffaeaf0e4fcfff1f1f7e9f9fdfcf5f9f8f3fae8fcffeffbfff5e8ede6f2f7f0f9fef7
+fafff8edf2ebf9fef7f9fef7fafff8fafff8fafff8fafff6fafff8fafff6fafff8fafff6
+f9fff5f9fff5fcfff8dfe5dbf1f7edfcfff8d4dad0fafff6fafff6fafff6fafff6fafff6
+fbfff7fbfff7fbfff7fbfff7fcfff8fbfff7fafff6fafff6fcfff8fcfff8fcfff8fcfff8
+fbfff7fcfff8ecf2e8fcfff8f0f6ecfcfff8dce2d8fcfff8fcfff8fcfff8fafff6fcfff8
+fbfff7e3e9dffcfff8eaf0e6fcfff8e8eee4f2f8eef9fff5fafff6edf3e9f9fff5f9fff5
+fafff6fafff6fafff6fafff6fafff6fafff6fafff6fafff6f9fff5f9fff5fcfff8dfe5db
+f1f7edfcfff8d4dad0fafff6fafff6f9fff6f9fff6f9fff6fafff7fafff7fafff7fafff7
+f8fff5f8fff5f8fff5f9fff6fafff7fafff7f9fff6f7fff4f9fff5fcfff8e7ede3fcfff8
+edf3e9fafff6fcfff8fcfff8e0e6dcf4faf0f8fef4fcfff8f7fdf3eaf0e6fcfff8fbfff7
+fafff6fbfff7fbfff7fcfff8fcfff8fbfff7fbfff7fafff6fcfff8e0e6dcfcfff8e6ece2
+fcfff8e4eae0f6fcf2fcfff8fbfff7fafff6f9fff5fafff6fcfff8fcfff8fafff6f9fff5
+fafff6fcfff8fcfff8fcfff8f0f6ece4eae0fcfff8e6ece2eff5ebeef4eafcfff8dbe1d7
+fcfff8fcfff8eef4eaf3f9effcfff8f9fff5f3f9efebf1e7fcfff8ebf1e7e7ede3fcfff8
+fcfff8f6fcf2fbfff7f4faf0e8eee4ecf2e8fcfff8f9fff5f6fcf2f8fef4fafff6fcfff8
+fcfff8fbfff7f9fff5f8fef4fbfff7fafff6f9fff5f8fef4f8fef4f9fff5fafff6fbfff7
+fafff6f3f9eff9fff5fcfff8e2e8dee9efe5fcfff8f6fcf2e7ede3ecf2e8fcfff8f8fef4
+fafff6fcfff8e6ece2fcfff8fcfff8f8fef4f3f9efe2e8defcfff8f2f8eef2f8eefcfff8
+e1e6dffcfffaf6fbf4fcfffafcfffaf5faf3f5faf3fcfffafcfffafcfffafbfff9fbfff9
+fbfff9fbfff9fcfffafcfffaf9fff5fafff6fcfff8fcfff8fcfff8fcfff8fafff6f9fff5
+fcfff8f7fdf3fcfff8eff5ebe8eee4f7fdf3fcfff8fcfff8f6fcf2e4eae0f6fcf2fcfff8
+f4faf0f3f9eff0f6ecfcfff8f5fbf1f9fff5fcfff8eef4eafcfff8f2f8eef7fdf3fcfff8
+f6fbf4f6fbf4fcfffaf4f9f2f9fef7fcfffafcfffafcfffafcfffafcfffafcfffaf3f8f1
+e9eee7f9fef7ebf0e9fcfffafafff8f9fff8f9fff8f9fff8f9fff8f9fff8f9fff8f9fff8
+f9fff8f9fff8f9fff8f9fff8f9fff8f9fff8f9fff8fafff6fcfdeffefbf2fef9fdfdfaff
+fefafffdfafffefcfffefdff000000000000000000000000000000
+000104000104000202000200000700f6fdedfaffedf6fee6fcffecf4fde2fcffe4feffe6
+feffe8f0f6daf5fbd9fbffdfffffe8f5f8e7e9ebeafcfffff0f4f5dde3e1fbfffff6fdff
+fafcffeaebfffbfdffebedf9ebefeef7f9f8fffdfff9f8fffcfff6faffedfcffedfaffed
+fcfff1fafff1fcfff1fafff2fbfef7fafff9fdfffcfafefdfbfcfff9fcfffcfcfffbffff
+fafff4f9fff4f9fffdf9fffff9fff9f9fff6f9fff6f9fff9f4faf8fbfffaf6ffe3f0fdd1
+fbffd6f8ffdef0f7f0fafdfffafefffafcf9f8fbf0f7fcf8fbfafffbfdfffbfff2fafff1
+f9fafff9fafff8fdf9f7ffe7f6ffdbf5fee1f4f8f9f4f6fffafefdfafff9fcfefbfafefd
+fcfdfffafefffcfefdfafffbedefeef3f7f6f3f4f8fafefff6f8f7f8fdf9e3e5e0fcfffd
+e5ebebf9ffffdee8e0f9fffff7fdfff8ffffeef8ddedf8dafbfffffafcfffbfffcf5fde8
+f7ffdffeffe6f8fbf0fefffaf1f9e4f4fdeaf9fff8fbfffafbffedf9ffebf4fbf3f1f7f5
+f9fffdcad1c9f2fbe8f7ffedf3f9f7fbffffd7dfd2f2fbeaf4fcf1fbfffafbfffafbfffa
+f3faf2eff6eefbfffaf8fff7f5fcf4f5fcf4f5fcf4f5fcf4f5fcf4f5fcf4f5fcf4f5fcf4
+f6fef3eaf2e7fbfff8fbfff8fbfff8eff7ecfbfff8fbfff8f1f9eef2faeff3fbf0f5fdf2
+f7fff4f8fff5fafff7fafff7f8fff5f4fcf1f2faeff3fbf0f7fff4fbfff8fbfff8f9fff6
+e9f1e6f2faefeaf2e7f6fef3f9fff6f8fff5fbfff8f0f8edf1f9eeeff7ecedf5eaeff7ec
+e8f0e5fbfff8cfd7ccfbfff8f6fef3fbfff8fbfff8fbfff8f5fdf2f1f9eefbfff8fafff7
+f5fdf2f5fdf2f5fdf2f5fdf2f5fdf2f5fdf2f5fdf2f5fdf2f6fef3eaf2e7fbfff8fbfff8
+fbfff8eff7ecfbfff8fbfff8f1f9eef0faeff1fbf0f3fdf2f5fff4f6fff5f8fff7f8fff7
+f7fff6f3fdf2f0faeff1fbf0f5fff4f7fff6f6fff5f4fef3eef6ebf8fff5f0f8edf1f9ee
+fbfff8fafff7ecf4e9eef6ebfbfff8fbfff8eaf2e7e6eee3fbfff8fafff7edf5eafbfff8
+f6fef3f6fef3f7fff4f7fff4f7fff4f7fff4f6fef3f6fef3e9f1e6fbfff8f1f9eefbfff8
+fbfff8f8fff5e2eadffbfff8fbfff8fafff7f9fff6f8fff5f8fff5f6fef3f3fbf0f1f9ee
+f8fff5f4fcf1eef6ebfbfff8f7fff4eaf2e7fbfff8fafff7fbfff8f9fff6fafff7fbfff8
+f4fcf1d7dfd4fbfff8fbfff8fbfff8e6eee3f9fff6fbfff8dfe7dceef6ebfbfff8eaf2e7
+eff7ecf9fff6fbfff8e7efe4fbfff8fbfff8f4fcf1ecf4e9f1f9eef2faeff5fdf2f7fff4
+f8fff5f9fff6f9fff6f8fff5f8fff5f7fff4f5fdf2f4fcf1f4fcf1f5fdf2f7fff4f8fff5
+f4fcf1fbfff8e4ece1fbfff8fbfff8dee6dbf0f8edebf3e8fbfff8f9fff6f1f9eef7fff4
+ecf4e9fbfff8fbfff8ebf3e8fafff7fbfff8e9f1e6fbfff8fbfff8f2faeff9fff6edf5ea
+fbfff8f3fbf0e8efe7e7efe4f5fcf4f2faeff2f9f1eff7ecf8fff7f8fff5f9fff8f9fff6
+f9fff8f9fff6f8fff7f8fff5f4fcf1f5fdf2f7fff4f9fff6f9fff6f7fff4f5fdf2f4fcf1
+f0f8edfbfff8ebf3e8dfe7dcfbfff8ebf3e8e1e9defbfff8fbfff8fbfff8e8f0e5f1f9ee
+fbfff8fbfff8f4fcf1f7fff4fafff7f5fdf2eef6ebfbfff8e5ede2fbfff8f6fef3f2faef
+f8fff5fbfff8f1f8f0e4ece1fbfffaf2faeff9fff8f3fbf0f8fff7e8f0e5d6ddd5fbfff8
+fbfffaeaf2e7f4fbf3f9fff8fafff9f8fff9f8fff9f8fff9f8fff9f8fff9f8fff9f8fff9
+f8fff9f8fff9f8fff9f8fff9f8fff9f8fff9f8fff9fafffafafcfbfcfbfffcfafffdfbff
+fdfbfffefcfffefcfffefdff000000000100000100000100000100
+000007000005000100000200010700f8fbf0fcfff4f8fceed0d4c5fefff3e9ebdee5e7d9
+f2f6dfffffeaedefd9ffffeaffffe5ffffedf5f4f0f8f8fafefffafcfff6e8efdff5fdf2
+e7eaf3fcfeffe6e9f0fefffbfffff1fffff0fffcfbedece8fdffedfcffe6fdffe6fcffea
+fdffedfcfff2fdfdfbfcfdfffafafafafbfdfdfbfffbfafffaf7fff8f6fffbf8fffcfcff
+f8fdf7f8fdf7f8fbfff8fbfff8fdf7f8ffeff8ffe9f8ffedf1f5f4fcfffff6fcf0f3fbe4
+fcffe4f7ffe7eef2f5f8fbfffdfef9fcfdf7fafafcfaf9fffdf8fffdfbfffcfff6fbfff1
+f9f8fff9f7fff8f6fff7f7fff6f9f2f5f9ebf5f9ebf4f7f0fafbfffafbfffbfcf6fafdf6
+fbfafffafafffbfbfbfafcf7fffffdfdfffefffefffefffffffffaedf0e9fefdffe6e5f3
+fbfdffdfe5f3f5fff7f7fff8e3e7f2e7ebf4fcfff8f1f7ede4e6f3f8f7fffefffbe1e7cd
+f3fcd1ffffdfe3e4defeffffeef4e6f1f8e6f7fcf5fbfff9fcfff3fafff4f6f9fef3f5ff
+f0f2fffcfffffcfffadbe1d7fcfffff0f4f3f9fff3fbfff3f8fdf6f5faf4dce1dbf5faf4
+fcfffbf6fbf5eef3efeef3eff9fefaf9fefaf9fefaf9fefaf9fefaf9fefaf9fdfcf9fefa
+f8fdf7fcfffbf6fbf5f3f8f2dce1dbfcfffb0a0f09eef3edf3f8f2f3f8f2f4f9f3f4f9f3
+f5faf4f6fbf5f7fcf6f7fcf6f9fef8f5faf4f2f7f1f2f7f1f6fbf5f8fdf7f8fdf7f6fbf5
+f5faf4fcfffbfcfffbeef3edfcfffbe7ece6f6fbf5f9fef8ecf1ebfcfffbfbfffafcfffb
+fcfffbf6fbf5fcfffbd4d9d3f9fef8f6fbf5dde2dcf6fbf5fcfffbf7fcf6eff4eeeff4ee
+f9fef8f9fef8f9fef8f9fef8f9fef8f9fef8f9fef8f9fef8f8fdf7fcfffbf6fbf5f3f8f2
+dce1dbfcfffb0a0f09edf4edf2f9f2f2f9f2f3faf3f3faf3f4fbf4f5fcf5f6fdf6f6fdf6
+fbfffbf6fdf6f1f8f1f0f7f0f4fbf4f8fff8f9fff9f9fff9fcfffbf1f6f0f7fcf6fbfffa
+e3e8e2fcfffbf5faf4fcfffbeff4eeedf2ecf8fdf7e8ede7eef3edfcfffbf1f6f0f9fef8
+f5faf4f6fbf5f6fbf5f7fcf6f7fcf6f6fbf5f6fbf5f5faf4eff4eefcfffbf1f6f0eaefe9
+f9fef8f3f8f2fcfffbe4e9e3fcfffbfcfffbfbfffafbfffafbfffaf9fef8f6fbf5f3f8f2
+f9fef8fcfffbeff4eeeff4eee8ede7fcfffbd3d8d2fcfffbd6dbd5eaefe9f6fbf5fafff9
+f6fbf5fcfffbe2e7e1f9fef8f6fbf5f5faf4eff4eef8fdf7f1f6f0fcfffbfafff9f6fbf5
+f8fdf7f8fdf7e5eae41d221c000200ebf0eae8ede7fafff9fcfffbfcfffbfafff9f8fdf7
+f7fcf6f6fbf5f6fbf5f7fcf6fafff9f9fef8f8fdf7f7fcf6f7fcf6f8fdf7f9fef8fafff9
+e7ece6fcfffbf9fef8f5faf4ecf1ebfcfffbdadfd90d120c000200ecf1ebfcfffbf0f5ef
+fcfffbeff4eee7ece6fcfffbe1e6e0dbe0dafcfffbeaefe9e0e5dffcfffbfafff9fcfffb
+fcfffbe3e8e1fcfffbedf2ebfafff9fcfffafcfffbf8fdf6f5faf4f6fbf4f7fcf6f7fcf5
+f7fcf6f7fcf5f6fbf5f5faf4f3f8f2f5faf4f7fcf6f9fef8f9fef8f7fcf6f5faf4f3f8f2
+f6fbf5eaefe9fcfffbfafff9e6ebe5fcfffbf2f7f1050a04000200e3e8e2fcfffbfafff9
+f6fbf5eef3edfcfffbf9fef8f6fbf5fcfffbe2e7e1f6fbf5fafff9e5eae4fcfffbebf0ea
+f9fef8e2e7e0ecf1ebfcfffad4d9d3eff4edebf0eafcfffaf6fbf5fcfffafcfffbcdd2cb
+fcfffbfbfff9f5faf4fbfffbfafffcfafffcfafffcfafffcfafffcfafffcfafffcfafffc
+fafffcfafffcfafffcfafffcfafffcfafffcfafffcfafffef9fdfffcfcfffcfcfffcfcff
+fcfdfffdfefffefdfffefefe000100000100010100010100010000
+000009000005000000000100040500f9faf4fdfdfbf9f9f7fffff8fdfef8fdfafffffeff
+fffff2fcfbe7faf7eefffef2fdf8e5eee8dafffafefffdffebeae5f5f7e9ecf1dbfefff3
+feffffefeff7fffffff8f8ecf0f0d6e9e7cefffaf2fffefafffdeefdffeafdfef0fdfdf1
+fdfdf1fdfcf7fdfafffdfafff9f7fcfcf9fffefafffdf8fffaf6fff8f4fffbf7fffdfcff
+fafdf6fafdf6fafafffafafffafcf7fafeeffaffe9fafeedf4f6f5f8f9fef9fafcfbfdf8
+fefff3f9fcf1f6f7fcfefdfffefdfbfffbf8fcfafffcf8fffef9fffefcfffcfef3fbfdf0
+fcfbfffbf8fffbf7fffaf7fffaf9fef9faf4f8faecf8faeffbf8fffbf8fffbfaf5fbfbf1
+fbf9fafbf9fcfbfaf8fbfaf6f8f7f3fefdfbf1eff2f6f4f5e6e6dcfffffad3d0dbfffcff
+f9f9ffe5e8f7fbfffaf1f9eee9ecf5fcfeffe8eae7f9fbf6fffeffdad9e1f7f7f7fffff3
+f0f4d1fbffdef5f4f0efeef3f9fcf5f9fcf1f8faf7f8faf7f9fcf5fbfdfafdfefffefeff
+fefeffe6e6eee5e7e6fefffff2f3f7f0f1f3fdfffaf6f8f3fefffdf9fbf8f9fbf8fefffd
+cdcfccd6d8d7fefffff5f7f6fcfefdfcfefdfcfefdfcfefdfcfdfffcfdfffcfdfffcfdff
+feffffe8eae7fdfffcfbfdfafefffdeef0ed000100f6f8f5fcfefbfcfefbfbfdfafafcf9
+f8faf7f7f9f6f6f8f5f5f7f4fefffdfcfefbfafcf9f8faf7f8faf7f7f9f6f6f8f5f4f6f3
+fefffdd4d6d3fbfdfaf7f9f6fdfffcf5f7f4f0f2effefffdfbfdfafefffdcdcfccfefffd
+f4f6f3d5d7d4fefffdeaece9fefffdf7f9f6f7f9f6fefffdcbcdcad4d6d3fefffdf3f5f2
+fcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfefffde8eae7fdfffcfbfdfa
+fefffdeef0ed000100f6f8f5fafffbfafffbf9fefaf8fdf9f6fbf7f5faf6f4f9f5f3f8f4
+fcfffdf8fdf9f5faf6f4f9f5f6fbf7f9fefafcfffdfcfffdf1f3f0f9fbf8fefffde4e6e3
+fefffdf1f3f0e9ebe8fcfefbfefffddcdedbfbfdfafefffdedefecebedeaf9fbf8fbfdfa
+fafcf9fafcf9fbfdfafbfdfafbfdfafbfdfafafcf9fafcf9fefffdeceeebfefffdfefffd
+eff1eee0e2dffefffdf0f2effafcf9f9fbf8f8faf7fafcf9fbfdfafbfdfafafcf9f8faf7
+fbfdfaf6f8f5fcfefbf7f9f6f3f5f2edefecfefffde8eae7fefffdf6f8f5fefffdeff1ee
+fefffdebedeaf6f8f5f7f9f6fefffdf3f5f2fbfdfaf5f7f4fefffdf3f5f2fcfefbfefffd
+fdfffceaece9fefffddddfdc121411fefffdebedeafefffdfcfefbfafcf9f8faf7f6f8f5
+f6f8f5f7f9f6f9fbf8fafcf9f8faf7f9fbf8f9fbf8f9fbf8f9fbf8f9fbf8f9fbf8f8faf7
+eef0edfefffdf6f8f5fafcf9fbfdfaedefecfcfefbfdfffc161815fefffdf8faf7f7f9f6
+f9fbf8f6f8f5fefffdf2f4f1fefffdfafcf9f2f4f1fefffdeef0edfefffde1e3e0f5f7f4
+f7f9f4d6d8d3f9fbf6f4f6f1fbfdf8e1e3def0f2edf7f9f4f6f8f3f7f9f4f8faf5f9fbf6
+f9fbf6f8faf5f7f9f4f6f8f3f9fbf8fafcf9fbfdfafcfefbfcfefbfbfdfafafcf9f9fbf8
+fefffdfefffdf9fbf8fefffdf3f5f2dcdedbfefffdeaece9000100fefffdf3f5f2ebedea
+fefffdf8faf7fefffdf4f6f3eaece9e1e3e0fefffdf9fbf8fefffdf2f4f1fefffdfcfefb
+fefffbfafcf7e6e8e3f3f5f0fefffbf1f3eefefffbdbddd8f3f5f0e8eae5f2f4effefffb
+eef0ebfefffbfefffbf7f9f6fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffafdfffafdfffafefffbfffe
+fdfffcfdfffafefffafefffa000100000100010100010100010000
+04000b040005030000030000070400fcf8f5fefbfffaf7fff6f4f5010004070019080017
+f4efec060200150b130800070b0000080000090010fdf1fffffcffe8e5defffff1000200
+000005010009fbf7f8fffcf1e6e2c7ffffe8fffaf4ede3e4fffaf7fefafbfef7fffef7ff
+fef9fdfef9fdfef8fffef7fffbf6fdfffafffffbfffffbfffcfaedfaf9e5fdfbeffffff3
+fdfeeefcfef0fcfdf8fcfcfafcfdf7fcfef3fcfef1fcfdf7fcfbfff6f4fffbf9fffffeff
+f9f9fbf6f6f6fbfbfdfdfafffff8fffff7fffef8f8fffaf4fffeefffffebfefde8fbfcec
+fdfcfafdfbfffdfbfefdfbfcfcfbf7fcfbf6fefbf4fefaf7fef8fffef8fffefbf6fefcef
+fefcf0fefbf2fefbf6fefaf7faf6f3fffffafffcf3eceaddfffff4f1eee9fffcff01000c
+f3f3fdfcffffe8eee0fcfff8030210100f1d010200060800fcfdeffbfaf5fffafffffcff
+ede9e0ece9dafffefbf9f4f8fffefffffffffcfbfffaf9fffaf9fefcfcfcfefff7fffff4
+0002000c0d0708080afefdfffcfafff7f5ff100f17030207010002f4f2f3fffeffedebec
+fffefffffeffe4e2e5fffefffbf9fcfbf9fcfbf9fcfbf9fcfbf9fefbf9fefbf9fefbf9fc
+fffefffdfbfcfffefff2f0f1f7f5f6fffeff1e1c1df9f7f8fffdfefffdfefefcfdfdfbfc
+fcfafbfbf9fafaf8f9f9f7f8fcfafbfdfbfcfefcfdfdfbfcfbf9faf9f7f8f9f7f8f9f7f8
+fcfafbfffefffffefffffdfed9d7d8fffeff010000fdfbfc010000010000211f20f6f4f5
+fffefff2f0f1010000060405010000f2f0f1fffeffebe9eafffefffffeffe3e1e2fffeff
+fbf9fafbf9fafbf9fafbf9fafbf9fafbf9fafbf9fafbf9fafffefffdfbfcfffefff2f0f1
+f7f5f6fffeff1e1c1df9f7f8fefefefefefefdfdfdfcfcfcfbfbfbfafafaf9f9f9f8f8f8
+f9f9f9fafafafbfbfbfbfbfbfafafafbfbfbfdfdfdffffffe9e7e8fffeffe0dedffffeff
+010000090708040203070506fdfbfcfffeffeae8e9fcfafbfffeffefedeefffefff7f5f6
+fefcfdfefcfdfffdfefffdfefffdfefffdfefefcfdfefcfdfbf9faefedeefffefffcfafb
+f4f2f3fffeffeceaebfffefff9f7f8f8f6f7f8f6f7faf8f9fcfafbfcfafbfbf9faf9f7f8
+f7f5f6e9e7e8fffefffffefffffeffefedeef0eeeffffeffeeecedfffefff1eff0e4e2e3
+f6f4f5fffefffbf9fa010000f2f0f1fffeffd4d2d3fffeff0a0809ebe9eafffeffe7e5e6
+edebecf8f6f7eeecedfffeff010000e5e3e4fffefff2f0f1f5f3f4f5f3f4f6f4f5f7f5f6
+f9f7f8fbf9fafdfbfcfefcfdf7f5f6f8f6f7faf8f9fbf9fafbf9fafaf8f9f8f6f7f7f5f6
+fffeffedebecedebecfffdfefefcfdfffefffffefff0eeef010000faf8f9f5f3f4fcfafb
+fffefff5f3f4e8e6e7fffeffefedeefefcfd0604050907080100000100000806070a0907
+f9f8f4fffffbe8e7e3f9f8f4fffffbf6f5f1fcfbf7fcfbf7faf9f5fbfaf6fdfcf8fefdf9
+fefdf9fdfcf8fbfaf6faf9f5fefdfbfefcfdfefcfdfefcfdfefcfdfefcfdfefcfdfefcfd
+fcfafbf0eeefe7e5e6f8f6f7fffefffffefff4f2f3fdfbfc010000f8f6f7f3f1f2fffeff
+fffeffeceaebf2f0f1fffdfefffefffaf8f9080607010000f4f2f3fffeffebe9eaf6f5f3
+f0efebfffffbfefdf9f7f6f2fbfaf6f0efeb01000012110d1b1a16fffffbfffffbf7f6f2
+f6f5f1ebeae6fffffbfffffdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefffffafffffafffefafff9fafff5
+fbfff2fdfff2fefff3fefff5010100010100010100010100010000
+040009040004030000030000070400fcf8f7fffafffaf7fffef9fdfffcff030015fffaff
+eee8eafffdfa060007fff5fff4e9effffbfffff7ff0a0014040005fffefbf3f3e7fffff8
+020006fffdfff4f0f1fffff6ffffedefe8d6fcf2f0fffcfffef8fcfdf7fffdf5fffdf5ff
+fdf7fffdf8fefdf7fffdf7fffcf7fdfffbfffffdfffffdfcfdfce7fbfbdffefde9fffff1
+feffeffefff1fefef6fefdf8fefdf8fefdf8fefdf9fefdfbfffdfff7f4fffdf9fffffcff
+f1eef5efedf2faf8fbf7f5f8fff8fffff7fffef9f6fffbefffffe7ffffe5fefde9fafaee
+fdf9f6fcfbf9fefbf6fcfbf6fefbf6fefaf7fefaf7fffbfcfff9fffffafffffbf8fffcf3
+fffdf0fffdf0fffcf7fffbf8fdf9f8f3f0ebe6e4d7fffff3eae7defefaf70e0910fffdff
+f8f8f8fefffa000200000300fbf9fffcfafffaf9f7fdfef0010200fffff6fffbffddd5ea
+fffdfffaf5f1fffcfcfcf8f9fffdfffffdfffffdfffffdfffffdfffdfbfcfafaf0f8f9e9
+fffff1010100070508fffdffe7e3f1fcf8fffffdff010005f4f2f5fffeffe1dddef9f7f8
+f8f3f7f8f6f9fffdfff0eef1fef9fdfcfafdfef9fdfcfafdfef9fffcfafdfef9fffcfafd
+f8f4f5f9f7f8fbf7f8fbf9faf1edeef6f4f5f9f5f6fbf9fafcf8f9faf8f9fdf9fafcfafb
+fefafbfdfbfcfffcfdfefcfdf4f0f1f6f4f5fdf9fafcfafbfdf9fafaf8f9fefafbfefcfd
+fbf7f8faf8f9eae6e7fbf9fafffeff010000fffefffefcfdfffeff131112030000d4d2d3
+fffefff5f3f4fcf8f9110f10f9f5f6fffeffe3dfe0fbf9fafaf6f7fbf9fafffefff3f1f2
+fefafbfcfafbfefafbfcfafbfefafbfcfafbfefafbfcfafbf8f4f5f9f7f8fbf7f8fbf9fa
+f1edeef6f4f5f9f5f6fbf9fafaf8f9faf8f9fbf9fafcfafbfcfafbfdfbfcfefcfdfefcfd
+f2f0f1f7f5f6fcfafbfefcfdfcfafbfaf8f9faf8f9fcfafbfffeffeeeced120e0f110f10
+f1edeefefcfdfffefffffeff030000fcfafbfffeffeceaebfffeffebe9eafffefffbf9fa
+fffbfcfefcfdfffcfdfffdfefffdfefefcfdfffcfdfdfbfcfffeffdedcddfffeff070506
+f9f5f6f3f1f2fffefff3f1f2fffefffffdfefffcfdfefcfdfffdfefffdfefffbfcfbf9fa
+fffefffffdfefffeffedebece7e3e4fffeff030000fffefffffefff2f0f1f7f3f4fffeff
+f9f5f6f3f1f21b1718fbf9fafffeffe1dfe0fffeff010000030000030102fefafbfffeff
+fefafbfdfbfcfffefffcfafb060203edebecfffefffffdfefffcfdfefcfdfffdfefffeff
+fffdfefdfbfcfcf8f9f9f7f8fcf8f9fcfafbfffdfefffefffffefffffdfefefafbfaf8f9
+f8f4f5fffefffffefff4f2f3fbf7f8fbf9faf3eff0fffeff080405eceaebfffefff9f7f8
+f1edeefffefffdf9faf5f3f4fffbfcf4f2f3fffbfc090708fffefffdfbfcfffefff9f7f8
+060201f9f8f4fbf7f6fffffbf5f1f0f5f4f0fffefdf2f1edfffbfafefdf9fffefdfffffb
+fffefdfffffbfffcfbfdfcfafffdfefefcfdfffcfdfdfbfcfffbfcfefcfdfffcfdfffdfe
+fcf8f9f8f6f7fffefff7f5f6f0ecedfffeffd9d5d6fffeff120e0ff8f6f7fffefffefcfd
+f5f1f2f7f5f6f9f5f6faf8f9f5f1f2121011ebe7e8010000fffefffffefff6f2f3fffeff
+fffbfae8e7e3fffefdfdfcf8fbf7f6010000fffefdf1f0ecf2eeed050400faf6f5f7f6f2
+fffefdf9f8f4fffefdf3f2f0fffefffffefffffefffffefffffefffffefffffefffffeff
+fffefffffefffffefffffefffffefffffefffffefffffffffbfffefafffcfbfff7fbfff3
+fbfff2fdfff2fefff3fefff5010100010100010100010000010000
+010004010002010000010000060503fefcfdfffefffefdfffcfafbfdfbfe06030cf7f4fd
+fffefffbfaf8060407fefcfff8f4f5f7f2f6fffafff7f4fb09070a12110ffffffbf7f7f5
+040406ffffffe9e7e8fcfbf7fffffafffdf8f8f4f3fdfbfcfffefff7f5f8f7f4fbefecf3
+fffefffffefff0eef3fffdfffffeffe2e0e1fffefffefcfdefefe7f8f8eefffffaf5f4ef
+fefff9f6f7f2fffffdf4f4f2fffffde8e8e6fffffde5e5e5f7f7f9fffefff7f6fbf0eff4
+fefefffafafcfefefefefefef4f2f7fffefff3f2f0f2f1edfffff8f0f0e8f3f2edfffffb
+fffffde0e0e0fffffdfffffdedeceaf2f1effffffdfbf9fafffefffbf9fce2e1dffffffb
+f3f2eefffffbecebe9fffffdf2f0f1faf9f7fffffbf0efebfffffbfffffd010002ffffff
+ffffff0000002d2e29d7d7d5fffefffffefff4f4f4f9faf5060701e5e4e0fffefffdfaff
+eeecedf6f5f3fffeffedebecfdfdfffffffffdfdffeeeef0f9f9fbfffffff9faf5fcfdf7
+fdfef80d0e09040404010005fffefffbfafffffeff000002edededfffffffffeffececec
+fffefff2f2f2f5f3f4fdfdfdfffefff4f4f4faf8f9fefefefaf8fbffffffe9e7eaffffff
+efedeeffffffeae8e9f9f9f9fffefff7f7f7fefcfdfffffff7f5f6ffffffeceaebffffff
+f2f0f1f2f2f2fffeffe9e9e9f8f6f7fffffffbf9faf9f9f9fffdfefffffffdfbfcf9f9f9
+fffdfefffffff2f0f1fffffff9f7f8040404fffdfefcfcfcfdfbfc000000010000040404
+fffefff3f3f3fffeff040404eeecedfffffffffeffecececfffefff2f2f2f5f3f4fdfdfd
+fffefff4f4f4faf8f9fefefefaf8f9ffffffe9e7e8ffffffefedeeffffffeae8e9f9f9f9
+fffefff7f7f7fefcfdfffffff6f6f6ffffffebebebfffffff1f1f1f2f2f2ffffffe9e9e9
+fdfdfdfdfdfdfffffff2f2f2f7f7f7fffffff1f1f1f7f7f7ffffff000000121011e3e3e3
+fdfbfcffffffeeecedfbfbfb010000fffffffffefff5f5f5f4f2f3f2f2f2fffeffeeeeee
+fffeffebebebfffefffdfdfdf8f6f7eeeeeef8f6f7fffffffbf9fafbfbfbf6f4f5141414
+fffeffebebebfffdfef4f4f4ebe9eafffffff9f7f8fffffffffeffeeeeeefcfafbfafafa
+f8f6f7fffffffbf9fafffffff8f6f7f8f8f80a0809f1f1f1f3f1f2fffffff6f4f5f1f1f1
+fffeffffffff020001fafafafffefffbfbfbfffeff000000f6f4f5010101f7f5f6f1f1f1
+e5e3e4fffffffaf8f9efefef211f20f4f4f4eceaebf7f7f7f6f4f5fffffff1eff0ffffff
+e9e7e8fffffffffeffeaeaeafffdfef9f9f9fefcfde6e6e6fcfafbf4f4f4f3f1f2ffffff
+fefcfdfffffff0eeeffcfcfcfffefff8f8f8f4f2f3ffffff010000ffffffe3e1e2ffffff
+fffeffecececfcfafbf9f9f9fffefff2f2f2f9f7f8080808faf8f9e9e9e9fffefff4f4f4
+100e0f040402eeecedf6f6f4fdfbfcfffffdfffefffcfcfaf6f4f5fffffde1dfe0fffffd
+faf8f9fffffdf1eff0f8f8f8fefcfdf9f9f9fbf9faf8f8f8fffefff7f7f7f7f5f6f8f8f8
+f9f7f8f5f5f5fffefff8f8f8f6f4f5fffffffffefff2f2f2010000fbfbfbeeecedffffff
+fffefff1f1f1fffefff8f8f8fbf9faffffffefedee0d0d0dedebecf7f7f7f9f7f8ffffff
+fffefffdfdfbfcfafbd3d3d10a0809fbfbf9f8f6f7f2f2f0fdfbfcfdfdfb0b090afffffd
+f7f5f6f0f0eefffefff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefffffefffffefffdfefffb
+fefffbfffffbfffffbfffffb000100000100000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefefffffff3f3f3050505f2f2f2
+fffffff9f9f90b0b0befefeffcfcfcfdfdfdf8f8f8f8f8f8f8f8f8000000fffffffefefe
+171717f1f1f1f5f5f5f7f7f7f0f0f0f7f7f7edededffffff000000191919fffffff2f2f2
+ffffffebebeb030303000000020202f3f3f3f8f8f8fcfcfc1f1f1f050505000000000000
+0d0d0d020202010101000000010101171717f2f2f2ffffffffffff000000101010191919
+060606f8f8f8e2e2e2f4f4f4f4f4f4fafafaffffffffffffefefefffffff000000000000
+000000ffffffe8e8e8f3f3f3212121050505f5f5f50c0c0c000000f8f8f8ffffff131313
+000000111111000000f6f6f6f8f8f8fffffffffffff0f0f0fcfcfc060606ffffffececec
+eeeeee252525fbfbfbf2f2f2edededfffffffffffffffffffbfbfbfffffff8f8f8ececec
+1c1c1c000000000000fffffffefefeeeeeeefcfcfc000000141414040404000000f1f1f1
+f5f5f5040404fbfbfb222222fffffff3f3f3f5f5f5141414ffffffecececf4f4f4040404
+0000001c1c1cfefefef0f0f0fefefe050505000000181818000000000000060606000000
+0b0b0b0000001b1b1be6e6e6ebebeb020202020202edededf4f4f4030303040404000000
+131313060606020202fffffffffffff3f3f30101010000000b0b0b000000fbfbfbffffff
+fcfcfcf6f6f6ffffffeeeeee000000ffffffffffffffffffe7e7e7323232ffffff000000
+f6f6f6fffffff6f6f60a0a0affffffecececf4f4f40404040000001c1c1cfefefef0f0f0
+fefefe0505050000001818180000000000000606060000000b0b0b0000001b1b1be6e6e6
+ebebeb020202020202edededf4f4f4030303040404000000131313060606020202ffffff
+ffffffffffff0000000b0b0b020202050505f7f7f7ffffffd5d5d5161616f5f5f5ffffff
+fffffffdfdfdfbfbfbf8f8f8f9f9f9f6f6f6fffffff6f6f6191919121212000000ffffff
+f5f5f5ffffff0000000d0d0d080808101010000000111111eaeaeaffffff000000000000
+020202171717eeeeeeffffffffffff000000000000000000f6f6f6050505010101040404
+fcfcfc040404040404101010ffffff0000001313130707070d0d0defefeff8f8f8fdfdfd
+f6f6f6000000fffffffcfcfce8e8e8ffffffe5e5e5000000ffffff0e0e0e000000ffffff
+fdfdfdeeeeeefcfcfcffffff000000fbfbfbffffff0a0a0a050505ececec090909020202
+fffffff6f6f6e2e2e2040404000000000000ffffffffffffffffff1a1a1a000000040404
+fcfcfcefefeff4f4f4fffffff7f7f7000000222222000000070707ffffff000000000000
+0b0b0becececffffff020202000000ffffffffffff000000f1f1f1ffffffe7e7e7080808
+000000f3f3f3ffffffffffffe8e8e80000000a0a0a000000fafafaf8f8f8eeeeee121212
+000000f3f3f3ffffff010101050505ffffffffffff0000000e0e0e000000000000010101
+1c1c1cf0f0f0ddddddfffffffcfcfc070707000000121212111111f9f9f9ffffffe3e3e3
+000000151515e7e7e7fffffff6f6f6f9f9f9ffffff000000fffffffffffffbfbfbefefef
+fafafaecececfffffff8f8f8060606fffffffffffffefefefefefeededed1d1d1df9f9f9
+e8e8e8fffffff1f1f1ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdf1f1f1ffffff000000f8f8f8
+fbfbfbffffff000000fffffff4f4f4fffffff4f4f4f8f8f8fbfbfb111111edededf5f5f5
+000000e4e4e4ffffffe3e3e3ffffffffffffdfdfdfffffff191919000000ffffffeeeeee
+ffffff0e0e0ef3f3f3fffffffbfbfb0f0f0ffffffff4f4f4f7f7f7010101f3f3f3ffffff
+f4f4f4080808ffffffe8e8e8ffffff0e0e0ef8f8f8fcfcfc000000fffffffefefeffffff
+f3f3f3050505020202fffffffafafaffffffedededfffffff8f8f8000000f8f8f8ffffff
+ffffff0a0a0afffffff1f1f1f0f0f0030303000000fffffff9f9f9ffffff000000f8f8f8
+fffffff3f3f3ffffff161616000000ffffffe7e7e7ffffffffffff000000fffffffbfbfb
+ffffff000000fefefefffffff8f8f8ffffffffffffdcdcdce3e3e3fffffff7f7f7060606
+fffffff7f7f7ffffff000000fafafaffffff000000fcfcfce4e4e4ffffff000000fafafa
+fafafa050505eaeaeae4e4e4000000fcfcfcf5f5f5181818f7f7f7fefefe0000000f0f0f
+ffffffe7e7e70a0a0aecececffffffffffff090909f8f8f8fdfdfdffffff141414f3f3f3
+fcfcfcffffff000000fffffff4f4f4ffffff111111fefefefcfcfcfbfbfb0a0a0af9f9f9
+fdfdfdf6f6f6000000fafafaf1f1f10e0e0efffffff1f1f1ffffffececec0808080e0e0e
+fefefee9e9e9ffffffffffff070707fffffffdfdfdebebebffffff000000f1f1f1ffffff
+000000fcfcfcfdfdfd010101f7f7f7fefefe0000000f0f0fffffffe7e7e70a0a0aececec
+ffffffffffff090909f8f8f8fdfdfdffffff141414f3f3f3fcfcfcffffff000000ffffff
+f4f4f4ffffff111111fefefefcfcfcfbfbfb0a0a0af9f9f9fdfdfdf6f6f6000000fafafa
+e9e9e9202020f3f3f3fffffffffffff5f5f50e0e0e0b0b0bffffff000000fcfcfcfdfdfd
+efefeff1f1f1fffffff8f8f8fdfdfde9e9e9f6f6f6050505f2f2f2f7f7f7ffffff020202
+fffffff9f9f9fcfcfc060606f1f1f1ffffffeeeeee020202fffffff7f7f7fafafa040404
+ffffffd5d5d5fbfbfbfafafa080808fffffffffffffefefe000000ffffff000000131313
+ffffffffffff000000fafafaf9f9f9ffffff000000fffffff9f9f9fbfbfbfdfdfdffffff
+ffffff000000f7f7f7f8f8f8f6f6f6e8e8e8111111fbfbfbf0f0f0f4f4f40e0e0ef8f8f8
+fffffff5f5f5fffffffdfdfd000000ffffffe9e9e9f6f6f6030303030303fdfdfdf0f0f0
+eaeaeaffffff000000fffffffefefeffffff000000f9f9f90e0e0e000000ffffffffffff
+000000f4f4f4ffffffffffff040404ebebebf3f3f3ffffff030303e4e4e4ffffff0d0d0d
+f8f8f8f9f9f9e5e5e5050505ffffffe3e3e3f6f6f60808080d0d0d0000000d0d0d090909
+0e0e0effffffd5d5d5e5e5e5111111eeeeeefffffffafafa131313f6f6f6f8f8f8ffffff
+000000ffffffedededffffff000000f6f6f6f2f2f2ffffff000000ffffffffffffffffff
+000000ffffffffffffffffff080808e8e8e8fffffffbfbfb020202eeeeeefcfcfcffffff
+0505050e0e0effffffe5e5e5ffffffefefefffffff0b0b0bdfdfdffffffffffffffefefe
+fffffffcfcfceeeeeeffffff000000f2f2f2f2f2f2fcfcfcfbfbfbffffff000000ffffff
+fefefef9f9f9fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf7f7f7fefefe0c0c0cf1f1f1
+fffffff5f5f5020202fefefeffffffe2e2e2fffffffffffff7f7f7000000fffffffcfcfc
+030303ffffffe5e5e5f2f2f2fafafafbfbfbfffffff5f5f5fbfbfbefefefffffffffffff
+000000fbfbfbf8f8f8e7e7e7ffffffe9e9e90e0e0ef2f2f2ffffff000000f2f2f2fcfcfc
+fefefe0a0a0ae8e8e8ffffffffffff000000fffffffcfcfc0e0e0ef9f9f9fbfbfbdedede
+ffffff0a0a0ae6e6e6fafafaf9f9f9fffffffffffff6f6f6000000f7f7f7fafafaffffff
+fcfcfcffffff000000e7e7e7ffffff030303fffffffbfbfbfdfdfdffffff000000fafafa
+fcfcfcfffffff0f0f0000000fffffff5f5f5edededffffff000000ffffffffffffeaeaea
+e6e6e6000000fffffffffffff3f3f3ffffffefefefffffffffffffffffff000000ffffff
+f0f0f0f7f7f7e1e1e1ffffff131313fafafa070707252525f2f2f2edededffffffebebeb
+fefefe1f1f1ff9f9f9f3f3f3141414000000ffffff000000ffffffeeeeeefbfbfbf4f4f4
+eeeeee0202020c0c0cf9f9f9fffffff0f0f01a1a1aedededeaeaeaffffff000000ffffff
+e5e5e5ffffff000000fffffff7f7f7ffffff000000f8f8f8fafafaffffff000000ffffff
+fcfcfcf5f5f5131313eeeeeeffffff000000f1f1f1fefefeeaeaeaffffff000000f0f0f0
+f3f3f3fffffff4f4f4000000fbfbfbffffffe5e5e5ffffffffffff212121f3f3f3e8e8e8
+0d0d0d000000ffffff000000ffffffeeeeeefbfbfbf4f4f4eeeeee0202020c0c0cf9f9f9
+fffffff0f0f01a1a1aedededeaeaeaffffff000000ffffffe5e5e5ffffff000000ffffff
+f7f7f7ffffff000000f8f8f8fafafaffffff000000fffffffcfcfcf5f5f5131313eeeeee
+fbfbfb000000f1f1f1ffffffedededffffff040404ecececf7f7f7000000eeeeeeffffff
+f3f3f3fffffff1f1f1fffffff6f6f6ffffff020202fffffff6f6f6fcfcfcffffffe6e6e6
+121212ebebebf8f8f8050505eaeaeafefefef2f2f2030303fdfdfde6e6e6ffffff0a0a0a
+f3f3f3e9e9e9ffffff000000f5f5f5f6f6f6ffffffe6e6e6111111ffffffffffff000000
+ffffff111111ffffffffffffeeeeeefafafa000000fffffff4f4f4ffffffe7e7e7f5f5f5
+020202f4f4f4fdfdfdfffffffbfbfbf8f8f8090909111111000000090909000000fcfcfc
+fffffff1f1f1e8e8e8f8f8f8111111edededffffffffffff000000fefefef0f0f0ffffff
+ffffff000000ffffffebebebffffffdddddd101010ffffffe9e9e9f4f4f4f6f6f6000000
+000000f7f7f7e7e7e7000000fefefefffffff2f2f2e9e9e9151515f8f8f8e6e6e6000000
+020202ffffffffffff000000ffffffffffffe7e7e7060606fffffffffffff7f7f7fcfcfc
+000000000000ffffff070707fcfcfcffffffeaeaeafbfbfbf8f8f8151515ebebebf4f4f4
+0d0d0dfffffffdfdfdfcfcfc080808fbfbfbfffffff2f2f2111111ebebebf9f9f9ffffff
+212121fffffff9f9f90a0a0ae5e5e5fefefef2f2f2ffffff090909efefefffffffe9e9e9
+fffffffcfcfce4e4e4fffffff4f4f4fcfcfcffffff010101ffffffededede9e9e9f4f4f4
+fafafaffffffffffffe7e7e7040404fefefefefefefffffff2f2f2ffffff000000ffffff
+ebebebfffffff0f0f0fdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbfffffff1f1f1010101ffffff
+f5f5f5fcfcfc0a0a0aebebebffffffffffffefefefefefeff7f7f7121212fffffffcfcfc
+070707dbdbdbf9f9f9ffffffe8e8e8eaeaeaf5f5f5ffffffe8e8e8ffffffe9e9e9fdfdfd
+080808fffffffffffff9f9f9f4f4f4ffffff090909fffffff4f4f4000000fffffffcfcfc
+dadada141414f9f9f9e5e5e5ffffff000000ffffffffffffffffff000000090909111111
+030303f1f1f1ffffffefefeff5f5f5f2f2f2fefefee6e6e6111111fffffffbfbfbececec
+f6f6f6f7f7f70c0c0cffffffefefef070707f8f8f8e9e9e9ffffffd3d3d3fefefe080808
+000000000000000000ffffffededede7e7e7ffffff1b1b1bf5f5f5ffffffedededefefef
+ffffff141414fcfcfce5e5e5fffffffffffffffffff8f8f8d7d7d7e4e4e4242424f0f0f0
+eeeeeefffffffffffff4f4f4000000fffffffdfdfd0000000a0a0a101010e5e5e5ffffff
+ffffff000000fbfbfbffffffe7e7e7010101eeeeee1d1d1df0f0f0fffffff0f0f0101010
+000000ffffff0a0a0af2f2f2f7f7f7f6f6f6000000f4f4f4fffffffafafa1e1e1ee5e5e5
+fffffffefefe0b0b0beeeeeef2f2f2fefefe1c1c1cdededefdfdfdf1f1f1101010e2e2e2
+fbfbfbfcfcfc000000fffffffbfbfbe7e7e71717170a0a0a191919000000f7f7f7ffffff
+efefeffbfbfb0b0b0bf9f9f9f4f4f4f4f4f4f7f7f7fffffff4f4f4000000ffffffffffff
+eeeeee121212f0f0f0010101f0f0f0fffffff0f0f0101010000000ffffff0a0a0af2f2f2
+f7f7f7f6f6f6000000f4f4f4fffffffafafa1e1e1ee5e5e5fffffffefefe0b0b0beeeeee
+f2f2f2fefefe1c1c1cdededefdfdfdf1f1f1101010e2e2e2fbfbfbfcfcfc000000ffffff
+f7f7f7e3e3e3242424060606101010000000f0f0f0ffffffeaeaea1c1c1cffffffffffff
+f5f5f5e9e9e9f4f4f4fdfdfdf4f4f4e8e8e8060606f0f0f0fffffff3f3f3f8f8f8ffffff
+000000ffffffefefef000000ffffffd5d5d5ffffff000000f4f4f4fffffff4f4f4000000
+ffffffeaeaeaffffff000000080808040404000000070707000000f6f6f6fdfdfdffffff
+000000fefefeeeeeeefbfbfbfcfcfcffffff1c1c1cf3f3f3fdfdfdf6f6f6fcfcfc000000
+f4f4f4ffffffd4d4d4fffffffffffffdfdfd000000f1f1f1ffffffffffff0707070d0d0d
+f8f8f8ffffffecececffffff000000f9f9f9ffffffe5e5e5020202f4f4f4eaeaeaffffff
+e2e2e2030303000000232323000000090909141414d4d4d4ffffff1f1f1f010101fdfdfd
+161616f9f9f9fdfdfd0c0c0cf8f8f8ebebebfefefeffffff040404fffffffafafafefefe
+000000f7f7f7141414fdfdfdefefefdcdcdcf2f2f2111111f0f0f0fffffff1f1f1f0f0f0
+f8f8f80b0b0befefef090909fffffff3f3f3fffffff9f9f9eeeeee000000ffffffe7e7e7
+030303ffffffe9e9e9ffffff000000f9f9f9edededfbfbfb000000fffffff8f8f8fefefe
+000000f1f1f1f6f6f6040404ffffffffffffefefeff6f6f60a0a0afffffff3f3f3f1f1f1
+ffffffe8e8e8fffffff9f9f9f0f0f0fcfcfce3e3e3080808fefefefffffffffffffcfcfc
+e9e9e9f0f0f0eaeaeaffffff232323edededfcfcfcebebebffffffe8e8e81a1a1afafafa
+dcdcdcfffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303fafafafefefefafafae9e9e9ffffff040404f2f2f2
+fffffff8f8f8000000ffffffe6e6e6fffffff0f0f0f1f1f1202020000000f3f3f3fafafa
+000000ffffffececece9e9e9ffffff0b0b0bfbfbfbfffffffffffffffffff4f4f4ebebeb
+000000fbfbfbf3f3f3f9f9f9ffffffffffff000000fffffff1f1f1060606ffffffeeeeee
+ffffff000000ffffffefefefffffff000000ebebebf7f7f7ffffff000000fffffffefefe
+f0f0f0fefefed4d4d4f6f6f6ffffffffffffe0e0e0f8f8f8010101f8f8f8ffffffefefef
+ffffffffffff000000ffffffffffff000000f4f4f4ffffffefefefffffffe8e8e8000000
+ffffffffffffe9e9e9fdfdfdf7f7f7fffffff4f4f4040404fffffff0f0f0f5f5f5ffffff
+f9f9f9000000000000fffffffcfcfcf9f9f9fefefef9f9f9181818ffffff000000fafafa
+f5f5f5e2e2e2fffffff5f5f5010101ffffffefefeffffffffffffffbfbfb020202e3e3e3
+e3e3e3202020f7f7f7e5e5e5ffffff070707050505000000ffffffe9e9e9000000fbfbfb
+f8f8f8f5f5f5000000fffffffffffff8f8f8080808fbfbfbe2e2e2ffffff000000ffffff
+e5e5e5f6f6f6000000fffffffffffff8f8f8000000ffffffeeeeeeffffff000000fcfcfc
+efefefffffff030303e5e5e5f2f2f2fefefe070707e6e6e6fffffffbfbfbfdfdfdf3f3f3
+f1f1f1ffffff000000ffffffffffffe3e3e3fffffff2f2f2ffffff080808ebebebf7f7f7
+ffffff000000101010000000ffffffe9e9e9000000fbfbfbf8f8f8f5f5f5000000ffffff
+fffffff8f8f8080808fbfbfbe2e2e2ffffff000000ffffffe5e5e5f6f6f6000000ffffff
+fffffff8f8f8000000ffffffeeeeeeffffff000000fcfcfcefefefffffff030303e5e5e5
+f1f1f1ffffff0e0e0eefefefedededffffffeaeaeafbfbfbffffff000000000000fcfcfc
+ffffffefefeffffffff6f6f6070707ffffff000000fefefef2f2f2ffffffecececf5f5f5
+000000f7f7f7ffffff000000f4f4f4ffffffdfdfdf000000ecececf1f1f1f8f8f8020202
+fdfdfdf3f3f3f7f7f71c1c1ce9e9e9fffffffffffff7f7f7ffffffffffffffffff000000
+ebebeb020202fffffff0f0f0f7f7f7ffffff000000f6f6f6e1e1e1f6f6f6ffffff000000
+ffffffdcdcdcfffffff3f3f3e8e8e8090909fffffff5f5f5ecececffffffe3e3e3000000
+f7f7f7fcfcfcffffffffffff000000fffffffafafaf8f8f81b1b1bffffffffffffe9e9e9
+ffffff080808fdfdfde6e6e6ffffffebebebefefefffffff000000f3f3f3ebebebf7f7f7
+000000f9f9f9fbfbfb000000fefefeffffffe4e4e4f5f5f5000000ffffffffffffe1e1e1
+171717ececec000000ebebebf6f6f6ffffffededed151515f9f9f9f6f6f6fffffff4f4f4
+ffffff020202fafafa0a0a0af7f7f7fcfcfcffffffe3e3e3ffffff000000e6e6e6ffffff
+0e0e0efcfcfcffffffededed0b0b0bfefefef0f0f0fcfcfc171717f8f8f8e9e9e9ffffff
+000000fffffff1f1f1000000fdfdfdf8f8f8f1f1f1f3f3f3000000fffffff8f8f8f8f8f8
+f7f7f7f4f4f4f7f7f7fffffff1f1f1fefefefafafa030303f2f2f2f0f0f0fffffff7f7f7
+ffffffebebebffffffeeeeee000000f5f5f5fffffff5f5f5fafafae3e3e3000000ffffff
+ffffffedededfbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fdfdfdffffff040404ffffff
+fbfbfbffffff000000f9f9f9f7f7f7fffffffefefe101010000000fffffffffffff8f8f8
+0f0f0fe8e8e8ffffffdcdcdcffffff000000f6f6f6f5f5f5060606010101e0e0e0ffffff
+f9f9f9000000fefefef7f7f7e6e6e60c0c0cffffffe9e9e9fefefe000000ffffffffffff
+e7e7e7171717ebebebffffffeaeaea010101fffffff7f7f7f8f8f8000000040404030303
+000000040404fffffffafafa000000000000e9e9e9ffffffebebeb040404e9e9e9f5f5f5
+f1f1f1000000fdfdfdf1f1f1f0f0f00b0b0bffffffdadadaf2f2f2ffffffe7e7e7141414
+000000090909020202010101fffffff0f0f00e0e0eedededfdfdfdfefefeeaeaeaf3f3f3
+f7f7f7ffffff050505040404efefeffffffffcfcfcffffff000000d7d7d7f8f8f8000000
+fffffffafafaededed010101eeeeeeffffff131313ecececfbfbfbefefef1a1a1af7f7f7
+ffffff000000fffffff9f9f9f7f7f7e8e8e8232323060606ffffffeaeaea0b0b0bffffff
+fcfcfc0c0c0c020202f6f6f6efefeffcfcfc000000ffffffffffffefefef090909f6f6f6
+f6f6f6ffffff090909f5f5f5ecececfbfbfb000000fffffffffffffafafa010101ededed
+fffffffdfdfd000000fffffffefefeececec0303031a1a1a060606000000161616f8f8f8
+f1f1f1030303fffffff8f8f8fafafaf8f8f8fafafaf6f6f6f1f1f1080808ffffffefefef
+fffffff1f1f1151515101010ffffffeaeaea0b0b0bfffffffcfcfc0c0c0c020202f6f6f6
+efefeffcfcfc000000ffffffffffffefefef090909f6f6f6f6f6f6ffffff090909f5f5f5
+ecececfbfbfb000000fffffffffffffafafa010101edededfffffffdfdfd000000ffffff
+fdfdfdf5f5f50000002525250000000101010c0c0cf7f7f7f8f8f8ffffff0e0e0e000000
+fffffff8f8f8fffffffbfbfb040404d7d7d7f5f5f5000000fcfcfcffffffe2e2e2111111
+fffffff8f8f8f2f2f2010101fcfcfcf8f8f8f9f9f9191919ffffffeaeaeaffffff000000
+fffffffffffff4f4f4000000050505f2f2f2f8f8f8fefefe010101f6f6f60b0b0bf7f7f7
+ffffff030303050505fffffff7f7f7e3e3e3141414fffffffffffff0f0f0000000ffffff
+f1f1f1fffffffdfdfdf7f7f7ffffff000000ffffffebebebffffffd2d2d2ffffff080808
+000000fffffff0f0f0ffffff0a0a0af0f0f0fafafafefefe000000f9f9f9e9e9e9f5f5f5
+ffffff121212000000ffffffffffffeaeaea131313f6f6f6000000f3f3f3ffffff121212
+090909f8f8f8ffffff000000070707fafafaffffff0000000d0d0dedededffffffffffff
+e3e3e31d1d1df9f9f9f5f5f5f5f5f5f8f8f8ebebeb0b0b0bf9f9f9f4f4f4f5f5f5fdfdfd
+000000000000f9f9f9f1f1f1000000fafafaf7f7f7fefefe000000ffffffd5d5d5ffffff
+000000e8e8e8f3f3f3f5f5f5000000f8f8f8ffffffffffff000000fffffffffffffdfdfd
+000000ffffffc9c9c90c0c0c000000fafafaf6f6f6161616303030e8e8e8fffffff2f2f2
+0f0f0f010101e7e7e7fefefeffffffe8e8e8ffffff060606fffffffbfbfbe4e4e4ffffff
+000000050505fffffff8f8f8f0f0f0030303f6f6f6fefefef7f7f71e1e1eededede5e5e5
+fafafafffffffcfcfcfafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9f4f4f40000000000000b0b0b
+f2f2f20606060101010000000d0d0d000000121212f8f8f8fffffff9f9f9fcfcfc111111
+0000000101011414141e1e1e000000161616fffffffcfcfc000000030303fefefefdfdfd
+e5e5e5f5f5f51414140a0a0a020202fffffffefefee7e7e70b0b0b040404080808f9f9f9
+1212120000000d0d0df2f2f20000000f0f0f030303f8f8f8010101fcfcfcfdfdfdf6f6f6
+ffffff000000000000ffffff0a0a0a040404ffffffe1e1e1fffffff3f3f31818180a0a0a
+030303f3f3f3ffffffe6e6e60c0c0c000000030303fffffffcfcfce2e2e20e0e0efdfdfd
+f0f0f0fffffffbfbfb010101030303eeeeee0c0c0cffffffebebebfffffffffffffafafa
+fdfdfdebebebfcfcfcf7f7f70606060a0a0a000000030303f1f1f1fffffffcfcfcffffff
+000000151515000000fffffffefefeffffff000000050505000000090909dbdbdbffffff
+0000000606060d0d0df8f8f8fffffffcfcfce4e4e4000000fafafafbfbfbffffff000000
+090909ffffff000000090909fefefe111111060606000000ffffff060606000000010101
+ffffff101010000000050505ffffff1d1d1d000000000000f6f6f6121212010101000000
+ffffff050505171717000000ffffff000000fffffff9f9f9e9e9e9ffffff000000141414
+ffffff000000fafafaffffffffffffefefefffffffefefef0000000a0a0a0d0d0dececec
+f6f6f6fafafae7e7e7000000fafafafbfbfbffffff000000090909ffffff000000090909
+fefefe111111060606000000ffffff060606000000010101ffffff101010000000050505
+ffffff1d1d1d000000000000f6f6f6121212010101000000ffffff050505171717000000
+fdfdfd030303fafafaf9f9f9f0f0f0ffffff000000050505f9f9f9eeeeeef5f5f5f3f3f3
+010101010101000000000000f8f8f8fcfcfcfefefeffffff0606060000000f0f0ff8f8f8
+f0f0f0ffffff0000000c0c0c030303ffffff000000040404000000fffffffdfdfd000000
+0c0c0c000000fcfcfcffffff060606080808070707010101fbfbfb0d0d0d0000000f0f0f
+efefef0c0c0c000000000000fcfcfcf2f2f20d0d0d000000050505ffffff0e0e0efdfdfd
+f3f3f3f5f5f5e3e3e3ffffff000000141414000000fffffff0f0f0fefefe0a0a0a030303
+080808080808fefefe0101010000000e0e0ef8f8f8040404080808020202fffffffafafa
+ffffffffffff0202020303030303030e0e0efffffff9f9f9fbfbfb181818000000ffffff
+0c0c0c030303f2f2f2eeeeee090909030303020202ffffff010101060606f2f2f2dddddd
+ffffff000000fffffffcfcfcf7f7f7ffffff0000000909090606060a0a0a000000060606
+fffffffffffffafafafffffffdfdfd020202000000191919ffffffddddddffffffffffff
+ffffff0101010e0e0e0808080000000d0d0df5f5f5000000202020010101e2e2e20a0a0a
+121212000000fffffff6f6f60808080707070c0c0cf1f1f1000000151515e2e2e2ffffff
+000000020202fffffff4f4f4f0f0f00c0c0c000000060606000000ffffffecececfafafa
+080808070707f2f2f2eeeeeefdfdfdf6f6f60101010202020c0c0cf6f6f6fbfbfbffffff
+f9f9f9fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000040404fafafafcfcfcf7f7f7f8f8f8f9f9f9f9f9f9fafafa
+fbfbfbfcfcfcfdfdfdfdfdfdf4f4f4f7f7f7fbfbfbfefefefffffffefefefbfbfbf9f9f9
+fafafafafafafafafafafafafafafafafafafafafafafafaf8f8f8f9f9f9fcfcfcfdfdfd
+fbfbfbf7f7f7f2f2f2efefeff7f7f7f9f9f9fcfcfcfffffffffffffcfcfcf9f9f9f7f7f7
+fafafafafafafafafafafafafafafafafafafafafafafafa030303f9f9f9fcfcfcffffff
+e5e5e5ffffff000000fffffffbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f5f5f5f2f2f2efefef
+f7f7f7f9f9f9fcfcfcfffffffffffffcfcfcf9f9f9f7f7f7fffffff9f9f9030303fcfcfc
+e9e9e9fffffff0f0f0fbfbfb0000001d1d1deaeaeafcfcfcfffffff3f3f3fbfbfbf8f8f8
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf8f8f8f7f7f7f4f4f4f3f3f3
+f3f3f3f4f4f4f7f7f7f8f8f8fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f9f9f9f9f9f9fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefafafafafafafafafafafafa
+fafafafafafafafafafafafafdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefefffffffafafafbfbfbfbfbfbfcfcfc
+fbfbfbf9f9f9f8f8f8f7f7f7fafafa040404fffffff1f1f1fefefef8f8f8ffffff060606
+030303f1f1f1fffffff1f1f1ffffffeeeeeefffffffbfbfbfafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfdfdfdfefefefffffffafafafbfbfbfbfbfbfcfcfcfbfbfbf9f9f9f8f8f8f7f7f7
+f5f5f5000000ffffffefefeffcfcfcf6f6f6fbfbfb010101fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf6f6f6f7f7f7f9f9f9f9f9f9f9f9f9f7f7f7f4f4f4f2f2f2
+fcfcfcf8f8f8f5f5f5f7f7f7fbfbfbfdfdfdf9f9f9f6f6f6fcfcfcfbfbfbf9f9f9f7f7f7
+f7f7f7f9f9f9fbfbfbfcfcfcfffffffdfdfdf9f9f9f6f6f6f6f6f6f7f7f7fafafafcfcfc
+f7f7f7f8f8f8fafafafcfcfcfefefefffffffffffffffffff1f1f1060606fffffffefefe
+f4f4f4fcfcfcfefefefffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f5f5f5f7f7f7fafafafdfdfdfdfdfdfafafaf7f7f7f5f5f5fcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9ffffffedededfffffffcfcfc
+f0f0f00a0a0afffffff2f2f2fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f7f7f7f8f8f8fafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcf9f9f9f7f7f7f6f6f6f4f4f4
+f4f4f4f6f6f6f7f7f7f9f9f9fafafafafafafafafafafafafafafafafafafafafafafafa
+f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefffffff7f7f7ffffff
+f5f5f5fffffffafafafffffff8f8f8f8f8f8f8f8f8f8f8f8fafafafbfbfbfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf8f8f8f8f8f8fafafafbfbfb
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdf8f8f8f9f9f9fafafafafafafbfbfb
+fcfcfcfdfdfdfefefefefefef7f7f7f9f9f9fcfcfcfefefefffffffefefefcfcfcfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf9f9f9fbfbfbfcfcfcfdfdfd
+fcfcfcf9f9f9f6f6f6f4f4f4f9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfbfbfbf9f9f9
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc080808ffffffffffffeaeaea
+ffffff060606f9f9f9fffffffafafafbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f6f6f6f5f5f5
+f9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfbfbfbf9f9f9ecececf7f7f7131313ffffff
+fffffff0f0f0fbfbfb000000ffffffd7d7d7ffffffecececf2f2f2f5f5f5fffffffafafa
+f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f2f2f2f5f5f5fafafafdfdfd
+fdfdfdfafafaf5f5f5f2f2f2fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f4f4f4f5f5f5f5f5f5f6f6f6f7f7f7f8f8f8f9f9f9f9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafa
+f9f9f9fafafafafafafbfbfbffffff000000f4f4f4f4f4f4fffffffbfbfb000000ffffff
+fefefefffffff1f1f1fbfbfbf9f9f9f4f4f4fffffff3f3f3fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfb
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9fafafafafafafbfbfb
+ffffff000000f5f5f5f6f6f6fffffffcfcfc000000fffffffafafafafafafafafafafafa
+fafafafafafafafafafafafaeeeeeef0f0f0f4f4f4f9f9f9fcfcfcfefefeffffffffffff
+fdfdfdf9f9f9f6f6f6f8f8f8fcfcfcfdfdfdfbfbfbf7f7f7fdfdfdfcfcfcfafafaf9f9f9
+f9f9f9fafafafcfcfcfdfdfdfafafafafafaf9f9f9f9f9f9f8f8f8f8f8f8f8f8f8f8f8f8
+f4f4f4f5f5f5f6f6f6f8f8f8f9f9f9fafafafafafafafafaf8f8f8f5f5f5fefefef8f8f8
+fffffffefefefcfcfcedededfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f7f7f7f9f9f9fbfbfbfdfdfdfdfdfdfbfbfbf9f9f9f7f7f7fcfcfcfcfcfcfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafaeaeaeaffffff000000dddddd
+1f1f1ff2f2f2fcfcfcfffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdf9f9f9f9f9f9fafafafafafa
+fafafafafafaf9f9f9f9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfdfdfdf8f8f8fdfdfd
+f7f7f7fdfdfdfafafafcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9fbfbfbfcfcfcfcfcfcfdfdfd
+fefefefefefefffffffffffffafafafbfbfbfdfdfdfefefefffffffffffffefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fdfdfdfcfcfcfbfbfbfafafafcfcfcfdfdfdfefefefefefefefefefefefefdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000252525
+000000fefefefffffff6f6f6fafafafbfbfbfcfcfcfefefefefefefdfdfdfcfcfcfbfbfb
+fcfcfcfdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfffffffbfbfbf7f7f7000000
+000000070707090909fffffffefefee7e7e7fdfdfdefefeffbfbfbfdfdfdfffffff8f8f8
+fafafafafafafafafafafafafafafafafafafafafafafafaf3f3f3f8f8f8fefefeffffff
+fffffffefefef8f8f8f3f3f3fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9f9f9f9fafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfcfbfbfbfbfbfb
+fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefdfdfdfafafaf8f8f8
+f9f9f9fbfbfbfefefeffffffdededeffffff040404121212000000000000ffffffffffff
+fdfdfdeeeeeefffffffefefef2f2f2fafafaf0f0f0fffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefdfdfdfafafaf8f8f8f9f9f9fbfbfbfefefeffffff
+dcdcdcffffff040404131313000000000000fffffffffffffbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf7f7f7f8f8f8fafafafcfcfcfdfdfdfefefefdfdfdfcfcfc
+fefefefbfbfbf9f9f9fafafafdfdfdfefefefcfcfcf9f9f9fefefefdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefef8f8f8fafafafcfcfcfefefefefefefbfbfbf9f9f9f7f7f7
+fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcf0f0f0ffffffedededf2f2f2
+f4f4f4fffffff7f7f7fffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfefefefefefe
+fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcffffffffffff030303000000
+dfdfdfffffffdcdcdcf7f7f7fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfdfdfdfefefefefefefffffffffffffefefefbfbfbfcfcfcfefefeffffff
+fffffffefefefcfcfcfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfafafaf9f9f9fdfdfdf9f9f9
+fefefef9f9f9fcfcfcf9f9f9fffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fafafafefefefbfbfbfdfdfdfefefefefefefefefe
+fffffffffffffffffffffffffefefefefefefefefefefefefefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff4f4f4fcfcfc
+fffffffffffffefefef8f8f8fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefefefefffffffffffffffffffcfcfcfcfcfcffffff
+fffffffefefed8d8d8fffffff7f7f7fffffffffffffffffffffffff7f7f7f7f7f7f9f9f9
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfefefefefefefffffffffffffffffffefefefefefe
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfafafafdfdfdfcfcfcfbfbfbfafafa
+fbfbfbfdfdfdfffffffffffffffffff8f8f8f8f8f8f4f4f4fffffff6f6f6fffffffafafa
+f3f3f3f6f6f6ffffffebebebf1f1f1fffffff5f5f5fbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefefefefffffffffffffffffffefefefefefefffffffffffffefefefefefe
+fdfdfdfcfcfcfbfbfbfafafafdfdfdfcfcfcfbfbfbfafafafbfbfbfdfdfdffffffffffff
+fefefef7f7f7f7f7f7f3f3f3fffffff6f6f6fefefef9f9f9ffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfafafaf8f8f8
+fffffffdfdfdfcfcfcfcfcfcfffffffffffffefefefcfcfcfffffffefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefefffffffcfcfcfefefefffffffffffffffffffffffffdfdfdfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd1d1d1fffffffdfdfd
+f1f1f1fffffff3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefef6f6f6fbfbfbfdfdfdefefef
+ffffffecececf2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfbfbfbfcfcfcf8f8f8fffffff8f8f8
+fffffff8f8f8fffffff9f9f9fffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffff2f2f2
+fffffff0f0f0f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffdfdfdffffffe4e4e4ffffff
+eaeaeafffffffcfcfcf6f6f6efefeff9f9f9e2e2e2ebebebf6f6f6fafafaffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfb
+fbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9fafafafbfbfbfcfcfcfdfdfd
+fffffffffffffffffffffffffbfbfbfffffffbfbfbf3f3f3f1f1f1ffffffe9e9e9fdfdfd
+ffffffefefeffafafafffffff7f7f7fffffffffffff6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefcfcfcfafafaf9f9f9fafafafbfbfbfcfcfcfdfdfdffffffffffffffffffffffff
+fffffffffffffefefef6f6f6f3f3f3ffffffecececffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffefefefffffffffffffefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffefefefdfdfdfcfcfcf6f6f6fffffffffffff0f0f0
+fffffff9f9f9fdfdfdf6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefefefefffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff9f9f9
+ddddddf6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfbfbfbf8f8f8fffffff7f7f7
+fffffff7f7f7fffffff9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefef9f9f9fcfcfce4e4e4ffffff
+e9e9e9f7f7f7fffffffbfbfbfffffffffffffffffffffffffffffffffffffefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbe4e4e4fffffff1f1f1
+fcfcfcfffffffffffff1f1f1fffffffffffffdfdfdfffffffffffffffffff9f9f9f4f4f4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fefefefffffffffffffffffffffffffdfdfdfbfbfbf9f9f9f9f9f9fafafafcfcfcfefefe
+fffffffffffffffffffefefef4f4f4fefefef5f5f5ffffffdededef4f4f4ffffffe9e9e9
+dfdfdff4f4f4fbfbfbfffffffffffff0f0f0f1f1f1ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfefefeffffffffffffffffff
+fffffffdfdfdfbfbfbf9f9f9f9f9f9fafafafcfcfcfefefefffffffffffffffffffefefe
+f7f7f7fffffff6f6f6ffffffdfdfdff5f5f5ffffffecececffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfefefeffffffffffff
+fdfdfdfdfdfdfefefefefefefefefefdfdfdfcfcfcfcfcfce5e5e5fffffff3f3f3ededed
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffefefeff3f3f3fffffffafafa
+f8f8f8fffffffbfbfbf3f3f3ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfc
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf9f9f9f7f7f7fcfcfcf7f7f7
+fdfdfdf7f7f7fafafaf8f8f8fafafafafafafbfbfbfbfbfbfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff3f3f3fdfdfdffffff
+fbfbfbfffffffbfbfbf2f2f2fffffffffffffffffffefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffe7e7e7ffffff
+f4f4f4e9e9e9fcfcfcfffffff7f7f7f6f6f6fffffff9f9f9fbfbfbfafafaffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffffffffffffffefefefdfdfdfcfcfc
+fdfdfdfefefefffffffffffffffffffefefefcfcfcfafafafbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfefefefefefefffffffbfbfbfffffff7f7f7fffffffdfdfdf5f5f5ffffff
+f8f8f8fffffff9f9f9e2e2e2fffffffffffff3f3f3fffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffefefefdfdfdfcfcfcfdfdfdfefefeffffffffffff
+fffffffefefefcfcfcfafafafbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefe
+fffffffafafafffffff4f4f4fffffffafafaf4f4f4fffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffffffffffffff1f1f1fefefeffffff
+f5f5f5fffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f3f3f7f7f7
+fffffffbfbfbf3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffefefefefefe
+fefefefefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf9f9f9fbfbfbf6f6f6fbfbfb
+f6f6f6fbfbfbf8f8f8fafafafcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefeffffffffffff
+fffffffefefefcfcfcfcfcfcfefefefffffffffffffffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffefefefcfcfc
+fbfbfbfafafafcfcfcfffffffefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffe6e6e6fffffff4f4f4
+fffffffffffffffffff7f7f7fffffff2f2f2fffffff6f6f6fefefefffffffefefef9f9f9
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffdfdfdfcfcfc
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfefefefffffffffffffffffffffffffcfcfcfbfbfbfefefefcfcfcfafafaf9f9f9
+f9f9f9fbfbfbfefefefffffff9f9f9fffffffbfbfbfcfcfcf9f9f9fbfbfbfcfcfcfafafa
+ffffffe4e4e4ffffffffffffeaeaeafefefefffffff8f8f8fefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefeffffffffffff
+fffffffffffffcfcfcfbfbfbfefefefcfcfcfafafaf9f9f9f9f9f9fbfbfbfefefeffffff
+fcfcfcfffffffcfcfcfbfbfbf9f9f9fbfbfbfefefefdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefe
+fefefefffffffffffffffffffefefefefefefffffffffffffdfdfdfefefefefefeffffff
+fffffffefefefefefefdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefefefefffffffffffffffffffefefefbfbfbfefefefcfcfcf7f7f7
+fffffff6f6f6fffffff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefefffffffffffffefefefdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff8f8f8ffffff
+f9f9f9f6f6f6fffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9fcfcfcfffffff5f5f5ffffff
+f3f3f3fffffff8f8f8fefefefffffffffffffefefefdfdfdfdfdfdfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefefffffffbfbfbfcfcfcffffff
+e9e9e9fcfcfcfffffffdfdfdfffffff6f6f6fffffffffffff6f6f6fffffffffffff8f8f8
+f8f8f8ffffffeeeeeefffffffdfdfdfafafaf8f8f8fffffffffffff1f1f1f4f4f4ffffff
+fafafafbfbfbfcfcfcfffffffffffff6f6f6f3f3f3ffffffecececfffffffffffff6f6f6
+fffffff6f6f6f4f4f4ffffffe5e5e5fefefefffffffffffffffffff8f8f8fffffff4f4f4
+f4f4f4fffffff7f7f7ffffffffffffe4e4e4fffffffcfcfcfffffffdfdfdfefefeffffff
+fffffff3f3f3fffffffffffffffffff5f5f5fffffffefefefffffff8f8f8fdfdfdf3f3f3
+fdfdfdfffffff4f4f4fffffff8f8f8fffffff2f2f2fffffffafafafffffffdfdfdfdfdfd
+fffffff8f8f8ffffffeaeaeafefefefffffffffffff7f7f7fcfcfcfefefefefefeffffff
+edededfcfcfcffffffeeeeeefefefef6f6f6f8f8f8fffffff7f7f7fafafafafafaffffff
+fdfdfdfffffff5f5f5fdfdfdf5f5f5fffffff4f4f4fcfcfcf0f0f0fffffff7f7f7ffffff
+e4e4e4fdfdfdfffffffcfcfcfffffffffffff2f2f2fffffffffffffafafaf5f5f5fcfcfc
+fafafafffffffbfbfbf8f8f8f6f6f6fffffff8f8f8fbfbfbfffffffbfbfbfcfcfcfbfbfb
+fbfbfbf3f3f3fffffffffffffafafafffffff9f9f9ffffffffffffffffffefefefffffff
+fffffffffffffffffff9f9f9ffffffffffffeaeaeaffffffffffffecececffffffffffff
+fefefefffffff0f0f0fbfbfbf0f0f0fffffff7f7f7ffffffe4e4e4fdfdfdfffffffcfcfc
+fffffffffffff2f2f2fffffffffffffafafaf5f5f5fcfcfcfafafafffffffbfbfbf8f8f8
+f6f6f6fffffff8f8f8fbfbfbfffffffbfbfbfcfcfcfbfbfbfbfbfbf3f3f3ffffffffffff
+f5f5f5fffffffffffffffffffffffffefefef0f0f0fffffffbfbfbe9e9e9ffffffededed
+fefefefffffff7f7f7fbfbfbfbfbfbfdfdfdfefefeffffffeaeaeafafafafffffff5f5f5
+f6f6f6fffffffffffffffffffffffffffffff0f0f0fffffffdfdfdffffffe8e8e8ffffff
+fdfdfdf7f7f7fffffffdfdfdf8f8f8fffffffcfcfcfefefefffffffffffff9f9f9f3f3f3
+f8f8f8fdfdfdfffffff3f3f3ffffffedededffffffffffffffffffedededfdfdfdffffff
+fdfdfdfffffff8f8f8fffffffffffff2f2f2fffffff1f1f1f7f7f7fffffff6f6f6ffffff
+fdfdfdfdfdfdf9f9f9fcfcfcf2f2f2fffffff6f6f6ffffffefefefffffffedededffffff
+ffffffffffffeeeeeefffffffdfdfdfefefee7e7e7fffffff6f6f6f9f9f9fefefefdfdfd
+fcfcfcfafafaf7f7f7ffffffebebebfffffffffffffdfdfdeeeeeefffffff6f6f6fefefe
+fffffff4f4f4ffffffffffffffffffffffffeaeaeafffffffdfdfdf8f8f8ffffffe1e1e1
+fffffff1f1f1fffffffafafaf9f9f9fffffffffffff9f9f9fdfdfdfdfdfdf9f9f9ffffff
+fefefefefefef6f6f6fffffffffffffcfcfcf2f2f2fffffffbfbfbf9f9f9ffffffeeeeee
+fefefef3f3f3fefefeffffffeeeeeef5f5f5fffffffafafaf2f2f2fffffff9f9f9f2f2f2
+ffffffdbdbdbfafafafdfdfdffffffebebebfffffff8f8f8f2f2f2fffffff6f6f6ffffff
+ffffffeeeeeefffffff6f6f6efefeffffffffbfbfbf3f3f3ffffffffffffe9e9e9fdfdfd
+f8f8f8eeeeeefffffff0f0f0fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefefcfcfcfffffffcfcfce2e2e2
+fffffffbfbfbfbfbfbfdfdfdfbfbfbfffffff5f5f5e3e3e3fffffff4f4f4ecececfefefe
+f1f1f1fffffff1f1f1f8f8f8f9f9f9fffffffcfcfce8e8e8ffffffffffffffffffe5e5e5
+fffffffcfcfcfffffff6f6f6ffffffffffffffffffedededfafafae9e9e9f4f4f4ffffff
+fbfbfbffffffffffffe6e6e6fefefefffffffcfcfcf0f0f0f8f8f8f0f0f0fffffffdfdfd
+ffffffffffffe5e5e5fffffff7f7f7fafafafffffffffffff9f9f9edededfffffff7f7f7
+f5f5f5ffffffedededf8f8f8f8f8f8fffffffbfbfbe7e7e7fffffff0f0f0f7f7f7ffffff
+e6e6e6fdfdfdffffffedededffffffe3e3e3fffffff0f0f0f0f0f0f5f5f5ecececffffff
+f7f7f7ffffffecececfffffffcfcfcf7f7f7fffffff9f9f9fffffffffffff6f6f6fcfcfc
+fffffffffffff7f7f7fffffff9f9f9f6f6f6ffffffe2e2e2fafafaf7f7f7fffffffdfdfd
+f7f7f7f4f4f4ffffffebebebfffffff1f1f1f8f8f8fefefeffffffe7e7e7e9e9e9f9f9f9
+ffffffffffffefefeff9f9f9e3e3e3f4f4f4fcfcfcfffffffafafafefefefffffffefefe
+f1f1f1fafafaefefefffffffeeeeeeededed000000efefefffffffd5d5d5eaeaeaffffff
+e5e5e5fffffff3f3f3f4f4f4fdfdfde8e8e8fdfdfdfffffff0f0f0ffffffe9e9e9ffffff
+f2f2f2fcfcfcf6f6f6fffffff0f0f0f5f5f5fefefefefefefdfdfdfffffffafafae3e3e3
+f9f9f9e8e8e8fffffff2f2f2ffffffe7e7e7e9e9e9f9f9f9ffffffffffffefefeff9f9f9
+e3e3e3f4f4f4fcfcfcfffffffafafafefefefffffffefefef1f1f1fafafaefefefffffff
+eeeeeeededed000000efefefffffffd5d5d5eaeaeaffffffe5e5e5fffffff3f3f3f4f4f4
+ffffffe3e3e3f9f9f9f9f9f9fbfbfbffffffedededfefefefbfbfbffffffedededffffff
+fcfcfcefefeffffffffefefefdfdfdfffffff9f9f9fffffffffffffffffff2f2f2ffffff
+fffffffdfdfdffffffe9e9e9f8f8f8fbfbfbfcfcfcfffffff8f8f8e8e8e8fefefefcfcfc
+f2f2f2fffffff1f1f1fdfdfdfefefefdfdfdf5f5f5f4f4f4ebebebfffffffbfbfbffffff
+fafafaffffffebebebfffffffafafafffffffffffff0f0f0f8f8f8fffffff6f6f6f2f2f2
+fafafafffffffffffffbfbfbfffffffefefef5f5f5fafafaffffffe3e3e3fffffff8f8f8
+f7f7f7fffffff1f1f1fffffffdfdfdfdfdfdfcfcfcfafafafffffff3f3f3ffffffe0e0e0
+fffffffffffff4f4f4f7f7f7ffffffffffffffffffeeeeeefffffff0f0f0ffffffffffff
+fdfdfdfffffffffffffffffffffffffafafaf4f4f4f4f4f4fffffffffffff5f5f5f5f5f5
+fffffffffffff3f3f3f5f5f5f7f7f7f2f2f2fffffff9f9f9f4f4f4f9f9f9e9e9e9ffffff
+f2f2f2fcfcfcfffffffefefeffffffe9e9e9eeeeeeffffffffffffeeeeeef9f9f9f7f7f7
+fbfbfbf1f1f1fffffffffffffffffffbfbfbeeeeeefdfdfdf7f7f7ffffffecececffffff
+f6f6f6fffffffdfdfdfffffffffffff7f7f7e7e7e7f7f7f7f3f3f3e5e5e5ffffffd9d9d9
+0000002a2a2aefefeff8f8f8eeeeeefffffff5f5f5fafafafffffff7f7f7ebebebffffff
+f1f1f1f1f1f1fffffffffffffffffff9f9f9f6f6f6fffffff2f2f2fcfcfcffffffffffff
+f6f6f6fffffff5f5f5fffffffffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdf8f8f8fffffffefefef1f1f1
+f7f7f7fffffffdfdfdf7f7f7f4f4f4fffffffbfbfbfffffff7f7f7f2f2f2ffffffffffff
+fffffff7f7f7fffffffffffffbfbfbfefefefcfcfcffffffe4e4e4f6f6f6fffffffbfbfb
+fffffff5f5f5fdfdfdfffffff1f1f1f6f6f6ffffffffffffefefefffffffffffffe7e7e7
+fffffffbfbfbfdfdfdfefefefcfcfcffffffdbdbdbfffffffefefefffffff9f9f9f9f9f9
+eeeeeef1f1f1ffffffe9e9e9eeeeeeffffffe8e8e8f2f2f2fffffffffffff9f9f9fdfdfd
+fcfcfceeeeeefffffffffffffffffff5f5f5f3f3f3fffffffdfdfdfffffffffffff6f6f6
+fcfcfcffffffffffffefefeff4f4f4f9f9f9f8f8f8f5f5f5fffffffffffffefefeededed
+ffffffeeeeeeffffffefefeffffffffffffff7f7f7fffffff5f5f5f9f9f9f8f8f8ffffff
+f4f4f4e0e0e0fcfcfcf4f4f4fffffff1f1f1f9f9f9ffffffffffffffffffe8e8e8f9f9f9
+ffffffffffffe6e6e6f7f7f7fffffffdfdfdf6f6f6fefefefffffffffffffffffff6f6f6
+f2f2f2fafafafffffffafafafffffffffffffffffff9f9f9efefeffafafafffffffcfcfc
+fffffffcfcfcffffffe9e9e9fdfdfdfdfdfd0a0a0afffffff1f1f1fffffff8f8f8efefef
+fafafafbfbfbfffffffdfdfdfffffffffffff3f3f3fffffffcfcfcffffffffffffe1e1e1
+fffffffefefefffffff6f6f6f9f9f9f4f4f4fffffff3f3f3fcfcfcfafafafefefeffffff
+fdfdfdffffffe2e2e2fffffffffffffffffffffffff6f6f6f2f2f2fafafafffffffafafa
+fffffffffffffffffff9f9f9efefeffafafafffffffcfcfcfffffffcfcfcffffffe9e9e9
+fdfdfdfdfdfd0a0a0afffffff1f1f1fffffff8f8f8efefeffafafafbfbfbfffffffdfdfd
+fcfcfcfffffffffffffffffffafafaf3f3f3ffffffeaeaeafffffffdfdfdfffffff6f6f6
+fffffff3f3f3fffffffffffffffffffdfdfdf4f4f4ffffffe5e5e5d7d7d7fdfdfdfcfcfc
+edededffffffddddddfffffff7f7f7f6f6f6fffffffefefefffffffffffff8f8f8fcfcfc
+fbfbfbf3f3f3fffffffafafafbfbfbf5f5f5fffffffffffff4f4f4fffffff0f0f0f7f7f7
+f5f5f5f1f1f1ffffffeaeaeaf1f1f1fcfcfcfffffffafafafafafae7e7e7ffffffffffff
+f1f1f1fffffff0f0f0fcfcfcfffffffffffff8f8f8fffffffefefefffffff6f6f6fdfdfd
+fffffff5f5f5e3e3e3fcfcfcf0f0f0ffffffffffffe7e7e7fcfcfcf0f0f0f6f6f6ffffff
+f3f3f3f3f3f3fffffff1f1f1ffffffddddddf3f3f3fffffff9f9f9fffffff3f3f3ededed
+f3f3f3fffffff4f4f4e8e8e8eaeaeaffffffffffffffffffddddddfffffffffffff8f8f8
+f1f1f1fdfdfdf3f3f3fffffffffffff9f9f9fdfdfdf6f6f6fffffffffffff7f7f7fdfdfd
+fcfcfcfefefef5f5f5f4f4f4f5f5f5fffffffffffff9f9f9e6e6e6ffffffffffffffffff
+f5f5f5fffffff4f4f4f0f0f0f1f1f1fffffffafafaffffffe8e8e8fbfbfbfffffffbfbfb
+f4f4f4ffffffeaeaeaf3f3f3e2e2e2fffffffdfdfdfffffffffffffdfdfdebebebffffff
+ffffff000000fffffff7f7f7fdfdfdecececf9f9f9f0f0f0e5e5e5fffffffffffffefefe
+fefefeffffffe9e9e9e2e2e2f5f5f5f3f3f3fafafafffffffffffff9f9f9f8f8f8e3e3e3
+fffffffffffffcfcfcf5f5f5fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfcfcfc070707000000131313
+fafafa020202000000151515050505050505000000f7f7f7ffffffffffffffffff000000
+000000000000f4f4f4e9e9e9fffffffdfdfdfffffff0f0f0fffffff4f4f4edededffffff
+f3f3f3edededfffffff5f5f5fffffffcfcfceeeeeef1f1f1fffffff0f0f0f3f3f3fefefe
+e4e4e4ffffffe2e2e2fffffff7f7f7f0f0f0fffffff8f8f8edededfbfbfbfffffff8f8f8
+fefefefffffff1f1f1fafafafdfdfdfffffff4f4f4fcfcfcffffffe6e6e6ffffffffffff
+ffffffffffffe8e8e8ffffffe9e9e9fffffffafafaebebebfffffffefefef6f6f6fafafa
+fffffff1f1f1f3f3f3fffffffffffffffffff5f5f5fcfcfcf1f1f1efefefffffff0a0a0a
+fdfdfdf6f6f6ffffffe8e8e8020202000000090909151515ffffffeeeeeeffffffe0e0e0
+f7f7f7fffffffffffffcfcfcfffffffffffff1f1f1f6f6f6f2f2f2ecececfffffff1f1f1
+0000000000001b1b1bfbfbfbf8f8f8ffffff111111000000000000ffffffebebebffffff
+fffffff5f5f5fefefefdfdfde9e9e9e8e8e8ffffffeaeaeaffffffefefeffefefeffffff
+fffffff3f3f3fafafafefefeffffffffffff000000fbfbfbfefefedededeffffffffffff
+ffffffefefeffcfcfcf6f6f6f6f6f6fefefefffffff9f9f9eeeeeef8f8f8ffffffffffff
+f7f7f7fffffff4f4f4fafafaffffffe3e3e3000000ffffff131313000000000000ffffff
+f9f9f9ffffff101010020202000000ffffffebebebfffffffffffff5f5f5fefefefdfdfd
+e9e9e9e8e8e8ffffffeaeaeaffffffefefeffefefefffffffffffff3f3f3fafafafefefe
+ffffffffffff000000fbfbfbfefefedededeffffffffffffffffffefefeffcfcfcf6f6f6
+fafafafafafafffffff0f0f0f3f3f3f4f4f4fffffffffffff7f7f7fafafafdfdfdefefef
+0606060000000b0b0b101010f2f2f2e6e6e6ffffffeaeaeafffffffffffffffffff0f0f0
+fdfdfdfffffffbfbfbfffffffffffffefefefffffff1f1f1ededede8e8e8fafafaffffff
+fbfbfbf1f1f1f5f5f5f5f5f5fffffff2f2f2f9f9f9fffffff9f9f9efefeff7f7f7fcfcfc
+fffffffffffffffffffdfdfdfcfcfcfbfbfbfffffff3f3f3ffffffffffffffffffe2e2e2
+f4f4f4f9f9f9fdfdfd0e0e0ef8f8f8f7f7f7ffffffeeeeee1212120000000c0c0c070707
+f1f1f1ffffffffffffdfdfdfffffffe6e6e6efefefffffffedededfffffffafafad0d0d0
+fefefefbfbfbe8e8e8fffffffbfbfbfffffffffffff6f6f6f5f5f5f3f3f3ffffffffffff
+fefefefdfdfdf7f7f7f7f7f7fffffff0f0f0e9e9e9fefefeffffffe7e7e7efefefffffff
+f0f0f0f8f8f81212120000000202020000000f0f0f020202fefefeecececfffffff2f2f2
+f9f9f9fffffffffffff2f2f2f8f8f8f4f4f4f7f7f7fafafafffffff3f3f3fcfcfcffffff
+f8f8f8f3f3f3fffffffffffff7f7f7eeeeeeffffffe3e3e3fcfcfcf7f7f7efefefefefef
+fffffff7f7f7f2f2f2fffffffffffff7f7f7efefeffefefef7f7f7f9f9f9f8f8f8f4f4f4
+fbfbfb0e0e0efafafafffffffbfbfbfffffff3f3f3f1f1f1ffffffecececffffff000000
+101010d6d6d6f4f4f4fefefefffffffffffffffffff8f8f8fefefefffffffefefe171717
+000000040404fefefef9f9f9f7f7f7f8f8f8f9f9f9fbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbfcfcfcfdfdfd0f0f0ff3f3f3
+ffffffffffff141414f8f8f8fbfbfbf3f3f3ffffff000000000000e2e2e2f8f8f8ffffff
+000000ffffffe0e0e0fffffff9f9f9f9f9f9efefeffdfdfdfafafae2e2e2fffffff2f2f2
+fffffffffffff2f2f2ecececf4f4f4f7f7f7f8f8f8fffffff3f3f3f2f2f2ffffffeeeeee
+fffffff2f2f2eeeeeeeaeaeafffffffafafaf5f5f5eaeaeafefefefefefef0f0f0fbfbfb
+fafafae8e8e8f9f9f9ffffffffffffd2d2d2fffffff3f3f3f4f4f4fefefeffffffeaeaea
+ffffffe4e4e4ecececfffffff8f8f8ebebebfffffff2f2f2f6f6f6f8f8f8ffffffefefef
+d7d7d7ffffffe0e0e0ffffffedededf7f7f7fffffffafafafffffffdfdfd0c0c0cefefef
+fefefeffffff010101191919edededfffffffafafafbfbfb000000fcfcfcf3f3f3ffffff
+f9f9f9fafafaeeeeeef9f9f9fcfcfcfbfbfbf3f3f3fffffff1f1f1f5f5f5fdfdfdf0f0f0
+ffffff000000050505e8e8e8fbfbfbfdfdfddedede141414ffffffd5d5d5fffffffafafa
+e0e0e0fffffff6f6f6fffffffffffff5f5f5e9e9e9fcfcfcdcdcdcfffffff2f2f2eeeeee
+e5e5e5f1f1f1fefefefefefee5e5e5f9f9f9ffffffffffffecececffffffe3e3e3efefef
+f7f7f7f3f3f3fffffffafafafcfcfcf8f8f8f7f7f7fcfcfcfffffff4f4f4e4e4e4fefefe
+ffffffffffffeeeeeefffffff0f0f0181818f3f3f3ffffffededed0a0a0a131313ffffff
+fcfcfcfafafad9d9d90a0a0affffffd5d5d5fffffffafafae0e0e0fffffff6f6f6ffffff
+fffffff5f5f5e9e9e9fcfcfcdcdcdcfffffff2f2f2eeeeeee5e5e5f1f1f1fefefefefefe
+e5e5e5f9f9f9ffffffffffffecececffffffe3e3e3efefeff7f7f7f3f3f3fffffffafafa
+fffffff4f4f4f7f7f7f2f2f2fffffff0f0f0e7e7e7fbfbfbfbfbfbfcfcfc070707181818
+ebebebfffffff1f1f1f8f8f8020202fefefef0f0f0fcfcfcf3f3f3f8f8f8f1f1f1ffffff
+f7f7f7eaeaeaffffffdfdfdfe6e6e6ffffffecececfefefef7f7f7fffffff3f3f3000000
+fffffffffffff8f8f8fffffff3f3f3fafafae2e2e2fffffff7f7f7fbfbfbffffffffffff
+f1f1f1fdfdfdd4d4d4fefefefefefeffffff000000ffffffefefeff0f0f0fcfcfcededed
+fffffffefefe181818e5e5e5f6f6f6f4f4f4090909141414f3f3f3ffffffeeeeeeededed
+000000eaeaeafcfcfcf7f7f7e8e8e8ffffffdfdfdffcfcfcf7f7f7f7f7f7d4d4d4ffffff
+f2f2f2e6e6e6ffffffddddddf2f2f2fffffff0f0f0f4f4f4fffffff9f9f9d5d5d5fdfdfd
+fcfcfce5e5e5f8f8f8f5f5f5e6e6e6edededfffffff1f1f1efefeff3f3f31d1d1de0e0e0
+fffffff6f6f6fbfbfb050505f5f5f5ffffffdedede181818000000fffffffffffffefefe
+eaeaeaf7f7f7fffffffbfbfbf9f9f9ffffffcfcfcffffffff3f3f3f2f2f2f8f8f8f2f2f2
+f6f6f6f8f8f8fafafaeaeaeafefefeffffffd8d8d8f6f6f6ffffffffffffdededeffffff
+f6f6f6f3f3f3f6f6f6e5e5e5fffffff2f2f2fafafafdfdfdffffffffffffffffffededed
+ffffff000000f1f1f1eeeeeefffffff0f0f0fffffffefefee7e7e7ededed060606ffffff
+000000fafafafffffff2f2f2ededede9e9e9fcfcfcf2f2f2e0e0e0ffffff000000ffffff
+f7f7f7ffffff000000fffffff9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303fafafafefefefafafaefefefffffff090909fbfbfb
+f4f4f4ffffff000000fffffffffffffffffff0f0f0ffffff020202070707ffffffd3d3d3
+0c0c0ce7e7e7fffffff3f3f3f4f4f4fcfcfcfffffffffffff0f0f0fffffff0f0f0ededed
+fdfdfdffffffe2e2e2f3f3f3f6f6f6fefefef9f9f9ffffffeeeeeef0f0f0fffffff1f1f1
+f4f4f4fdfdfdfffffff9f9f9fafafaffffffeeeeeeffffffffffffeaeaeafafafaf4f4f4
+eeeeeefffffffafafae3e3e3d9d9d9ffffffdcdcdcfdfdfde8e8e8ffffffdbdbdbf6f6f6
+eaeaeafffffffffffff1f1f1fffffff4f4f4f2f2f2f9f9f9fffffffefefef3f3f3fbfbfb
+ffffffebebebecececf1f1f1ffffffe4e4e4fffffffffffff7f7f7f5f5f5000000f2f2f2
+f4f4f4151515000000eeeeeeffffffefefefffffffffffff000000fffffff0f0f0f3f3f3
+f1f1f1f5f5f5fffffff9f9f9ebebebffffffefefefe6e6e6ffffffe7e7e7fcfcfcf3f3f3
+e7e7e7181818030303151515fffffffbfbfbf2f2f2060606dfdfdffffffff8f8f8f4f4f4
+fffffff8f8f8fdfdfdfffffff2f2f2ffffffffffffefefeffcfcfcf8f8f8d7d7d7ffffff
+fcfcfcffffffe9e9e9fffffffffffff6f6f6fffffff5f5f5d8d8d8edededf7f7f7fafafa
+ffffffececece9e9e9fdfdfdfbfbfbfffffff4f4f4eeeeeefffffffafafafffffff8f8f8
+f9f9f9fdfdfdffffffdfdfdfffffff000000f5f5f5f8f8f8fbfbfb131313000000000000
+f6f6f6ffffffe6e6e6111111dfdfdffffffff8f8f8f4f4f4fffffff8f8f8fdfdfdffffff
+f2f2f2ffffffffffffefefeffcfcfcf8f8f8d7d7d7fffffffcfcfcffffffe9e9e9ffffff
+fffffff6f6f6fffffff5f5f5d8d8d8edededf7f7f7fafafaffffffececece9e9e9fdfdfd
+f1f1f1ffffffffffffedededffffffe8e8e8fffffffffffffefefe121212050505e5e5e5
+fbfbfbf6f6f6fbfbfbffffff000000fffffff7f7f7fffffffffffffbfbfbffffffe6e6e6
+fcfcfcfefefeddddddf9f9f9ffffffe1e1e1f8f8f8fefefefffffffdfdfdf1f1f1000000
+f2f2f2fcfcfcf4f4f4f7f7f7fdfdfdfffffff3f3f3f6f6f6fcfcfcf5f5f5f4f4f4f3f3f3
+f8f8f8ffffffffffffe9e9e9efefeffafafa000000fdfdfdf9f9f9fffffffffffff4f4f4
+e2e2e2fafafa000000eaeaeaf7f7f7161616000000f4f4f4f2f2f2fffffff2f2f2ffffff
+1c1c1cfefefeefefefefefeffffffff0f0f0fcfcfcfffffff2f2f2fffffffffffff9f9f9
+fefefefffffffffffffcfcfcf0f0f0fefefeecececf6f6f6fdfdfdfafafaffffffefefef
+f4f4f4fffffff2f2f2fffffff3f3f3fffffff0f0f0fafafaffffffffffff000000ffffff
+f7f7f7ebebebf3f3f30f0f0ff9f9f9fffffffefefef4f4f40a0a0ae6e6e6f1f1f1ffffff
+ffffffecececfffffffcfcfcebebebe7e7e7ffffffe1e1e1fefefefffffff9f9f9e5e5e5
+fffffffffffffffffffffffff5f5f5f3f3f3fffffffdfdfde3e3e3f5f5f5f3f3f3f8f8f8
+ffffffecececfafafaffffffe9e9e9ffffffffffffebebebfdfdfdf4f4f4fffffff8f8f8
+fbfbfb0f0f0ffbfbfbf9f9f9fffffff7f7f7f6f6f6fffffff2f2f2ffffffe8e8e8ffffff
+0c0c0cfffffff8f8f8f2f2f2fffffffffffffffffffafafaffffff010101fdfdfdffffff
+fafafae2e2e2fcfcfc000000fffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fdfdfddedede000000fcfcfc
+fffffff8f8f81a1a1afffffffffffffbfbfbedededefefeffafafa000000ffffffffffff
+151515eeeeeef4f4f4fdfdfdfdfdfdf4f4f4ecececf2f2f2040404030303f6f6f6ffffff
+ffffffdddddd0d0d0d161616000000eeeeeeffffffe2e2e20e0e0e090909000000181818
+000000080808000000000000000000000000f7f7f7f2f2f2fafafa0000001f1f1f010101
+0a0a0addddddfffffff7f7f7fcfcfcf3f3f3fffffff4f4f4ffffffe4e4e4000000181818
+000000ffffffebebebdfdfdf000000020202ffffff0e0e0e000000fafafaffffff000000
+000000010101131313ffffffebebebffffffebebebfffffffbfbfb101010ffffffffffff
+f0f0f0000000ebebebfffffffefefef8f8f8fefefedcdcdcf7f7f7fefefefcfcfcf0f0f0
+1f1f1f080808000000fffffffbfbfbeaeaeaffffff000000000000111111050505ffffff
+ffffff000000ffffff040404e1e1e1fffffffafafa000000ffffffecececffffff000000
+000000141414f9f9f9fcfcfcf8f8f82121210000000000001d1d1d060606090909000000
+000000000000111111fefefeececec000000131313ecececffffff0b0b0b0101011a1a1a
+0000001b1b1b070707ffffffffffffdfdfdf161616010101000000030303f9f9f9fbfbfb
+fdfdfde8e8e8f3f3f3ffffff0a0a0af1f1f1edededfffffff6f6f6070707f9f9f9131313
+f7f7f7e9e9e9f8f8f8080808ffffffecececffffff000000000000141414f9f9f9fcfcfc
+f8f8f82121210000000000001d1d1d060606090909000000000000000000111111fefefe
+ececec000000131313ecececffffff0b0b0b0101011a1a1a0000001b1b1b070707ffffff
+ffffffd8d8d8101010000000010101050505fcfcfcf0f0f0f7f7f7000000eeeeeeffffff
+f8f8f8fafafaffffffddddddfffffffffffffafafaebebeb1a1a1a050505000000ffffff
+fafafaffffff0404041919190000001818180f0f0f000000ffffffe0e0e01111111b1b1b
+040404000000fffffffefefee5e5e5000000222222060606ededed141414080808080808
+ffffff0000000000000d0d0dffffff0000001010100d0d0d000000fcfcfceaeaeafefefe
+ffffff010101fcfcfcfffffff8f8f8000000fefefefffffffffffff0f0f0ffffffdedede
+e3e3e3ffffffffffff010101000000090909fdfdfdf7f7f7fefefe010101000000000000
+121212060606000000fffffff9f9f9000000090909000000101010030303000000ffffff
+f9f9f9ddddddffffff050505000000000000f7f7f7fefefeefefef000000252525000000
+121212f7f7f7ffffff000000f7f7f7eeeeeeecececffffff020202ffffff0d0d0d020202
+fdfdfd000000000000fffffffffffff2f2f20e0e0e0303030d0d0dfffffff1f1f1ffffff
+f5f5f5e1e1e1020202000000ffffffedededffffffe0e0e0000000151515020202f6f6f6
+edededefefefffffff000000040404000000e0e0e0ffffffecececffffff070707000000
+000000000000f7f7f7fbfbfbffffff000000111111f5f5f5fffffff3f3f3f8f8f8f9f9f9
+010101f9f9f9f9f9f9f3f3f3f0f0f0eaeaeaf1f1f1ffffffebebeb000000ffffffe8e8e8
+efefefffffffffffff040404fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9ffffffffffff0a0a0af4f4f4
+fffffffbfbfb050505efefeffcfcfce2e2e2fffffff1f1f1ededed131313e2e2e2fbfbfb
+000000ffffffefefeffafafafcfcfcfffffffffffff9f9f90000000c0c0cf2f2f2f8f8f8
+ededed171717f8f8f8f8f8f8fafafa191919f4f4f4fefefeffffff000000fffffff3f3f3
+ffffff060606fafafaffffffffffff0d0d0dfafafaffffff000000ffffffefefeff9f9f9
+f8f8f80e0e0e090909fafafaefefeffffffffafafae6e6e6ffffff000000fffffff4f4f4
+ffffff000000fffffffdfdfdffffff080808000000fbfbfbfffffffcfcfc090909fafafa
+fffffffffffff4f4f4000000040404efefeffffffff6f6f6ffffff000000fffffff2f2f2
+ffffff000000ffffffe4e4e4fdfdfdf9f9f9f5f5f5fffffffffffffffffff3f3f30b0b0b
+f4f4f4f9f9f9f8f8f8090909fcfcfcf4f4f4070707e8e8e8ffffffe7e7e7131313f8f8f8
+fcfcfc000000f3f3f3ffffff020202dfdfdfffffff000000f6f6f6ffffff000000010101
+fffffffdfdfd010101fffffff5f5f5f6f6f6131313ffffffe1e1e1ffffff000000ffffff
+efefefffffff000000eeeeeef7f7f7ffffff000000fffffff4f4f4f6f6f6090909f7f7f7
+ffffffe9e9e9000000f2f2f2f7f7f7161616f7f7f7ffffffffffffffffff000000020202
+fffffff3f3f3ffffffebebeb000000fffffffefefef1f1f1f4f4f4000000fdfdfdefefef
+0d0d0de7e7e7ffffff000000f6f6f6ffffff000000010101fffffffdfdfd010101ffffff
+f5f5f5f6f6f6131313ffffffe1e1e1ffffff000000ffffffefefefffffff000000eeeeee
+f7f7f7ffffff000000fffffff4f4f4f6f6f6090909f7f7f7ffffffe9e9e9000000f2f2f2
+f0f0f0111111fffffffcfcfcfffffff8f8f8000000020202fafafa060606fdfdfde6e6e6
+fffffff7f7f7fffffffafafaffffffffffffefefef090909f4f4f4fafafaf6f6f6040404
+fefefef2f2f2ffffff000000fffffff8f8f8fcfcfc1d1d1dfbfbfbfcfcfcfbfbfb000000
+f9f9f9fefefef8f8f8f7f7f7040404ffffffefefeffdfdfd111111f7f7f70000000b0b0b
+f6f6f6ffffff101010edededf4f4f4ffffff000000fffffffffffff6f6f6fffffffdfdfd
+f3f3f3010101fefefee4e4e4f4f4f40a0a0afefefeedededf8f8f8f6f6f6fdfdfdffffff
+fdfdfdf5f5f5020202000000fffffff1f1f1070707fcfcfcfdfdfdf9f9f90b0b0bffffff
+e5e5e5f2f2f2141414fbfbfbfefefeffffff000000fffffffffffff6f6f6101010f0f0f0
+fffffffefefe060606e8e8e8fffffffefefe070707f5f5f5fcfcfcffffff000000f1f1f1
+f7f7f7ffffffefefef040404fffffffcfcfcefefefffffff000000f4f4f4ffffff020202
+030303fffffffffffff7f7f7e8e8e8000000eeeeeeffffffffffff000000edededffffff
+ebebeb070707fffffffafafa000000ffffffdbdbdb101010fffffff6f6f6ffffff060606
+fffffffafafa060606fafafafefefefefefe090909f4f4f4ffffff060606f9f9f9fbfbfb
+ffffff030303ffffffefefefffffff060606000000ffffffffffffdadadaffffffdddddd
+080808f8f8f8f8f8f8f6f6f6fffffffffffff4f4f4f0f0f0f5f5f50d0d0dfbfbfbffffff
+fffffff6f6f6f1f1f1020202f4f4f4f5f5f5f7f7f7f9f9f9fcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbf9f9f9f0f0f00b0b0be6e6e6
+ffffffe6e6e6050505fffffff4f4f4ffffffeeeeeefffffffafafa000000fffffff8f8f8
+000000ffffffeeeeeef4f4f4fffffffdfdfdfbfbfbfefefefffffffafafafefefef7f7f7
+060606fffffff9f9f9f7f7f7fffffff4f4f4020202fffffffbfbfb0c0c0cfffffff4f4f4
+ffffff000000f6f6f6fbfbfbffffff000000f4f4f4f5f5f5060606f7f7f7ffffffdddddd
+ffffff171717ecececfcfcfcfffffffffffff1f1f1f7f7f70c0c0cf8f8f8fefefefcfcfc
+fefefeececec0f0f0ffffffff6f6f6151515fffffff4f4f4f4f4f4ffffff000000ffffff
+f4f4f4fcfcfcf4f4f4050505fefefefffffffafafaffffff000000f4f4f4ffffffffffff
+f6f6f6000000ffffffeaeaeafffffff9f9f9f0f0f0f5f5f5ffffffebebeb121212fafafa
+edededfafafaf6f6f6f3f3f3020202f9f9f90c0c0c000000fffffff6f6f6fffffff5f5f5
+f9f9f90f0f0ffffffff9f9f9090909000000ffffff000000eeeeeef2f2f2efefefffffff
+fbfbfb111111000000edededfffffffbfbfb000000fffffffbfbfbfafafa000000ffffff
+efefefffffff040404f7f7f7f8f8f8fefefe000000fffffff1f1f1fafafa010101fefefe
+fffffff6f6f6000000fffffffafafa1a1a1aefefefedededffffffe7e7e7000000ffffff
+fdfdfdf7f7f7ececec0a0a0af7f7f7eeeeeefffffff6f6f6e5e5e50e0e0efffffff2f2f2
+010101111111ffffff060606eeeeeef2f2f2efefeffffffffbfbfb111111000000ededed
+fffffffbfbfb000000fffffffbfbfbfafafa000000ffffffefefefffffff040404f7f7f7
+f8f8f8fefefe000000fffffff1f1f1fafafa010101fefefefffffff6f6f6000000ffffff
+ffffff090909f2f2f2f5f5f5fbfbfbededed131313fbfbfbfafafa171717e2e2e2fafafa
+fefefef1f1f1ffffffecececfffffff8f8f8030303ffffffe7e7e7f9f9f9fdfdfdf5f5f5
+0a0a0aedededfafafa000000f5f5f5fafafaf6f6f6020202f0f0f0fbfbfbffffff000000
+fffffffffffff6f6f6060606fafafafefefefafafaffffff000000fcfcfcf7f7f70b0b0b
+ffffff0f0f0fecececf0f0f0fafafaffffff080808e8e8e8fdfdfdf7f7f7f3f3f3ffffff
+000000ffffffeeeeeeffffffffffff0c0c0cf9f9f9f2f2f2fffffffefefeffffffffffff
+f6f6f6e8e8e8f8f8f8ffffffffffff0000000c0c0cf3f3f3fdfdfdfafafa000000ffffff
+fdfdfdfdfdfd020202fffffffdfdfdfdfdfd0a0a0afffffff7f7f7f4f4f4020202ffffff
+fdfdfd0b0b0bedededffffffe4e4e4e7e7e7f5f5f5050505f3f3f3ededed0b0b0bf5f5f5
+fffffffffffffefefe000000f3f3f3fffffff8f8f8000000fffffff1f1f1e7e7e7050505
+fefefeeaeaeaf2f2f2ffffff000000fffffffafafaffffffe3e3e3ffffff050505fbfbfb
+000000fffffff1f1f1ffffffffffffe7e7e7131313f1f1f1fbfbfbfefefef9f9f90b0b0b
+efefef191919eeeeeefffffff0f0f0f4f4f4000000f8f8f8040404fcfcfcebebebffffff
+f3f3f3020202fefefef2f2f2fffffffdfdfde6e6e6fffffff5f5f5f6f6f6fffffff6f6f6
+000000ffffffdfdfdffffffff6f6f6fffffff9f9f9f8f8f8fefefe0f0f0fe4e4e4f5f5f5
+fffffff5f5f5ffffff070707fafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbfefefeffffff000000ffffff
+ebebebffffff000000f8f8f8f0f0f0eaeaeaeaeaeafafafaffffff080808f7f7f7e9e9e9
+111111e8e8e8f8f8f8f4f4f4ffffffffffffffffffebebebf4f4f4fafafaf8f8f8ffffff
+000000f1f1f1fffffffdfdfdffffffe8e8e8050505f1f1f1f5f5f5000000f0f0f0ffffff
+eeeeee141414f9f9f9f9f9f9ffffff0f0f0ff2f2f2fffffff6f6f60c0c0c000000333333
+000000fafafaf1f1f1ffffffebebebfbfbfbfbfbfbffffff0d0d0de8e8e8fcfcfcf4f4f4
+fafafaffffff000000fefefef2f2f2000000fdfdfdfffffff1f1f1ffffffffffff000000
+020202010101323232f4f4f4f2f2f2e5e5e5fefefe000000ffffffffffffedededffffff
+ffffff000000f3f3f3fffffff3f3f3fffffffffffff2f2f2f6f6f6f8f8f80e0e0effffff
+fffffffcfcfcffffffffffff010101f9f9f9ffffff000000030303070707f8f8f8fcfcfc
+fafafa020202ffffffe6e6e6ffffff121212e7e7e7000000fafafaf8f8f8ffffff000000
+000000ffffff000000fffffffefefeeeeeee0e0e0efffffffffffffcfcfc0c0c0cdfdfdf
+fffffffafafa000000ffffffedededffffff000000fbfbfbf2f2f2ffffff222222d8d8d8
+fffffff7f7f7171717e4e4e4fcfcfce6e6e60b0b0b0505050a0a0a000000ffffffd0d0d0
+fffffffcfcfc000000fbfbfbf9f9f9fffffffcfcfcfdfdfdffffff0f0f0febebebffffff
+fdfdfd101010e9e9e9090909fafafaf8f8f8ffffff000000000000ffffff000000ffffff
+fefefeeeeeee0e0e0efffffffffffffcfcfc0c0c0cdfdfdffffffffafafa000000ffffff
+edededffffff000000fbfbfbf2f2f2ffffff222222d8d8d8fffffff7f7f7171717e4e4e4
+fbfbfbf3f3f30303031313130505050b0b0bfdfdfddadadaffffff000000fffffff0f0f0
+ffffffffffffe8e8e8e7e7e7ffffffe4e4e4191919edededfffffffffffff7f7f7ffffff
+000000fffffff6f6f6141414fffffffffffffdfdfd0a0a0af5f5f5ffffffdadada050505
+fbfbfbefefeff5f5f5020202070707000000000000191919000000ffffffedededfafafa
+000000fffffff7f7f7ffffffffffffffffff000000fffffff9f9f9f9f9f9fcfcfc070707
+fffffffbfbfbf3f3f3f8f8f8fafafa000000ecececfffffffbfbfbf8f8f8ffffffe1e1e1
+ffffffeaeaeaffffff000000000000ffffff000000ffffffffffffececec060606f8f8f8
+f6f6f6fafafa141414eeeeeeffffffececec0b0b0bdcdcdcffffffefefef0f0f0fdedede
+f7f7f7000000ffffffecececf0f0f0ffffffededed000000fffffffafafa000000f3f3f3
+f9f9f9f6f6f6f0f0f00e0e0e0e0e0e0000000d0d0df9f9f9fbfbfbffffffffffff050505
+fffffffafafaffffffededed000000ffffffe4e4e4fbfbfbffffffebebeb000000e9e9e9
+0d0d0dffffffe4e4e4f5f5f5f9f9f9ffffff0000000000000404040000000a0a0a000000
+f4f4f4000000090909000000000000090909090909f3f3f3191919f3f3f3fdfdfdcccccc
+ffffff050505dbdbdbfffffff9f9f9eaeaeaffffffebebebf9f9f9fffffffbfbfbececec
+000000fbfbfbffffffffffffd9d9d9fefefeffffffefefefededed020202ffffffe9e9e9
+f8f8f8fbfbfbffffff000000f7f7f7f7f7f7f9f9f9fbfbfbfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbf9f9f9f6f6f6080808ffffff
+edededf4f4f4090909fbfbfbfffffff3f3f3ffffffffffff0000000d0d0df9f9f9f4f4f4
+030303ecececfffffffbfbfbe2e2e2151515fffffffafafaf6f6f6f4f4f4fffffff4f4f4
+000000fffffffffffff2f2f2fefefef9f9f9020202ffffffffffff030303ffffffe7e7e7
+ffffff000000fefefefcfcfcf9f9f9020202ffffffeeeeeef3f3f3151515f6f6f6e3e3e3
+fffffff7f7f7fffffff6f6f6fffffff7f7f7fdfdfde1e1e1000000fffffffffffff7f7f7
+fbfbfbffffff000000fffffff2f2f2151515ffffffebebebffffffe3e3e3f2f2f2030303
+ffffffffffffcbcbcbfffffff8f8f8ffffffe2e2e2000000fdfdfdebebebfcfcfce7e7e7
+f5f5f5040404030303e4e4e4fafafaf6f6f6f0f0f0ffffff000000ffffff000000f4f4f4
+ecececf7f7f7edededfafafa050505ddddddffffffffffffe8e8e8f5f5f50a0a0affffff
+ffffff000000fffffff9f9f9f9f9f9141414000000202020ffffffffffff000000f6f6f6
+ffffffffffff000000e5e5e5fcfcfcfefefe010101e1e1e1f9f9f9f2f2f2040404ffffff
+ebebebffffff090909e8e8e8fffffffcfcfc030303fffffff9f9f9f9f9f9000000ffffff
+f4f4f4fafafa000000fffffffffffff2f2f2121212f7f7f7f9f9f9fdfdfdffffffffffff
+efefefffffff0b0b0be5e5e5fffffff2f2f2e6e6e6fffffff2f2f2000000fffffffdfdfd
+f9f9f90a0a0a131313000000ffffffffffff000000f6f6f6ffffffffffff000000e5e5e5
+fcfcfcfefefe010101e1e1e1f9f9f9f2f2f2040404ffffffebebebffffff090909e8e8e8
+fffffffcfcfc030303fffffff9f9f9f9f9f9000000fffffff4f4f4fafafa000000ffffff
+f3f3f3f3f3f3000000fdfdfdecececf9f9f9e7e7e7ffffffffffff0e0e0e000000f6f6f6
+efefefeeeeeeffffffffffff080808ffffff000000f2f2f2fdfdfdfafafafdfdfdfefefe
+1c1c1cecececf5f5f5010101fffffff7f7f7f6f6f60a0a0afdfdfdfffffff8f8f8080808
+fdfdfdffffffededed151515fffffff9f9f9ffffffe8e8e8fbfbfbfffffff1f1f1080808
+ffffff000000f5f5f5fbfbfbffffffffffff090909f3f3f3fffffffdfdfdffffff101010
+e2e2e2fffffffffffff1f1f1ffffff0b0b0b070707ddddddffffffeeeeeefdfdfdffffff
+000000ffffff030303fbfbfbfbfbfbfdfdfd040404d7d7d7f5f5f5fcfcfc070707ececec
+fffffff6f6f6000000fafafaefefeff8f8f8000000ffffffe7e7e7fefefe040404fafafa
+ffffff000000fffffff4f4f4fffffff9f9f9efefef121212fefefeffffff0e0e0ee2e2e2
+fffffffefefeffffff070707fffffffefefefffffffffffff0f0f0f5f5f5ffffff000000
+f7f7f7fefefeecececfefefe090909f5f5f5fffffff6f6f6f4f4f4ffffff242424ffffff
+000000ffffffffffffedededffffffffffff070707ffffffffffffffffffe8e8e8ffffff
+fcfcfc121212ebebebfffffffafafafffffff9f9f9f6f6f6030303ffffffeeeeeeffffff
+dedede0c0c0cfffffff6f6f6f6f6f6f8f8f8ffffffe4e4e4ffffffffffffddddddffffff
+090909e7e7e7fafafadcdcdcffffffffffffffffffffffffffffff080808dadadaffffff
+efefeffcfcfcffffff020202f7f7f7f8f8f8fafafafbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbfffffff8f8f8040404f0f0f0
+fffffff5f5f5030303fdfdfdf8f8f8eaeaeaffffff0606061c1c1cfffffff8f8f8f9f9f9
+020202ffffffecececf4f4f4ffffff000000fafafafbfbfb0000000b0b0bfefefeffffff
+f8f8f8000000ffffffffffffffffff070707f7f7f7e8e8e8f5f5f5000000f2f2f2ffffff
+f5f5f50b0b0bf4f4f4ffffffefefef040404eaeaeaffffffffffff000000090909292929
+000000090909eeeeeefdfdfd000000060606fffffffefefef9f9f9090909f4f4f4ffffff
+ffffff000000f6f6f6e7e7e7e5e5e50f0f0fe5e5e5ffffffedededfafafafefefe000000
+0000000e0e0e000000060606fafafaf6f6f6000000fcfcfcfffffff3f3f3ffffffffffff
+fffffffdfdfd070707141414e7e7e7fffffff0f0f0fbfbfb010101f6f6f6ffffff000000
+fffffffffffffdfdfd000000f8f8f8ffffff000000fffffffdfdfdf2f2f2000000f1f1f1
+ffffff030303fffffff4f4f4fcfcfcf2f2f2121212000000f1f1f1e9e9e9151515f1f1f1
+ffffff0505050b0b0bfffffffffffff6f6f6000000fefefeffffffffffff040404f6f6f6
+fbfbfbfafafa070707edededffffffffffff141414f6f6f6f5f5f5ffffff000000ececec
+ffffffffffff000000fefefefdfdfdffffff0000000000000e0e0e000000040404efefef
+ffffff000000fffffffcfcfce9e9e9fffffff8f8f8f9f9f9ffffff000000fbfbfbffffff
+e8e8e8fcfcfc050505000000f1f1f1e9e9e9151515f1f1f1ffffff0505050b0b0bffffff
+fffffff6f6f6000000fefefeffffffffffff040404f6f6f6fbfbfbfafafa070707ededed
+ffffffffffff141414f6f6f6f5f5f5ffffff000000ecececffffffffffff000000fefefe
+fffffff2f2f20000000f0f0f0c0c0c000000131313f4f4f4f5f5f5ffffff0b0b0b090909
+fffffffefefee9e9e9f8f8f8000000fffffffcfcfc050505fffffffefefeffffff000000
+f2f2f2e6e6e6ffffff191919e6e6e6fffffff4f4f4090909e6e6e6fefefefefefe0b0b0b
+f4f4f4ffffffe6e6e60a0a0a000000fffffffdfdfdffffff0a0a0af2f2f2000000ffffff
+e9e9e9000000161616e9e9e9fcfcfcf1f1f1050505f5f5f5fbfbfbfafafa000000ffffff
+fffffff7f7f7fffffffefefefffffffafafa0b0b0b161616f3f3f3fffffff0f0f0f0f0f0
+030303ffffff040404fafafaffffff0000000d0d0dfffffffffffffbfbfb000000ffffff
+ffffffffffff030303f5f5f5f4f4f4ffffff000000f7f7f7ffffffffffff000000ffffff
+f1f1f1fdfdfd000000ecececfcfcfcffffff000000fffffffdfdfdf4f4f4000000ffffff
+ecececf3f3f3f6f6f6000000f6f6f6fefefef9f9f9fffffffafafafffffff0f0f00c0c0c
+fffffff7f7f7fffffffafafaf0f0f0090909f2f2f2fbfbfbffffff040404e5e5e5fafafa
+000000080808efefefffffff0c0c0ce9e9e9000000000000fffffff3f3f3ececec0b0b0b
+f7f7f7000000111111fffffff9f9f9ffffff040404f9f9f9070707000000ffffffffffff
+000000070707f1f1f1f3f3f3ffffff070707000000ffffffe1e1e1e3e3e3ffffffeeeeee
+0e0e0effffffe4e4e4fffffffcfcfc000000000000fefefef6f6f6ffffff000000eaeaea
+ffffffffffff080808f5f5f5fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbffffff000000090909202020
+e5e5e50000000909090202020000000e0e0e000000f6f6f6f2f2f2efefefffffff000000
+000000161616000000090909010101181818fffffffafafa232323040404dadadaffffff
+f1f1f1ededed101010000000000000f0f0f0ffffffefefef121212161616000000ffffff
+0a0a0a000000000000fbfbfb0a0a0a050505090909f9f9f9070707fffffff5f5f5efefef
+f9f9f90e0e0e000000f6f6f60e0e0e040404e3e3e3ffffffdfdfdff1f1f1000000030303
+020202fffffffffffff7f7f71717170d0d0d000000f5f5f5ecececffffff000000f7f7f7
+ffffffc6c6c6ffffff0000001a1a1ae6e6e6000000f9f9f9fefefeecececf4f4f4fbfbfb
+f9f9f9fefefefefefef2f2f20a0a0a0000000c0c0c0c0c0cffffffffffffeeeeeeededed
+0a0a0a000000040404fcfcfcfdfdfdf4f4f41919190000001b1b1b010101ffffffffffff
+0000000f0f0f090909f9f9f9fffffffefefef3f3f30a0a0afafafaffffffebebeb0d0d0d
+000000ffffff040404000000ffffff0c0c0c0c0c0c070707ffffff000000000000040404
+ffffff050505000000101010f9f9f90000000000000c0c0cffffff0000000c0c0c090909
+ebebeb0000000d0d0d000000f8f8f81a1a1aecececfefefeffffffffffff0c0c0c181818
+f5f5f5000000f7f7f7ffffffeaeaeaffffffe5e5e5eeeeee000000020202131313e0e0e0
+fffffff6f6f6eaeaea181818fafafaffffffebebeb0d0d0d000000ffffff040404000000
+ffffff0c0c0c0c0c0c070707ffffff000000000000040404ffffff050505000000101010
+f9f9f90000000000000c0c0cffffff0000000c0c0c090909ebebeb0000000d0d0d000000
+f1f1f10a0a0ae6e6e6f7f7f7f1f1f1ffffff121212090909fbfbfbf0f0f0fdfdfdfdfdfd
+0505050000001b1b1b010101fffffff7f7f7f4f4f4efefef000000050505000000ffffff
+ffffffffffff000000000000171717f7f7f70c0c0c000000111111f7f7f7f9f9f9000000
+000000080808ffffffffffff1010100b0b0b000000000000ffffff000000101010000000
+fcfcfc0000000505050a0a0affffffffffff111111020202010101ffffff000000ececec
+fffffff8f8f8e1e1e1f7f7f7f3f3f3fbfbfbfafafaf7f7f7090909010101070707080808
+fefefefffffff2f2f2030303000000fbfbfb0d0d0d000000fafafa040404050505020202
+ffffff000000000000070707ffffff000000020202080808f3f3f3000000090909000000
+fffffffefefeffffff1c1c1c000000000000ffffffeeeeeef6f6f6ffffff000000121212
+000000fbfbfb2a2a2a1d1d1d000000efefefffffffe9e9e9f3f3f3ffffff0a0a0a181818
+000000f4f4f4f2f2f2f5f5f5fdfdfdfefefe131313010101000000fffffffdfdfdeaeaea
+ffffff000000000000030303000000ffffffffffff0f0f0f000000020202151515fafafa
+fffffff4f4f40000000b0b0b000000050505efefeff9f9f9fafafa2121210000000b0b0b
+ffffff000000000000fffffff2f2f20000000e0e0ef0f0f0fffffffdfdfd010101040404
+020202000000ffffffe6e6e6eaeaea0d0d0d111111e5e5e5fafafafefefeffffff0f0f0f
+000000000000f9f9f9f2f2f2fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbe9e9e9ffffffffffffe7e7e7
+fffffffffffffafafafffffffffffffafafaf5f5f5f8f8f8f6f6f6fefefef9f9f9fefefe
+f9f9f9ffffffffffffebebebedededf3f3f3f8f8f8ffffffebebebf8f8f8fdfdfdf6f6f6
+fffffffffffff2f2f2ecececfffffff2f2f2f5f5f5ffffffefefefe9e9e9fffffff3f3f3
+fffffffffffffffffff9f9f9efefefffffffffffffefefef070707ecececefefeffbfbfb
+fdfdfdfafafa121212fffffff1f1f1fffffff7f7f7f6f6f6fdfdfdffffffedededf9f9f9
+fffffff7f7f7f8f8f8fffffff5f5f5e4e4e4ffffffe8e8e8fffffff8f8f8080808f5f5f5
+dfdfdfffffffe0e0e0ffffff080808000000ffffffe4e4e4ffffffe6e6e6fcfcfcf9f9f9
+e8e8e8f1f1f1f9f9f9fafafafffffff1f1f1f7f7f7e6e6e6fffffff3f3f3fbfbfbffffff
+edededf8f8f8fffffff0f0f0fefefefbfbfbe3e3e3fffffff8f8f8f7f7f7f1f1f1f1f1f1
+ffffffd1d1d1fffffffffffff5f5f5f3f3f3fffffffffffffdfdfdf6f6f6e5e5e5ffffff
+f3f3f3fffffffffffffffffffffffffefefeffffffd6d6d6fdfdfdf0f0f0fffffffefefe
+f5f5f5f3f3f3ffffffe0e0e0fffffff3f3f3fffffff3f3f3f6f6f6fffffff5f5f5f3f3f3
+fffffffdfdfdf4f4f4fffffff1f1f1000000ffffffe2e2e2f8f8f8f6f6f6eeeeee000000
+050505fffffff8f8f8eaeaeaefefeff6f6f6fffffff8f8f8f0f0f0efefeffcfcfcfefefe
+ebebebfcfcfcfafafaf4f4f4fdfdfdf6f6f6e5e5e5fffffff3f3f3ffffffffffffffffff
+fffffffefefeffffffd6d6d6fdfdfdf0f0f0fffffffefefef5f5f5f3f3f3ffffffe0e0e0
+fffffff3f3f3fffffff3f3f3f6f6f6fffffff5f5f5f3f3f3fffffffdfdfdf4f4f4ffffff
+ececec191919ffffffe1e1e1f9f9f9ffffffe2e2e2010101eeeeeeffffffe4e4e4fefefe
+ffffffffffffefefeffffffffffffff0f0f0fffffffffffff3f3f3f4f4f4fffffff7f7f7
+e8e8e8f4f4f4fafafaedededfefefefffffffffffffafafae8e8e8ffffffdadadafdfdfd
+ffffffdfdfdffcfcfcf8f8f8dededefffffffffffffffffff8f8f8fafafaf6f6f6ffffff
+f9f9f9ffffffe2e2e2fffffff2f2f2eeeeeef1f1f1fffffffefefe000000ffffffffffff
+f6f6f6f1f1f1fffffffffffff8f8f8f9f9f9f6f6f6fbfbfbfffffffffffffbfbfbfafafa
+fefefee7e7e7fbfbfbfefefefafafaf7f7f7fffffff9f9f9efefeff5f5f5ffffffdedede
+fffffff4f4f4fffffff5f5f5e9e9e9fffffffcfcfce3e3e3fffffffffffff6f6f6fdfdfd
+fbfbfbebebebf4f4f4eaeaeafffffff7f7f7fffffff4f4f4e7e7e7f0f0f0ffffffeaeaea
+fffffff2f2f2edededf0f0f0f4f4f4ffffffebebebfffffff4f4f4f3f3f3fdfdfde7e7e7
+fffffff9f9f9fcfcfcffffffe7e7e7ecececf7f7f7fffffff6f6f6fbfbfbfefefef1f1f1
+f4f4f4fffffffbfbfbf6f6f6ffffffebebebddddddefefeffffffffefefefcfcfcffffff
+ffffffdfdfdffffffff3f3f3fffffffffffffffffffdfdfdfefefeefefeff5f5f5f7f7f7
+fffffffffffff2f2f2f8f8f8f7f7f7fffffff9f9f9ffffffdbdbdbebebebe8e8e8ffffff
+fefefef8f8f8fffffff3f3f3f5f5f5ffffffe6e6e6fffffff0f0f0f8f8f8e9e9e9f0f0f0
+eeeeeeffffffeeeeeefffffff7f7f7f8f8f8fafafafbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbfffffffbfbfbe4e4e4ffffff
+fffffffcfcfce4e4e4fdfdfdfafafafcfcfcffffffe4e4e4fffffff7f7f7e2e2e2ffffff
+fefefef0f0f0f6f6f6f5f5f5fffffff1f1f1fffffff3f3f3fffffff7f7f7fcfcfce8e8e8
+ecececefefefe2e2e2fffffff6f6f6ffffffedededffffffdededefefefefffffff9f9f9
+ffffffeaeaeaeaeaeaffffffeaeaeaf2f2f2fafafaffffff000000fffffffdfdfdffffff
+e6e6e6000000fffffff0f0f0fcfcfcfdfdfdfcfcfcefefefffffffffffffe9e9e9ffffff
+f6f6f6f4f4f4f7f7f7ffffffd6d6d6fffffff6f6f6ffffffdadadafdfdfd040404ffffff
+fbfbfbf1f1f1fbfbfb000000ffffffe6e6e6f9f9f9f9f9f9f5f5f5fffffff2f2f2f8f8f8
+fbfbfbffffffdfdfdffcfcfcf4f4f4eaeaeafffffffdfdfdfffffff0f0f0fffffff6f6f6
+ffffffffffffe3e3e3ffffffecececf3f3f3fffffff9f9f9ebebebfffffff2f2f2f6f6f6
+ebebebffffffe0e0e0fafafaf5f5f5ffffffffffffe8e8e8fafafafafafaffffffebebeb
+f6f6f6e5e5e5fbfbfbecececf5f5f5ffffffdfdfdfffffffffffffffffffd6d6d6f7f7f7
+fefefefffffff6f6f6eeeeeefffffffcfcfcf5f5f5f2f2f2fffffffbfbfbf8f8f8fbfbfb
+fbfbfbfffffffbfbfbefefefffffff000000fffffffffffffefefeebebeb121212ffffff
+fbfbfbfcfcfcf7f7f7fffffff3f3f3dcdcdcfcfcfceeeeeeffffffffffffd0d0d0ffffff
+fbfbfbf4f4f4fffffffbfbfbfafafafafafaffffffebebebf6f6f6e5e5e5fbfbfbececec
+f5f5f5ffffffdfdfdfffffffffffffffffffd6d6d6f7f7f7fefefefffffff6f6f6eeeeee
+fffffffcfcfcf5f5f5f2f2f2fffffffbfbfbf8f8f8fbfbfbfbfbfbfffffffbfbfbefefef
+f9f9f9000000eeeeeefafafaf9f9f9f4f4f4000000ffffffffffffddddddfffffff4f4f4
+f3f3f3fbfbfbfafafaf8f8f8fffffff5f5f5f3f3f3eeeeeeffffffefefeff3f3f3fcfcfc
+fffffffffffff6f6f6ffffffeeeeeef5f5f5fefefefffffff7f7f7fcfcfcfffffffafafa
+e5e5e5ffffffedededf4f4f4ffffffdededef5f5f5ffffffe2e2e2fffffffcfcfcffffff
+f5f5f5fefefef6f6f6efefeff6f6f6fffffffafafafffffffffffff8f8f8ecececfcfcfc
+eaeaeafffffffafafaf4f4f4f6f6f6ffffffe3e3e3fffffff7f7f7f4f4f4fffffff6f6f6
+ebebebffffffe0e0e0ffffffefefefe2e2e2fbfbfbf0f0f0ffffffffffffe1e1e1ffffff
+fbfbfbffffffd8d8d8fcfcfcfffffffefefefafafafffffffffffff0f0f0eeeeeeffffff
+fbfbfbfdfdfdffffffffffffe4e4e4f5f5f5e9e9e9fffffffffffff1f1f1f8f8f8f1f1f1
+fffffffffffffbfbfbf5f5f5fefefefcfcfcf5f5f5efefeffffffff5f5f5ebebebffffff
+f2f2f2f9f9f9ffffffe2e2e2fffffffffffffafafaefefeffffffff5f5f5e6e6e6ffffff
+eeeeeef4f4f4fafafafffffff7f7f7ffffffeeeeeefffffffefefeddddddfffffff2f2f2
+e8e8e8fefefefafafaffffffeeeeeef3f3f3f5f5f5fdfdfdf9f9f9fcfcfcffffffebebeb
+f9f9f9e9e9e9fbfbfbecececfdfdfdeeeeeefbfbfbfbfbfbf0f0f0f4f4f4ffffffeaeaea
+f5f5f5f6f6f6ffffffffffffecececfffffff8f8f8fafafafffffff7f7f7fffffff8f8f8
+f0f0f0fdfdfdebebebf8f8f8f7f7f7f7f7f7f9f9f9fbfbfbfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafefefefbfbfbf7f7f7fbfbfbfffffff3f3f3
+fffffffdfdfdfffffff8f8f8fbfbfbf1f1f1fcfcfcfcfcfcf3f3f3fdfdfdfffffff4f4f4
+fcfcfcfffffffefefefcfcfce6e6e6f5f5f5ffffffefefeff7f7f7ffffffe0e0e0ffffff
+ecececffffffe4e4e4ecececf2f2f2edededffffffe6e6e6fffffff6f6f6f0f0f0fbfbfb
+fcfcfcfefefefefefed9d9d9fffffff5f5f5fefefefafafaffffff000000050505030303
+030303ffffffedededfdfdfde1e1e1fffffff0f0f0fffffff9f9f9fafafaf7f7f7f9f9f9
+f4f4f4fffffffffffffbfbfbfffffffafafaf4f4f4fffffffdfdfdfdfdfdf1f1f1000000
+0a0a0a000000303030f6f6f6f1f1f1fffffff5f5f5ecececfffffff7f7f7fffffff3f3f3
+fafafaf1f1f1fefefee8e8e8fcfcfcfefefefdfdfdf0f0f0eeeeeef8f8f8fffffffdfdfd
+ffffffe9e9e9ffffffeaeaeafffffff3f3f3f8f8f8f8f8f8fefefef6f6f6ebebebffffff
+ffffffedededfdfdfdf2f2f2fffffff2f2f2efefeffffffffffffffbfbfbf4f4f4fbfbfb
+f8f8f8ffffffcfcfcffffffffcfcfcf7f7f7fdfdfdfdfdfdeaeaeafcfcfcfffffffbfbfb
+ffffffebebebfcfcfcffffffe9e9e9f8f8f8fffffff3f3f3ffffffebebebfcfcfcffffff
+efefeff4f4f4fffffff0f0f0fcfcfcf9f9f90808080303030000000f0f0ff4f4f4f0f0f0
+fafafafffffff8f8f8fffffff7f7f7fffffffffffff2f2f2ffffffe4e4e4fefefeffffff
+e8e8e8ffffffe6e6e6f9f9f9fffffffbfbfbf4f4f4fbfbfbf8f8f8ffffffcfcfcfffffff
+fcfcfcf7f7f7fdfdfdfdfdfdeaeaeafcfcfcfffffffbfbfbffffffebebebfcfcfcffffff
+e9e9e9f8f8f8fffffff3f3f3ffffffebebebfcfcfcffffffefefeff4f4f4fffffff0f0f0
+fdfdfdf1f1f1070707080808000000070707f4f4f4f5f5f5f9f9f9ffffffffffffeeeeee
+fffffff2f2f2fffffff4f4f4fdfdfdf9f9f9fefefefefefefffffffffffffefefef1f1f1
+f8f8f8e6e6e6fffffff1f1f1fcfcfcffffffefefeffdfdfdffffffe8e8e8fdfdfdffffff
+fefefef6f6f6fbfbfbfafafaf0f0f0fffffffffffff0f0f0fffffff4f4f4fbfbfbfcfcfc
+fffffffcfcfcfffffffbfbfbf3f3f3f5f5f5ffffffe2e2e2f4f4f4f0f0f0ffffffffffff
+fafafafffffffcfcfcecececffffffe8e8e8ffffffd9d9d9fbfbfbfdfdfdf8f8f8f0f0f0
+ffffffddddddffffffe3e3e3fffffff6f6f6fcfcfcfcfcfcf9f9f9f6f6f6ffffffffffff
+efefeffffffffffffff8f8f8fcfcfcfafafafffffffbfbfbf1f1f1fffffffffffff4f4f4
+f2f2f2fdfdfdefefeffffffffefefefffffff6f6f6fdfdfdf2f2f2f4f4f4ffffffffffff
+f3f3f3fefefefefefefbfbfbfafafafafafafdfdfdfafafaf6f6f6fffffffefefef2f2f2
+fcfcfcffffffedededf9f9f9eeeeeef8f8f8fffffffffffff4f4f4ecececffffffefefef
+fffffffafafafbfbfbfdfdfdf2f2f2eeeeeeffffffe9e9e9f6f6f6ffffffe3e3e3ffffff
+fcfcfcfefefefffffff0f0f0edededffffffedededfffffffbfbfbffffffdbdbdbffffff
+f0f0f0fdfdfdfffffffffffffefefef5f5f5fcfcfcf0f0f0fffffff4f4f4f5f5f5fafafa
+ffffffebebebfbfbfbe1e1e1fffffff7f7f7f3f3f3f8f8f8f2f2f2f3f3f3f3f3f3fefefe
+fafafaf2f2f2ffffffeeeeeefafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8fdfdfdf8f8f8fafafaffffff
+fcfcfcf4f4f4f7f7f7fffffffffffffffffffdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfefefe
+f7f7f7f6f6f6f5f5f5f7f7f7fbfbfbfefefefffffffefefefbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf7f7f7f5f5f5f6f6f6fafafafbfbfbf9f9f9fafafafdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafffffff4f4f4f8f8f8
+e8e8e8f8f8f8f5f5f5fcfcfcfafafafdfdfdfbfbfbf8f8f8fbfbfbfffffffdfdfdf5f5f5
+fdfdfdfbfbfbfafafafafafafcfcfcfefefefefefefdfdfdfffffffefefefcfcfcfcfcfc
+fdfdfdfbfbfbf6f6f6f2f2f2fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffff7f7f7f9f9f9fbfbfbffffffdfdfdffffffffffffffafafafcfcfcfefefefdfdfd
+fbfbfbfcfcfcfffffffffffffbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fbfbfbfafafafbfbfbfbfbfbf7f7f7f3f3f3f6f6f6fdfdfdf9f9f9fefefefffffffcfcfc
+fdfdfdfffffffffffffefefefffffffefefefcfcfcfcfcfcfdfdfdfbfbfbf6f6f6f2f2f2
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffff7f7f7f9f9f9fbfbfb
+ffffffdfdfdffffffffffffffafafafcfcfcfefefefdfdfdfbfbfbfcfcfcffffffffffff
+fdfdfdfcfcfcfbfbfbfcfcfcfffffffffffffffffffafafafcfcfcf8f8f8f8f8f8fcfcfc
+fffffffdfdfdfdfdfdfffffffafafafdfdfdfdfdfdf7f7f7f3f3f3f6f6f6f9f9f9fafafa
+fdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaf8f8f8f7f7f7fafafafdfdfdfefefefdfdfd
+fefefefffffffbfbfbf5f5f5f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fefefefcfcfcfbfbfbfafafafafafafcfcfcfefefefffffff7f7f7fefefeffffffffffff
+f6f6f6f3f3f3fbfbfbfffffffefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfefefefffffffefefefcfcfcf7f7f7f3f3f3f0f0f0fdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbffffffebebebfffffff1f1f1f9f9f9ffffffefefefffffff
+fffffffefefeedededfffffffcfcfcedededffffffeaeaeafafafafffffff4f4f4f6f6f6
+f8f8f8fffffff0f0f0fffffffafafaf8f8f8f7f7f7f8f8f8fafafafcfcfcfcfcfcfcfcfc
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f8f8f8f8f8f8f9f9f9f9f9f9fbfbfbfdfdfdfefefefffffffdfdfdf5f5f5f2f2f2f7f7f7
+fcfcfcfcfcfcfafafaf9f9f9fffffffefefefbfbfbfafafafbfbfbfafafaf5f5f5f1f1f1
+f9f9f9f9f9f9f7f7f7f7f7f7f8f8f8fafafafdfdfdfefefefbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8fffffff9f9f9fafafaffffff
+fefefef7f7f7f9f9f9fffffffafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafa
+fffffffffffffcfcfcfbfbfbfbfbfbfbfbfbf9f9f9f8f8f8fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf6f6f6f6f6f6f7f7f7f8f8f8f8f8f8f9f9f9fafafafafafa
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbf8f8f8f8f8f8fcfcfcfdfdfdfbfbfbfbfbfbfefefe
+fefefefefefefefefefefefefefefefefefefefefefefefef8f8f8f5f5f5ffffffeeeeee
+ffffffefefeffffffff5f5f5fcfcfcfefefefcfcfcfafafafcfcfcfffffffdfdfdf6f6f6
+fefefefcfcfcfbfbfbfbfbfbfdfdfdfffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fefefefdfdfdfbfbfbf8f8f8fafafafafafafafafafafafafafafafafafafafafafafafa
+fcfcfcf0f0f0ffffffebebebeeeeeeffffffe9e9e9fbfbfbf8f8f8fafafafcfcfcfbfbfb
+f9f9f9fafafafdfdfdfffffff8f8f8f8f8f8f9f9f9f9f9f9fafafafafafafafafafbfbfb
+fefefef9f9f9f8f8f8fafafafcfcfcfafafafbfbfbfefefefdfdfdfffffffffffffafafa
+fafafafefefefffffffcfcfcfefefefdfdfdfdfdfdfdfdfdfefefefdfdfdfbfbfbf8f8f8
+fafafafafafafafafafafafafafafafafafafafafafafafafcfcfcf0f0f0ffffffebebeb
+eeeeeeffffffe9e9e9fbfbfbf8f8f8fafafafcfcfcfbfbfbf9f9f9fafafafdfdfdffffff
+fbfbfbfafafaf9f9f9fafafafdfdfdfefefefcfcfcf8f8f8fdfdfdf9f9f9f8f8f8fcfcfc
+fffffffdfdfdfcfcfcfefefefafafafdfdfdfdfdfdf7f7f7f4f4f4f8f8f8fbfbfbfcfcfc
+fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcf5f5f5f8f8f8f9f9f9f9f9f9
+fcfcfcfffffffdfdfdf8f8f8fafafafafafafafafafafafafafafafafafafafafafafafa
+f8f8f8f8f8f8f7f7f7f6f6f6f6f6f6f6f6f6f7f7f7f8f8f8fbfbfbfdfdfdfefefefdfdfd
+fafafaf9f9f9fbfbfbfefefefdfdfdfdfdfdfdfdfdfcfcfcfafafaf7f7f7f5f5f5f4f4f4
+f8f8f8fafafafbfbfbfdfdfdfdfdfdfcfcfcfafafaf9f9f9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfdfdfdfdfdfde7e7e7ffffffdededeffffffe7e7e7e4e4e4ffffffe7e7e7
+f2f2f2e9e9e9fffffff0f0f0f0f0f0ffffffeaeaeaffffffeeeeeef3f3f3fdfdfdfbfbfb
+f4f4f4fefefef3f3f3fcfcfcfdfdfdfbfbfbfafafafbfbfbfefefeffffffffffffffffff
+fafafafafafafafafafafafafafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f8f8f8f8f8f8f8f8f8f9f9f9f9f9f9fafafafcfcfcfcfcfcfcfcfcf6f6f6f3f3f3f6f6f6
+f9f9f9f8f8f8f6f6f6f7f7f7fffffffdfdfdfbfbfbfbfbfbfbfbfbfbfbfbf9f9f9f8f8f8
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafafafaf9f9f9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8fffffffafafaf9f9f9fefefe
+fffffffbfbfbfbfbfbfffffff8f8f8fafafafdfdfdfffffffffffffffffffefefefcfcfc
+fffffffefefefcfcfcfcfcfcfefefefffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf9f9f9fafafafafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffcfcfcfcfcfcfffffffffffffcfcfcfcfcfcffffff
+fefefefefefefefefefefefefefefefefefefefefefefefef6f6f6fdfdfdfcfcfcfdfdfd
+f7f7f7fefefefcfcfcfbfbfbfdfdfdfffffffefefefcfcfcfdfdfdfffffffdfdfdf8f8f8
+fffffffdfdfdfbfbfbfcfcfcfefefefffffffffffffefefef9f9f9fbfbfbfdfdfdfefefe
+fefefefefefefefefefffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f1f1f1eaeaeae5e5e5fffffff4f4f4f0f0f0fffffff5f5f5f9f9f9fafafafbfbfbfbfbfb
+fafafafbfbfbfdfdfdfffffff9f9f9f9f9f9fafafafafafafafafafafafafbfbfbfbfbfb
+fffffffafafaf7f7f7fbfbfbfffffffffffffefefefefefefcfcfcfdfdfdfcfcfcf9f9f9
+f9f9f9fdfdfdfefefefdfdfdf9f9f9fbfbfbfdfdfdfefefefefefefefefefefefeffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf1f1f1eaeaeae5e5e5ffffff
+f4f4f4f0f0f0fffffff5f5f5f9f9f9fafafafbfbfbfbfbfbfafafafbfbfbfdfdfdffffff
+fcfcfcfafafafafafafbfbfbfdfdfdfcfcfcfafafaf9f9f9fefefefafafaf9f9f9fdfdfd
+fefefefcfcfcfbfbfbfdfdfdfafafafdfdfdfcfcfcf8f8f8f6f6f6fbfbfbfefefefefefe
+fbfbfbfcfcfcfdfdfdfefefefefefefefefefdfdfdfdfdfdf7f7f7f9f9f9f9f9f9f8f8f8
+fafafafffffffffffffbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfafafaf9f9f9f8f8f8f8f8f8fffffffcfcfcfafafafbfbfb
+fefefefffffffbfbfbf7f7f7fefefefffffffffffffffffffefefefcfcfcf9f9f9f8f8f8
+f8f8f8f9f9f9fafafafcfcfcfdfdfdfffffffffffffffffffafafafbfbfbfbfbfbfcfcfc
+fdfdfdfefefefefefefefefef6f6f6fcfcfcffffffeaeaeaf5f5f5ffffffeeeeeeffffff
+f4f4f4fffffffefefef4f4f4fffffffffffff6f6f6f7f7f7fffffff0f0f0fdfdfdf5f5f5
+f3f3f3fffffffffffff8f8f8fbfbfbf9f9f9f8f8f8f9f9f9fbfbfbfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffcfcfcfbfbfbfdfdfd
+fcfcfcf9f9f9f9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafafbfbfbfdfdfdffffff
+fafafafbfbfbfdfdfdfefefefefefefdfdfdfafafaf9f9f9fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8fffffffafafaf7f7f7fbfbfb
+fffffffcfcfcfbfbfbfcfcfcfafafafbfbfbfcfcfcfefefefefefefefefefdfdfdfcfcfc
+fcfcfcfafafafafafafbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffffffffcfcfcfcfcfcffffff
+fafafafafafafbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfbfbfbfffffff2f2f2fefefe
+ebebebfffffffcfcfcfffffffffffffffffffffffffefefefefefefefefefdfdfdfbfbfb
+fefefefcfcfcfafafafafafafcfcfcfdfdfdfdfdfdfcfcfcf7f7f7fafafafefefefefefe
+fcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdf8f8f8ffffffffffffe7e7e7fffffffcfcfcfdfdfdfdfdfdfdfdfd
+fdfdfdfefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffbfbfbfafafafefefefffffffefefefdfdfdfefefef5f5f5f7f7f7f8f8f8f9f9f9
+fbfbfbfefefefffffffefefef7f7f7fafafafefefefefefefcfcfcfcfcfcffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf8f8f8
+ffffffffffffe7e7e7fffffffcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffcfcfcfbfbfbfbfbfbfffffffbfbfbf9f9f9fdfdfd
+fefefefcfcfcfafafafcfcfcfafafafdfdfdfcfcfcf8f8f8f8f8f8fdfdfdffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9fefefefffffffdfdfdf9f9f9
+fbfbfbfffffffffffffbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffdfdfdfbfbfbf9f9f9fffffffcfcfcf9f9f9fcfcfc
+fffffffffffffbfbfbf5f5f5fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfffffffffffffcfcfcfcfcfcfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffff8f8f8e7e7e7f8f8f8fffffff7f7f7f6f6f6ffffff
+fffffffbfbfbe5e5e5ffffffffffffe8e8e8f3f3f3f4f4f4e8e8e8dbdbdbffffffffffff
+f4f4f4f2f2f2f6f6f6f9f9f9fafafaf8f8f8f7f7f7f8f8f8fafafafcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcffffffffffffffffffffffff
+fffffffbfbfbfcfcfcfffffffafafafcfcfcfdfdfdfafafaf8f8f8f9f9f9fdfdfdffffff
+f8f8f8f9f9f9fbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8fefefef9f9f9f6f6f6f9f9f9
+fcfcfcfbfbfbfafafafafafafafafaf9f9f9f7f7f7f6f6f6f6f6f6f6f6f6f7f7f7f7f7f7
+fffffffdfdfdfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfffffffffffffbfbfbfbfbfbfefefe
+f9f9f9fafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfefefef7f7f7ffffffe9e9e9
+fefefef4f4f4fffffffffffffffffffffffffffffffffffffffffffcfcfcfbfbfbfcfcfc
+fcfcfcfafafaf8f8f8f8f8f8fafafafbfbfbfafafaf9f9f9f7f7f7fafafafdfdfdfcfcfc
+fafafafafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f1f1f1fffffff2f2f2e4e4e4fcfcfcffffffeaeaeafdfdfdfdfdfdfcfcfcfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffffffffffdfdfdf8f8f8f8f8f8fdfdfdf3f3f3f4f4f4f8f8f8fcfcfc
+fefefefdfdfdfbfbfbfbfbfbf7f7f7fafafafdfdfdfcfcfcfafafafafafafdfdfdffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7f1f1f1fffffff2f2f2
+e4e4e4fcfcfcffffffeaeaeafdfdfdfdfdfdfcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffdfdfdfefefefffffffffffffafafaf9f9f9fcfcfcfffffffbfbfbf9f9f9fdfdfd
+fefefefcfcfcfafafafcfcfcfbfbfbfcfcfcfbfbfbf8f8f8f9f9f9ffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9fffffffffffffcfcfcf9f9f9
+fbfbfbfffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffefefefbfbfbf7f7f7f5f5f5fdfdfdfcfcfcfcfcfcfdfdfd
+fefefefdfdfdfafafaf8f8f8fbfbfbf9f9f9f8f8f8f8f8f8f9f9f9fcfcfcffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfbfbfbfdfdfdf5f5f5ffffffffffffddddddfffffffbfbfbf4f4f4
+fdfdfdebebebfffffff8f8f8e9e9e9fefefefefefefcfcfcfffffff9f9f9f7f7f7fcfcfc
+f6f6f6f4f4f4f3f3f3efefeffefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfbfbfbfafafafcfcfcfafafafbfbfbfdfdfd
+fcfcfcf9f9f9fbfbfbfffffffbfbfbfcfcfcfcfcfcf9f9f9f6f6f6f6f6f6fafafaffffff
+fafafafafafafafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8fbfbfbf9f9f9f8f8f8f8f8f8
+f9f9f9fafafafafafaf9f9f9fdfdfdfbfbfbf9f9f9f6f6f6f5f5f5f6f6f6f8f8f8f9f9f9
+f9f9f9f8f8f8f7f7f7f9f9f9fcfcfcffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfdfdfdfffffffffffffbfbfbfbfbfbfdfdfd
+fbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefefefefef7f7f7f7f7f7fbfbfbf6f6f6
+fcfcfcfdfdfdfffffff9f9f9fffffffffffffffffffffffffffffffafafafafafafdfdfd
+fbfbfbf9f9f9f7f7f7f7f7f7f8f8f8f9f9f9f9f9f9f7f7f7fafafafafafafbfbfbfafafa
+f9f9f9fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefbfbfbfbfbfbfffffff9f9f9f0f0f0fbfbfbfafafafcfcfcfbfbfbfafafafafafa
+fdfdfdfffffffffffffefefefffffffffffffffffffffffffffffffefefefefefefefefe
+fdfdfdfefefefffffffffffffbfbfbf5f5f5f6f6f6fbfbfbf8f8f8f8f8f8fafafafefefe
+fefefef9f9f9f6f6f6f6f6f6fafafafafafafbfbfbfafafaf9f9f9fafafafcfcfcfefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefbfbfbfbfbfbffffff
+f9f9f9f0f0f0fbfbfbfafafafcfcfcfbfbfbfafafafafafafdfdfdfffffffffffffefefe
+fffffffbfbfbfcfcfcfffffffdfdfdf5f5f5f4f4f4fafafafefefefafafaf9f9f9fdfdfd
+fefefefcfcfcfbfbfbfdfdfdfcfcfcfcfcfcfafafaf7f7f7f9f9f9fffffffffffffefefe
+fefefefffffffffffffffffffffffffefefefdfdfdfcfcfcf8f8f8f9f9f9f8f8f8f7f7f7
+fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffdfdfdfbfbfbf8f8f8f6f6f6fafafafcfcfcfdfdfdfdfdfd
+fcfcfcfbfbfbfcfcfcfcfcfcfefefefcfcfcfafafaf9f9f9f9f9f9fcfcfcffffffffffff
+fffffffefefefdfdfdfdfdfdfdfdfdfffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfbfbfbfafafafafafafffffffdfdfdf4f4f4e4e4e4fffffffdfdfdf9f9f9ffffff
+ffffffffffffedededfffffffdfdfdefefefffffffe9e9e9dadadaffffffecececf6f6f6
+fcfcfcfffffffefefef7f7f7fdfdfdfbfbfbfafafafbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffefefefdfdfdfbfbfbf8f8f8f7f7f7fcfcfcf9f9f9f9f9f9fcfcfc
+fdfdfdfcfcfcfdfdfdfffffffcfcfcfcfcfcfbfbfbf9f9f9f7f7f7f7f7f7f9f9f9fbfbfb
+fffffffdfdfdfbfbfbfafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8f9f9f9fbfbfbfbfbfbf9f9f9
+f8f8f8f9f9f9fafafafbfbfbfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f5f5f5f5f5f5f5f5f5f8f8f8fdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfdfdfdfffffffffffffcfcfcfcfcfcffffff
+fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefefffffff6f6f6fffffff0f0f0ffffff
+f0f0f0fffffff7f7f7fafafafffffffefefefffffffffffffefefef8f8f8f8f8f8fdfdfd
+fcfcfcfafafaf8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f7f7f7fcfcfcfafafaf9f9f9f9f9f9
+fcfcfcfefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+f7f7f7fffffffcfcfcd5d5d5ffffffebebeb0f0f0ffffffffdfdfdfbfbfbf9f9f9fafafa
+fefefefffffffffffffefefefffffffefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfc
+fefefefdfdfdfdfdfdfffffffefefef9f9f9f8f8f8fafafafffffffafafaf9f9f9fcfcfc
+fbfbfbf6f6f6f6f6f6f9f9f9fcfcfcfafafaf9f9f9f9f9f9fcfcfcfefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefef7f7f7fffffffcfcfcd5d5d5
+ffffffebebeb0f0f0ffffffffdfdfdfbfbfbf9f9f9fafafafefefefffffffffffffefefe
+fffffffbfbfbfcfcfcfffffffdfdfdf3f3f3f3f3f3fbfbfbfdfdfdf9f9f9f8f8f8fcfcfc
+fffffffdfdfdfcfcfcfefefefcfcfcfcfcfcf9f9f9f6f6f6f9f9f9fffffffffffffcfcfc
+fefefefefefefffffffefefefefefefdfdfdfcfcfcfbfbfbf7f7f7f9f9f9f9f9f9f8f8f8
+fbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfbfbfbfbfafafafbfbfb
+fcfcfcfdfdfdfefefefefefefbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfafafaeeeeee0b0b0b000000fefefef6f6f6fefefe
+000000f3f3f3fafafaf0f0f0fdfdfdfbfbfbe8e8e81c1c1c111111e8e8e8f9f9f9ffffff
+fafafaf6f6f6fafafafffffffbfbfbf9f9f9f8f8f8f9f9f9fbfbfbfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefefefefdfdfdfbfbfbf8f8f8f6f6f6fffffffbfbfbf8f8f8fcfcfc
+fffffffefefefdfdfdfefefefdfdfdfbfbfbfafafafafafafbfbfbfbfbfbfafafaf9f9f9
+fcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf8f8f8f9f9f9fdfdfdfefefefbfbfb
+f8f8f8f9f9f9fcfcfcfdfdfdf7f7f7f9f9f9fbfbfbfdfdfdfdfdfdfdfdfdfcfcfcfbfbfb
+fffffffdfdfdfbfbfbfafafafcfcfcfcfcfcfcfcfcfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfdfdfdfffffffffffffefefefefefeffffff
+f7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcfffffffafafafdfdfdececec
+fcfcfcf8f8f8fffffffdfdfdfffffffefefefffffffffffffefefef7f7f7f7f7f7fdfdfd
+fdfdfdfbfbfbf9f9f9f9f9f9fafafafafafaf9f9f9f8f8f8fdfdfdfafafaf7f7f7f9f9f9
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfffffffffffffefefefafafaf6f6f6090909f4f4f4fffffffdfdfdfbfbfbfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fffffffbfbfbf9f9f9fefefefffffffffffffbfbfbfafafafffffff9f9f9f6f6f6f8f8f8
+f8f8f8f6f6f6f9f9f9fffffffdfdfdfafafaf7f7f7f9f9f9fefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffefefe
+fafafaf6f6f6090909f4f4f4fffffffdfdfdfbfbfbfdfdfdffffffffffffffffffffffff
+fffffffefefefffffffffffffffffff5f5f5f4f4f4fdfdfdfcfcfcf8f8f8f8f8f8fcfcfc
+fffffffdfdfdfdfdfdfffffffdfdfdfcfcfcf8f8f8f5f5f5f8f8f8fefefefffffffbfbfb
+fffffffffffffffffffffffffdfdfdfafafaf8f8f8f7f7f7fcfcfcfefefefdfdfdfcfcfc
+fefefefffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfdfdfdfafafaf7f7f7f8f8f8
+fcfcfcfffffffffffffefefeefefeff2f2f2f7f7f7fcfcfcfffffffffffffefefefdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefefefefdfdfdfdfdfdfafafaf9f9f9fbfbfbffffff000000fcfcfcffffffeeeeee
+0b0b0bf0f0f0fffffff0f0f0fdfdfdf1f1f1ffffffe6e6e6030303ffffffeeeeeef8f8f8
+f0f0f0fffffffbfbfbefefeffefefefdfdfdfbfbfbfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf8f8f8fffffff8f8f8f4f4f4f7f7f7
+fbfbfbfafafaf7f7f7f6f6f6fdfdfdfbfbfbf9f9f9fbfbfbfffffffffffffdfdfdf9f9f9
+f4f4f4f6f6f6fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbffffff0000000000000b0b0b
+f2f2f20b0b0b080808000000070707030303010101edededffffffedededf2f2f20c0c0c
+000000000000fdfdfdfffffffafafaedededfffffffffffffafafaecececfffffff7f7f7
+f4f4f4fafafafffffffffffff9f9f9fffffff4f4f4fbfbfbfefefef8f8f8ffffffffffff
+f3f3f3f3f3f3fdfdfdfffffff9f9f9ffffffeeeeeefffffffffffffefefef4f4f4f6f6f6
+fefefef5f5f5fffffffdfdfde7e7e7fffffff1f1f1fffffffffffffbfbfbfdfdfdffffff
+f8f8f8fafafafffffff6f6f6fdfdfdeaeaeafffffffafafafefefefcfcfcfffffff0f0f0
+fefefef7f7f7fffffffffffffefefefffffffefefeffffffefefeffffffffbfbfb080808
+fbfbfbf3f3f3f0f0f0ffffff010101070707000000070707f3f3f3fffffffbfbfbf4f4f4
+fdfdfdfcfcfcfffffffafafaf5f5f5fffffff8f8f8ffffffedededfffffffcfcfcffffff
+0000000f0f0f1c1c1cfffffff0f0f0ffffff0000000a0a0a040404f2f2f2ffffffffffff
+f2f2f2edededfffffffdfdfdfcfcfcffffffefefeffffffffdfdfdf5f5f5fbfbfbffffff
+f6f6f6fdfdfdfcfcfcfffffffbfbfbf0f0f01d1d1df3f3f3f8f8f8fffffff7f7f7f7f7f7
+fffffff6f6f6fdfdfdfffffffffffff4f4f4fffffff8f8f8f9f9f9fffffffafafaffffff
+f0f0f0ffffffffffffedededfffffffafafa040404ffffff010101000000181818ffffff
+fffffffcfcfc000000101010040404f2f2f2fffffffffffff2f2f2edededfffffffdfdfd
+fcfcfcffffffefefeffffffffdfdfdf5f5f5fbfbfbfffffff6f6f6fdfdfdfcfcfcffffff
+fbfbfbf0f0f01d1d1df3f3f3f8f8f8fffffff7f7f7f7f7f7fffffff6f6f6fdfdfdffffff
+ffffffecececfffffffdfdfdfefefeeeeeeefffffff2f2f2fdfdfdfffffff4f4f4fafafa
+010101060606000000131313fbfbfbf4f4f4fffffffffffff2f2f2e9e9e9ffffffffffff
+fffffff3f3f3fffffffffffffbfbfbfefefefffffff9f9f9fffffff2f2f2fdfdfdffffff
+f6f6f6fffffffcfcfcfefefef9f9f9fffffffffffff9f9f9fffffffffffffafafaffffff
+fffffffbfbfbffffffffffffffffffe7e7e7f7f7f7f9f9f9fffffff9f9f9fefefeefefef
+f4f4f4fffffffefefe020202fefefe0b0b0b040404131313e7e7e7ffffffebebebffffff
+fffffffffffffffffff2f2f2fdfdfdfbfbfbf5f5f5fffffff9f9f9f7f7f7ffffffefefef
+fffffffdfdfdf8f8f8fcfcfcf4f4f4ecececffffffe5e5e5010101f8f8f8f9f9f9ffffff
+131313eeeeeefffffff8f8f8fbfbfbf2f2f2ecececffffff111111fffffff8f8f8040404
+020202080808fafafaeeeeeeffffff000000030303000000fffffffbfbfbfdfdfdfafafa
+fffffffffffff9f9f9e7e7e7ffffffffffffebebebfefefefdfdfdf9f9f9f7f7f7ffffff
+f6f6f6ffffffedededffffffeeeeeefffffffdfdfdfffffffffffff3f3f3fffffffdfdfd
+fffffffdfdfdfbfbfbfafafaffffffe9e9e9020202060606fffffff5f5f5fafafaeeeeee
+fefefef4f4f4fbfbfbf4f4f4fcfcfcf0f0f00505050b0b0b000000fffffffdfdfde1e1e1
+fafafaf9f9f9f8f8f8fafafafdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbf9f9f9f9f9f9000000ffffff
+f8f8f8ffffff090909fffffffbfbfbfffffff8f8f8181818000000fffffffffffff2f2f2
+070707fffffff5f5f5ffffffe0e0e0ffffffedededf7f7f7fffffffafafae8e8e8f8f8f8
+fffffffffffffbfbfbebebebffffffecececffffffffffffdbdbdbffffffe7e7e7f3f3f3
+fffffffffffff5f5f5e8e8e8ffffffebebebfffffff0f0f0e5e5e5f5f5f5ffffffffffff
+efefeffffffff3f3f3f6f6f6ffffffcdcdcdfffffffffffff0f0f0fcfcfcfbfbfbebebeb
+fffffffffffff3f3f3fdfdfdfffffff8f8f8f4f4f4fffffff8f8f8ffffffeeeeeeffffff
+ebebebfffffffafafaf3f3f3fcfcfcefefefffffffeeeeeefefefeffffff000000fcfcfc
+f8f8f8ffffff000000010101fffffffafafafffffff2f2f2161616e6e6e6f9f9f9fdfdfd
+fdfdfdf9f9f9efefeff9f9f9fafafaf0f0f0fffffff8f8f8ffffffd7d7d7fffffff2f2f2
+f6f6f60e0e0e000000fffffffafafaffffffececec060606f6f6f6fffffff0f0f0ececec
+fefefeffffffecececf7f7f7fcfcfcecececfffffff6f6f6f7f7f7fffffffbfbfbe7e7e7
+fefefefefefefdfdfdedededf3f3f3ffffffdfdfdffffffffefefef8f8f8f9f9f9f9f9f9
+fffffffffffffffffffdfdfdfefefefffffffffffffffffffafafaf1f1f1fffffff9f9f9
+fffffff7f7f7f8f8f8fdfdfdffffff000000ffffffe2e2e2fcfcfc090909000000fafafa
+fffffff5f5f5f0f0f0020202f6f6f6fffffff0f0f0ecececfefefeffffffecececf7f7f7
+fcfcfcecececfffffff6f6f6f7f7f7fffffffbfbfbe7e7e7fefefefefefefdfdfdededed
+f3f3f3ffffffdfdfdffffffffefefef8f8f8f9f9f9f9f9f9fffffffffffffffffffdfdfd
+e7e7e7fffffff1f1f1fffffffdfdfdf9f9f9fafafaffffffffffffd7d7d70a0a0a0f0f0f
+f9f9f9f6f6f6f3f3f3f6f6f60c0c0cf2f2f2f8f8f8eeeeeeffffffffffffebebebf3f3f3
+dededefffffff3f3f3fffffffdfdfdfffffffafafaf7f7f7cececefffffff8f8f80a0a0a
+fafafae8e8e8ffffffffffffffffffe8e8e8f3f3f3ffffffe8e8e8fffffffffffffbfbfb
+fbfbfbefefeffcfcfcf6f6f6dededeffffff161616f9f9f9fcfcfcdfdfdff2f2f2ffffff
+eaeaeaf6f6f60d0d0df9f9f9ecececf1f1f10e0e0efdfdfdf3f3f3f1f1f1ffffffeaeaea
+ebebebfcfcfcfffffff6f6f6fffffff5f5f5f9f9f9fbfbfbfffffffffffffcfcfcffffff
+edededf5f5f5fffffff4f4f4fffffff5f5f5ffffffffffff1c1c1cfffffffbfbfbf8f8f8
+e3e3e3f7f7f7fbfbfbfbfbfbfffffffffffff6f6f6fbfbfb030303fafafaf7f7f7f0f0f0
+0f0f0f030303f0f0f0fffffffdfdfdfefefe181818f0f0f0eeeeeefcfcfcfffffff3f3f3
+f2f2f2fafafaffffffffffffe4e4e4e6e6e6fffffff8f8f8fafafaffffffebebebfafafa
+fcfcfcfbfbfbfbfbfbeaeaeafffffffefefeffffffebebebfffffffbfbfbffffffffffff
+f8f8f8fbfbfbfffffff2f2f2ffffff0c0c0cffffff000000fbfbfbfcfcfcf9f9f9fbfbfb
+f6f6f6f9f9f9f8f8f8fbfbfbffffff000000fffffff1f1f1ffffff050505edededffffff
+fefefefcfcfcfbfbfbfbfbfbfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbf3f3f3ffffff0c0c0cf7f7f7
+fcfcfcf2f2f2000000fffffff6f6f6ffffffecececf8f8f8161616000000fffffff8f8f8
+0a0a0affffffe8e8e8f8f8f8fdfdfdfffffff6f6f6fffffff9f9f9fffffffbfbfbfbfbfb
+e5e5e5fffffff6f6f6fffffff6f6f6fffffffafafae8e8e8ffffffe5e5e5ffffffffffff
+f8f8f8e9e9e9fffffffffffffefefef6f6f6fefefefdfdfdfffffffbfbfbdfdfdfffffff
+fbfbfbf2f2f2fffffffafafaf3f3f3fffffff7f7f7f7f7f7ffffffffffffffffffffffff
+f8f8f8ebebebfcfcfcf4f4f4eaeaeafcfcfcfffffff9f9f9fdfdfdf3f3f3fffffff5f5f5
+f4f4f4f9f9f9edededfffffffffffff4f4f4f0f0f0fffffffffffff1f1f11b1b1bf8f8f8
+fcfcfc000000050505fffffff6f6f6f1f1f1fafafaffffff090909e8e8e8ffffffffffff
+e8e8e8fffffffffffff5f5f5fffffff3f3f3fefefee5e5e5f3f3f3fffffff1f1f1ffffff
+fefefe080808000000000000ffffffe1e1e1ffffff060606f7f7f7fefefefafafaeeeeee
+fcfcfcfefefef7f7f7fffffffffffff0f0f0f8f8f8ffffffedededecececffffffffffff
+fffffff1f1f1fcfcfcfefefef2f2f2fffffff4f4f4f5f5f5f2f2f2ffffffffffffffffff
+efefeffffffffffffffefefefcfcfcf7f7f7f9f9f9fffffffffffffefefefffffffafafa
+f0f0f0f7f7f7fffffffffffff9f9f9000000fffffffffffffefefe181818000000090909
+f5f5f5edededffffff030303f7f7f7fefefefafafaeeeeeefcfcfcfefefef7f7f7ffffff
+fffffff0f0f0f8f8f8ffffffedededecececfffffffffffffffffff1f1f1fcfcfcfefefe
+f2f2f2fffffff4f4f4f5f5f5f2f2f2ffffffffffffffffffefefeffffffffffffffefefe
+fffffffffffffefefefffffffcfcfcf4f4f4ffffffe8e8e8f4f4f40404040d0d0de6e6e6
+fffffffefefefafafaffffff080808f2f2f2fffffff7f7f7ecececffffffffffffffffff
+fffffff5f5f5f2f2f2fffffff6f6f6ffffffe9e9e9fffffff3f3f3fbfbfbfbfbfb000000
+ffffffe7e7e7fffffffcfcfcf9f9f9fffffff8f8f8fffffffefefef9f9f9fdfdfdf7f7f7
+f7f7f7fffffffffffffffffffdfdfde7e7e7000000fefefefbfbfbfffffffdfdfde5e5e5
+ffffffffffff000000f0f0f0ffffffffffff000000fffffff6f6f6fffffff9f9f9fbfbfb
+ffffffedededfffffffafafaf4f4f4fffffffffffffdfdfdf7f7f7fffffff8f8f8f8f8f8
+fffffffdfdfdeeeeeefefefef0f0f0f8f8f8f2f2f2fdfdfd040404f0f0f0ffffffe6e6e6
+fffffffdfdfde2e2e2fffffff5f5f5f6f6f6fffffff5f5f50b0b0bf5f5f5fffffffefefe
+060606000000131313efefeff0f0f0e1e1e1050505ffffffffffffffffffe3e3e3f6f6f6
+fdfdfdfffffff8f8f8fafafaffffffffffffedededfffffff7f7f7e4e4e4ffffffffffff
+fffffff6f6f6fffffffffffff7f7f7f0f0f0fcfcfcfffffff7f7f7f8f8f8fbfbfbfcfcfc
+fffffffcfcfcfcfcfcedededffffffecececececec1e1e1ef9f9f9fffffff9f9f9ffffff
+f1f1f1fefefef6f6f6ffffff030303fffffffefefefffffffafafaf6f6f60f0f0ff2f2f2
+fffffffefefefdfdfdfdfdfdfefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbffffffededed020202ffffff
+f3f3f3ffffff151515f4f4f4fffffff5f5f5f3f3f3ffffffffffff121212ffffffececec
+141414efefefffffffffffffe7e7e7fffffff7f7f7efefef121212000000f2f2f2ffffff
+f4f4f4fbfbfb010101000000171717f0f0f0ffffffffffff0000000707070f0f0f000000
+191919000000090909000000010101090909f9f9f9f4f4f4f3f3f3050505000000040404
+040404ffffffeaeaeafefefefefefef9f9f9f8f8f8fefefeffffffeaeaea000000000000
+101010ffffffffffffffffff060606000000ebebeb000000000000ffffffefefef171717
+030303000000171717f6f6f6eaeaeafffffff9f9f9fcfcfcededed070707f2f2f2ffffff
+f1f1f1181818fffffff9f9f9fafafafefefef8f8f8f3f3f3f6f6f6f1f1f1f6f6f6f2f2f2
+121212131313000000f5f5f5ffffffffffffffffff111111262626000000131313f4f4f4
+e9e9e9080808f2f2f2111111e4e4e4fffffff6f6f6030303f4f4f4fefefeffffff0d0d0d
+0e0e0e000000ffffffffffffe9e9e91515150404040d0d0d0505050808080000001c1c1c
+070707070707020202fefefef5f5f5020202121212ffffffffffff000000000000212121
+121212000000010101e7e7e7f2f2f2ffffff000000000000131313060606dfdfdfffffff
+fffffffcfcfcf9f9f9f5f5f5000000ffffffedededf4f4f4ebebeb010101ffffff000000
+f2f2f2f6f6f6ffffff000000f4f4f4fefefeffffff0d0d0d0e0e0e000000ffffffffffff
+e9e9e91515150404040d0d0d0505050808080000001c1c1c070707070707020202fefefe
+f5f5f5020202121212ffffffffffff000000000000212121121212000000010101e7e7e7
+e9e9e9fdfdfd010101000000101010050505fefefefdfdfdfefefe171717f9f9f9f6f6f6
+fdfdfde4e4e4ffffffedededffffffe7e7e7fbfbfbffffff0b0b0b000000000000ffffff
+f0f0f0f0f0f01313130000000a0a0a0e0e0e000000010101fffffff1f1f10f0f0f000000
+000000000000f8f8f8ecececfafafa0a0a0a0b0b0b050505fdfdfd0f0f0f1111110c0c0c
+f1f1f1000000010101000000ffffff0909090808080000000b0b0bf9f9f9f7f7f7fdfdfd
+dedede1b1b1bf8f8f8ffffffdededeffffff1e1e1ee9e9e9ebebeb0000000000000e0e0e
+010101090909000000f3f3f3000000000000111111dfdfdfffffff000000111111eeeeee
+ffffff0000001c1c1c000000fffffffffffff3f3f3ffffff000000fefefee3e3e31f1f1f
+000000fffffffcfcfcefefefffffff0000000f0f0f151515000000f6f6f6f7f7f7fefefe
+000000ffffff0a0a0affffffffffffe9e9e90d0d0df5f5f5f0f0f0fafafa202020080808
+000000f8f8f8fcfcfcebebeb070707000000070707070707181818040404000000090909
+0000001a1a1af8f8f8fffffffffffff3f3f30c0c0c030303000000fffffffdfdfdf6f6f6
+090909000000fffffffffffff0f0f0f8f8f8ffffff000000fafafafffffffafafaffffff
+f6f6f6fdfdfdf9f9f9fefefe000000fffffff4f4f4f2f2f2f7f7f7ffffff000000eeeeee
+fffffffdfdfdfbfbfbfcfcfcfefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbf4f4f4f3f3f3050505f0f0f0
+fffffff9f9f90d0d0dfffffffefefee6e6e6ffffffffffffffffff000000f9f9f9ffffff
+000000fffffff2f2f2fcfcfcf8f8f8f5f5f5ffffffffffff020202161616ebebebf5f5f5
+fefefe000000fffffffffffff6f6f6000000f7f7f7ffffffffffff000000ffffffffffff
+f5f5f5121212fafafaf2f2f2ffffff000000eaeaeaffffff151515f0f0f0ffffffeaeaea
+f6f6f6060606000000fafafafffffff0f0f0ffffffebebebeeeeee000000ffffffffffff
+f4f4f4000000e8e8e8efefeffbfbfb171717000000fffffff2f2f2ffffff000000e9e9e9
+ffffffffffffefefef000000070707f2f2f2f9f9f9ffffffffffff000000fafafafcfcfc
+f6f6f60f0f0fcdcdcdfdfdfdffffffffffffffffffe9e9e9fbfbfbfffffff7f7f7000000
+f4f4f4edededffffff121212ffffffffffff020202f2f2f2ecececf1f1f1040404ffffff
+ffffff040404f2f2f2f7f7f70b0b0bfffffff4f4f4030303ffffffebebeb000000030303
+efefefffffff010101eeeeeefcfcfcfbfbfb000000fafafaf9f9f9ffffff040404e3e3e3
+f8f8f8f5f5f5000000ffffffdcdcdcf3f3f3000000fdfdfdf2f2f2ffffff0f0f0ff1f1f1
+f7f7f7fefefe010101fffffff6f6f6000000fafafafffffff1f1f1ffffff0c0c0c0a0a0a
+e5e5e5e8e8e8f5f5f5ffffff000000edededfffffff5f5f5ffffff000000fefefee8e8e8
+1c1c1cf2f2f2fcfcfc050505ffffffebebeb000000030303efefefffffff010101eeeeee
+fcfcfcfbfbfb000000fafafaf9f9f9ffffff040404e3e3e3f8f8f8f5f5f5000000ffffff
+dcdcdcf3f3f3000000fdfdfdf2f2f2ffffff0f0f0ff1f1f1f7f7f7fefefe010101ffffff
+f5f5f51c1c1cfcfcfcffffffe9e9e9ffffff000000030303f8f8f8000000e6e6e6ffffff
+f9f9f9f7f7f7fafafaedededfcfcfcfffffffefefe070707f4f4f4f8f8f8ffffff000000
+ffffffffffffededed080808fffffffffffffcfcfc010101fffffff9f9f9f6f6f6202020
+fdfdfdfffffff1f1f1ffffff020202e7e7e7ebebebffffff000000ffffff010101090909
+fdfdfdffffff000000ffffffffffffffffff000000ffffffeeeeeeffffffffffffffffff
+ffffff000000ffffffe6e6e6fafafaf7f7f7000000fffffffffffff9f9f9181818f7f7f7
+f5f5f5ffffff000000fffffff9f9f9000000f7f7f7fffffff8f8f8000000ffffffffffff
+020202090909fffffff8f8f8000000f9f9f9f5f5f5efefef141414fffffff9f9f9e0e0e0
+000000f3f3f3f4f4f4ffffff000000ffffffeeeeeeeeeeee000000ffffffefefeff0f0f0
+1d1d1dfafafae7e7e7000000efefeff6f6f60a0a0af8f8f8ffffff000000202020ffffff
+fcfcfc000000ffffffebebebffffff020202ffffffeaeaeaeeeeee0b0b0bfffffff3f3f3
+ffffff000000eeeeeefffffff2f2f2202020e4e4e4f9f9f9f9f9f9000000d3d3d3ffffff
+0d0d0d000000ffffffebebebefefefffffffe3e3e3000000fcfcfcf7f7f7fcfcfcf5f5f5
+fffffff9f9f9fdfdfdf8f8f8000000ffffffeaeaeaffffffdfdfdffbfbfb030303ffffff
+fbfbfbfafafaf9f9f9fafafafdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbf9f9f9ffffff000000f9f9f9
+f7f7f7ffffff000000fefefef4f4f4fffffff1f1f1e7e7e7fafafa0f0f0fdcdcdcffffff
+191919fffffff2f2f2f6f6f6ffffffffffffedededebebebf2f2f2fffffff9f9f9fbfbfb
+000000fffffff8f8f8f4f4f4e8e8e8ffffff050505fafafaf1f1f1000000f4f4f4e9e9e9
+fafafa0d0d0df8f8f8f2f2f2ffffff000000ffffffefefef000000fffffff8f8f8ffffff
+e9e9e9090909ffffffddddddf2f2f2fefefef8f8f8fcfcfc010101fffffffefefef0f0f0
+f4f4f4fefefe060606fffffff9f9f9000000fffffff2f2f2e2e2e2fdfdfd0c0c0cf0f0f0
+fffffff8f8f8fdfdfd0f0f0fffffffd8d8d8fffffff8f8f8000000fffffffffffff2f2f2
+ffffff000000fffffffbfbfbe4e4e4dededefffffffefefee9e9e9ffffff000000ffffff
+eeeeeefefefef3f3f3eeeeee000000f5f5f5121212000000fffffffffffffafafafafafa
+f8f8f80d0d0dfffffff5f5f50a0a0a000000fafafa000000fffffffafafafbfbfbf5f5f5
+ffffff000000000000fffffffdfdfdebebeb191919ffffffedededffffff000000ffffff
+f1f1f1ffffff000000e9e9e9ffffffffffff242424e3e3e3fffffffdfdfd060606f2f2f2
+fffffffdfdfd060606f0f0f0ffffff000000f7f7f7fefefeffffffcacaca111111fefefe
+f6f6f6ffffffe2e2e2060606fffffff2f2f2e4e4e4fffffff5f5f5121212fcfcfcffffff
+000000000000ececec000000fffffffafafafbfbfbf5f5f5ffffff000000000000ffffff
+fdfdfdebebeb191919ffffffedededffffff000000fffffff1f1f1ffffff000000e9e9e9
+ffffffffffff242424e3e3e3fffffffdfdfd060606f2f2f2fffffffdfdfd060606f0f0f0
+f9f9f9000000f9f9f9fbfbfbffffffdbdbdb161616fffffffefefe050505ffffffe6e6e6
+eaeaeaf3f3f3fffffffdfdfde5e5e5ffffff000000fffffff7f7f7ffffffebebebf5f5f5
+000000fffffffcfcfc000000f1f1f1dfdfdfffffff090909fbfbfbfbfbfbe9e9e9060606
+efefeff2f2f2f0f0f0020202f8f8f8ffffffefefefe9e9e9171717f5f5f5f4f4f4060606
+ffffff000000ffffffffffffe4e4e4ffffff131313ecececfdfdfdf6f6f6fdfdfdfafafa
+0c0c0cfffffffffffffffffff8f8f8ffffff000000eeeeeefffffff8f8f8000000fafafa
+fffffffcfcfc141414f9f9f9ffffff040404151515e4e4e4fcfcfc010101fbfbfbeeeeee
+f3f3f3ebebebf2f2f20f0f0f090909fafafaffffffffffff000000ecececffffffffffff
+121212d0d0d0ffffff070707fdfdfde8e8e8fffffffcfcfc040404ecececfffffff6f6f6
+000000f6f6f6ffffff1b1b1b090909ffffff111111fafafaeaeaeafffffff2f2f2f2f2f2
+060606000000fffffffffffff3f3f3000000f8f8f8fffffff3f3f3121212e9e9e9ffffff
+f8f8f8000000fffffff0f0f0000000fafafafffffff7f7f7f6f6f60b0b0bffffffe8e8e8
+f1f1f1f0f0f0fffffff7f7f7ffffffdededeffffff141414fcfcfcf3f3f3fcfcfcf0f0f0
+fffffff7f7f7fffffff5f5f5000000fefefeefefefe5e5e5ffffffececec060606efefef
+fafafaf8f8f8f8f8f8f9f9f9fdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbffffffececec040404f6f6f6
+fffffffefefe1a1a1afcfcfce8e8e8edededffffffffffffffffff000000f2f2f2f0f0f0
+000000fafafaf5f5f5ffffffeaeaeaf7f7f7fffffffafafafdfdfdf5f5f5f3f3f3ffffff
+000000ffffffe9e9e9fdfdfdffffffededed000000ffffffffffff060606fdfdfdffffff
+ffffff000000fbfbfbffffffffffff0d0d0df4f4f4fafafafafafa151515000000000000
+2a2a2ae3e3e3fffffffffffff7f7f7fffffffefefefafafa080808f0f0f0f4f4f4fdfdfd
+ffffffe9e9e9000000f5f5f5f5f5f51f1f1fe8e8e8fefefefffffffffffffcfcfc060606
+0b0b0b0000000a0a0af5f5f5f3f3f3ffffffdcdcdc090909f9f9f9fbfbfbecececfdfdfd
+f0f0f0000000fffffff2f2f2ffffffffffffe3e3e3fffffffbfbfbf5f5f5060606f7f7f7
+f4f4f4fffffff4f4f4f6f6f6000000ffffffffffff0000001b1b1b212121fefefef3f3f3
+ffffff000000f5f5f5f6f6f6efefef171717fdfdfd101010efefefe2e2e2ffffff000000
+040404ffffff000000ddddddfcfcfcffffff000000fdfdfdfcfcfcffffff010101ececec
+fdfdfdededed1d1d1df8f8f8ededede3e3e3000000fffffff6f6f6ffffff000000ffffff
+fcfcfce1e1e10b0b0bf9f9f9ecececfdfdfd000000080808000000222222f5f5f5fbfbfb
+fafafaffffff131313f8f8f8fafafafafafaffffffe3e3e3ffffff000000fffffff0f0f0
+f8f8f80b0b0bffffff090909efefefe2e2e2ffffff000000040404ffffff000000dddddd
+fcfcfcffffff000000fdfdfdfcfcfcffffff010101ecececfdfdfdededed1d1d1df8f8f8
+ededede3e3e3000000fffffff6f6f6ffffff000000fffffffcfcfce1e1e10b0b0bf9f9f9
+fefefeececec1717170b0b0b0000001c1c1cfefefeeeeeeeffffff000000d2d2d2ffffff
+fafafafefefefbfbfbefefeffffffff9f9f9000000f3f3f3f9f9f9f6f6f6e4e4e4ffffff
+101010f1f1f1ffffff0b0b0bf6f6f6ffffffffffff010101fbfbfbd8d8d8ffffff000000
+ecececf8f8f8ffffff0c0c0c000000000000131313000000141414fbfbfbffffffededed
+060606fefefefbfbfbfffffff4f4f4e6e6e6151515fefefefffffffffffffdfdfd010101
+eeeeeefffffffefefeeeeeeee8e8e8ffffff010101f1f1f1fffffff3f3f3151515ffffff
+fdfdfdfafafa000000efefefebebebfcfcfc040404fbfbfbeaeaea191919f8f8f8fefefe
+ffffff020202161616ececec121212f6f6f6f0f0f0ffffff080808fffffff6f6f6ebebeb
+000000f8f8f8fbfbfb070707fafafaffffffebebebfcfcfc000000fffffffffffffdfdfd
+030303ffffffebebebefefef080808fbfbfb0d0d0de7e7e7fffffffbfbfb0e0e0e000000
+ffffff030303fffffff2f2f2e8e8e8101010fdfdfdeeeeeeffffff000000f6f6f6f6f6f6
+fdfdfd0c0c0cf9f9f9ffffff131313000000060606080808050505000000f0f0f0ffffff
+fefefeffffffc1c1c1edededfffffffefefee5e5e5000000f8f8f8f7f7f7fafafaf8f8f8
+fdfdfdfafafafbfbfbf8f8f8020202fffffff5f5f5ffffffefefeffcfcfc070707fefefe
+fcfcfcfbfbfbfafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbfefefefdfdfd0d0d0dfbfbfb
+f6f6f6f1f1f1040404fdfdfdffffffe6e6e6fffffff9f9f9000000111111ffffffffffff
+060606fffffffefefef5f5f5ffffff010101e7e7e7fffffff8f8f8fffffff3f3f3f6f6f6
+0f0f0ff7f7f7fafafaffffffedededffffff0c0c0cf4f4f4fdfdfd070707eaeaeaf9f9f9
+f9f9f9060606fbfbfbe8e8e8ffffff000000f3f3f3f6f6f6fdfdfd000000fafafafefefe
+ebebebfbfbfbfbfbfbfefefefcfcfcfefefefefefeececec181818ebebebfffffff1f1f1
+ffffffffffff000000fffffffafafa000000ffffffdfdfdffcfcfce3e3e3ffffff000000
+e9e9e9fffffffefefef8f8f8ffffffecececffffff000000ffffffffffffe7e7e7f2f2f2
+ffffff020202000000e3e3e3ffffffe4e4e4fcfcfcffffff000000ffffff000000fdfdfd
+f1f1f1e8e8e8fffffffbfbfb0b0b0be8e8e8fffffffdfdfdfbfbfbececec070707ffffff
+ffffff060606ebebebfffffffcfcfc060606000000090909ecececffffff000000fafafa
+f6f6f6f6f6f6020202fefefef8f8f8ffffff0e0e0ef8f8f8f5f5f5ececec000000fefefe
+fbfbfbfcfcfc000000fbfbfbfffffff7f7f70b0b0bf8f8f8ffffffe1e1e10d0d0dfbfbfb
+e6e6e6ffffff000000fbfbfbffffffffffff000000fffffff5f5f5e9e9e9fffffff7f7f7
+fafafaededed090909fbfbfbe1e1e1fcfcfcfefefefffffffefefe0a0a0affffffffffff
+ffffff040404010101000000ecececffffff000000fafafaf6f6f6f6f6f6020202fefefe
+f8f8f8ffffff0e0e0ef8f8f8f5f5f5ececec000000fefefefbfbfbfcfcfc000000fbfbfb
+fffffff7f7f70b0b0bf8f8f8ffffffe1e1e10d0d0dfbfbfbe6e6e6ffffff000000fbfbfb
+ffffffffffff000000fffffffafafafafafaf2f2f2fffffff1f1f1171717070707f8f8f8
+fffffff8f8f8f3f3f3ffffff000000ffffff000000fffffff0f0f0eeeeeeffffffe2e2e2
+000000ffffffe2e2e2080808fcfcfcf9f9f9f6f6f6050505ffffffffffffd4d4d40b0b0b
+ffffffffffffefefef010101ffffffecececfdfdfdfefefefcfcfcf3f3f3fbfbfb0d0d0d
+e7e7e7060606fdfdfdf5f5f5f9f9f9ffffff050505efefefe1e1e1fbfbfbfdfdfd000000
+ffffffffffffe3e3e3fffffffafafafafafa131313fffffff7f7f7fbfbfb000000f3f3f3
+fcfcfcf6f6f6101010fffffff3f3f3fcfcfc191919eaeaea000000fffffff9f9f9f1f1f1
+000000f3f3f3ffffffffffff000000fcfcfcf7f7f7ffffff000000fffffff4f4f4ffffff
+000000f9f9f9f0f0f0000000fdfdfdf7f7f7fffffff7f7f7010101f2f2f2ffffffeaeaea
+0f0f0ff8f8f8ffffffffffff000000090909000000fffffff1f1f1000000f2f2f2ffffff
+f7f7f7040404f8f8f8f2f2f2ffffff000000eeeeeefffffff6f6f6080808f3f3f3f4f4f4
+ffffff121212f4f4f4f6f6f60b0b0bebebebf1f1f1eeeeeeffffffffffffffffffe7e7e7
+fcfcfcefefeffffffff0f0f0fdfdfdffffffdbdbdb141414f3f3f3fcfcfcf7f7f7ffffff
+f4f4f4fefefef6f6f6fefefe010101fbfbfbfbfbfbf4f4f4fdfdfdffffff000000ffffff
+fffffffefefefcfcfcfcfcfcfefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000040404f8f8f8f9f9f9f4f4f4ffffffffffff020202ffffff
+f5f5f5ffffff010101f7f7f7f9f9f9f2f2f2fafafa0000000b0b0be9e9e9fffffff5f5f5
+000000ffffffeaeaeaf6f6f6ffffff000000ffffffffffff000000080808ffffffebebeb
+ededed000000fcfcfcffffffffffff000000f9f9f9f6f6f6ffffff010101fffffffdfdfd
+ffffff040404fdfdfdf3f3f3ffffff070707fffffff8f8f8ebebeb040404000000000000
+101010141414efefefffffff090909000000fffffff5f5f5fcfcfc000000fffffff3f3f3
+ffffff020202fdfdfdf8f8f8ffffff010101fcfcfcf9f9f9f9f9f9ebebebffffff000000
+080808000000000000070707ecececffffff000000efefeffefefef4f4f4fffffff2f2f2
+fdfdfdefefef010101060606f3f3f3fffffffcfcfcfbfbfb000000fffffff5f5f5000000
+fffffffffffff3f3f3040404fffffff7f7f7000000ffffffefefeff9f9f91c1c1cfdfdfd
+ededed000000fefefef2f2f2fafafaffffff020202090909fefefeefefef000000ffffff
+fcfcfc0000000d0d0dfafafaf8f8f8ffffff020202f1f1f1ffffffffffff010101f8f8f8
+f8f8f8ffffff030303ffffffeeeeeefdfdfd040404fcfcfce7e7e7ffffff000000e7e7e7
+f7f7f7ffffff000000fffffffcfcfcf0f0f01b1b1b0808080000000000000f0f0ffafafa
+fbfbfb030303ebebebfffffffffffff4f4f4fffffff1f1f1ffffff000000f1f1f1ffffff
+f9f9f9ffffff000000121212fefefeefefef000000fffffffcfcfc0000000d0d0dfafafa
+f8f8f8ffffff020202f1f1f1ffffffffffff010101f8f8f8f8f8f8ffffff030303ffffff
+eeeeeefdfdfd040404fcfcfce7e7e7ffffff000000e7e7e7f7f7f7ffffff000000ffffff
+fdfdfdf6f6f61919191212120000000303030f0f0ffffffff8f8f8f5f5f50c0c0c010101
+fffffffffffff7f7f7fefefe0a0a0aedededffffff000000f6f6f6ffffffd4d4d4060606
+fafafaffffffe1e1e10a0a0af3f3f3fffffff3f3f3070707fffffffcfcfcffffff000000
+ffffffecececffffff000000000000ffffffe8e8e8f1f1f10e0e0effffff020202fefefe
+ffffff121212060606fffffffbfbfbffffff000000fffffffffffff8f8f8000000f4f4f4
+fffffffefefefbfbfbfffffff9f9f9ffffff040404ffffffefefeffefefe050505fefefe
+eaeaeaffffff030303dededefefefeffffff0000000707070f0f0ffafafaf0f0f0fcfcfc
+050505ffffffeaeaea0404040a0a0afbfbfbf6f6f6ffffff000000fffffffafafafcfcfc
+252525efefefececec232323000000ffffffe5e5e5000000010101f0f0f0ffffffffffff
+000000fffffff1f1f1fffffff8f8f81f1f1f000000fffffffefefe010101f7f7f7ffffff
+0202020c0c0cfefefefefefef4f4f4020202fefefefdfdfdf8f8f8020202fffffff2f2f2
+ffffff000000ffffffffffff0000001e1e1efefefef2f2f2fafafa030303f8f8f8f2f2f2
+000000070707f5f5f5f7f7f7ffffffebebebffffff020202f5f5f5ffffffedededfbfbfb
+070707171717f3f3f3ffffffe8e8e8020202ffffffe5e5e5ffffff000000fdfdfdfdfdfd
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000040404f9f9f9fbfbfbf6f6f6f9f9f9000000000000000000
+ffffff0000000000000e0e0e111111000000090909ffffffe0e0e0f5f5f5ffffff050505
+060606000000070707181818010101030303ffffffe7e7e70d0d0d040404e7e7e7ffffff
+ffffffececec0606060404040c0c0cffffffffffffffffff000000040404030303f9f9f9
+0d0d0d000000000000ffffff000000000000000000eeeeee0e0e0efffffffffffffcfcfc
+fefefe000000090909ffffff0303031d1d1df4f4f4f0f0f0ffffffefefef0505050d0d0d
+030303f3f3f3fcfcfcffffff000000070707101010fcfcfce7e7e7ffffff000000dbdbdb
+fbfbfbffffffffffff000000191919f5f5f5000000fdfdfdfffffffcfcfcf6f6f6ffffff
+dfdfdfffffffeaeaeaffffff0202020000000202020a0a0af8f8f8f9f9f9f4f4f4ffffff
+020202000000000000ffffffffffffffffff020202000000090909070707ffffffefefef
+020202111111060606fafafafffffffffffff0f0f0000000eaeaeafcfcfcffffff000000
+0d0d0dffffff020202000000ffffff050505010101151515f9f9f9070707040404070707
+fefefe070707040404000000ffffff000000000000090909fefefe000000080808070707
+ffffff0303031717170e0e0efefefe040404f8f8f8f9f9f9ffffffffffff010101000000
+ffffff070707fffffff8f8f8f9f9f9ffffffebebebffffff121212000000070707fafafa
+fffffff7f7f7ffffff000000eaeaeafcfcfcffffff0000000d0d0dffffff020202000000
+ffffff050505010101151515f9f9f9070707040404070707fefefe070707040404000000
+ffffff000000000000090909fefefe000000080808070707ffffff0303031717170e0e0e
+f8f8f8010101f1f1f1f7f7f7ffffffffffff000000000000f7f7f7ffffffdededeffffff
+000000010101111111010101e5e5e5ffffffd6d6d6ffffff0c0c0c0000000e0e0effffff
+ffffffe9e9e9212121000000000000f3f3f3000000060606121212ecececffffff0d0d0d
+000000090909fefefeffffff1c1c1c0000000c0c0c232323fefefe000000121212000000
+f3f3f3000000000000050505f6f6f6dedede3d3d3d070707000000f3f3f3080808ffffff
+fdfdfdfbfbfbfafafaf1f1f1fcfcfc050505020202000000ffffff000000000000070707
+ffffff0a0a0a0000000f0f0fffffffe4e4e4ffffff070707e5e5e5ffffffecececececec
+fcfcfc000000151515f9f9f9040404000000f7f7f70000000000000d0d0dffffff000000
+000000000000ffffffe0e0e00909090c0c0c0b0b0bffffff000000000000e9e9e9000000
+272727000000fffffff2f2f2fcfcfcf8f8f8111111fafafaf9f9f9f5f5f50c0c0c000000
+ffffff000000000000ffffff000000000000121212fcfcfc0e0e0e000000000000ffffff
+000000000000000000f9f9f9ffffff0000000c0c0c2c2c2c000000f9f9f9ffffffffffff
+030303202020f7f7f7edededffffff0000000000000000000c0c0cf4f4f4eeeeeeeeeeee
+090909000000ffffffeaeaeafffffff7f7f7030303000000020202ffffffefefeffbfbfb
+f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000050505fbfbfbfefefefafafafffffffdfdfdfffffffafafa
+f8f8f8f9f9f9ffffffebebebffffffeeeeeefbfbfbdbdbdbfffffff2f2f2fafafaffffff
+fffffff1f1f1fffffff9f9f9f5f5f5fffffff7f7f7fbfbfbf9f9f9fffffff7f7f7d5d5d5
+fffffffbfbfbf2f2f2f8f8f8fffffff8f8f8f3f3f3f6f6f6f9f9f9fffffffcfcfcf1f1f1
+edededfffffffefefefdfdfdfefefeffffffffffffffffff0f0f0ff8f8f8fbfbfbffffff
+eaeaeafbfbfb060606eaeaeaf6f6f6fffffff9f9f9e0e0e0fffffff8f8f8f2f2f2fdfdfd
+f3f3f3fefefeefefefedededfffffffffffff5f5f5fcfcfcffffffe7e7e7000000ffffff
+f7f7f7f0f0f0f5f5f5ffffff000000020202fffffffffffff0f0f0eaeaeafffffff1f1f1
+f0f0f0fcfcfcfbfbfbf4f4f4fcfcfcfdfdfde8e8e8fdfdfdfcfcfce3e3e3fffffff4f4f4
+e4e4e4fffffff2f2f2f2f2f2f4f4f4ecececfffffffdfdfdebebebf7f7f7fefefef6f6f6
+fafafaf4f4f4f4f4f4fcfcfce3e3e3fbfbfbfffffff8f8f8edededffffffeeeeeef5f5f5
+f3f3f3ecececf9f9f9fffffff2f2f2f2f2f2ffffffedededf4f4f4f5f5f5ffffffefefef
+fcfcfcf5f5f5fffffff5f5f5f9f9f9ffffffffffffefefeffffffff3f3f3fffffffafafa
+e9e9e9f4f4f4ffffffdfdfdfffffff010101f9f9f9fbfbfbd3d3d3f5f5f5fcfcfc0a0a0a
+000000ffffffeeeeeef0f0f0fffffff3f3f3fbfbfbffffffeeeeeefffffff1f1f1dadada
+fbfbfbfefefef9f9f9ffffffedededffffffeeeeeef5f5f5f3f3f3ecececf9f9f9ffffff
+f2f2f2f2f2f2ffffffedededf4f4f4f5f5f5ffffffefefeffcfcfcf5f5f5fffffff5f5f5
+f9f9f9ffffffffffffefefeffffffff3f3f3fffffffafafae9e9e9f4f4f4ffffffdfdfdf
+ffffff030303fffffffdfdfddadadaf8f8f8ffffff0f0f0fefefeffffffff1f1f1f6f6f6
+f5f5f5ffffffe1e1e1fefefef6f6f6f3f3f3fdfdfdfffffff1f1f1ffffffffffffececec
+ebebebfffffffcfcfceeeeeefffffff6f6f6fffffffffffff3f3f3fffffff6f6f6f5f5f5
+fffffffcfcfcfefefeefefeffffffffffffff4f4f4f0f0f0fafafafffffff3f3f3ffffff
+f9f9f9fffffffffffffbfbfbf7f7f7ffffffe9e9e9f7f7f7f6f6f6131313f8f8f8e9e9e9
+f7f7f7ffffffccccccfffffffcfcfcf6f6f6fffffff5f5f5f9f9f9ffffffffffffefefef
+e5e5e5fffffffafafafdfdfdf7f7f7fafafaeeeeeefafafafffffff7f7f7e3e3e3ffffff
+f3f3f3fdfdfdfefefefafafafffffff6f6f6fffffffefefeffffffefefeff9f9f9ffffff
+eeeeeef8f8f8f4f4f4fbfbfbf9f9f9fcfcfcfbfbfbe3e3e3ffffffe7e7e7fffffffefefe
+fafafafbfbfbf7f7f7efefeffffffff5f5f5fffffffdfdfde1e1e1fffffffffffff9f9f9
+ffffffffffffffffffdbdbdbffffffffffffd1d1d1ffffffebebebfffffff8f8f8f7f7f7
+f9f9f9fffffffcfcfcfffffff6f6f6fffffffafafaecececfffffffcfcfcf3f3f3e8e8e8
+f4f4f4fffffff5f5f5f7f7f7fffffffffffffafafafffffffcfcfcf9f9f9ffffffffffff
+f2f2f2ffffffffffffffffffeeeeeef0f0f0fffffff9f9f9f3f3f3f7f7f7ffffffececec
+f9f9f9f9f9f9fafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000060606fdfdfdfffffffdfdfdfbfbfbf1f1f1f0f0f0ffffff
+fefefefefefefdfdfdfffffff7f7f7fffffff8f8f8ffffffffffffefefefffffffeeeeee
+f5f5f5fffffffcfcfcfbfbfbf1f1f1ffffffe3e3e3fffffff6f6f6e8e8e8fffffff6f6f6
+fafafafcfcfcfbfbfbfffffff4f4f4fffffffbfbfbf3f3f3fffffffcfcfce7e7e7ffffff
+fffffff9f9f9fcfcfcfdfdfdffffffeeeeeeeeeeeef6f6f6000000ecececffffffffffff
+ffffff070707fefefefafafafcfcfcd4d4d4f7f7f7fffffff5f5f5fefefefafafaffffff
+fffffffffffffffffffffffffffffff6f6f6f0f0f0fefefef7f7f7f1f1f1131313f0f0f0
+f0f0f0fffffff0f0f0030303ffffffe7e7e7fffffff3f3f3fafafafffffffefefef3f3f3
+ffffffe6e6e6fffffffafafaf3f3f3fffffffffffffafafaf2f2f2ffffffe4e4e4eaeaea
+fffffff5f5f5fffffffcfcfcfdfdfdffffffeeeeeef2f2f2fdfdfdfffffff2f2f2ffffff
+fffffff2f2f2ffffffe4e4e4fffffff0f0f0eeeeeefcfcfcffffffebebebf0f0f0ffffff
+fffffffffffffafafaedededfffffffffffffffffff5f5f5fffffff1f1f1f0f0f0ffffff
+fffffffafafaf6f6f6fffffff9f9f9f7f7f7f0f0f0f1f1f1f9f9f9fdfdfdf7f7f7ffffff
+fffffffffffff7f7f7ffffffffffff000000ffffffe5e5e5fffffff9f9f9121212fafafa
+fcfcfcfffffff7f7f7fffffff8f8f8fdfdfdfffffffdfdfdfffffff9f9f9fafafae8e8e8
+fffffff8f8f8ebebebfdfdfdffffffebebebf0f0f0fffffffffffffffffffafafaededed
+fffffffffffffffffff5f5f5fffffff1f1f1f0f0f0fffffffffffffafafaf6f6f6ffffff
+f9f9f9f7f7f7f0f0f0f1f1f1f9f9f9fdfdfdf7f7f7fffffffffffffffffff7f7f7ffffff
+ffffff000000ffffffdadadaffffffefefef121212f5f5f5fffffff3f3f3fffffff9f9f9
+fafafafffffffafafafffffffffffffffffff8f8f8eaeaeafffffffffffff8f8f8fcfcfc
+fffffff6f6f6f2f2f2ffffffefefeffcfcfcfcfcfcf1f1f1ffffffebebebfefefeffffff
+fffffffbfbfbf4f4f4fffffffffffff0f0f0fffffffffffff3f3f3ffffffefefeff8f8f8
+f8f8f8f6f6f6f4f4f4f9f9f9fafafaf1f1f1fffffffffffffffffffdfdfdf6f6f6ffffff
+f9f9f9e5e5e5ffffffe8e8e8fffffffbfbfbf7f7f7fffffffbfbfbf9f9f9f2f2f2f3f3f3
+f9f9f9ebebebfffffff7f7f7fffffff5f5f5fffffffbfbfbf8f8f8f2f2f2ffffffe4e4e4
+fffffff5f5f5fffffff2f2f2fcfcfcfffffff5f5f5fefefef3f3f3fffffff7f7f7f4f4f4
+fffffffffffffefefeeaeaeafffffff6f6f6eeeeeefffffff9f9f9fbfbfbf3f3f3fdfdfd
+f6f6f6fdfdfde2e2e2fffffff6f6f6fdfdfdfffffffffffffffffffcfcfcfafafaffffff
+e5e5e5ffffffe5e5e5fdfdfde3e3e3f0f0f0fffffff8f8f8fffffffbfbfbfdfdfdfdfdfd
+ffffffefefeff0f0f0f9f9f9ffffffeeeeeef9f9f9fefefee2e2e2fffffffdfdfdffffff
+ffffffecececeeeeeeffffffedededf3f3f3f7f7f7f9f9f9fffffff4f4f4fafafaf6f6f6
+fdfdfdfbfbfbe5e5e5fffffffffffffffffffffffffffffffafafafffffffffffff9f9f9
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000060606fdfdfdfffffffefefefefefefffffffffffff3f3f3
+fffffffcfcfcfffffff8f8f8efefeffffffff2f2f2ffffffefefefffffffe6e6e6ffffff
+f8f8f8fffffff9f9f9fffffffefefefffffffffffffffffffffffffafafaedededffffff
+f5f5f5f7f7f7ffffffefefeffafafaedededfcfcfcf1f1f1fffffffefefefffffff5f5f5
+f6f6f6fdfdfdf7f7f7fffffff3f3f3fffffffffffff9f9f9ececec0f0f0f000000000000
+000000e7e7e7f9f9f9ffffffffffffffffffdededef6f6f6eaeaeafffffffffffff3f3f3
+f5f5f5f7f7f7f8f8f8e8e8e8fffffffcfcfcfdfdfdfffffff3f3f3ffffffefefef000000
+1c1c1c000000020202fafafaf3f3f3f7f7f7fffffffffffff8f8f8f0f0f0fcfcfcffffff
+eaeaeafefefef6f6f6fffffff2f2f2ffffffeeeeeef6f6f6fbfbfbfcfcfcffffffffffff
+f8f8f8edededfefefef7f7f7fafafaf0f0f0fffffffcfcfcfbfbfbfdfdfdfafafaf4f4f4
+f1f1f1fefefeffffffffffffedededf8f8f8fffffffdfdfdfffffff6f6f6fffffff8f8f8
+efefeffffffff4f4f4ffffffedededf1f1f1fcfcfcfdfdfde9e9e9fefefefffffff9f9f9
+efefeffdfdfdfffffff4f4f4fffffffffffffffffffffffff9f9f9fafafafffffff2f2f2
+f7f7f7f1f1f1f9f9f9e5e5e5fdfdfdffffff000000000000000000060606e5e5e5f2f2f2
+ffffffe1e1e1f6f6f6fffffff2f2f2ffffffffffffeeeeeefcfcfcf4f4f4fefefeffffff
+e1e1e1f9f9f9fffffffbfbfbfffffff6f6f6fffffff8f8f8efefeffffffff4f4f4ffffff
+edededf1f1f1fcfcfcfdfdfde9e9e9fefefefffffff9f9f9efefeffdfdfdfffffff4f4f4
+fffffffffffffffffffffffff9f9f9fafafafffffff2f2f2f7f7f7f1f1f1f9f9f9e5e5e5
+ffffffffffff0a0a0a000000030303080808f0f0f0f9f9f9fffffff0f0f0eeeeeeffffff
+ebebebfffffffffffff0f0f0fbfbfbf6f6f6fffffffdfdfdf6f6f6f1f1f1fcfcfcf9f9f9
+f2f2f2eeeeeefffffff1f1f1f9f9f9ffffffdbdbdbfffffffffffffffffff9f9f9f8f8f8
+ffffffeaeaeaffffffddddddf7f7f7fffffffffffff3f3f3ffffffeeeeeefffffffcfcfc
+ffffffffffffe7e7e7ffffffe7e7e7fffffffcfcfcfdfdfdf2f2f2f0f0f0ffffffffffff
+fbfbfbf5f5f5fdfdfdffffffeeeeeefbfbfbfffffff2f2f2ffffffffffffffffffffffff
+fffffff9f9f9fcfcfce7e7e7fffffffefefef5f5f5fdfdfdfffffffefefef9f9f9f9f9f9
+fffffffffffff2f2f2fffffffafafafffffff6f6f6fafafafffffffdfdfdeeeeeeffffff
+f7f7f7ebebebf4f4f4fafafaffffffeeeeeefffffff6f6f6fffffff4f4f4ffffffffffff
+f9f9f9ffffffffffffebebebfffffffafafaf9f9f9f9f9f9f3f3f3f2f2f2fffffff3f3f3
+fffffffffffff7f7f7fffffff5f5f5fffffffdfdfdf9f9f9f6f6f6fffffffbfbfbffffff
+f3f3f3fffffffffffffcfcfcfffffffffffffffffff9f9f9fffffff0f0f0fefefef1f1f1
+f4f4f4ffffffffffffdbdbdbffffffffffffffffffedededeaeaeaffffffffffffffffff
+fffffff7f7f7fffffffffffff4f4f4f4f4f4f5f5f5f3f3f3fffffff0f0f0ebebebffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000050505fdfdfdfffffffefefeffffffe5e5e5eaeaeafbfbfb
+fbfbfbfffffffffffff3f3f3fbfbfbf7f7f7ffffffedededffffffffffffffffffeaeaea
+f8f8f8fffffff8f8f8edededfffffffefefee9e9e9fdfdfde8e8e8efefeffffffff2f2f2
+fffffff3f3f3fefefef3f3f3fffffff7f7f7ffffffffffffffffffe7e7e7f7f7f7fdfdfd
+f9f9f9fffffffffffffcfcfcfffffff1f1f1e9e9e9fffffff3f3f3fffffffffffff6f6f6
+eaeaeafffffff9f9f9efefefe1e1e1f4f4f4fffffff0f0f0fffffff3f3f3fefefefdfdfd
+ffffffe7e7e7fffffffffffff6f6f6dcdcdcf9f9f9f6f6f6fbfbfbeaeaeaf9f9f9ffffff
+e7e7e7f9f9f9f9f9f9f9f9f9edededffffffefefeff9f9f9f2f2f2fffffffffffffdfdfd
+fdfdfdfffffff7f7f7fdfdfdf7f7f7f1f1f1fffffffefefefffffff3f3f3f3f3f3ffffff
+f3f3f3fffffffefefefcfcfcfffffff3f3f3eeeeeefffffffcfcfcefefeffffffffbfbfb
+fbfbfbffffffe5e5e5fafafaf0f0f0ffffffffffffeeeeeeffffffeeeeeeedededfafafa
+ffffffffffffecececfffffffffffff3f3f3f6f6f6fffffff6f6f6ffffffffffffededed
+ffffffefefeff6f6f6fefefef5f5f5f6f6f6fcfcfcebebebfffffff3f3f3f1f1f1fbfbfb
+fffffffffffffcfcfcf6f6f6f7f7f7fafafaf6f6f6fffffffcfcfcffffffecececffffff
+fffffff1f1f1f2f2f2ffffffebebebffffffe5e5e5fffffffafafaffffffe3e3e3f5f5f5
+fffffff7f7f7fffffff6f6f6ffffffeeeeeeedededfafafaffffffffffffecececffffff
+fffffff3f3f3f6f6f6fffffff6f6f6ffffffffffffedededffffffefefeff6f6f6fefefe
+f5f5f5f6f6f6fcfcfcebebebfffffff3f3f3f1f1f1fbfbfbfffffffffffffcfcfcf6f6f6
+efefeff1f1f1f1f1f1f5f5f5f8f8f8ffffffe7e7e7f9f9f9fefefef3f3f3f5f5f5f1f1f1
+f9f9f9eaeaeafffffffafafafffffff4f4f4efefeffffffff5f5f5ffffffffffffffffff
+ffffffffffffedededf1f1f1ffffffecececfffffff4f4f4fafafaf1f1f1f6f6f6ffffff
+ffffffedededfdfdfdffffffffffffedededfbfbfbf9f9f9ffffffffffffebebebfcfcfc
+f8f8f8f8f8f8fffffffcfcfcecececf2f2f2f7f7f7fefefefffffffdfdfdf3f3f3f3f3f3
+edededfffffff9f9f9fdfdfdffffffefefeff5f5f5fefefef5f5f5f6f6f6fbfbfbeaeaea
+e5e5e5f7f7f7fffffffffffff4f4f4fafafaf9f9f9ffffffe7e7e7fafafaffffffffffff
+fcfcfcf9f9f9eeeeeef3f3f3f7f7f7fcfcfcf5f5f5fdfdfdf0f0f0fffffff8f8f8f6f6f6
+fbfbfbf4f4f4fffffffafafafffffff2f2f2f1f1f1fefefef9f9f9fffffffbfbfbfcfcfc
+edededfbfbfbf9f9f9fffffff9f9f9fdfdfdffffffffffffe9e9e9fffffff0f0f0ffffff
+f7f7f7f4f4f4fcfcfcf8f8f8fcfcfcfffffffffffff5f5f5f2f2f2fffffffffffffafafa
+fafafae9e9e9e4e4e4fffffff4f4f4fffffff7f7f7efefefedededffffffedededffffff
+f3f3f3fffffff6f6f6fffffff3f3f3f3f3f3e5e5e5ffffffffffffddddddfffffffdfdfd
+f8f8f8ffffffe4e4e4fffffffffffffffffffffffff1f1f1e9e9e9f5f5f5fffffff1f1f1
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffdfdfdfffffffefefeffffffffffff
+f6f6f6f9f9f9fffffffefefefffffff5f5f5fffffffffffffbfbfbf1f1f1edededfdfdfd
+ffffffeeeeeefffffffffffff5f5f5ffffffffffffffffffffffffffffffedededefefef
+f7f7f7fffffffbfbfbffffffeaeaeafffffffafafaf3f3f3eeeeeefffffffffffffefefe
+fcfcfcfffffff3f3f3efefeffffffffffffff9f9f9fdfdfdfcfcfcdcdcdcf1f1f1ffffff
+f6f6f6fbfbfbf0f0f0fffffffffffff4f4f4f2f2f2fffffffafafaf9f9f9ffffffffffff
+e9e9e9fffffff7f7f7f1f1f1f4f4f4ffffffefefeffcfcfcfffffff8f8f8efefefffffff
+fdfdfdf8f8f8fffffffcfcfcfffffffafafafefefeedededf8f8f8fffffffefefef1f1f1
+fefefeffffffeeeeeefffffffafafafffffffdfdfdfafafaefefeffffffffbfbfbf9f9f9
+fefefee1e1e1f5f5f5fffffffffffffffffffbfbfbdcdcdcfffffffbfbfbfffffff8f8f8
+fffffff9f9f9fdfdfdf0f0f0fffffffefefeefefeffffffffbfbfbfbfbfbfffffff8f8f8
+f8f8f8ffffffefefefeaeaeaedededf9f9f9ffffffebebebfffffff1f1f1ffffffffffff
+f4f4f4f7f7f7fffffffffffff1f1f1f9f9f9fffffffffffff0f0f0fffffffffffff9f9f9
+fcfcfcf4f4f4edededffffffecececffffffffffffefefeffffffff0f0f0fbfbfbffffff
+e0e0e0ffffffffffffe7e7e7ffffffe5e5e5ffffffffffffffffffe1e1e1fffffff9f9f9
+fffffff7f7f7fffffffffffffbfbfbfbfbfbfffffff8f8f8f8f8f8ffffffefefefeaeaea
+edededf9f9f9ffffffebebebfffffff1f1f1fffffffffffff4f4f4f7f7f7ffffffffffff
+f1f1f1f9f9f9fffffffffffff0f0f0fffffffffffff9f9f9fcfcfcf4f4f4edededffffff
+ecececfffffffffffff3f3f3fffffff5f5f5fcfcfcffffffe0e0e0fffffff3f3f3fdfdfd
+fffffffefefeebebebfffffff8f8f8fffffffffffff9f9f9ffffffeaeaeaf0f0f0ffffff
+fdfdfdebebebfafafafffffff4f4f4fafafaffffffedededfffffff6f6f6fffffff2f2f2
+f0f0f0ffffffe7e7e7f1f1f1f6f6f6fffffffffffffbfbfbe8e8e8edededffffffffffff
+fffffff4f4f4f6f6f6f8f8f8fffffffffffffafafafdfdfdf9f9f9eeeeeeffffffffffff
+f6f6f6f6f6f6f7f7f7fffffff6f6f6f9f9f9fffffffffffff3f3f3fbfbfbffffffffffff
+fffffffffffffcfcfceeeeeefcfcfcfffffffffffff9f9f9fffffff9f9f9fcfcfcfdfdfd
+e9e9e9fffffffffffff0f0f0fffffffefefefafafafffffffefefefffffffefefeffffff
+fffffffffffff3f3f3e6e6e6fffffffffffff2f2f2ffffffeaeaeafffffff1f1f1f8f8f8
+ffffffffffffe6e6e6fcfcfcfcfcfcebebebfffffff9f9f9fffffffafafaebebebfdfdfd
+f0f0f0fffffff6f6f6fffffffcfcfcfdfdfdfdfdfdfcfcfcfffffffffffff7f7f7f3f3f3
+fffffffffffffdfdfdffffffe2e2e2fefefefffffffdfdfdfafafaffffffeeeeeeffffff
+fffffff3f3f3f9f9f9fffffffffffffffffffffffffbfbfbf8f8f8fafafafafafaf2f2f2
+f2f2f2ffffffffffffffffffedededffffffedededffffffffffffffffffedededffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000030303fafafafffffffcfcfcfcfcfcfffffff8f8f8f1f1f1
+fffffff6f6f6eeeeeefffffff3f3f3fffffffffffff4f4f4fcfcfcfffffff8f8f8ffffff
+fffffffffffff5f5f5fcfcfcfdfdfdfffffffdfdfdf5f5f5fffffff4f4f4f5f5f5ffffff
+f9f9f9fbfbfbf8f8f8fffffffdfdfdffffffffffffebebebfffffff2f2f2f2f2f2ffffff
+fffffff2f2f2fafafaffffffecececf2f2f2fffffffffffff3f3f3fffffff1f1f1f7f7f7
+fcfcfcf8f8f8fffffff0f0f0fffffffbfbfbf6f6f6f0f0f0fffffffffffffcfcfcffffff
+fffffffcfcfcfffffff4f4f4ffffffedededefefeffffffffcfcfcfffffff1f1f1fefefe
+f5f5f5fdfdfdf6f6f6f0f0f0f9f9f9fefefefffffffbfbfbfcfcfcfbfbfbf0f0f0ffffff
+fefefefcfcfcffffffeaeaeafffffff8f8f8f6f6f6fffffffffffffffffffcfcfcfefefe
+ecececfffffff6f6f6fffffffffffffffffff8f8f8fffffff4f4f4fffffff2f2f2ffffff
+fffffff0f0f0fdfdfdffffffe9e9e9ecececffffffeeeeeefffffff3f3f3f7f7f7fafafa
+ffffffe7e7e7fffffff8f8f8fffffffffffff7f7f7fefefefffffffefefef6f6f6fdfdfd
+fffffffffffff7f7f7edededfffffff8f8f8f1f1f1ffffffffffffedededfbfbfbffffff
+fffffff2f2f2fffffffbfbfbffffffd1d1d1fffffffefefefdfdfdf3f3f3ffffffebebeb
+fffffffdfdfde3e3e3fffffff7f7f7f7f7f7fffffff7f7f7f1f1f1fffffffefefeffffff
+efefeffdfdfdfffffff5f5f5fffffff3f3f3f7f7f7fafafaffffffe7e7e7fffffff8f8f8
+fffffffffffff7f7f7fefefefffffffefefef6f6f6fdfdfdfffffffffffff7f7f7ededed
+fffffff8f8f8f1f1f1ffffffffffffedededfbfbfbfffffffffffff2f2f2fffffffbfbfb
+ffffffd2d2d2fafafafffffff6f6f6f8f8f8ffffffecececfcfcfcf4f4f4f7f7f7f2f2f2
+f4f4f4fcfcfcfbfbfbfffffffbfbfbfffffff2f2f2fffffff0f0f0fffffffafafaf7f7f7
+f6f6f6fffffffbfbfbebebebfefefefffffffefefefcfcfcf7f7f7fffffff8f8f8f8f8f8
+fffffff6f6f6fffffffdfdfdffffffe7e7e7f4f4f4fffffffffffffffffffcfcfcf7f7f7
+f2f2f2fffffffffffffffffff7f7f7f6f6f6f8f8f8fffffff5f5f5fffffffffffffdfdfd
+fcfcfcfffffffffffff8f8f8fefefefffffff6f6f6ecececfffffff7f7f7efefeffdfdfd
+f9f9f9fffffff7f7f7fffffffffffff1f1f1fafafafdfdfdf9f9f9fffffffdfdfdffffff
+ffffffe8e8e8f8f8f8fffffff3f3f3fbfbfbfffffff1f1f1fffffffbfbfbfefefefdfdfd
+fffffff6f6f6ffffffffffffefefeff6f6f6fffffff6f6f6fffffff6f6f6ffffffffffff
+fdfdfdf5f5f5fffffffcfcfcfffffffffffff5f5f5fdfdfdfdfdfdfcfcfcfffffffcfcfc
+fffffff3f3f3fffffff8f8f8fffffffffffff4f4f4ffffffffffffeeeeeef4f4f4ffffff
+eeeeeef6f6f6fffffffefefeffffffeaeaeafffffffffffffcfcfcfffffff9f9f9fbfbfb
+fcfcfcfcfcfcf9f9f9fffffffefefefffffffdfdfdfffffff8f8f8fffffff2f2f2ffffff
+fffffff4f4f4f3f3f3fffffffffffff9f9f9fdfdfdfffffff7f7f7f9f9f9fffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffffffffdfdfdf9f9f9fffffffdfdfd
+fcfcfcfdfdfdfffffff6f6f6fffffff7f7f7fffffffafafafbfbfbfffffffefefefafafa
+fffffff8f8f8fffffffffffff2f2f2f8f8f8ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfdfdfdfffffffffffffefefefafafaf6f6f6f3f3f3fafafaf5f5f5fdfdfdf1f1f1
+fefefef2f2f2fbfbfbf6f6f6fffffffdfdfdfbfbfbfcfcfcfcfcfcfcfcfcfefefeffffff
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffe7e7e7f1f1f1fbfbfbfdfdfd
+fdfdfdfffffffefefefcfcfcffffffd7d7d7fffffffdfdfdf3f3f3f8f8f8fefefeffffff
+fffffff3f3f3f0f0f0fffffffdfdfdfefefefffffff7f7f7fafafafffffffafafafefefe
+f3f3f3fffffffefefef6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+f5f5f5fffffff1f1f1f6f6f6fffffff6f6f6fefefefafafaefefeffffffff3f3f3fdfdfd
+fffffff7f7f7fffffffbfbfbfefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffefefefafafafffffff3f3f3fafafafffffffffffffbfbfbfbfbfb
+fefefef5f5f5eeeeeef6f6f6f8f8f8f9f9f9f9f9f9f7f7f7f4f4f4f4f4f4f8f8f8fdfdfd
+fffffff6f6f6fefefeffffffeaeaeaeaeaeaffffffebebebf8f8f8fefefefdfdfdfcfcfc
+fffffff4f4f4fdfdfdffffffefefeffffffff3f3f3fdfdfdfffffff7f7f7fffffffbfbfb
+fefefefefefefefefefffffffffffffffffffffffffffffffffffffbfbfbfffffffefefe
+fafafafffffff3f3f3fafafafffffffffffffbfbfbfbfbfbfefefef5f5f5eeeeeef6f6f6
+fcfcfcf7f7f7f7f7f7fbfbfbfbfbfbf6f6f6f6f6f6fafafaffffffe9e9e9ffffffffffff
+f6f6f6fffffff7f7f7fffffffffffffffffff7f7f7f9f9f9fffffff8f8f8fffffffbfbfb
+fffffffefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfffffffcfcfcfdfdfdefefef
+fffffffffffff5f5f5fffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffffffffffffffff
+fffffff6f6f6f6f6f6fffffff8f8f8fbfbfbfefefefffffffffffff6f6f6f8f8f8ffffff
+ffffffefefeffffffffafafaf7f7f7fefefef6f6f6fffffffafafaf8f8f8fffffffafafa
+fffffffdfdfdffffffffffffecececfffffffffffff4f4f4f6f6f6fffffffbfbfbffffff
+fefefefefefefbfbfbfffffffcfcfcf5f5f5fdfdfdfffffff3f3f3f7f7f7fffffff6f6f6
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfd
+fffffffffffffefefefdfdfdfffffff4f4f4fffffffdfdfdfffffff3f3f3edededffffff
+fcfcfcfdfdfdfffffffffffffffffffffffffefefefdfdfdedededfffffffffffffafafa
+f2f2f2fffffff5f5f5fffffffcfcfcfefefefcfcfcfefefefffffffcfcfcfffffffdfdfd
+ffffffebebebfffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffffffffffffffdfdfdfdfdfdffffff
+fffffffafafaf8f8f8fffffffffffffffffffffffff7f7f7e8e8e8f9f9f9fffffff4f4f4
+ecececfafafaf0f0f0f1f1f1ffffffffffffedededfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffffffffefefe
+fffffffffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfafafafbfbfbfafafafdfdfd
+fafafafdfdfdfafafafbfbfbf9f9f9f8f8f8f9f9f9fbfbfbfdfdfdfdfdfdffffffffffff
+fffffffffffffffffffffffffdfdfdfafafaf8f8f8f7f7f7f7f7f7fdfdfdfffffffdfdfd
+fbfbfbfbfbfbf9f9f9f5f5f5fffffffefefeefefefffffffe7e7e7fffffffdfdfdefefef
+f6f6f6f3f3f3fffffff7f7f7f1f1f1fffffffffffffffffff8f8f8efefeff4f4f4ffffff
+fffffff9f9f9f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f6f6f6fefefef5f5f5ffffffebebebfffffffffffffafafafafafaffffffefefeffefefe
+fffffff3f3f3fefefef3f3f3ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff5f5f5fcfcfcfafafaf9f9f9fefefefffffffffffffffffffdfdfdffffff
+fffffffcfcfcf6f6f6fffffffdfdfdfefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdffffff
+f1f1f1f7f7f7d3d3d3ffffffffffffffffffe9e9e9fffffffffffffffffff9f9f9f7f7f7
+fffffffffffff0f0f0f6f6f6fafafaffffffefefeffefefefffffff3f3f3fefefef3f3f3
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fcfcfc
+fafafaf9f9f9fefefefffffffffffffffffffdfdfdfffffffffffffcfcfcf6f6f6ffffff
+fffffffdfdfdfcfcfcfffffffffffffbfbfbfbfbfbffffffe0e0e0ffffffe8e8e8fdfdfd
+fcfcfcfdfdfdfffffff5f5f5e8e8e8f7f7f7fbfbfbfcfcfcfcfcfcf9f9f9fefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffeeeeeefffffffffffff4f4f4
+fdfdfdf2f2f2eeeeeefffffffffffffffffffffffffffffffffffffffffffefefefcfcfc
+e3e3e3fffffffafafaeaeaeafafafaffffffe6e6e6fffffff5f5f5fffffffbfbfbffffff
+f4f4f4fffffffdfdfdf8f8f8fffffffffffffffffffafafaedededfafafaffffffffffff
+fcfcfcf8f8f8efefeff9f9f9ffffffffffffebebebfffffffbfbfbfffffff6f6f6ffffff
+f0f0f0f6f6f6fffffffcfcfcfffffffffffff0f0f0fefefef1f1f1ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+ffffffffffffffffffffffffecececfffffffcfcfcf9f9f9fffffff3f3f3fffffffcfcfc
+fffffffffffffffffffffffffffffffffffffefefefefefeffffffeaeaeaefefefffffff
+fffffffffffff9f9f9fdfdfdfcfcfcfffffffffffffffffff9f9f9f9f9f9f9f9f9f3f3f3
+f6f6f6ffffffe3e3e3fcfcfcfffffff8f8f8f0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffefefef1f1f1fcfcfcf6f6f6ffffff
+f9f9f9fafafaf4f4f4fffffff6f6f6fbfbfbf4f4f4fffffffffffffbfbfbfdfdfdffffff
+fffffffefefefffffffffffff3f3f3ffffffebebebfdfdfdfffffffffffffffffffefefe
+fefefefffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffffffffefefefcfcfcfcfcfcfdfdfdfefefefffffff4f4f4fbfbfbf2f2f2ffffff
+f3f3f3fffffff6f6f6fbfbfbfafafafcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfefefefefefefbfbfb
+fcfcfcfffffffffffffafafafffffff6f6f6ffffffebebebffffffeeeeeefafafaffffff
+fffffff6f6f6e8e8e8fafafafffffff9f9f9eeeeeefffffffffffffefefefffffff9f9f9
+f2f2f2fafafafffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffeeeeeefafafafffffff2f2f2fbfbfbfffffff6f6f6ffffffcbcbcbffffffffffff
+e2e2e2fffffffffffff8f8f8fffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfc
+f1f1f1fffffffefefef4f4f4fffffff7f7f7fffffffdfdfdfdfdfdfffffffcfcfcfcfcfc
+fffffffbfbfbf6f6f6fdfdfdfdfdfdfcfcfcfbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfbfbfb
+fdfdfdfefefeffffffe5e5e5dadadaffffffe7e7e7f8f8f8ffffffd9d9d9ffffffeeeeee
+fafafafffffff2f2f2ffffffffffffcbcbcbffffffffffffe2e2e2fffffffffffff8f8f8
+fffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcf1f1f1fffffffefefef4f4f4
+fffffff7f7f7fffffffdfdfdfdfdfdfffffffcfcfcfcfcfcfffffffbfbfbf6f6f6fdfdfd
+fffffffcfcfcfcfcfcfefefefefefefbfbfbfbfbfbfdfdfdffffffd8d8d8fffffffcfcfc
+fffffffcfcfcf3f3f3fffffffffffffefefefafafaf8f8f8f8f8f8fffffffdfdfdffffff
+fdfdfdfefefefffffffffffffffffffffffffefefefefefefffffffcfcfcfdfdfdffffff
+f5f5f5f8f8f8fffffffcfcfcfffffffffffffefefefdfdfdfefefefefefefdfdfdfbfbfb
+fcfcfcebebebfcfcfcfffffff1f1f1fffffffffffffffffffffffff2f2f2ffffffefefef
+ffffffffffffe0e0e0fffffff4f4f4f3f3f3efefeffffffff7f7f7ffffffeaeaeafbfbfb
+fffffffafafafffffff1f1f1f4f4f4fcfcfcf0f0f0fbfbfbfdfdfdf6f6f6ffffffffffff
+fffffff0f0f0ffffffefefeff9f9f9f8f8f8efefeffffffffcfcfcfffffffcfcfcf6f6f6
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffffffffffffffffefefefffffffcfcfce2e2e2fffffff7f7f7fffffff3f3f3f7f7f7
+fffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffebebebffffffe7e7e7
+f6f6f6f5f5f5fffffff6f6f6f5f5f5f0f0f0f5f5f5fafafafafafafffffffefefeffffff
+fbfbfbf5f5f5fffffffffffff9f9f9f3f3f3fffffff6f6f6fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfbfbfbfcfcfcfffffff4f4f4
+fffffff3f3f3fffffff8f8f8f9f9f9fffffff0f0f0fdfdfdfefefef2f2f2edededfdfdfd
+fcfcfce7e7e7fbfbfbfffffff3f3f3f4f4f4fffffffdfdfdfefefefdfdfdfcfcfcfcfcfc
+fcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfd
+f8f8f8fafafafefefefffffffffffffefefefbfbfbf9f9f9f3f3f3f7f7f7f4f4f4fefefe
+f6f6f6fefefef7f7f7f9f9f9fefefefffffffefefefbfbfbfafafafbfbfbfbfbfbf9f9f9
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffcfcfcfdfdfdfbfbfbfafafa
+fefefefffffffffffffcfcfcfafafafdfdfdf4f4f4fbfbfbfffffff4f4f4f8f8f8f3f3f3
+f2f2f2fffffff3f3f3ffffffebebebf7f7f7ffffffffffffeaeaeaebebebfbfbfbf6f6f6
+fbfbfbfffffffefefeeeeeeefcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe
+eaeaeaf5f5f5ffffffdfdfdffffffffafafaeeeeeeffffffdfdfdffffffff5f5f5fafafa
+fffffff3f3f3fffffff7f7f7fbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafafafa
+fdfdfdffffffe9e9e9f0f0f0f5f5f5ffffff000000fffffffcfcfcfffffffcfcfcf9f9f9
+fdfdfdf8f8f8f2f2f2f7f7f7fcfcfcfafafaf9f9f9fafafafefefefefefefbfbfbf8f8f8
+f5f5f5eaeaeaecececffffffefefefe4e4e4fffffffdfdfdeaeaeafffffff3f3f3ffffff
+e2e2e2f2f2f2f2f2f2f2f2f2dfdfdffffffff5f5f5fafafafffffff3f3f3fffffff7f7f7
+fbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafafafafdfdfdffffffe9e9e9f0f0f0
+f5f5f5ffffff000000fffffffcfcfcfffffffcfcfcf9f9f9fdfdfdf8f8f8f2f2f2f7f7f7
+fdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfafafafafafafbfbfbffffffffffffe5e5e5e8e8e8
+fffffff8f8f8fffffff6f6f6e4e4e4ecececfefefefffffff9f9f9fcfcfceeeeeeffffff
+f9f9f9fafafafcfcfcfcfcfcfcfcfcfafafaf8f8f8f7f7f7edededffffffeaeaeaf9f9f9
+fffffffcfcfceaeaeaf9f9f9f9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfdfdfdfcfcfcfbfbfb
+fffffffffffff5f5f5f8f8f8fdfdfdefefefeaeaeaf2f2f2ffffffe8e8e8ffffffe4e4e4
+fffffff7f7f7ebebebe9e9e9ffffffedededfffffff2f2f2fdfdfdf0f0f0f7f7f7ffffff
+f9f9f9edededfefefef6f6f6ecececfafafafffffff8f8f8ffffffffffffe0e0e0fefefe
+eaeaeaf9f9f9fdfdfdfffffff2f2f2fffffff8f8f8f6f6f6ededede0e0e0fffffff6f6f6
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfbfbfb
+fdfdfdfefefefdfdfdfbfbfbffffffecececfffffffffffffffffff7f7f7f6f6f6ffffff
+fcfcfcfbfbfbf9f9f9f8f8f8f9f9f9fafafafbfbfbfcfcfcf4f4f4ffffffe0e0e0ffffff
+f4f4f4fffffffffffffffffffffffffdfdfdf3f3f3fffffffffffffbfbfbe8e8e8f5f5f5
+ffffffeeeeeef3f3f3eeeeeef4f4f4ffffffefefeffafafafbfbfbfbfbfbfcfcfcfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fafafafefefefbfbfbf6f6f6fbfbfbf9f9f9f1f1f1
+fdfdfdfffffffffffffbfbfbfbfbfbefefefffffffefefefe2e2e2ffffffdfdfdfffffff
+f7f7f7fffffff9f9f9f5f5f5ffffffdbdbdbfffffffbfbfbf9f9f9f9f9f9f8f8f8f8f8f8
+f8f8f8f8f8f8f9f9f9f9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+f7f7f7f9f9f9fdfdfdfffffffffffffefefefbfbfbf9f9f9f9f9f9f7f7f7fffffff9f9f9
+fffffffafafafffffffcfcfcfbfbfbfdfdfdfafafaf3f3f3f2f2f2f7f7f7f9f9f9f6f6f6
+fefefefefefefdfdfdfbfbfbf9f9f9f6f6f6f3f3f3f2f2f2fffffffffffffefefefcfcfc
+fefefefffffffbfbfbf4f4f4fffffffafafafbfbfbfbfbfbfafafafafafafffffff0f0f0
+f9f9f9fefefef3f3f3f5f5f5ffffffe2e2e2fffffff0f0f0fffffffbfbfbeaeaeafefefe
+fffffff1f1f1f4f4f4fffffff9f9f9fafafafafafafafafafbfbfbfcfcfcfcfcfcfcfcfc
+fbfbfbfffffff7f7f7f2f2f2eeeeeeffffffd6d6d6fffffffffffff1f1f1f4f4f4fafafa
+fbfbfbf8f8f8f2f2f2f7f7f7f7f7f7f7f7f7f8f8f8f9f9f9fafafafbfbfbfbfbfbfcfcfc
+e4e4e4f1f1f1ffffffe5e5e5f5f5f5ffffff040404f1f1f1fcfcfcfffffffefefefafafa
+fffffffbfbfbf6f6f6f9f9f9fffffffcfcfcfbfbfbfdfdfdfffffffffffffdfdfdfafafa
+fffffffffffffdfdfdf5f5f5f3f3f3fffffff7f7f7fcfcfcffffffe3e3e3ffffffe9e9e9
+f5f5f5fffffff7f7f7fdfdfdfffffff1f1f1f4f4f4fafafafbfbfbf8f8f8f2f2f2f7f7f7
+f7f7f7f7f7f7f8f8f8f9f9f9fafafafbfbfbfbfbfbfcfcfce4e4e4f1f1f1ffffffe5e5e5
+f5f5f5ffffff040404f1f1f1fcfcfcfffffffefefefafafafffffffbfbfbf6f6f6f9f9f9
+fefefefefefefefefefdfdfdfcfcfcfdfdfdfdfdfdfcfcfcf5f5f5fafafaf1f1f1ffffff
+e5e5e5ddddddfffffffbfbfbffffffffffffeaeaeaf5f5f5fbfbfbffffffebebebfafafa
+fafafafafafafafafafafafaf8f8f8f6f6f6f4f4f4f2f2f2fffffff3f3f3fdfdfdffffff
+e5e5e5e9e9e9fffffffefefef9f9f9f7f7f7f7f7f7f8f8f8fafafafcfcfcfbfbfbfafafa
+f0f0f0fffffffafafae8e8e8fafafafffffffffffff5f5f5f7f7f7f9f9f9f6f6f6ffffff
+e3e3e3fdfdfdfffffffefefee6e6e6f6f6f6fcfcfcffffffe4e4e4fffffffdfdfdf8f8f8
+f8f8f8ffffffd5d5d5ffffffffffffeeeeeeecececfdfdfdfffffffafafafefefef8f8f8
+fffffffbfbfbfffffffdfdfddcdcdcfffffffdfdfdf4f4f4ffffffffffffdfdfdffafafa
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfbfbfbfafafafbfbfb
+fcfcfcfdfdfdfcfcfcfafafadcdcdcffffffdadadaffffffe5e5e5ffffffffffffe2e2e2
+f8f8f8f8f8f8f7f7f7f7f7f7f8f8f8fafafafcfcfcfefefefcfcfcfffffff6f6f6eeeeee
+ffffffeeeeeef5f5f5f2f2f2d6d6d6fffffff6f6f6ececece7e7e7f4f4f4f0f0f0ffffff
+eeeeeefffffff7f7f7fbfbfbe3e3e3ffffffecececf4f4f4f7f7f7f8f8f8fafafafcfcfc
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9fcfcfc080808000000070707
+ffffff0202020000001010100a0a0a0d0d0d000000ffffffffffffe8e8e8ffffff000000
+000000040404f8f8f8f2f2f2dcdcdcffffffedededf8f8f8fbfbfbfcfcfcfcfcfcfdfdfd
+fdfdfdfcfcfcfcfcfcfbfbfbfafafafbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfc
+fffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfefefefffffffbfbfbf5f5f5fffffff3f3f3
+fffffff6f6f6fffffffbfbfbf8f8f8fcfcfcfbfbfbf5f5f5f6f6f6fefefefffffffcfcfc
+fafafafafafafafafafafafaf9f9f9f7f7f7f6f6f6f5f5f5f9f9f9fcfcfcfcfcfcfbfbfb
+fdfdfdfffffffefefef9f9f9f2f2f2fcfcfcfefefef4f4f4f3f3f3f2f2f2e8e8e8000000
+ffffffd7d7d7fffffffbfbfb000000141414000000000000d0d0d0ffffffecececf9f9f9
+f9f9f9f2f2f2fafafafdfdfdf8f8f8f9f9f9f9f9f9fafafafafafafbfbfbfcfcfcfcfcfc
+000000000000060606ecececffffffe9e9e9141414080808010101f4f4f4ffffffe3e3e3
+f3f3f3f0f0f0ffffffe9e9e9f7f7f7f7f7f7f9f9f9fafafafcfcfcfdfdfdfefefeffffff
+fffffff1f1f1fffffff0f0f0efefeffefefe101010fbfbfbf4f4f4fdfdfdfafafaf6f6f6
+fcfcfcfdfdfdf8f8f8fbfbfbfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfbfbfbfafafa
+eaeaeadbdbdbfafafafffffff7f7f7fdfdfd000000ffffff0000000707070e0e0eeeeeee
+fefefeffffff000000090909010101f4f4f4ffffffe3e3e3f3f3f3f0f0f0ffffffe9e9e9
+f7f7f7f7f7f7f9f9f9fafafafcfcfcfdfdfdfefefefffffffffffff1f1f1fffffff0f0f0
+efefeffefefe101010fbfbfbf4f4f4fdfdfdfafafaf6f6f6fcfcfcfdfdfdf8f8f8fbfbfb
+fafafafcfcfcfcfcfcf9f9f9f9f9f9fbfbfbfafafaf8f8f8fffffffafafaf2f2f2ffffff
+0101011d1d1d000000000000ddddddffffffe5e5e5ecececfbfbfbffffffefefeff5f5f5
+fdfdfdfcfcfcfbfbfbf9f9f9f8f8f8f6f6f6f5f5f5f5f5f5f9f9f9e0e0e0ffffffe7e7e7
+fffffffafafaffffffd4d4d4fffffffdfdfdfbfbfbfbfbfbfcfcfcfcfcfcfafafaf8f8f8
+fefefeedededf8f8f8fffffff6f6f6ffffffe1e1e1fafafaf4f4f4fbfbfbfffffff0f0f0
+f8f8f8dfdfdffafafa000000ffffff0c0c0c000000131313fffffffbfbfbfbfbfb040404
+040404000000ffffffd0d0d0fffffffcfcfcfdfdfdeaeaeafcfcfcf2f2f2fffffff5f5f5
+d9d9d9fdfdfdfbfbfbf6f6f60f0f0f0404040000000a0a0a010101000000000000fbfbfb
+fafafafafafafafafafafafafafafafafafafafafafafafafefefefdfdfdfcfcfcfcfcfc
+fefefefefefefdfdfdfcfcfcffffffeaeaeaffffffffffffe5e5e5ffffffe6e6e6ffffff
+f9f9f9f9f9f9fafafafafafafbfbfbfdfdfdfefefeffffffddddddfdfdfdfffffff3f3f3
+fafafaffffffececec1111111a1a1ae5e5e5fffffffffffffffffffffffff9f9f9e8e8e8
+f2f2f2f8f8f8f2f2f20b0b0b202020050505fafafafffffff7f7f7f8f8f8fafafafcfcfc
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdf8f8f8fcfcfcf3f3f30f0f0ff9f9f9
+e7e7e7ffffff202020eaeaeaedededfffffff5f5f50e0e0e000000ffffffffffffffffff
+060606f6f6f6fffffff2f2f2ffffffdbdbdbe1e1e1fffffffcfcfcfefefeffffffffffff
+fffffffffffffefefefcfcfcf9f9f9f9f9f9fafafafafafafbfbfbfbfbfbfbfbfbfcfcfc
+fffffffdfdfdfbfbfbfafafaf9f9f9fbfbfbfcfcfcfefefefbfbfbf8f8f8f9f9f9f5f5f5
+f8f8f8f7f7f7fbfbfbfbfbfbf4f4f4fcfcfcfefefefafafafbfbfbfffffffffffffbfbfb
+f6f6f6f8f8f8f9f9f9fbfbfbfdfdfdfefefefefefefefefef6f6f6fafafafbfbfbf9f9f9
+fafafafffffffffffffffffff6f6f6f0f0f0ffffffe8e8e8fefefeffffff000000ffffff
+eaeaeaffffff000000020202fffffff1f1f1fefefeffffff1e1e1eeeeeeee7e7e7fefefe
+f9f9f9ffffffffffffddddddf9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfefefe
+ffffff0000000d0d0deeeeeef2f2f2ffffffdfdfdf141414f0f0f0fcfcfcfffffffefefe
+fffffff9f9f9f1f1f1fdfdfdf8f8f8f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefe
+f9f9f9f6f6f6fffffff1f1f1ffffffeeeeeef4f4f4f9f9f9f1f1f1fbfbfbf8f8f8f3f3f3
+fafafafcfcfcf8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f7f7f7f6f6f6f6f6f6f9f9f9fbfbfb
+fffffffffffff1f1f1f7f7f7f6f6f6000000fffffff1f1f1ececec242424000000f7f7f7
+ffffffefefeff9f9f91a1a1af0f0f0fcfcfcfffffffefefefffffff9f9f9f1f1f1fdfdfd
+f8f8f8f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefef9f9f9f6f6f6fffffff1f1f1
+ffffffeeeeeef4f4f4f9f9f9f1f1f1fbfbfbf8f8f8f3f3f3fafafafcfcfcf8f8f8f9f9f9
+f6f6f6fafafafafafaf6f6f6f5f5f5f9f9f9f8f8f8f4f4f4f0f0f0f4f4f41f1f1f000000
+f8f8f8edededeeeeeeffffff191919e5e5e5fffffffffffff5f5f5f3f3f3efefefffffff
+fdfdfdfbfbfbf9f9f9f8f8f8f8f8f8f8f8f8fafafafbfbfbfcfcfcffffffdadada0f0f0f
+fffffff2f2f2dfdfdffffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfbfbfbf9f9f9
+fcfcfcffffffebebebf1f1f1ffffffe6e6e6202020f6f6f6fffffff9f9f9fffffff5f5f5
+f6f6f6ffffff000000ffffffffffffd3d3d3191919000000f1f1f1fffffff7f7f7fcfcfc
+080808fffffffffffffafafafffffffefefeefefeffffffffefefeffffffd4d4d4f5f5f5
+171717ffffffe4e4e4fffffffbfbfb030303fbfbfbf3f3f3f2f2f2ffffff141414fbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefefcfcfcfbfbfbfcfcfc
+fdfdfdfefefefdfdfdfbfbfbe4e4e4f4f4f4fffffff5f5f5ffffff030303fffffff5f5f5
+fbfbfbfcfcfcfcfcfcfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbffffffebebebf5f5f5ffffff
+e6e6e6f6f6f60c0c0cf6f6f6000000fdfdfdf4f4f4e4e4e4e4e4e4efefefffffffffffff
+ffffffffffff121212e4e4e4eaeaeaf3f3f3040404e5e5e5fbfbfbfbfbfbfcfcfcfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000040404fafafafcfcfcf7f7f7f4f4f4ffffff000000e9e9e9
+fffffff9f9f9000000fffffffffffffafafaefefefffffff0d0d0d080808fbfbfbf8f8f8
+010101fffffffbfbfbf8f8f8fbfbfbfffffffafafaeeeeeef6f6f6f8f8f8fbfbfbfefefe
+fefefefbfbfbf8f8f8f6f6f6f8f8f8f9f9f9f9f9f9fafafafafafafbfbfbfbfbfbfbfbfb
+f6f6f6f8f8f8fbfbfbfdfdfdfcfcfcfafafaf6f6f6f4f4f4fffffffffffff6f6f6ffffff
+f2f2f2fffffffafafaffffffedededf8f8f8fcfcfcf8f8f8f8f8f8fdfdfdf9f9f9eeeeee
+fafafafafafafafafafafafaf9f9f9f8f8f8f7f7f7f6f6f6fffffffffffffffffff9f9f9
+f5f5f5f8f8f8fdfdfdfffffffffffffcfcfcecececf7f7f7fffffff9f9f9040404f3f3f3
+fdfdfd000000000000fafafaffffffffffffecececfdfdfd030303ffffffedededffffff
+f2f2f2f7f7f7fffffff5f5f5fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffff
+ececec0808080303030f0f0fefefefecececffffff060606f8f8f8fffffffffffff8f8f8
+f6f6f6f2f2f2f1f1f1fffffff8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fafafa
+fdfdfdf6f6f6e9e9e9eeeeeefefefee8e8e8fffffffffffff8f8f8fffffffffffff8f8f8
+fdfdfdfffffffafafafafafafcfcfcfefefefefefefbfbfbf8f8f8f8f8f8fdfdfdffffff
+e6e6e6f5f5f5ffffffedededffffff0b0b0be2e2e2fffffff9f9f9000000151515040404
+f7f7f7efefefffffff000000f8f8f8fffffffffffff8f8f8f6f6f6f2f2f2f1f1f1ffffff
+f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fafafafdfdfdf6f6f6e9e9e9eeeeee
+fefefee8e8e8fffffffffffff8f8f8fffffffffffff8f8f8fdfdfdfffffffafafafafafa
+fafafafefefefefefef9f9f9f9f9f9fdfdfdfcfcfcf8f8f8fdfdfd131313000000fafafa
+fffffffdfdfdfdfdfdffffff010101f5f5f5fdfdfdf2f2f2edededffffffffffffffffff
+fafafaf8f8f8f6f6f6f5f5f5f6f6f6f9f9f9fcfcfcffffffe5e5e5f0f0f0fcfcfc000000
+fffffff6f6f6ffffffedededf9f9f9f8f8f8f7f7f7f9f9f9fbfbfbfcfcfcfcfcfcfbfbfb
+e4e4e4fefefef5f5f5fffffff9f9f9ffffff000000fffffffcfcfcf4f4f4f8f8f8ffffff
+fbfbfbefefef0c0c0cf7f7f7f3f3f3ffffff0000000202021c1c1cf6f6f6f9f9f9ffffff
+030303f6f6f6edededf2f2f2fbfbfbfdfdfdf7f7f7f2f2f2fdfdfdf4f4f4fffffffafafa
+000000fefefefffffff0f0f0f9f9f9000000fefefefffffff0f0f0fefefedfdfdff8f8f8
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfafafaf8f8f8f9f9f9
+fbfbfbfbfbfbfafafaf9f9f9fffffffffffffefefefafafaf3f3f3121212f8f8f8ffffff
+fcfcfcfcfcfcfdfdfdfcfcfcfbfbfbf9f9f9f6f6f6f5f5f5f4f4f4fbfbfbe5e5e5ffffff
+fffffffffffffafafafcfcfc000000fffffff0f0f0fbfbfbfffffff1f1f1f6f6f6fdfdfd
+f7f7f7020202f4f4f4fffffffdfdfdffffffefefef111111fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafefefefafafaffffffffffff040404f8f8f8
+ffffffffffff070707f8f8f8f4f4f4f3f3f3f5f5f5f8f8f8f7f7f7222222e4e4e4ffffff
+000000fffffffffffff0f0f0f9f9f9dfdfdfffffffffffff000000060606ffffffebebeb
+ffffffffffff000000060606010101fffffffefefefefefe000000070707111111040404
+0000001b1b1b0101010b0b0b020202151515d8d8d8fffffff1f1f1060606121212000000
+292929e9e9e9edededfffffff2f2f2fefefef1f1f1fffffffbfbfbfcfcfc0d0d0d000000
+000000fffffffcfcfcfbfbfb000000111111ffffff000000000000f1f1f1f8f8f8060606
+0b0b0b151515000000fffffffffffff3f3f3fffffff2f2f2f3f3f3010101fffffff3f3f3
+f0f0f0111111fbfbfbfffffff4f4f4e4e4e4fffffffbfbfbf6f6f6f1f1f1fbfbfbffffff
+0303030707070a0a0afdfdfdefefeffefefeffffff000000000000010101181818f5f5f5
+ececec333333f3f3f30c0c0cf1f1f1fafafaf1f1f1000000fbfbfbfafafaffffff000000
+0909091c1c1cf0f0f0f5f5f5fdfdfd0000000808080a0a0a0000001515150d0d0d000000
+0b0b0b020202030303ffffffe5e5e5090909010101fafafaebebeb1010100303030a0a0a
+0a0a0a060606111111eeeeeefdfdfdffffff070707000000080808020202ffffffececec
+fffffffffffff0f0f0ffffff060606e8e8e8f9f9f9ffffffffffff000000fefefe000000
+fbfbfbffffffd9d9d9090909fbfbfbfafafaffffff0000000909091c1c1cf0f0f0f5f5f5
+fdfdfd0000000808080a0a0a0000001515150d0d0d0000000b0b0b020202030303ffffff
+e5e5e5090909010101fafafaebebeb1010100303030a0a0a0a0a0a060606111111eeeeee
+f5f5f5ffffff080808000000000000181818fffffff4f4f4e9e9e9090909fffffffefefe
+fafafaf6f6f6ffffffffffffe4e4e4fefefefafafaffffff000000131313010101f8f8f8
+fefefef8f8f80000000f0f0f050505090909000000090909fffffff9f9f9050505000000
+1b1b1b000000fdfdfdf3f3f3ffffff0000000505050e0e0effffff010101070707000000
+fafafa060606020202030303e8e8e8060606010101060606090909eeeeeeffffffeeeeee
+f8f8f8020202fafafafcfcfcf0f0f0ffffff000000ffffff040404ffffffecececffffff
+0e0e0ecacacaf5f5f5fffffffefefe000000191919000000f6f6f6fffffff0f0f01c1c1c
+0a0a0a000000131313f8f8f8f1f1f10d0d0dfffffffffffff8f8f8000000fffffffefefe
+0a0a0a0303031010100606060000001414140f0f0f0000000000000e0e0efdfdfdf7f7f7
+090909000000272727000000000000080808fffffff6f6f60000000a0a0a0000000a0a0a
+000000131313070707f1f1f1ffffff010101000000fdfdfde7e7e70d0d0d0e0e0efdfdfd
+f4f4f4fcfcfcfffffff6f6f6010101efefeffdfdfdfdfdfdfefefeefefeffffffffdfdfd
+ffffff000000fefefeedededefefeffffffffcfcfc090909fffffffefefefcfcfcfafafa
+fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafefefefafafafffffff1f1f1010101ffffff
+fcfcfcebebeb000000ffffffe5e5e5fffffffefefee6e6e6ffffff000000ffffffe9e9e9
+131313e0e0e0fffffff5f5f5e9e9e9ffffffecececf3f3f3090909010101efefeff9f9f9
+f8f8f8000000f8f8f8ffffffeaeaea080808f3f3f3e1e1e1ffffff090909e6e6e6fcfcfc
+ffffff070707e8e8e8f1f1f1ffffff000000ffffffe2e2e20c0c0ceaeaeaf3f3f3ffffff
+f2f2f2171717000000ebebebffffffeeeeeee6e6e6e7e7e7fafafa000000f7f7f7ffffff
+ffffff000000f3f3f3f6f6f6ffffff000000101010fffffffdfdfdf3f3f3000000fafafa
+e2e2e2ddddddffffff020202000000fffffff0f0f0eaeaeaffffff060606e3e3e3ffffff
+ffffff000000edededfbfbfbfafafafdfdfdececece6e6e6ffffffeaeaeaffffff0c0c0c
+f9f9f9fcfcfce9e9e9080808fbfbfbffffff040404fefefeffffffeaeaea040404f4f4f4
+ffffff000000fcfcfcfefefe000000fffffffdfdfd1b1b1bf9f9f9ffffff000000212121
+f3f3f3e1e1e10b0b0bfffffffdfdfdf3f3f3111111f5f5f5ffffffffffff000000ffffff
+f4f4f4ffffff000000e2e2e2ffffffe4e4e4131313f0f0f0fffffff4f4f4000000fefefe
+f3f3f3fcfcfc010101fdfdfdf0f0f0000000fcfcfcffffffe3e3e3ffffff000000131313
+e0e0e0ffffffffffffffffff000000ffffffddddddffffffe2e2e2000000ffffffefefef
+0e0e0ee7e7e7f4f4f4181818f9f9f9ffffff000000212121f3f3f3e1e1e10b0b0bffffff
+fdfdfdf3f3f3111111f5f5f5ffffffffffff000000fffffff4f4f4ffffff000000e2e2e2
+ffffffe4e4e4131313f0f0f0fffffff4f4f4000000fefefef3f3f3fcfcfc010101fdfdfd
+f5f5f5000000fbfbfbffffffffffffdcdcdc040404121212fbfbfb000000fafafaf9f9f9
+f8f8f8ffffffe4e4e4efefeffffffff3f3f3fcfcfc0d0d0df8f8f8fdfdfddfdfdf141414
+fdfdfdfdfdfdffffff040404e7e7e7ffffffffffff000000f3f3f3fffffff3f3f3000000
+fafafafcfcfcedededffffff000000ebebebfcfcfcededed000000f2f2f20d0d0d020202
+fffffff8f8f8010101e4e4e4fffffff5f5f50d0d0df2f2f2fafafae6e6e6fbfbfbefefef
+ffffff000000fffffff2f2f2fafafaf2f2f21b1b1beeeeeefafafa000000ffffffebebeb
+010101fffffffffffff3f3f3000000fdfdfde4e4e4fcfcfc111111fffffffefefef3f3f3
+030303ffffffffffffe6e6e6ffffff000000000000070707000000040404fafafaf8f8f8
+f7f7f7000000f7f7f7fffffff6f6f6000000ecececffffffffffff010101ffffffebebeb
+ffffff040404eaeaeaffffffffffff000000010101f4f4f4ffffff090909fffffffafafa
+e9e9e9181818f6f6f6fbfbfbf5f5f5000000fffffff2f2f2ffffff050505000000ffffff
+fffffffffffff5f5f5fefefe1f1f1ff6f6f6edededffffffeaeaeafffffff8f8f8f2f2f2
+e6e6e60b0b0bfffffffffffff1f1f1efefefffffff000000fbfbfbfbfbfbfbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdfafafaf7f7f7ffffff000000fdfdfd
+f1f1f1ffffff0e0e0ef7f7f7fffffff3f3f3f1f1f1fffffffafafa111111ffffffffffff
+040404fdfdfde3e3e3ffffffffffffe6e6e6f8f8f8fefefefffffff8f8f8fffffff6f6f6
+090909fffffff2f2f2e6e6e6fffffffcfcfc030303ffffffdcdcdc090909efefeffefefe
+f7f7f7040404f0f0f0fffffff6f6f60c0c0ce4e4e4ffffff111111f7f7f7fffffffcfcfc
+e6e6e6000000fafafaffffffeaeaeafffffff9f9f9fefefe0d0d0df5f5f5f2f2f2f1f1f1
+f5f5f5ffffff000000fffffff1f1f1050505ffffffebebebe4e4e4ffffff000000eeeeee
+fffffffffffff6f6f6050505ffffffe1e1e1edededffffff000000fdfdfdedededf5f5f5
+f7f7f7080808fbfbfbfcfcfcfdfdfdfefefeffffffffffffe9e9e9f4f4f4000000efefef
+fffffffafafaffffffdfdfdf060606e0e0e0050505070707fffffffffffff4f4f4ffffff
+f5f5f5121212fffffffcfcfc010101000000ffffff000000efefeff5f5f5fcfcfcebebeb
+ffffff121212000000ffffffffffffffffff050505edededfdfdfdffffff111111efefef
+eaeaeaffffff000000f9f9f9fefefef8f8f8000000ffffffe3e3e3fefefe171717ffffff
+f4f4f4e3e3e3282828f0f0f0ffffff000000fafafaeaeaeafffffff0f0f0050505ffffff
+ffffffebebebe9e9e9101010fcfcfce4e4e4fffffff5f5f5ffffff010101ffffffffffff
+080808000000ffffff000000efefeff5f5f5fcfcfcebebebffffff121212000000ffffff
+ffffffffffff050505edededfdfdfdffffff111111efefefeaeaeaffffff000000f9f9f9
+fefefef8f8f8000000ffffffe3e3e3fefefe171717fffffff4f4f4e3e3e3282828f0f0f0
+f8f8f8040404ffffffeaeaeaecececffffff000000ffffffefefef0a0a0afffffff9f9f9
+f8f8f8fcfcfcfffffffffffff0f0f0fbfbfb000000efefeffffffffafafaffffffebebeb
+050505fcfcfcececec090909fffffff0f0f0e4e4e4020202fffffffefefeffffff000000
+fffffff8f8f8ffffff000000fffffffffffffffffff9f9f90f0f0fffffffededed010101
+f1f1f1010101fefefefdfdfdeaeaeaffffff080808e7e7e7eeeeeefffffff2f2f2f9f9f9
+000000fafafaf9f9f9edededf4f4f4ffffff000000edededffffff080808000000ffffff
+000000efefefefefef0b0b0bfffffff8f8f8fffffff7f7f7fefefe000000fcfcfcf2f2f2
+000000fafafafffffffafafaededed161616f5f5f5ffffffffffff030303ffffffefefef
+ffffff0c0c0cffffffe2e2e2ffffff131313fcfcfcf1f1f1ffffff000000fffffffafafa
+ffffff000000fefefef0f0f0ebebebf2f2f2161616f3f3f3ffffff000000fafafaffffff
+ffffff0000000a0a0affffffefefef0a0a0af4f4f4fffffff6f6f6fffffffffffff4f4f4
+f4f4f4f1f1f1f5f5f5fbfbfb000000f2f2f2fffffffefefeecececfffffffffffffcfcfc
+fbfbfb0b0b0beeeeeef4f4f4ffffffeeeeeeffffff131313f7f7f7f9f9f9fbfbfbfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9fdfdfdffffff0d0d0dfdfdfd
+fdfdfdeeeeee000000fcfcfcf5f5f5fffffff5f5f5efefeff9f9f9030303eeeeeeeaeaea
+0b0b0beeeeeeffffffd5d5d5fafafafbfbfbfffffffafafafafafaffffffe6e6e6fafafa
+050505ffffffffffffececece7e7e7ffffff000000fcfcfcffffff141414fffffff0f0f0
+ffffff000000fffffff2f2f2fbfbfb0e0e0efefefeefefefffffff000000060606000000
+000000fcfcfcfffffffcfcfcfcfcfcfffffff7f7f7ffffff000000f7f7f7fffffff1f1f1
+f5f5f5ffffff000000e6e6e6ffffff1f1f1feaeaeafffffffdfdfdf2f2f2ffffff000000
+010101070707000000f8f8f8efefefffffffefefef1d1d1df8f8f8fefefefffffffdfdfd
+fefefe000000f1f1f1fffffff8f8f8f9f9f9eaeaeaf6f6f6fcfcfcffffff000000fbfbfb
+f5f5f5fdfdfdeaeaeaffffff000000ffffffededed020202000000000000fffffffbfbfb
+fcfcfc000000f0f0f0fefefeffffff0d0d0df7f7f7111111f3f3f3f6f6f6ffffff090909
+030303f7f7f7060606f0f0f0f3f3f3fafafa0d0d0dffffffecececf0f0f0222222f1f1f1
+ffffffe0e0e0141414fafafaffffffe6e6e6131313f9f9f9ffffffffffff000000ffffff
+edededffffff000000fefefeffffffffffff0000000202020101010c0c0cf5f5f5f7f7f7
+f2f2f2ffffff111111eaeaeafffffff2f2f2f5f5f5fefefee9e9e9080808fafafad3d3d3
+f3f3f30e0e0efcfcfc030303f3f3f3f6f6f6ffffff090909030303f7f7f7060606f0f0f0
+f3f3f3fafafa0d0d0dffffffecececf0f0f0222222f1f1f1ffffffe0e0e0141414fafafa
+ffffffe6e6e6131313f9f9f9ffffffffffff000000ffffffedededffffff000000fefefe
+ffffffffffff0000000d0d0d010101070707f5f5f5fcfcfcffffff000000efefeffefefe
+f9f9f9ffffffe6e6e6f3f3f3f7f7f7ffffff000000f5f5f5f0f0f0ffffffedededffffff
+000000fefefeffffff030303fffffff9f9f9ffffff0e0e0eecececfbfbfbffffff1b1b1b
+e5e5e5e3e3e3ffffff0505050000000d0d0d0000000a0a0a000000e7e7e7fffffff9f9f9
+000000fffffff7f7f7fffffffdfdfdffffff000000fffffffdfdfdf7f7f7ffffff000000
+f4f4f4ffffffe2e2e2ffffffffffffececec0c0c0cf6f6f6ecececffffff010101f3f3f3
+0a0a0ae2e2e2ffffff000000fefefefffffff3f3f3e7e7e7ebebeb060606ffffffffffff
+000000eaeaeafffffff3f3f3efefef0f0f0fedededefefeffffffffcfcfcfefefeffffff
+f4f4f4000000fffffff9f9f9f0f0f0000000f2f2f2fefefef6f6f6272727f6f6f6f6f6f6
+fcfcfc171717ecececffffffffffffffffff020202f4f4f4f9f9f9010101ffffffefefef
+e5e5e5ffffff000000f1f1f1131313ffffffe5e5e5f3f3f3f5f5f5fffffff7f7f7f3f3f3
+ebebebfffffffffffff7f7f7161616ffffffedededfcfcfcedededf0f0f0fcfcfcf5f5f5
+ffffff000000fffffff6f6f6f2f2f2fffffff7f7f7000000f9f9f9fafafafbfbfbfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303f9f9f9fdfdfdf8f8f8f9f9f9ffffff040404f5f5f5
+ffffffffffff050505fdfdfdffffffecececfefefef6f6f60505050f0f0ffffffff8f8f8
+0a0a0ae6e6e6cacacafffffff2f2f2000000ffffffdededef7f7f7f9f9f9ffffffffffff
+000000f2f2f2f1f1f1ecececffffffffffff030303fafafafefefe000000fffffff6f6f6
+ededed0d0d0df7f7f7fffffff5f5f50e0e0ef8f8f8ffffffe9e9e9151515f0f0f0ffffff
+fcfcfcfffffff1f1f1fcfcfcefefeffdfdfdf2f2f2f8f8f8000000fbfbfbeaeaeae9e9e9
+f3f3f3fafafa0a0a0affffffdcdcdc000000f7f7f7ecececfffffff2f2f2f3f3f3131313
+fffffffdfdfdf9f9f9f9f9f9fffffffefefefefefe070707fafafaefefeff6f6f6f0f0f0
+f6f6f6000000060606fffffffcfcfcfafafafffffffdfdfd000000ffffff000000ffffff
+ffffffeeeeeef5f5f5fefefe000000f7f7f7f3f3f3ffffffffffffececec000000fefefe
+ffffff000000fffffff9f9f9e7e7e7151515000000171717fefefef4f4f4000000f8f8f8
+fdfdfdffffff101010f9f9f9fffffffafafa060606fffffff8f8f8ffffff060606f4f4f4
+efefefffffff0b0b0bececece4e4e4ffffff060606fcfcfcf8f8f8eaeaea141414fdfdfd
+f6f6f6ffffff040404f8f8f8e9e9e9ececec1e1e1ef2f2f2f5f5f5fffffff7f7f7fdfdfd
+f4f4f4ffffff000000fffffff2f2f2fcfcfcebebebffffffffffff050505f9f9f9ffffff
+ffffff070707000000212121fefefef4f4f4000000f8f8f8fdfdfdffffff101010f9f9f9
+fffffffafafa060606fffffff8f8f8ffffff060606f4f4f4efefefffffff0b0b0bececec
+e4e4e4ffffff060606fcfcfcf8f8f8eaeaea141414fdfdfdf6f6f6ffffff040404f8f8f8
+eeeeeee8e8e8242424eaeaeafffffff1f1f1fffffffffffff9f9f9070707000000f7f7f7
+fffffffffffffffffffbfbfb000000ffffff000000fefefefffffff4f4f4fcfcfcf4f4f4
+0e0e0ef7f7f7f3f3f3000000f2f2f2ffffffeeeeee000000fffffff4f4f4e4e4e4000000
+fefefefefefedddddd000000ffffffe0e0e0fffffffffffff4f4f4ffffffefefef131313
+ffffff000000e5e5e5fffffff9f9f9f2f2f2030303f1f1f1e8e8e8f7f7f7e8e8e8000000
+fffffffffffffffffff2f2f2e5e5e5fcfcfc000000fffffff3f3f3f6f6f61a1a1a000000
+000000fffffff3f3f3000000fffffffffffff0f0f0ffffffffffff070707e1e1e1eaeaea
+000000ffffffe8e8e8ffffffffffff020202fbfbfbfdfdfdf3f3f3ffffff000000ffffff
+fefefe0e0e0eeeeeeefffffff3f3f3151515e6e6e6ffffffeeeeee000000ffffffffffff
+f6f6f6000000fcfcfcf8f8f8fffffffefefe000000ffffffe9e9e9000000ffffffffffff
+f8f8f8ffffff000000ffffff000000fffffff6f6f6fffffffffffffefefefffffff9f9f9
+f7f7f7eeeeeee8e8e8fefefe040404ebebebeaeaeafffffff9f9f9fffffff6f6f6ffffff
+fcfcfc000000fffffff3f3f3ffffffdadadaffffff0c0c0cfefefefdfdfdfcfcfcfbfbfb
+fbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fcfcfcf8f8f8ffffffebebeb141414ffffff
+f7f7f7eaeaea121212f4f4f4ffffffffffffffffff0f0f0f000000e7e7e7f5f5f5ffffff
+000000fffffffdfdfde4e4e4f2f2f2000000fdfdfdffffff050505000000f9f9f9f3f3f3
+ffffff121212edededffffffe5e5e5000000f2f2f2ffffffededed0b0b0bebebebffffff
+ffffff050505e0e0e0ffffffededed000000fcfcfcf9f9f9ffffff000000090909060606
+0d0d0d000000fdfdfdffffff0000000b0b0bfafafaf3f3f3ffffff0b0b0bebebebffffff
+ffffff000000eaeaeaffffffffffff0a0a0afffffffafafae1e1e1fffffffcfcfc000000
+000000040404070707060606edededfcfcfc0d0d0dfbfbfbf1f1f1f7f7f7fafafaffffff
+f5f5f5ffffff090909000000f9f9f9f7f7f7f1f1f1eeeeee050505fffffff9f9f9252525
+f0f0f0fcfcfcffffff000000fffffff8f8f8000000fefefef7f7f7ffffff000000ffffff
+ffffff1e1e1ee9e9e9ffffffffffffefefef2a2a2a0a0a0af0f0f0ffffff000000eeeeee
+ffffff000000000000fffffff2f2f2fdfdfd000000f7f7f7f0f0f0ffffff000000ffffff
+ffffffe4e4e4020202fffffffcfcfcfafafa060606eeeeeeffffffffffff080808ececec
+ffffffebebeb000000f9f9f9ffffffececec0000001919190d0d0d000000080808efefef
+ffffff111111f2f2f2fafafaf7f7f7ecececfafafae7e7e7ffffff070707f2f2f2fbfbfb
+ecececf6f6f6333333000000f0f0f0ffffff000000eeeeeeffffff000000000000ffffff
+f2f2f2fdfdfd000000f7f7f7f0f0f0ffffff000000ffffffffffffe4e4e4020202ffffff
+fcfcfcfafafa060606eeeeeeffffffffffff080808ecececffffffebebeb000000f9f9f9
+fffffff1f1f10d0d0d151515000000101010000000edededeeeeeeffffff090909000000
+fafafaf3f3f3f6f6f6f5f5f5121212fffffffafafa262626f5f5f5f8f8f8ffffff000000
+eeeeeefffffff8f8f80e0e0effffffebebebfdfdfd161616f6f6f6eaeaeaffffff000000
+ecececfffffff3f3f3000000161616f8f8f8f0f0f0f0f0f0000000ffffff000000ffffff
+ececec0d0d0d1f1f1ff3f3f3f9f9f9fbfbfb111111f8f8f8fcfcfcfafafa171717ffffff
+ffffffe5e5e5fbfbfbedededffffffffffff000000e9e9e9f5f5f5f9f9f9fafafa000000
+171717fbfbfbf0f0f0fbfbfb000000fafafaf7f7f7fafafa020202fffffffffffffefefe
+000000f8f8f8fffffff8f8f8ffffff000000f7f7f7f9f9f9ffffffdedede323232fafafa
+fcfcfc000000ffffffe7e7e7ffffff090909fffffff9f9f9ffffff0d0d0de8e8e8eeeeee
+ffffff000000ffffffe2e2e2f3f3f3000000ffffffd5d5d5ffffff181818e4e4e4f8f8f8
+ffffffeaeaeaf1f1f1080808ffffffffffffe6e6e6f2f2f2ffffff0000000f0f0ff3f3f3
+ffffffffffffffffffffffff000000fffffffefefedcdcdcfbfbfb000000050505f2f2f2
+f6f6f6ffffff030303f8f8f8e1e1e1ffffff0d0d0df1f1f1fffffffefefefcfcfcfafafa
+fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf7f7f7ececec0c0c0c000000050505
+fcfcfc111111000000141414000000040404000000fcfcfcffffffffffffffffff000000
+0606060000001515150000000b0b0b131313f1f1f1fefefe0000001d1d1de6e6e6eeeeee
+f4f4f4f1f1f1131313000000000000fffffffffffffdfdfd121212000000111111f3f3f3
+000000020202090909f9f9f9181818000000060606f1f1f10a0a0ae9e9e9fffffff7f7f7
+f7f7f7151515000000fafafa010101111111f4f4f4fbfbfbf8f8f8fafafa171717000000
+030303ffffffffffffdcdcdc000000090909030303fdfdfdfafafaeaeaea020202fbfbfb
+ffffffddddddf7f7f7000000060606ffffff000000fffffffffffff6f6f6ffffffe9e9e9
+ffffffdadadafbfbfbf9f9f9000000131313000000020202fdfdfdf9f9f9fdfdfdd5d5d5
+000000000000000000fdfdfdf2f2f2f9f9f90000000e0e0e080808000000ffffffeeeeee
+000000030303000000fffffffefefef3f3f3ffffff000000f8f8f8fbfbfbffffff030303
+060606ffffff040404020202ffffff020202262626050505ffffff0000000c0c0c000000
+f7f7f70d0d0d000000000000e7e7e7020202080808080808ececec0303030000000f0f0f
+fbfbfb0606060e0e0e0e0e0ee8e8e8070707ffffffd5d5d5ffffffffffff050505060606
+fefefe000000f9f9f9ffffffe6e6e6ffffffecececfbfbfb0000000000001e1e1ef7f7f7
+fafafaf7f7f7e7e7e7232323f8f8f8fbfbfbffffff030303060606ffffff040404020202
+ffffff020202262626050505ffffff0000000c0c0c000000f7f7f70d0d0d000000000000
+e7e7e7020202080808080808ececec0303030000000f0f0ffbfbfb0606060e0e0e0e0e0e
+f0f0f0101010f5f5f5e3e3e3ffffffe6e6e60909090c0c0cffffffe5e5e5f8f8f8f8f8f8
+0000000d0d0d000000040404ffffffefefefffffffd8d8d8070707000000040404f5f5f5
+ffffffeeeeee0b0b0b0000000d0d0dffffff090909000000080808f3f3f3efefef010101
+0d0d0d000000fefefeffffff000000080808111111000000ffffff0000001d1d1d000000
+f5f5f5030303000000010101fffffffbfbfb0707070303030c0c0cffffff000000ffffff
+e2e2e2fffffff6f6f6fffffff9f9f9000000000000070707ffffffffffffebebebffffff
+000000fffffffffffff1f1f1ffffff1f1f1f0000000f0f0ffdfdfde0e0e0e7e7e7ffffff
+0101010b0b0b000000fcfcfc0000001111110000000d0d0d060606050505020202f1f1f1
+2020200b0b0b040404ffffff151515030303000000ffffff0000000303030e0e0efefefe
+f1f1f1141414000000191919090909ffffffd9d9d9fffffffbfbfb010101000000151515
+ecececefefefffffff000000fffffffcfcfcfffffffefefef0f0f0191919000000ffffff
+f8f8f8ebebeb1b1b1b000000030303000000ffffffffffffececec171717000000ffffff
+fffffff6f6f6f2f2f20e0e0e131313000000f3f3f3fefefefdfdfdfcfcfcfcfcfcfbfbfb
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf7f7f7fffffffbfbfbfffffff3f3f3
+fffffff7f7f7fffffff3f3f3fffffffefefefffffff8f8f8ffffffe5e5e5e1e1e1ffffff
+fffffffafafafffffff5f5f5ffffffe1e1e1fffffff5f5f5fffffff4f4f4f2f2f2ffffff
+f0f0f0fffffffffffff6f6f6fdfdfde5e5e5fbfbfbfefefed6d6d6fffffff7f7f7f8f8f8
+fefefef8f8f8fdfdfdf9f9f9f5f5f5fcfcfcfbfbfbffffff141414fffffffdfdfdf5f5f5
+f5f5f5fafafa080808f5f5f5fcfcfcf1f1f1ffffffecececf3f3f3fffffff2f2f2ffffff
+f2f2f2ecececfcfcfcfcfcfcf6f6f6fffffff0f0f0fdfdfdfefefefbfbfb0c0c0cf7f7f7
+edededf9f9f9fffffffdfdfd121212000000f5f5f5fefefee7e7e7f9f9f9fbfbfbfdfdfd
+f5f5f5fffffff2f2f2fffffff5f5f5e8e8e8fffffffbfbfbffffffffffffefefefffffff
+fefefefafafaf6f6f6ffffffffffffffffffe9e9e9ffffffe9e9e9fcfcfcfffffff4f4f4
+fafafafffffffcfcfcf4f4f4fffffff6f6f6e2e2e2fffffff7f7f7f3f3f3f9f9f9f9f9f9
+f6f6f6fbfbfbf6f6f6ffffffecececffffffebebebf9f9f9f2f2f2fffffff2f2f2ffffff
+f9f9f9fbfbfbfafafafafafafffffff2f2f2fffffffafafafdfdfdfafafaffffffe8e8e8
+fdfdfdfafafaf4f4f4fefefefefefe000000f7f7f7fffffffcfcfcf7f7f7f5f5f5000000
+0c0c0cfffffff3f3f3f7f7f7f6f6f6ecececfffffff7f7f7f4f4f4fffffff7f7f7f7f7f7
+fffffffffffff2f2f2fafafaf7f7f7f3f3f3f9f9f9f9f9f9f6f6f6fbfbfbf6f6f6ffffff
+ecececffffffebebebf9f9f9f2f2f2fffffff2f2f2fffffff9f9f9fbfbfbfafafafafafa
+fffffff2f2f2fffffffafafafdfdfdfafafaffffffe8e8e8fdfdfdfafafaf4f4f4fefefe
+ffffff000000fffffffcfcfcf9f9f9fffffffbfbfb070707f4f4f4ffffffe4e4e4ffffff
+fdfdfde9e9e9fffffff0f0f0f8f8f8f6f6f6fbfbfbfffffffffffffdfdfdfefefee4e4e4
+fdfdfdf9f9f9f0f0f0ffffffebebebf4f4f4f6f6f6fffffffafafafffffff3f3f3f4f4f4
+f5f5f5fffffffbfbfbf9f9f9fafafafffffff4f4f4ffffffdededeefefeffcfcfcf1f1f1
+f9f9f9fffffffffffff7f7f7fffffffffffff7f7f7fdfdfdf0f0f0000000fffffffcfcfc
+fffffffcfcfcffffffe1e1e1fdfdfdfffffff5f5f5ffffffeaeaeaeeeeeeffffffdddddd
+fffffff7f7f7f2f2f2ffffffecececebebebfffffff8f8f8e6e6e6fffffffcfcfcffffff
+fafafaf5f5f5f6f6f6fdfdfdf2f2f2fffffffafafafafafafffffff1f1f1fffffff8f8f8
+f3f3f3fbfbfbf5f5f5fafafae9e9e9ffffffefefeffffffffdfdfdf7f7f7f8f8f8f5f5f5
+ffffff000000f1f1f1fffffff0f0f0fffffffffffffffffff9f9f9fafafafffffff0f0f0
+fafafaffffffe9e9e9101010f1f1f1fcfcfcefefefffffffffffffe4e4e4fffffff2f2f2
+fbfbfbf8f8f8f3f3f3fffffffdfdfdffffffd5d5d5fafafafcfcfcf7f7f7ffffffe7e7e7
+e3e3e3fbfbfbfffffff0f0f0fffffffffffffffffff2f2f2f8f8f8f9f9f9fbfbfbfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f5f5f5fafafaf6f6f6f7f7f7
+fffffffffffff8f8f8fafafafefefefffffffafafaf9f9f9fffffffffffff9f9f9fcfcfc
+edededf5f5f5fefefefffffffdfdfdf9f9f9f8f8f8f8f8f8fdfdfdfdfdfdfcfcfcfbfbfb
+f8f8f8f6f6f6f4f4f4f2f2f2fdfdfdfcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcfdfdfd
+fdfdfdfcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcfdfdfd000000fbfbfbf6f6f6f9f9f9
+ffffff000000fffffff9f9f9fafafafbfbfbfcfcfcfdfdfdfcfcfcf9f9f9f7f7f7f5f5f5
+fdfdfdfcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcfdfdfdf0f0f0f5f5f5020202fbfbfb
+ffffffe9e9e9ffffff000000fefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfefefeffffff
+f9f9f9f8f8f8f7f7f7f8f8f8fbfbfbfcfcfcfcfcfcfbfbfbfdfdfdfbfbfbf9f9f9f9f9f9
+fbfbfbfcfcfcfbfbfbfafafafffffffdfdfdf9f9f9fafafafdfdfdfffffffffffffdfdfd
+fafafafafafafbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfafafafcfcfcfcfcfcfbfbfbfafafa
+fafafafafafafbfbfbfbfbfbfffffffcfcfcf9f9f9f7f7f7f7f7f7f9f9f9fcfcfcffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcffffffffffffffffffffffff
+fdfdfdf9f9f9fbfbfbfffffff1f1f1000000fffffff7f7f7f7f7f7ffffff010101f4f4f4
+fdfdfdfefefefefefefffffffffffffffffffefefefefefefdfdfdf9f9f9f4f4f4f3f3f3
+f5f5f5f9f9f9fcfcfcfefefefcfcfcfcfcfcfbfbfbfafafafafafafafafafbfbfbfbfbfb
+fffffffcfcfcf9f9f9f7f7f7f7f7f7f9f9f9fcfcfcfffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfcfcfcfcfcfcfffffffffffffffffffffffffdfdfdf9f9f9fbfbfbffffff
+f3f3f3070707f5f5f5f9f9f9fbfbfbf8f8f80c0c0cf9f9f9fefefefffffffffffffbfbfb
+fbfbfbfffffffffffffefefefdfdfdfbfbfbf8f8f8f7f7f7f9f9f9fafafafafafafafafa
+fafafafafafaf9f9f9f9f9f9fafafafcfcfcfefefefffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf6f6f6f7f7f7f7f7f7f8f8f8f9f9f9fafafafbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffffffffcfcfcf8f8f8
+f7f7f7f7f7f7f9f9f9fafafaf4f4f4f9f9f9f5f5f5f4f4f4fafafaf8f8f8f4f4f4fafafa
+fafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefef7f7f7fafafafdfdfdfefefe
+fcfcfcfbfbfbfafafafafafaf8f8f8f6f6f6f5f5f5f8f8f8fcfcfcfefefefefefefcfcfc
+fcfcfcf6f6f6f1f1f1f6f6f6fffffffffffffffffff8f8f8f4f4f4f6f6f6fcfcfceaeaea
+ffffff000000e9e9e9fffffff7f7f7f8f8f8fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfd
+000000ffffff000000fffffffffffffcfcfcf7f7f7fffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfcfcfcfdfdfdfbfbfbfdfdfdfffffffefefef9f9f9fbfbfbffffff
+fefefef2f2f2f9f9f9f5f5f5fffffff7f7f7fdfdfdf9f9f9fbfbfbfefefefdfdfdf8f8f8
+f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f9f9f9fcfcfcf6f6f6f5f5f5
+fffffffefefefafafafefefefafafafefefef8f8f8f7f7f7fffffffffffffafafafdfdfd
+f5f5f5fafafafffffffffffffbfbfbf9f9f9fafafafcfcfcfdfdfdfdfdfdfdfdfdfcfcfc
+fafafaf8f8f8f6f6f6f5f5f5fefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+fefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefeffffff000000040404000000
+000000fffffffffffffffffff9f9f9fafafafbfbfbfbfbfbfafafaf8f8f8f6f6f6f4f4f4
+fefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefefffffffffffff6f6f6020202
+080808171717000000fffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fbfbfbfafafafafafafafafafcfcfcfcfcfcfafafaf8f8f8fdfdfdfbfbfbf9f9f9fafafa
+fbfbfbfcfcfcfcfcfcfbfbfbfdfdfdfbfbfbf9f9f9f9f9f9fafafafcfcfcfcfcfcfcfcfc
+fdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfdfdfdfcfcfcfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfcfcfcfffffffdfdfdfbfbfbf9f9f9f9f9f9fbfbfbfdfdfdffffff
+fbfbfbfcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffbfbfbf9f9f9fafafafbfbfb
+f8f8f8f4f4f4f6f6f6fbfbfbfffffffcfcfc0000000f0f0f0f0f0f000000fefefeffffff
+fafafafafafafbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfafafafefefefcfcfcfafafafafafa
+fcfcfcfcfcfcfcfcfcfbfbfbfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfc
+fffffffdfdfdfbfbfbf9f9f9f9f9f9fbfbfbfdfdfdfffffffbfbfbfcfcfcfcfcfcfdfdfd
+fefefefffffffffffffffffffbfbfbf9f9f9fafafafbfbfbf8f8f8f4f4f4f6f6f6fbfbfb
+f5f5f5f4f4f40909090a0a0a0b0b0b0b0b0bf7f7f7f9f9f9f7f7f7fbfbfbfcfcfcf9f9f9
+f9f9f9fcfcfcfbfbfbf7f7f7fffffffefefefbfbfbfbfbfbfcfcfcfefefefefefefdfdfd
+f8f8f8f8f8f8f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf8f8f8f8f8f8f9f9f9f9f9f9fafafafbfbfbfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffcfcfcfbfbfb
+fafafafbfbfbfcfcfcfdfdfdf8f8f8fefefefafafaf8f8f8fefefefcfcfcf8f8f8fefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfcfcfc
+fafafafafafafcfcfcfdfdfdfffffffffffffcfcfcfcfcfcfdfdfdfdfdfdfafafaf8f8f8
+fffffffcfcfcf6f6f6f5f5f5f6f6f6f5f5f5efefefe9e9e9fbfbfbffffffffffffededed
+000000161616000000f9f9f9f8f8f8f9f9f9fbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+151515000000edededfcfcfcedededfdfdfdfcfcfcf3f3f3fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf6f6f6f5f5f5f9f9f9fdfdfdfcfcfcf7f7f7f8f8f8fefefe
+fafafaf8f8f8f8f8f8fefefefbfbfbfafafaf8f8f8fefefefbfbfbfefefefdfdfdf9f9f9
+f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fbfbfbfefefef7f7f7f5f5f5
+fdfdfdfefefefbfbfbfffffff7f7f7fbfbfbf7f7f7f6f6f6fffffffffffffafafaffffff
+fdfdfdfffffffffffffdfdfdfafafaf9f9f9fcfcfcfffffffdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfbfbfbfafafaf9f9f9fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefeffffff
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefffffff7f7f7edededfffffff8f8f8
+fffffffbfbfbf7f7f7f6f6f6fbfbfbfbfbfbfcfcfcfdfdfdfcfcfcfafafaf8f8f8f7f7f7
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefffffffffffff3f3f3ffffffeaeaea
+f6f6f6e6e6e6f7f7f7fffffffefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfcfcfcf9f9f9f6f6f6fdfdfdfbfbfbfafafafafafa
+fbfbfbfdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfafafafafafafbfbfbfdfdfd
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfcfcfcfdfdfdfefefefefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefefefe
+f9f9f9fafafafcfcfcfefefefefefefefefefefefefdfdfdfdfdfdfbfbfbfbfbfbfdfdfd
+fbfbfbf8f8f8f9f9f9fefefeedededfffffffafafaebebebebebebfbfbfbffffffefefef
+fdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfdfdfdfdfdfdfefefeffffff
+fffffffefefefafafaf6f6f6fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefe
+fefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefefefef9f9f9fafafafcfcfcfefefe
+fefefefefefefefefefdfdfdfdfdfdfbfbfbfbfbfbfdfdfdfbfbfbf8f8f8f9f9f9fefefe
+fffffff5f5f5f5f5f5f6f6f6f6f6f6f6f6f6f5f5f5fffffff6f6f6fbfbfbfefefefdfdfd
+fdfdfdfefefefbfbfbf6f6f6fefefefbfbfbf9f9f9f9f9f9fafafafcfcfcfcfcfcfcfcfc
+f9f9f9f9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfafafafafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefdfdfdfdfdfd
+fdfdfdfefefefefefefefefefafafafffffffcfcfcfafafafffffffefefefbfbfbffffff
+fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfefefefefefefdfdfdfbfbfb
+fafafafafafafdfdfdfffffffdfdfdfbfbfbfbfbfbfcfcfcfefefefffffffffffffefefe
+fffffffefefefbfbfbfafafaf9f9f9f8f8f8f6f6f6f3f3f3fcfcfcfefefee1e1e1ffffff
+ffffffefefeffffffffbfbfbfafafafbfbfbfcfcfcfdfdfdfefefefefefefefefefefefe
+f5f5f5fcfcfcffffffebebebfffffff4f4f4ebebebfffffffcfcfcfcfcfcfcfcfcfdfdfd
+fefefefffffffffffffffffff7f7f7f8f8f8fbfbfbfffffffffffffbfbfbfcfcfcffffff
+f7f7f7fefefef7f7f7fffffff3f3f3fdfdfdf6f6f6fffffffbfbfbfdfdfdfcfcfcfafafa
+fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fbfbfbfffffffafafaf7f7f7
+fefefefdfdfdfbfbfbfffffff7f7f7fdfdfdf9f9f9f8f8f8fffffffefefefafafaffffff
+fdfdfdfefefefefefefdfdfdfbfbfbfbfbfbfffffffffffffdfdfdfdfdfdfefefefefefe
+fefefefefefefdfdfdfdfdfdfffffffffffffefefefefefefefefefefefeffffffffffff
+fffffffffffffefefefefefefefefefefefefffffffffffffffffff4f4f4fffffffefefe
+fcfcfcefefeffffffff7f7f7fffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fffffffffffffefefefefefefefefefefefefffffffffffff4f4f4ffffffecececffffff
+ffffffffffffedededf6f6f6fefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfefefefffffffdfdfdfafafaf7f7f7fdfdfdfbfbfbfafafafafafa
+fcfcfcfdfdfdfdfdfdfcfcfcfdfdfdfffffffffffffffffffcfcfcfbfbfbfdfdfdffffff
+fafafafafafafbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfafafafdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfdfdfdfefefefffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fdfdfdfefefefffffffffffffefefefbfbfbf7f7f7f5f5f5fffffffdfdfdfdfdfdffffff
+fffffffdfdfdfefefefffffffbfbfbf3f3f3f9f9f9fffffffffffff9f9f9f3f3f3fbfbfb
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfafafafafafafcfcfcfefefe
+fffffffdfdfdf9f9f9f5f5f5fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fefefefefefefffffffffffffffffffffffffefefefefefefdfdfdfefefeffffffffffff
+fefefefbfbfbf7f7f7f5f5f5fffffffdfdfdfdfdfdfffffffffffffdfdfdfefefeffffff
+fffffffffffff3f3f3fffffffffffff1f1f1fffffffefefef9f9f9fdfdfdfffffffdfdfd
+fdfdfdfffffffdfdfdf9f9f9fcfcfcfafafaf8f8f8f7f7f7f9f9f9fbfbfbfcfcfcfbfbfb
+fcfcfcfdfdfdfffffffffffffffffffffffffffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffefefefcfcfcfbfbfbf8f8f8fefefefafafaf8f8f8fffffffdfdfdf9f9f9ffffff
+fbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfffffffffffffffffffdfdfd
+fcfcfcfcfcfcfefefefffffff8f8f8f8f8f8f9f9f9fafafafcfcfcfefefeffffffffffff
+fbfbfbfcfcfcfefefefffffffffffffffffffffffffffffffffffffbfbfbfffffff0f0f0
+f0f0f0f8f8f8f8f8f8fffffffdfdfdfdfdfdfefefefffffffffffffffffffefefefefefe
+fdfdfdeaeaeaf7f7f7fdfdfdebebebfffffff6f6f6fffffffefefefefefefefefeffffff
+fffffffffffffffffffffffffefefefdfdfdfefefefffffffefefefefefefefefeffffff
+f9f9f9fefefef9f9f9fffffff6f6f6fcfcfcf9f9f9fffffffcfcfcfcfcfcfcfcfcfbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f8f8f8fffffffcfcfcfbfbfb
+fffffffdfdfdf9f9f9fefefefafafafffffffdfdfdfafafafffffffdfdfdf9f9f9ffffff
+f8f8f8fafafafcfcfcfdfdfdfdfdfdfefefefffffffffffffdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff2f2f2fffffff5f5f5fdfdfd
+ffffffffffffebebebf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffdfdfdf8f8f8
+f7f7f7f4f4f4fffffffefefefefefefefefefefefefefefefdfdfdfcfcfcfcfcfcfbfbfb
+fcfcfcfbfbfbfbfbfbfdfdfdfefefefefefefcfcfcfafafafdfdfdfbfbfbfafafafafafa
+fcfcfcfefefefefefefdfdfdfdfdfdfffffffffffffffffffdfdfdfbfbfbfdfdfdffffff
+f7f7f7f8f8f8fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfc
+fdfdfdfefefefffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffdfdfdf9f9f9f5f5f5f2f2f2fcfcfcf9f9f9f8f8f8fbfbfb
+fdfdfdfbfbfbfcfcfcfffffffffffff5f5f5fffffffbfbfbfbfbfbfffffff4f4f4ffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafaf9f9f9fafafaf9f9f9fafafafbfbfb
+fdfdfdfefefefcfcfcfafafafdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fdfdfdf9f9f9f5f5f5f2f2f2fcfcfcf9f9f9f8f8f8fbfbfbfdfdfdfbfbfbfcfcfcffffff
+f4f4f4fffffffffffffdfdfdfcfcfcfffffffffffff0f0f0f9f9f9fbfbfbfbfbfbf8f8f8
+f8f8f8fbfbfbfbfbfbf9f9f9fffffffdfdfdfbfbfbfbfbfbfdfdfdffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fefefefcfcfcf9f9f9f7f7f7f8f8f8fdfdfdf9f9f9f7f7f7fefefefcfcfcf8f8f8fefefe
+f8f8f8f9f9f9fafafafbfbfbfdfdfdfefefefffffffffffffdfdfdffffffffffffffffff
+fffffffdfdfdfcfcfcfdfdfdfefefefefefefefefefcfcfcfafafaf8f8f8f7f7f7f7f7f7
+fcfcfcfdfdfdfefefefdfdfdfbfbfbf9f9f9fafafafcfcfcfcfcfcfffffffffffffcfcfc
+fffffffafafafffffff7f7f7fefefefefefefffffffffffffffffffefefefefefefdfdfd
+f3f3f3fffffff3f3f3f5f5f5fdfdfde5e5e5fefefefffffffefefefefefefefefefdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfffffffffffffcfcfcf9f9f9f8f8f8fbfbfbfcfcfcfdfdfd
+fffffff9f9f9fdfdfdf4f4f4fffffff9f9f9fefefef9f9f9fcfcfcfbfbfbfbfbfbfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f6f6f6fefefefdfdfdfcfcfc
+fffffffcfcfcf7f7f7fcfcfcfbfbfbfffffffffffffbfbfbfffffffcfcfcf9f9f9ffffff
+f5f5f5f7f7f7fafafafdfdfdfffffffffffffffffffffffffdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4ffffffe8e8e8
+f9f9f9f4f4f4fcfcfcfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeeeeeefffffffafafa
+fffffff6f6f6f8f8f8fefefefefefefefefefefefefefefefefefefcfcfcfbfbfbfafafa
+fdfdfdfbfbfbfafafafafafafcfcfcfdfdfdfcfcfcfbfbfbfdfdfdfbfbfbfafafafbfbfb
+fdfdfdfffffffffffffefefefcfcfcfefefefffffffefefefcfcfcfbfbfbfafafafbfbfb
+f9f9f9fafafafcfcfcfdfdfdfffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbf9f9f9f7f7f7fbfbfbf7f7f7f6f6f6fafafa
+fcfcfcfbfbfbfcfcfcfefefefffffffffffffffffff9f9f9f8f8f8fffffffdfdfdfefefe
+fefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfafafafcfcfcfbfbfbfafafafbfbfb
+fefefefffffffffffffefefefbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfbfbfbf9f9f9f7f7f7fbfbfbf7f7f7f6f6f6fafafafcfcfcfbfbfbfcfcfcfefefe
+fffffff3f3f3fffffff9f9f9f8f8f8fffffff1f1f1fffffffbfbfbfdfdfdfcfcfcf8f8f8
+f8f8f8fcfcfcfdfdfdfbfbfbfefefefcfcfcfafafafafafafdfdfdffffffffffffffffff
+fdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfbfbfbf8f8f8f7f7f7f9f9f9fffffffbfbfbf9f9f9fffffffdfdfdf9f9f9ffffff
+f7f7f7f8f8f8f9f9f9fbfbfbfdfdfdfffffffffffffffffffcfcfcffffffffffffffffff
+fffffffdfdfdfbfbfbfbfbfbfdfdfdfefefefefefefdfdfdfbfbfbfafafafafafafbfbfb
+fbfbfbfcfcfcfdfdfdfcfcfcfafafafafafafafafafbfbfbfdfdfdf9f9f9eaeaeaf8f8f8
+f0f0f0fffffff9f9f9fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfc
+fafafaebebebfafafafffffffdfdfdffffffe9e9e9edededfcfcfcfcfcfcfbfbfbfafafa
+fafafaf9f9f9f8f8f8f8f8f8fffffffffffffdfdfdf8f8f8f9f9f9fefefefffffffcfcfc
+fffffff8f8f8fefefeeeeeeefffffff7f7f7fffffff5f5f5fcfcfcfafafafbfbfbfefefe
+fffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f7f7f7fefefefcfcfcf9f9f9
+fdfdfdf9f9f9f6f6f6fefefef8f8f8fffffffdfdfdfafafafefefefbfbfbf9f9f9ffffff
+f8f8f8f9f9f9fafafafcfcfcfefefefffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffe4e4e4ffffff
+ffffffffffffffffffe8e8e8fefefefefefefefefefdfdfdfefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5ffffffeaeaeaffffff
+fbfbfbefefeffffffffbfbfbfefefefefefefffffffffffffefefefcfcfcfbfbfbf9f9f9
+fffffffdfdfdf9f9f9f8f8f8f9f9f9fafafafafafafafafafdfdfdfbfbfbfafafafbfbfb
+fdfdfdfffffffffffffffffffffffffefefefdfdfdfefefefefefefdfdfdfbfbfbf8f8f8
+fdfdfdfdfdfdfefefefefefefefefefdfdfdfdfdfdfcfcfcfafafafafafafafafafafafa
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfefefef8f8f8f7f7f7fcfcfc
+fffffffffffffffffffffffff4f4f4ffffffebebebffffffffffffe9e9e9fffffff2f2f2
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafcfcfc
+fdfdfdfefefefcfcfcfafafafafafafafafafafafafafafafbfbfbfcfcfcfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fdfdfdfdfdfdfcfcfcfcfcfcfefefef8f8f8f7f7f7fcfcfcffffffffffffffffffffffff
+f3f3f3fffffffcfcfcf2f2f2f1f1f1fcfcfcfffffff1f1f1fbfbfbfefefefefefefbfbfb
+fbfbfbfefefefefefefbfbfbfbfbfbf9f9f9f7f7f7f8f8f8fafafafdfdfdfefefefefefe
+fefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfbfbfbfafafaf9f9f9fffffffbfbfbf9f9f9fffffffefefefafafaffffff
+f8f8f8f9f9f9fafafafbfbfbfdfdfdfefefefffffffffffffefefeffffffffffffffffff
+fdfdfdfbfbfbfbfbfbfcfcfcf6f6f6f9f9f9fbfbfbfbfbfbfafafafbfbfbfdfdfdffffff
+fbfbfbfbfbfbfbfbfbfcfcfcfefefefffffffffffffffffff9f9f9fcfcfcffffffffffff
+fffffff2f2f2f5f5f5efefeffffffffffffffffffffffffffefefefcfcfcfbfbfbfafafa
+ffffffedededffffffecececf9f9f9eaeaeaf5f5f5fffffffbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafcfcfcfefefefdfdfdfbfbfbfefefefffffffffffffbfbfb
+fbfbfbfcfcfcfbfbfbf3f3f3f6f6f6f8f8f8fbfbfbf7f7f7fcfcfcf9f9f9fafafaffffff
+fffffffcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f8f8f8fffffffbfbfbf6f6f6
+f9f9f9f7f7f7f6f6f6fffffff4f4f4fcfcfcfbfbfbf9f9f9fdfdfdfbfbfbf9f9f9ffffff
+fdfdfdfcfcfcfafafafbfbfbfdfdfdfefefefffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffffffffffffffffffffefefef8f8f8fdfdfdfffffffcfcfc
+fffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefefffffffdfdfdfffffffdfdfd
+fffffff5f5f5fffffffcfcfcfefefefefefefffffffffffffefefefcfcfcfafafaf9f9f9
+fffffffffffffafafaf7f7f7f6f6f6f7f7f7f8f8f8f8f8f8fdfdfdfbfbfbfafafafbfbfb
+fdfdfdfffffffffffffffffffffffffffffffefefefffffffffffffffffffdfdfdf9f9f9
+fdfdfdfdfdfdfdfdfdfcfcfcfbfbfbf9f9f9f8f8f8f7f7f7f9f9f9f9f9f9f9f9f9fafafa
+fbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfcfcfcf7f7f7f5f5f5fafafa
+fffffffffffffffffffffffffffffffffffffffffffbfbfbfafafafefefefcfcfcffffff
+fdfdfdfefefefefefefdfdfdfcfcfcfbfbfbf9f9f9f9f9f9f9f9f9f9f9f9fafafafbfbfb
+fcfcfcfafafaf6f6f6f3f3f3f9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefe
+fffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcf7f7f7f5f5f5fafafaffffffffffffffffffffffff
+fcfcfcfcfcfcefefefffffffffffffefefeffcfcfcfdfdfdf3f3f3f8f8f8fafafaf9f9f9
+f9f9f9fafafaf8f8f8f3f3f3fffffffdfdfdfbfbfbfbfbfbfefefeffffffffffffffffff
+fffffffffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fdfdfdfafafaf8f8f8fefefefcfcfcf8f8f8fefefe
+fafafafbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffcfcfc
+fafafaf9f9f9fbfbfbfefefefafafafbfbfbfcfcfcfafafaf6f6f6f3f3f3f4f4f4f6f6f6
+fffffffdfdfdfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbf8f8f8ffffffffffffebebebfdfdfd
+eeeeeefffffffbfbfbfffffffffffffffffffffffffefefefdfdfdfcfcfcfafafaf9f9f9
+fdfdfdfefefef1f1f1fffffffbfbfbfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfefefe
+fefefefffffffffffffffffff0f0f0f5f5f5f8f8f8f8f8f8fcfcfcfffffffefefef5f5f5
+f6f6f6fffffff8f8f8fcfcfcebebebfbfbfbf6f6f6fafafafcfcfcf9f9f9fafafaffffff
+fffffffcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9f2f2f2fdfdfdfffffff0f0f0
+fffffffcfcfcfffffffefefef1f1f1fffffffffffff6f6f6fbfbfbfffffff9f9f9fefefe
+fcfcfcf3f3f3e7e7e7ffffffedededfbfbfbfffffffffffffafafafffffffefefef6f6f6
+fffffffffffff3f3f3fffffffbfbfbfdfdfdfefefeefefeffffffff8f8f8ffffffffffff
+ffffffe8e8e8fffffffffffff8f8f8f1f1f1ffffffeeeeeefffffffcfcfcffffffe8e8e8
+fafafafffffff6f6f6fffffffdfdfdf5f5f5fafafafffffff8f8f8fffffff9f9f9ffffff
+f0f0f0fffffffdfdfdf6f6f6fffffffdfdfdfafafafdfdfdfffffffcfcfcffffffffffff
+f7f7f7f9f9f9fffffff7f7f7f6f6f6fffffff4f4f4fdfdfdfffffffffffffefefef6f6f6
+efefeffdfdfdf3f3f3f8f8f8ffffffeaeaeae7e7e7ffffffe6e6e6ffffffeaeaeafcfcfc
+fffffffcfcfcfffffff6f6f6f2f2f2fefefefffffff5f5f5ffffffffffffe6e6e6ffffff
+f4f4f4fefefefcfcfcf4f4f4fffffffefefef9f9f9fdfdfdf1f1f1fcfcfcf5f5f5eaeaea
+fffffffffffff1f1f1fffffffffffff2f2f2fffffffffffffffffffbfbfbf3f3f3ffffff
+fffffff1f1f1ffffffffffffecececffffff020202fbfbfbf4f4f4e4e4e4fafafaffffff
+fdfdfdfbfbfbfdfdfdfcfcfcfffffff1f1f1f2f2f2f2f2f2fffffff7f7f7fcfcfcfefefe
+fafafafffffff4f4f4fffffffefefef4f4f4f8f8f8fbfbfbfcfcfcfffffff7f7f7f1f1f1
+e2e2e2fffffff5f5f5fdfdfdf1f1f1fcfcfcf5f5f5eaeaeafffffffffffff1f1f1ffffff
+fffffff2f2f2fffffffffffffffffffbfbfbf3f3f3fffffffffffff1f1f1ffffffffffff
+ecececffffff020202fbfbfbf4f4f4e4e4e4fafafafffffffdfdfdfbfbfbfdfdfdfcfcfc
+fffffff7f7f7f6f6f6fffffffffffff5f5f5fefefefcfcfcf8f8f8fdfdfdffffffe3e3e3
+ffffffececece6e6e6fffffff1f1f1f5f5f5fffffff7f7f7f9f9f9ffffffffffffffffff
+fffffffafafafffffffafafafbfbfbfffffff0f0f0fffffff4f4f4fffffff7f7f7fbfbfb
+fffffffffffff1f1f1f8f8f8fffffffdfdfdfffffffbfbfbfffffff4f4f4fffffff9f9f9
+fbfbfbffffffefefeffcfcfcfffffff4f4f4fffffffcfcfcfffffffefefef1f1f1ffffff
+fbfbfbfffffff6f6f6fdfdfdecececfffffff6f6f6fafafafffffffdfdfdf7f7f7ffffff
+f4f4f4fffffff3f3f3fffffffffffffbfbfbfffffff3f3f3fffffff6f6f6fffffff7f7f7
+f9f9f9fffffffdfdfdfcfcfcfffffff8f8f8fffffffffffffbfbfbfbfbfbfffffff2f2f2
+fffffff9f9f9fffffff8f8f8eaeaeafffffffdfdfdfffffffffffff8f8f8fcfcfcffffff
+fffffffafafafffffffffffffffffff2f2f2f5f5f5fffffffffffff7f7f7fffffffbfbfb
+f7f7f7ddddddfcfcfcffffff0000000b0b0be1e1e1fbfbfbfffffffffffffafafae7e7e7
+fffffffbfbfbe8e8e8ffffffffffffebebebfffffffffffff5f5f5ffffffeaeaeaffffff
+ffffffe9e9e9fafafafffffff9f9f9f5f5f5f3f3f3fffffffffffffefefefcfcfcfdfdfd
+fefefefffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fafafaf8f8f8fcfcfcf7f7f7
+fafafafdfdfdfffffff7f7f7ffffffffffffdcdcdcffffffe2e2e2d6d6d6ffffffffffff
+fffffffffffff8f8f8fffffffefefeedededf5f5f5f9f9f9fffffff6f6f6fffffffefefe
+f9f9f9f7f7f7eeeeeefffffffffffff7f7f7f5f5f5fffffffffffff3f3f3fffffff4f4f4
+fdfdfdfffffffafafae2e2e2fffffffffffff8f8f8fffffffafafae9e9e9f3f3f3ffffff
+fffffff5f5f5fffffff4f4f4f1f1f1ffffffffffffe2e2e2f4f4f4f0f0f0f6f6f6fdfdfd
+fffffffefefefffffff3f3f3fdfdfdfdfdfdf6f6f6fffffff1f1f1ffffffe7e7e7ffffff
+f5f5f5ffffffe6e6e6ffffffffffffe7e7e7fffffff2f2f2e6e6e6ffffffd9d9d9ffffff
+fffffff4f4f4fffffffdfdfde4e4e4fdfdfdffffffe1e1e1ffffffeaeaeaf7f7f7ffffff
+e9e9e9fffffff5f5f5fffffffdfdfdfffffff4f4f4f3f3f3ffffffffffffeeeeeeffffff
+fffffff0f0f0ffffffffffffebebebf2f2f2eaeaeafefefefffffff8f8f8f6f6f6f8f8f8
+fefefef4f4f4fffffff9f9f9fafafafdfdfdfafafaedededf8f8f8f5f5f5ffffffffffff
+f1f1f1fffffff4f4f4f5f5f5fffffff7f7f7030303fefefefcfcfcf1f1f1ffffffededed
+fdfdfdfffffffffffffbfbfbf6f6f6ffffffffffffffffffeaeaeafffffff4f4f4ffffff
+f6f6f6fffffff2f2f2f5f5f5fdfdfdfffffff2f2f2f6f6f6fefefec7c7c7ffffffffffff
+fbfbfbf7f7f7e1e1e1fffffffffffff8f8f8f6f6f6f8f8f8fefefef4f4f4fffffff9f9f9
+fafafafdfdfdfafafaedededf8f8f8f5f5f5fffffffffffff1f1f1fffffff4f4f4f5f5f5
+fffffff7f7f7030303fefefefcfcfcf1f1f1ffffffedededfdfdfdfffffffffffffbfbfb
+fbfbfbffffffffffffeaeaeaffffffffffffe2e2e2fffffffffffff4f4f4f8f8f8ffffff
+dededeffffffffffffe5e5e5fffffff2f2f2f8f8f8ffffffe9e9e9f2f2f2ffffffffffff
+fffffff6f6f6ffffffededede5e5e5fffffff8f8f8ffffffffffffdcdcdcfffffff5f5f5
+fffffff9f9f9fffffff6f6f6eaeaeafffffffffffff5f5f5f3f3f3fafafaf9f9f9fdfdfd
+fefefefffffffffffff7f7f7fffffffffffffbfbfbfffffff9f9f9fffffffefefef3f3f3
+ffffffecececf8f8f8fffffffbfbfbf5f5f5f2f2f2f5f5f5fdfdfdfffffffffffffcfcfc
+fefefefffffff5f5f5fffffff3f3f3f9f9f9f3f3f3fcfcfcfffffff1f1f1ffffffffffff
+fafafaf3f3f3f6f6f6f1f1f1dbdbdbfffffffffffff1f1f1fdfdfdfefefee9e9e9fefefe
+f1f1f1fffffffcfcfcfdfdfdfffffff3f3f3eeeeeefbfbfbfefefefffffffcfcfcf7f7f7
+fdfdfdfffffffffffffcfcfcf0f0f0fffffffffffffffffff4f4f4eaeaeaf9f9f9ffffff
+fffffff6f6f6f8f8f8fdfdfdffffff0d0d0df3f3f3fafafaefefeff6f6f6fffffff8f8f8
+fcfcfcf4f4f4ffffffe8e8e8ecececfffffff1f1f1eeeeeef5f5f5fffffffbfbfbf0f0f0
+eaeaeafffffff5f5f5d2d2d2fffffffdfdfdf7f7f7f4f4f4fcfcfcfafafaf9f9f9fafafa
+fcfcfcfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303fafafafefefefafafaf3f3f3121212121212000000
+f7f7f70505050505050202020b0b0b000000030303f4f4f4ffffffffffffeaeaea030303
+070707000000fffffff7f7f7e9e9e9fffffffffffff3f3f3fbfbfbfbfbfbeaeaeaffffff
+f5f5f5fffffffffffffbfbfbfbfbfbf1f1f1ffffffeeeeeefbfbfbf3f3f3ffffffeeeeee
+efefeffefefeeeeeeefffffffdfdfdf8f8f8ebebebfffffffffffffffffffdfdfdefefef
+fefefefafafafffffff9f9f9f1f1f1ffffffe3e3e3fafafaffffffffffffffffffffffff
+f4f4f4f9f9f9fefefefffffffcfcfce7e7e7ffffffe7e7e7fffffffffffff4f4f4f7f7f7
+ffffffe6e6e6fffffff7f7f7fcfcfcffffffe4e4e4fffffffcfcfcf8f8f8fcfcfc0d0d0d
+e1e1e1f3f3f3eeeeeeffffff121212010101101010000000e7e7e7fbfbfbfffffff8f8f8
+fcfcfcfefefeffffffedededffffffecececf2f2f2ffffffededede1e1e1fffffff0f0f0
+0000000a0a0a0b0b0be8e8e8f0f0f0ffffff060606080808000000edededfffffffafafa
+f9f9f9f6f6f6f7f7f7f5f5f5f4f4f4fffffff4f4f4fffffffffffff7f7f7f5f5f5f1f1f1
+fffffffafafaf8f8f8fffffff7f7f7ededed000000fafafaffffffdfdfdfffffffffffff
+dededefafafaf1f1f1fffffff5f5f5fdfdfdfefefee6e6e6ffffffffffffe7e7e7fcfcfc
+fffffff2f2f2fefefef6f6f6f8f8f8ffffff080808ffffff0e0e0e191919000000ffffff
+fcfcfcfcfcfc0e0e0e101010000000edededfffffffafafaf9f9f9f6f6f6f7f7f7f5f5f5
+f4f4f4fffffff4f4f4fffffffffffff7f7f7f5f5f5f1f1f1fffffffafafaf8f8f8ffffff
+f7f7f7ededed000000fafafaffffffdfdfdfffffffffffffdededefafafaf1f1f1ffffff
+fbfbfbfbfbfbf4f4f4f6f6f6f5f5f5f5f5f5fafafaecececffffffffffffeaeaeafafafa
+0f0f0f0000000f0f0f000000e8e8e8fbfbfbfffffff6f6f6f7f7f7fffffffefefefcfcfc
+fefefedededefdfdfdffffffffffffe4e4e4fafafafffffff8f8f8fdfdfdebebebffffff
+fffffffbfbfbe4e4e4fffffffffffffffffff7f7f7f2f2f2fffffff9f9f9edededffffff
+f6f6f6f3f3f3f7f7f7ffffffecececfdfdfdfffffff2f2f2f3f3f3fffffff7f7f7ffffff
+f0f0f0ffffffefefef070707fcfcfc040404020202131313ffffffd2d2d2f4f4f4121212
+000000080808f0f0f0fdfdfdffffffecececfffffffffffffffffff7f7f7fbfbfbffffff
+ebebebf8f8f8fdfdfdfefefe0808081616160000000b0b0b090909000000070707f7f7f7
+fcfcfcefefeff1f1f1edededfafafaf8f8f8fffffffefefefefefefafafae1e1e1ffffff
+edededfffffff4f4f4fafafafffffff3f3f3f3f3f3f2f2f2e6e6e6ffffffcececeffffff
+f3f3f3fafafafbfbfbf1f1f1fafafa040404e6e6e6fffffffafafaf9f9f9f2f2f2ffffff
+e9e9e9ffffffffffff0c0c0c1b1b1beaeaeafcfcfcfffffffafafaebebebfffffffdfdfd
+fefefef1f1f1f8f8f80b0b0b0000000a0a0af4f4f4fffffffafafaf9f9f9f8f8f8f9f9f9
+fbfbfbfdfdfdfefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbffffffebebeb000000ffffff
+fafafafafafa0b0b0bfdfdfdfdfdfdfbfbfbf8f8f8000000050505e7e7e7fdfdfde8e8e8
+050505fffffff8f8f8fdfdfdfcfcfcdfdfdfe4e4e4f9f9f9fffffff4f4f4e9e9e9fdfdfd
+fffffff5f5f5f6f6f6fffffffbfbfbffffffedededfefefefafafafdfdfdf2f2f2f8f8f8
+ffffffeaeaeaffffffecececfafafaf0f0f0fffffffefefeefefefeeeeeefafafaf6f6f6
+ffffffefefeff1f1f1fffffffdfdfdfbfbfbfffffff2f2f2e9e9e9f8f8f8fafafaf8f8f8
+fefefef5f5f5f9f9f9fffffff2f2f2fffffffdfdfdfdfdfdf8f8f8fcfcfcfcfcfcffffff
+efefeffcfcfcfffffff0f0f0fffffff4f4f4fffffff5f5f5fffffffcfcfc000000f6f6f6
+ffffffffffff0e0e0e0a0a0aecececffffffd3d3d3ffffff0b0b0bf8f8f8ecececffffff
+edededefefeffbfbfbf6f6f6fdfdfdffffffd6d6d6fffffffffffffefefeeeeeeef6f6f6
+f8f8f8020202111111f4f4f4ffffffd5d5d5ffffff000000ffffffecececf2f2f2f5f5f5
+f5f5f5fffffff3f3f3fffffffcfcfcf9f9f9fcfcfcf5f5f5fffffffcfcfcffffffeeeeee
+e8e8e8ffffffe0e0e0eaeaeaf4f4f4ffffffe6e6e6fffffffffffff7f7f7f5f5f5eaeaea
+ffffffffffffe1e1e1ffffffffffffe1e1e1fffffffffffff7f7f7efefeffffffff5f5f5
+e6e6e6ffffffe7e7e7ffffffffffff000000f5f5f5edededf9f9f9020202101010ffffff
+f4f4f4e8e8e8ffffff000000ffffffecececf2f2f2f5f5f5f5f5f5fffffff3f3f3ffffff
+fcfcfcf9f9f9fcfcfcf5f5f5fffffffcfcfcffffffeeeeeee8e8e8ffffffe0e0e0eaeaea
+f4f4f4ffffffe6e6e6fffffffffffff7f7f7f5f5f5eaeaeaffffffffffffe1e1e1ffffff
+ffffffe1e1e1ffffffffffffe8e8e8fefefefbfbfbfffffff1f1f1fcfcfc0808080a0a0a
+ffffffffffffe4e4e4ffffff0f0f0ff9f9f9f4f4f4ffffffe6e6e6ffffffe9e9e9ffffff
+fffffffcfcfcf2f2f2fcfcfcfafafaefefefffffffd8d8d8ffffffe1e1e1ffffff000000
+fffffffdfdfdfffffff4f4f4ffffffedededf5f5f5f2f2f2f8f8f8fdfdfdfcfcfcf6f6f6
+fffffffbfbfbfffffff2f2f2ffffffffffff000000fffffffffffff1f1f1e9e9e9fdfdfd
+fbfbfbfafafa030303fcfcfcfffffffbfbfb000000040404f9f9f9fcfcfcfffffff5f5f5
+000000ecececfffffffffffff4f4f4f6f6f6f0f0f0fffffffdfdfdfcfcfcefefeffafafa
+121212fcfcfcf1f1f1fffffffafafa000000fcfcfcf5f5f5fefefeffffff020202ffffff
+fffffff2f2f2fffffffbfbfbfafafaeeeeeee6e6e6fefefefbfbfbffffffffffffeeeeee
+fbfbfbf6f6f6fffffff9f9f9dfdfdffffffffffffffafafaffffffe9e9e9fffffff7f7f7
+fafafafffffffafafafffffff5f5f50a0a0afdfdfdeaeaeafffffffdfdfdfbfbfbffffff
+fcfcfcededed040404eeeeee000000f9f9f9fafafafbfbfbfefefef3f3f3ffffffffffff
+f3f3f3f6f6f61e1e1ef2f2f2fffffff9f9f9000000f8f8f8fbfbfbfafafaf9f9f9fafafa
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf1f1f1ffffff020202ededed
+fafafaffffff000000f6f6f6fbfbfbf3f3f3ffffffffffff000000090909ffffffffffff
+000000fffffff7f7f7fffffff7f7f7fffffff4f4f4fffffff1f1f1ffffffffffffdbdbdb
+e7e7e7fffffff7f7f7f7f7f7f9f9f9f3f3f3fffffffdfdfdeeeeeefffffff6f6f6f7f7f7
+ffffffe2e2e2fffffffbfbfbffffffffffffdbdbdbfffffff6f6f6fffffffafafaf9f9f9
+efefeffffffffdfdfdfffffff6f6f6fffffffcfcfcfffffffafafafffffff2f2f2ffffff
+fffffffafafafffffff1f1f1f3f3f3fbfbfbecececf4f4f4fffffffefefeedededeaeaea
+ffffffffffffe6e6e6fffffff6f6f6f8f8f8ecececfefefefdfdfdffffff000000f7f7f7
+f2f2f2000000040404e6e6e6fffffffffffff5f5f5eaeaea1e1e1edcdcdcfefefee1e1e1
+fffffffffffffcfcfcf3f3f3ffffffe2e2e2ffffffededede0e0e0ffffffe4e4e4ffffff
+ffffff000000090909000000ffffffffffffd9d9d9111111dededefffffff3f3f3f6f6f6
+fefefee6e6e6fbfbfbe5e5e5ffffffe2e2e2fffffff2f2f2e2e2e2fbfbfbfffffffefefe
+fffffffbfbfbffffffdededefffffff6f6f6fffffff4f4f4ecececffffffffffffffffff
+e8e8e8fafafaffffffedededf7f7f7ffffffeeeeeefffffff2f2f2fffffff0f0f0eaeaea
+fffffff0f0f0fffffff6f6f6ffffff0b0b0bfffffff2f2f2fcfcfc030303060606000000
+fffffffffffffefefe000000dededefffffff3f3f3f6f6f6fefefee6e6e6fbfbfbe5e5e5
+ffffffe2e2e2fffffff2f2f2e2e2e2fbfbfbfffffffefefefffffffbfbfbffffffdedede
+fffffff6f6f6fffffff4f4f4ecececffffffffffffffffffe8e8e8fafafaffffffededed
+f5f5f5ffffffdadadaedededfffffff0f0f0f8f8f8dcdcdcffffff151515000000e3e3e3
+eaeaeafffffff6f6f6e1e1e11f1f1ffdfdfdf3f3f3ebebebfffffffdfdfdfcfcfcf2f2f2
+fffffff4f4f4ffffffefefeff8f8f8fffffffefefefffffff2f2f2fffffff9f9f9060606
+ffffffe1e1e1fffffff8f8f8fffffff4f4f4ffffffecececedededfbfbfbffffffeeeeee
+ebebebf8f8f8ffffffffffffedededefefef2c2c2ce6e6e6fafafafbfbfbffffffffffff
+fffffff7f7f7121212edededfafafaefefef1616160d0d0d0f0f0fefefefeeeeeeffffff
+050505fdfdfdf6f6f6e5e5e5e5e5e5fffffff6f6f6fffffffefefeecececffffffffffff
+000000fffffff8f8f8efefefffffff000000efefeffefefef7f7f7fdfdfdedededd9d9d9
+f4f4f4f0f0f0f6f6f6fefefef6f6f6fffffffdfdfdeeeeeefcfcfcf7f7f7f2f2f2ffffff
+f4f4f4fafafaf8f8f8ffffffffffffedededebebebfffffff0f0f0fdfdfdffffffffffff
+f5f5f5ffffffe5e5e5fcfcfcf5f5f5000000fffffff4f4f4f3f3f3fffffffbfbfbd2d2d2
+fffffffffffffefefeffffff191919fffffff9f9f9edededfcfcfcfffffff5f5f5f8f8f8
+ffffff000000e9e9e9dededef9f9f9f6f6f6ffffff000000fbfbfbfafafaf9f9f9fbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdffffffeeeeee000000ffffff
+fffffff4f4f4050505ffffffe8e8e8ffffffe3e3e3fdfdfdffffff000000fffffff4f4f4
+111111e8e8e8ffffffe6e6e6fcfcfce8e8e8f2f2f2ffffff0000000d0d0de4e4e4ffffff
+f1f1f1ececec181818070707000000fffffffbfbfbfafafa0c0c0c161616070707000000
+090909161616000000050505000000000000ffffffecececfdfdfd0000000909090b0b0b
+000000f6f6f6f4f4f4f4f4f4fffffffcfcfce4e4e4ffffffefefefececec1f1f1f000000
+000000efefeffcfcfcffffff060606060606fefefe141414030303f0f0f0ffffff090909
+0000000f0f0f222222ebebebe8e8e8fffffff8f8f8f7f7f7ededed0e0e0eebebebffffff
+ffffff070707f5f5f5ffffffececece7e7e7ffffffffffffe0e0e0ebebebfffffff3f3f3
+1c1c1c000000000000ffffffffffffffffffebebeb0404040f0f0f070707060606f7f7f7
+e0e0e0141414f6f6f6020202fffffff1f1f1f3f3f30d0d0de4e4e4fffffff4f4f40c0c0c
+010101151515ffffffefefefffffff0f0f0f000000000000111111050505040404000000
+0000000f0f0f000000ffffffededed030303000000f3f3f3ffffff000000111111000000
+050505000000000000fffffff3f3f3ffffff0000000606060f0f0f000000fefefeffffff
+fafafae9e9e9f1f1f1ffffff000000fffffffdfdfdfffffffbfbfb171717ffffff000000
+fefefef2f2f2f7f7f7101010e4e4e4fffffff4f4f40c0c0c010101151515ffffffefefef
+ffffff0f0f0f0000000000001111110505050404040000000000000f0f0f000000ffffff
+ededed030303000000f3f3f3ffffff000000111111000000050505000000000000ffffff
+fffffff1f1f1000000070707000000000000ffffffffffffededed060606f5f5f5ffffff
+f3f3f3f7f7f7ffffffffffffdededef8f8f8fffffff8f8f8212121000000000000ffffff
+f8f8f8f5f5f50e0e0e0606060000000000000d0d0d000000ddddddf8f8f8000000171717
+000000000000fbfbfbfefefef4f4f4000000080808000000ffffff070707000000292929
+f0f0f0070707030303040404f1f1f1050505000000000000050505f7f7f7f6f6f6d0d0d0
+e1e1e1050505f8f8f8f6f6f6fafafaffffff000000ffffff000000fefefefffffff6f6f6
+000000f6f6f6ffffffffffffffffff000000000000111111fffffffafafaf9f9f9010101
+0505051a1a1a000000f2f2f2ebebeb121212fffffff5f5f5f8f8f80a0a0affffffffffff
+fffffffbfbfb000000060606151515edededefefefffffff000000020202fafafaf4f4f4
+0000000a0a0afffffff4f4f4000000000000070707121212000000111111fdfdfdfafafa
+fffffff8f8f8030303080808070707010101ecececf7f7f7f6f6f6020202010101ffffff
+f5f5f5e6e6e6f5f5f5ececec000000f9f9f9fffffffffffff9f9f9f9f9f9edededffffff
+f8f8f8000000ffffffffffffedededffffffededed000000fbfbfbfafafaf9f9f9fafafa
+fdfdfdfffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefefffffffcfcfc040404f3f3f3
+f6f6f6fcfcfc030303e8e8e8fffffff8f8f8ffffffe2e2e2ffffff000000fbfbfbeaeaea
+000000fefefefefefefffffffcfcfcf9f9f9ebebebffffff0000000a0a0afafafaf3f3f3
+eeeeee0c0c0cecececfffffff4f4f4101010f4f4f4f8f8f8f2f2f2000000fafafaffffff
+f3f3f3000000ffffffffffffffffff000000f4f4f4f7f7f7000000ffffffddddddf5f5f5
+ffffff000000171717f7f7f7ffffffe2e2e2f9f9f9f4f4f4ffffff101010eaeaeaffffff
+efefef161616f2f2f2f4f4f4fafafa040404101010e2e2e2fafafaffffff060606ffffff
+fffffff2f2f2f7f7f7000000080808f8f8f8ffffffecececffffff000000fbfbfbefefef
+f8f8f8000000eeeeeef8f8f8f1f1f1ffffffdededeefefefffffffedededfafafa0b0b0b
+eaeaeafdfdfdffffff000000ebebebe3e3e3010101fffffffcfcfcf3f3f3000000fefefe
+ffffff000000fcfcfcfdfdfd000000ecececffffff030303ffffffe1e1e1141414000000
+f8f8f8ffffff040404ffffffe8e8e8f2f2f21c1c1cf4f4f4f3f3f3f6f6f6000000ffffff
+fffffffbfbfb050505f2f2f2e7e7e7f7f7f7181818ffffffe6e6e6ffffff000000fefefe
+ffffffffffff020202fdfdfdffffff000000fffffff4f4f4f6f6f6ffffff000000000000
+f2f2f2fffffffffffffbfbfb0d0d0df9f9f9f4f4f4f4f4f4f9f9f9000000f1f1f1ffffff
+000000f1f1f1ffffff000000ffffffe1e1e1141414000000f8f8f8ffffff040404ffffff
+e8e8e8f2f2f21c1c1cf4f4f4f3f3f3f6f6f6000000fffffffffffffbfbfb050505f2f2f2
+e7e7e7f7f7f7181818ffffffe6e6e6ffffff000000fefefeffffffffffff020202fdfdfd
+f0f0f0121212fefefefffffff6f6f6ffffff000000101010ffffff000000ffffffe7e7e7
+f2f2f2ffffffe0e0e0ebebebffffffdbdbdbffffff080808e9e9e9ffffffffffff000000
+efefefffffffffffff000000fffffffffffff2f2f21b1b1bfffffffefefef7f7f7000000
+edededfffffff0f0f0f8f8f8000000ffffffe3e3e3ffffff000000e6e6e6181818000000
+e3e3e3fdfdfd050505e9e9e9fffffff9f9f9050505ffffffeeeeeef9f9f9e0e0e0ffffff
+ffffff020202ecececf9f9f9fafafaf8f8f8020202ffffffeaeaea010101ffffffe7e7e7
+030303fafafaf0f0f0f5f5f5000000f3f3f3ffffffe8e8e8010101f8f8f8fffffff4f4f4
+020202eaeaeafffffffffffffefefe0000000202020000000d0d0d0d0d0decececfefefe
+ffffff000000fffffff7f7f7f2f2f2010101ffffffe2e2e2fcfcfc0f0f0ffefefef6f6f6
+ffffff000000e9e9e9fffffffbfbfb0c0c0cebebebf1f1f1ffffff000000eeeeeefafafa
+f2f2f2000000ffffffedededfafafa242424d9d9d9ffffffffffff0000000c0c0cf3f3f3
+ffffffffffffe7e7e7ffffff121212fefefeefefeffefefef5f5f5fefefefefefefcfcfc
+fafafa000000ffffffedededf8f8f8fcfcfcfefefe050505fefefefcfcfcfbfbfbfbfbfb
+fdfdfdfffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefeebebebffffff020202f4f4f4
+fffffffefefe000000fffffff2f2f2fefefefcfcfcfbfbfbffffff0d0d0de0e0e0ffffff
+090909fbfbfbfbfbfbeaeaeafdfdfdfffffffdfdfdf5f5f5fffffff8f8f8ffffffffffff
+0d0d0dfefefefffffffafafafffffff2f2f2000000fffffff8f8f80b0b0bfffffff6f6f6
+f7f7f7090909f9f9f9edededfdfdfd040404fffffff8f8f80d0d0decececfdfdfdfefefe
+fafafa000000fffffff7f7f7f2f2f2fffffffffffffefefe000000fcfcfcf8f8f8ffffff
+fbfbfbf9f9f9000000fffffff2f2f2000000fffffff6f6f6efefefececec0d0d0dfcfcfc
+f8f8f8fffffff5f5f5101010f9f9f9d9d9d9f6f6f6ffffff000000fffffff5f5f5fcfcfc
+fafafa0d0d0dfffffffbfbfbfafafafafafafffffffcfcfcedededffffff000000f5f5f5
+fffffffffffff8f8f8ffffff0c0c0cffffff010101000000fffffffffffffffffff1f1f1
+dedede101010e4e4e4fcfcfc060606080808f6f6f6040404fbfbfbf6f6f6ffffffffffff
+ffffff010101000000f9f9f9fcfcfcf9f9f9151515eaeaeaffffffffffff0a0a0aebebeb
+f3f3f3fafafa040404f9f9f9eeeeeeffffff000000fafafae7e7e7ffffff030303ffffff
+f6f6f6f4f4f40d0d0df3f3f3ffffff101010f5f5f5fcfcfcf5f5f5ffffff040404ffffff
+f6f6f6fefefef5f5f5000000fffffffdfdfdfefefefffffffdfdfd0f0f0fffffffeaeaea
+070707080808fdfdfd060606fbfbfbf6f6f6ffffffffffffffffff010101000000f9f9f9
+fcfcfcf9f9f9151515eaeaeaffffffffffff0a0a0aebebebf3f3f3fafafa040404f9f9f9
+eeeeeeffffff000000fafafae7e7e7ffffff030303fffffff6f6f6f4f4f40d0d0df3f3f3
+ffffff020202fffffffbfbfbf7f7f7ffffff0c0c0cfffffff1f1f1000000ffffffffffff
+f3f3f3fffffff3f3f3ffffffebebebffffff000000fbfbfbffffffe4e4e4ffffffe5e5e5
+010101fcfcfcffffff090909efefefe8e8e8fefefe000000f9f9f9fcfcfcffffff070707
+ffffffefefeffefefe020202ffffffd4d4d4fefefeefefef080808fffffffdfdfd060606
+ffffff000000ffffffffffffd8d8d8ffffff0d0d0defefeffffffffffffff1f1f1e6e6e6
+000000f3f3f3fcfcfcfffffffffffff7f7f7141414edededffffff090909000000ffffff
+000000f5f5f5ffffff000000fffffff4f4f4e8e8e8fdfdfdf4f4f4161616e3e3e3ffffff
+010101fffffffefefef8f8f8fcfcfc0c0c0ceaeaeaffffffe6e6e6070707ffffffdbdbdb
+0b0b0bfefefef1f1f1f9f9f9f9f9f9ffffff000000fffffff1f1f1000000fafafafcfcfc
+f8f8f8070707fdfdfdf9f9f9f2f2f2020202f4f4f4fffffff5f5f5000000fffffffbfbfb
+090909f7f7f7ffffffe4e4e4ffffff0b0b0bf0f0f0ffffffebebebfffffff6f6f6f5f5f5
+f9f9f9f7f7f7fbfbfbffffff020202f9f9f9e6e6e6ffffffedededf0f0f0ffffffefefef
+ffffff0b0b0bfefefeeeeeeefffffff9f9f9ffffff020202fffffffffffffefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefefdfdfdf7f7f7010101f8f8f8
+fafafaffffff0a0a0aeeeeeefffffff6f6f6efefeffcfcfcffffff000000ffffffe4e4e4
+050505fffffff2f2f2edededffffffdadadafffffff6f6f6f9f9f9fffffffffffff8f8f8
+090909f7f7f7fbfbfbf2f2f2ecececffffff000000fffffff2f2f20c0c0ce5e5e5f9f9f9
+fafafa161616fafafafffffffbfbfb0b0b0becececf6f6f6f7f7f7020202070707050505
+000000fffffff5f5f5fffffffcfcfcecececfcfcfcf6f6f6080808f8f8f8ffffffe5e5e5
+e8e8e8fafafa000000ffffffe6e6e6101010f6f6f6fdfdfdfbfbfbeeeeeefdfdfd0b0b0b
+030303010101000000f6f6f6fcfcfcfffffff7f7f7000000fffffff5f5f5f7f7f7ffffff
+f0f0f0000000fffffff7f7f7efefeffffffffffffffffffff1f1f1f5f5f50e0e0ee9e9e9
+f5f5f5fffffffefefedcdcdc020202efefefffffff010101000000090909ecececf5f5f5
+f7f7f7171717f4f4f4f9f9f9f8f8f8111111f2f2f2030303ecececfffffff7f7f7000000
+070707fdfdfd030303ffffffffffffececec000000fffffffffffffdfdfd0a0a0af9f9f9
+fbfbfbeaeaea050505f5f5f5fafafaf5f5f5101010f4f4f4fefefeeeeeee070707f3f3f3
+f8f8f8f5f5f5111111f4f4f4fcfcfcdadada090909070707000000000000fffffff5f5f5
+e2e2e2ffffff030303eaeaeafffffff9f9f9ffffffebebebf7f7f7000000ffffffdcdcdc
+ffffff000000ffffff000000ecececfffffff7f7f7000000070707fdfdfd030303ffffff
+ffffffececec000000fffffffffffffdfdfd0a0a0af9f9f9fbfbfbeaeaea050505f5f5f5
+fafafaf5f5f5101010f4f4f4fefefeeeeeee070707f3f3f3f8f8f8f5f5f5111111f4f4f4
+f8f8f8e1e1e1111111000000040404090909e6e6e6f3f3f3ffffff000000ffffffffffff
+f4f4f4fefefefbfbfbfafafaf4f4f4f9f9f9000000fafafaffffffffffffedededffffff
+000000ffffffe1e1e1141414f9f9f9fdfdfdfafafa010101fbfbfbf2f2f2f6f6f6090909
+f9f9f9ffffffefefef0707070808080e0e0e080808050505050505ffffffeeeeeefdfdfd
+000000fffffffffffffcfcfcfbfbfbf3f3f3060606f6f6f6fffffff8f8f8ffffff000000
+fffffffcfcfcebebebf9f9f9fbfbfbfefefe060606f9f9f9fffffff5f5f5000000ffffff
+0c0c0cffffffdfdfdf171717fcfcfcedededffffffe2e2e2fefefe090909f7f7f7ffffff
+000000ffffffe7e7e7fcfcfcfafafa131313f9f9f9f4f4f4fffffff5f5f5fffffffbfbfb
+000000f6f6f6ffffffe8e8e8ffffffcfcfcf1f1f1fe9e9e9ffffff020202fcfcfcf7f7f7
+ffffff020202fefefefffffff4f4f40e0e0ef2f2f2f7f7f7f5f5f5090909ecececf9f9f9
+000000ffffffe5e5e5fefefeffffff000000fffffff5f5f5ebebebffffffdfdfdffefefe
+f9f9f9efefeffefefef3f3f3000000fffffffefefefffffffcfcfcefefefffffffebebeb
+ffffff000000fffffffbfbfbf0f0f0ffffffececec0f0f0ffcfcfcfafafaf9f9f9fafafa
+fcfcfcfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefeedededffffff000000ffffff
+fcfcfcffffff000000ffffffddddddffffffecececffffff000000030303f4f4f4ffffff
+000000edededf9f9f9ffffffececec161616f5f5f5ffffffffffffffffffecececffffff
+000000f6f6f6fffffff3f3f3fffffff1f1f1050505f0f0f0f9f9f9000000ffffffffffff
+ffffff000000fafafafdfdfdffffff020202fffffff3f3f3ffffff000000fffffff8f8f8
+fcfcfce9e9e9fffffff4f4f4f5f5f5fefefefefefef3f3f3030303f4f4f4f8f8f8ffffff
+ffffffffffff050505dfdfdffcfcfc000000fefefefdfdfdf4f4f4f7f7f7ffffff000000
+e8e8e8fffffffffffffffffffbfbfbf3f3f3ffffff0b0b0bf6f6f6fffffff1f1f1f6f6f6
+fcfcfc050505000000f9f9f9ffffffdededefcfcfcf3f3f3101010f6f6f6000000f3f3f3
+fffffff3f3f3e9e9e9ffffff060606f2f2f2f6f6f6fcfcfcf9f9f9fdfdfd000000ffffff
+fcfcfc050505f8f8f8ffffffdcdcdc0000000a0a0a191919fcfcfcf1f1f1000000ffffff
+eeeeeeffffff020202fdfdfde7e7e7ffffff000000fdfdfdf4f4f4ffffff000000ffffff
+f2f2f2ffffff000000edededf2f2f2ffffff000000eeeeeef6f6f6ffffff000000ffffff
+f7f7f7f5f5f5000000fffffffafafaffffff040404fffffffefefef3f3f3f5f5f5f8f8f8
+fafafaffffff000000fffffff5f5f5f4f4f4fafafaf0f0f0e6e6e60c0c0cfffffff3f3f3
+e0e0e00101011010100e0e0efcfcfcf1f1f1000000ffffffeeeeeeffffff020202fdfdfd
+e7e7e7ffffff000000fdfdfdf4f4f4ffffff000000fffffff2f2f2ffffff000000ededed
+f2f2f2ffffff000000eeeeeef6f6f6ffffff000000fffffff7f7f7f5f5f5000000ffffff
+fbfbfbf1f1f1070707fffffff8f8f8fffffffffffffffffffefefe000000000000fdfdfd
+ffffffdfdfdffffffff4f4f40e0e0effffff151515eaeaeafffffff9f9f9f7f7f7fcfcfc
+121212ffffffe7e7e7000000ffffffeaeaeaffffff030303f5f5f5fffffff4f4f4040404
+ececececececffffff090909e4e4e4fdfdfdfcfcfcedededf7f7f7edededffffff000000
+ffffff000000eeeeeef1f1f1ffffffe3e3e3030303f5f5f5f7f7f7fefefeffffff030303
+e6e6e6f7f7f7f8f8f8fffffffcfcfcededed080808ffffffe4e4e4fbfbfb161616000000
+020202f0f0f0ffffff000000fdfdfdfafafaebebebfdfdfde5e5e5060606edededf0f0f0
+050505f3f3f3fffffff1f1f1f1f1f1000000fffffffbfbfbdededefdfdfdfefefef4f4f4
+010101fefefef1f1f1fffffff4f4f4ffffff0e0e0ef7f7f7ececec090909f9f9f9ffffff
+f4f4f4060606f3f3f3ffffffffffff000000f7f7f7f9f9f9ffffff010101fffffff6f6f6
+080808f7f7f7fcfcfcf2f2f2f9f9f9030303e6e6e6fffffffefefef8f8f8fffffff3f3f3
+f9f9f9ffffffebebebffffff1b1b1beaeaeaeeeeeefafafafffffffdfdfddadadaffffff
+ffffff080808ffffffedededffffffe6e6e6ffffff000000fffffffdfdfdfcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfffffffcfcfc070707f4f4f4
+ffffffffffff0b0b0beeeeeeffffffe4e4e4ffffff0a0a0a090909ffffffffffffe0e0e0
+111111f4f4f4fefefef9f9f9ffffff0a0a0afffffffcfcfc000000000000fffffff0f0f0
+f7f7f7000000efefeffffffff5f5f5030303fafafafafafaffffff070707e2e2e2fdfdfd
+f6f6f6131313fffffffffffffafafa000000f1f1f1fcfcfcfafafa141414000000141414
+060606070707fafafaf0f0f00000000e0e0ef0f0f0fcfcfcfbfbfb131313e9e9e9ffffff
+ededed030303fffffffcfcfcffffff000000e4e4e4fdfdfdfffffff5f5f5fafafa111111
+0f0f0f000000030303000000fdfdfdffffff070707fffffffafafafffffffefefefcfcfc
+f6f6f6f9f9f90c0c0c000000ffffffffffffe7e7e7ffffff0b0b0bf8f8f8ffffff020202
+f5f5f5e8e8e8ffffff000000f7f7f7fbfbfb0f0f0ff3f3f3fffffffdfdfd000000ffffff
+ffffff0e0e0ef8f8f8f0f0f0fdfdfdffffff000000000000fcfcfcffffff0a0a0af7f7f7
+f7f7f7000000141414dededefffffff3f3f3030303fcfcfcfffffffdfdfd0a0a0af0f0f0
+f5f5f5efefef040404fffffff9f9f9f9f9f90f0f0ffffffffafafaefefef000000f6f6f6
+fafafaffffff141414fafafaf4f4f4f2f2f2000000000000000000060606121212f6f6f6
+f2f2f2000000fffffff3f3f3eeeeeefffffffffffffdfdfdffffff000000f2f2f2ffffff
+fcfcfcffffff000000000000fcfcfcffffff0a0a0af7f7f7f7f7f7000000141414dedede
+fffffff3f3f3030303fcfcfcfffffffdfdfd0a0a0af0f0f0f5f5f5efefef040404ffffff
+f9f9f9f9f9f90f0f0ffffffffafafaefefef000000f6f6f6fafafaffffff141414fafafa
+f5f5f5ffffff0000000000000b0b0b0d0d0d000000fffffff6f6f6fcfcfc141414000000
+ffffffffffffecececffffff000000fffffff1f1f10e0e0effffffffffffffffff020202
+f2f2f2f3f3f3ffffff0d0d0df0f0f0fffffff7f7f7010101ffffffecececfdfdfd060606
+fffffffbfbfbf8f8f8000000191919f7f7f7fffffff9f9f9151515ebebeb070707ffffff
+eaeaea272727070707f8f8f8fdfdfdffffff000000fafafafafafaf0f0f0000000f9f9f9
+fffffff3f3f3fcfcfcffffffffffffffffff080808f1f1f1fffffffffffff8f8f8000000
+131313ecececffffffffffff000000fcfcfcfefefefdfdfd040404fffffff7f7f7ffffff
+010101f7f7f7ffffffffffffffffff060606f0f0f0f7f7f7ffffffe7e7e7fffffff1f1f1
+ffffff000000fffffff9f9f9ececec000000dfdfdfffffffffffff000000ffffffffffff
+f7f7f7050505ffffffefefeff9f9f9161616fffffffdfdfdf8f8f8000000f0f0f0fcfcfc
+111111000000ffffffffffff000000000000fffffff3f3f3ffffff060606000000f4f4f4
+f9f9f9ffffffe9e9e9ffffff000000ffffffecececfbfbfbffffff0404040f0f0ffcfcfc
+f7f7f7fcfcfc000000ffffffecececfdfdfd000000fffffffdfdfdfbfbfbfafafafbfbfb
+fdfdfdfffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf4f4f4070707070707000000
+ffffff0000000000000404040000000b0b0b020202e7e7e7f4f4f4f9f9f9ffffff0d0d0d
+0000001b1b1b0a0a0a0000000909090b0b0bfafafaf7f7f7161616020202e8e8e8f0f0f0
+fffffffafafa050505000000000000ffffffffffffdcdcdc000000000000030303fefefe
+010101000000000000f8f8f8060606030303080808f8f8f8101010ebebebfffffffcfcfc
+e9e9e90c0c0c000000ffffff202020000000fffffff4f4f4fffffffafafa0b0b0b000000
+070707fcfcfcf9f9f9dddddd000000090909191919f1f1f1f7f7f7f3f3f30f0f0ffdfdfd
+e4e4e4fffffff3f3f30d0d0d000000f0f0f0000000efefeff5f5f5f1f1f1fafafaf7f7f7
+f8f8f8f5f5f5f8f8f8fdfdfd0000000b0b0b0f0f0f050505fffffff5f5f5eeeeeefefefe
+000000000000040404ffffffefefefffffff000000000000090909010101ffffffededed
+040404000000080808fffffffefefef2f2f2ffffff000000fefefefffffff2f2f2111111
+070707f8f8f8060606151515fdfdfd000000010101060606ffffff000000000000090909
+ffffff0101010000000f0f0fffffff0000000000000d0d0df7f7f7050505000000020202
+f7f7f7010101000000030303ffffff0d0d0df0f0f0fffffff1f1f1f6f6f6040404080808
+fafafa000000ffffffe3e3e3fffffffffffff5f5f5e4e4e40000000303030d0d0de4e4e4
+ffffffeeeeeeffffff020202fefefefffffff2f2f2111111070707f8f8f8060606151515
+fdfdfd000000010101060606ffffff000000000000090909ffffff0101010000000f0f0f
+ffffff0000000000000d0d0df7f7f7050505000000020202f7f7f7010101000000030303
+ffffff040404f1f1f1fffffff1f1f1f9f9f9060606000000fdfdfdf7f7f7fdfdfdffffff
+0000000a0a0a111111010101ffffffe8e8e8f4f4f4ffffff000000000000101010ffffff
+fcfcfcffffff000000010101101010ffffff000000131313131313e4e4e4ffffff000000
+020202090909fffffffbfbfb0000000b0b0b020202000000ffffff0000000a0a0a000000
+f8f8f80d0d0d030303000000fbfbfbe6e6e60d0d0d020202080808ffffff000000ffffff
+e7e7e7ebebebfbfbfbf3f3f3ebebeb020202010101151515eeeeeeedededfffffff6f6f6
+050505fcfcfce6e6e6d8d8d8fbfbfb020202000000080808eaeaeaeaeaeaf2f2f2f9f9f9
+0909091c1c1c000000ffffff000000050505000000f6f6f6f1f1f1f8f8f8ffffffffffff
+ffffffececec0000001a1a1a0a0a0afffffffffffff8f8f8fbfbfbf2f2f20707070e0e0e
+0000000b0b0b000000ffffff030303000000000000f6f6f6030303000000050505f6f6f6
+fcfcfc000000191919000000fafafa030303080808f3f3f3eaeaea000000171717f9f9f9
+ffffffededed0b0b0b0000002d2d2d000000fffffffcfcfcffffff0000000a0a0af1f1f1
+fbfbfbfffffff8f8f80c0c0c1313130c0c0cebebebf7f7f7fbfbfbfafafaf8f8f8f9f9f9
+fcfcfcfdfdfdfefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbfefefeeeeeeefffffff4f4f4
+fefefef7f7f7fffffff6f6f6ffffffffffffeaeaeaf4f4f4ffffffecececf5f5f5dcdcdc
+fdfdfdfffffff9f9f9f9f9f9f7f7f7f0f0f0f0f0f0ffffffefefeff2f2f2ffffffe0e0e0
+fcfcfcffffffedededffffffffffffe8e8e8fdfdfdfffffff0f0f0eeeeeefffffffcfcfc
+f4f4f4fffffff6f6f6f5f5f5fffffffefefef0f0f0ffffff000000fffffffffffff0f0f0
+fffffff7f7f7000000ebebebe7e7e7fffffff0f0f0fdfdfdf4f4f4f4f4f4ffffffffffff
+fffffffbfbfbfffffffffffffcfcfcf4f4f4fdfdfdfffffffdfdfdffffff000000ffffff
+efefefcbcbcbfbfbfbf4f4f4080808070707eaeaeaffffffeaeaeaffffffffffffe7e7e7
+fffffffffffffffffffffffff1f1f1f9f9f9fefefedcdcdcfefefefffffffffffffdfdfd
+eeeeeefffffff0f0f0f3f3f3edededf6f6f6f2f2f2ffffffe5e5e5f0f0f0fffffff7f7f7
+f4f4f4fffffff3f3f3fdfdfdfdfdfdfffffff1f1f1fcfcfcfffffff4f4f4ebebebebebeb
+fefefefffffff6f6f6eaeaeaf6f6f6ecececfffffff1f1f1f5f5f5f9f9f9ffffffe9e9e9
+fffffff2f2f2fafafafafafaf5f5f5fefefeffffffeaeaeaffffffeeeeeef9f9f9fefefe
+f6f6f6f9f9f9fffffff1f1f1ebebeb0b0b0bfffffff1f1f1ffffffefefeff8f8f80f0f0f
+0b0b0bfffffffafafafafafafffffff3f3f3e0e0e0fffffffffffffdfdfdfcfcfcfbfbfb
+efefeffffffffffffff4f4f4fffffff4f4f4ebebebebebebfefefefffffff6f6f6eaeaea
+f6f6f6ecececfffffff1f1f1f5f5f5f9f9f9ffffffe9e9e9fffffff2f2f2fafafafafafa
+f5f5f5fefefeffffffeaeaeaffffffeeeeeef9f9f9fefefef6f6f6f9f9f9fffffff1f1f1
+eaeaea010101fffffff8f8f8fdfdfdeeeeeeffffff060606fffffff9f9f9f8f8f8ffffff
+f6f6f6fbfbfbffffffe1e1e1f9f9f9ffffffffffffecececfdfdfdffffffe7e7e7f1f1f1
+efefeff4f4f4f9f9f9ffffffe8e8e8f4f4f4ffffffffffffe2e2e2fafafaebebebf4f4f4
+f2f2f2f6f6f6e6e6e6fffffffffffff0f0f0ffffffdededef8f8f8ffffffe6e6e6ffffff
+ffffffeaeaeaf4f4f4ffffffd8d8d8fffffff0f0f0f6f6f6ffffff000000ffffffe9e9e9
+ffffffffffffe4e4e4fffffffffffff3f3f3ffffffe0e0e0f5f5f5ffffffe3e3e3ffffff
+f7f7f7f5f5f5ffffffe7e7e7fffffffcfcfcf6f6f6f5f5f5fffffff4f4f4fffffff2f2f2
+f0f0f0fffffffffffff2f2f2fafafafafafaffffffe9e9e9ffffffffffffdfdfdffdfdfd
+f2f2f2fffffff1f1f1f3f3f3f5f5f5e5e5e5ffffffedededfcfcfcffffffffffffebebeb
+fffffffbfbfbf8f8f8f4f4f4f5f5f5fffffff5f5f5f4f4f4fffffffdfdfdefefefffffff
+ffffffedededfcfcfcfdfdfdffffffeaeaeafffffffffffffffffff8f8f8f8f8f8ffffff
+fcfcfceaeaeafffffffffffff4f4f4e0e0e0fffffff0f0f0efefefffffffe9e9e9ffffff
+e4e4e4fffffff8f8f8ffffffebebebefefeff8f8f8fefefefffffffdfdfdfcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303fafafafefefefafafafffffffcfcfcfffffff7f7f7
+fffffff5f5f5fafafaf9f9f9e8e8e8ffffffebebebe7e7e7ffffffedededf6f6f6ffffff
+ffffffe6e6e6fcfcfcffffffecececfbfbfbfffffffafafafafafafffffffafafaffffff
+ebebebfffffff6f6f6e3e3e3ffffffefefefe5e5e5dcdcdcffffffeeeeeefefefef8f8f8
+fffffffffffff6f6f6fffffffffffffdfdfdf4f4f4fcfcfc2f2f2ff9f9f9eaeaeaefefef
+ffffff000000ffffffefefeffdfdfdfefefeffffffebebebfffffffffffff7f7f7dedede
+fdfdfdfbfbfbf4f4f4e2e2e2ffffffe3e3e3f7f7f7ffffffdbdbdbffffff000000fafafa
+fffffffdfdfdf6f6f6000000efefeffffffffbfbfbd2d2d2ffffffe2e2e2fbfbfbf2f2f2
+e9e9e9fffffff2f2f2e3e3e3f9f9f9f4f4f4e8e8e8fffffff0f0f0f4f4f4fdfdfddddddd
+ffffffe1e1e1fefefef8f8f8fffffffdfdfdfffffff4f4f4ffffffedededf8f8f8f2f2f2
+f5f5f5f9f9f9ffffffe7e7e7e9e9e9f7f7f7ebebebf5f5f5f3f3f3e7e7e7ffffffffffff
+f5f5f5f4f4f4fffffffffffffffffff7f7f7fffffffafafafffffff6f6f6fdfdfdf3f3f3
+f5f5f5f3f3f3fffffffffffff8f8f8ecececfafafafffffffdfdfdf2f2f2f9f9f9fefefe
+fffffff8f8f8fefefefdfdfdfefefe060606dadadaffffffffffffffffff050505ececec
+eeeeeefbfbfbe5e5e5fffffff8f8f8f0f0f0ffffffe3e3e3fafafafffffff8f8f8f6f6f6
+f9f9f9f9f9f9d3d3d3fffffff3f3f3e7e7e7fffffffffffff5f5f5f4f4f4ffffffffffff
+fffffff7f7f7fffffffafafafffffff6f6f6fdfdfdf3f3f3f5f5f5f3f3f3ffffffffffff
+f8f8f8ecececfafafafffffffdfdfdf2f2f2f9f9f9fefefefffffff8f8f8fefefefdfdfd
+ffffff1a1a1ad5d5d5fafafaffffffffffff000000edededf5f5f5f7f7f7e8e8e8eaeaea
+fffffff4f4f4e8e8e8fffffff3f3f3dfdfdfeeeeeef1f1f1f1f1f1e5e5e5fffffffefefe
+fffffffffffffdfdfdffffffecececedededf7f7f7f8f8f8f3f3f3ffffffe4e4e4fbfbfb
+fffffff3f3f3fffffffafafafffffff1f1f1fdfdfdfffffff6f6f6fffffff0f0f0f3f3f3
+f9f9f9fffffff7f7f7f9f9f9f7f7f7f4f4f4edededfffffff3f3f3ffffffeaeaeafefefe
+edededf8f8f8fcfcfce6e6e6fffffff0f0f0fbfbfbf2f2f2ffffffedededfffffffbfbfb
+fefefeeaeaeaf1f1f1fffffffafafaeeeeeefdfdfdfcfcfccfcfcffffffffdfdfde9e9e9
+fffffff1f1f1fbfbfbffffffe5e5e5fcfcfcfffffff7f7f7fffffffffffffffffff4f4f4
+fbfbfbf5f5f5f9f9f9efefeffcfcfcf9f9f9fafafafdfdfdfcfcfcfffffff1f1f1ececec
+edededfffffffefefefffffffffffffffffff7f7f7fffffffffffffefefef5f5f5fefefe
+f4f4f4fffffff7f7f7fcfcfcf0f0f0f5f5f5fafafaf7f7f7fdfdfdd7d7d7fffffff9f9f9
+f6f6f6fefefefffffff2f2f2fffffff8f8f8fefefef0f0f0fffffffdfdfdffffffe9e9e9
+fffffffafafaf4f4f4ffffffffffffffffffeaeaeaf3f3f3fdfdfdfcfcfcfbfbfbfbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9edededfffffffcfcfceaeaea
+fdfdfdfbfbfbf7f7f7ffffffffffffe5e5e5ffffffeaeaeafbfbfbfffffff0f0f0f5f5f5
+dcdcdcf9f9f9f5f5f5eeeeeefffffffffffff8f8f8f3f3f3ffffffdadadafcfcfcf7f7f7
+e6e6e6fffffff2f2f2ffffffe7e7e7fffffffffffffcfcfcf3f3f3fcfcfceaeaeaffffff
+f8f8f8f6f6f6f4f4f4ffffffefefeffffffffffffff8f8f8e9e9e90000000c0c0c0e0e0e
+000000fbfbfbfffffff4f4f4e9e9e9f8f8f8f1f1f1ffffffe9e9e9eaeaeaf1f1f1ffffff
+fffffff6f6f6fffffffcfcfcf1f1f1fffffff9f9f9f1f1f1fffffff4f4f4ffffff000000
+0d0d0d000000161616fdfdfdffffffefefeff3f3f3f8f8f8fffffff8f8f8ffffffffffff
+edededfdfdfdffffffefefefedededffffffe5e5e5f3f3f3fbfbfbfbfbfbe9e9e9ffffff
+efefefffffffeeeeeefffffffffffffbfbfbe2e2e2f8f8f8fffffffffffffffffff7f7f7
+ffffffe8e8e8fdfdfdfafafaffffffffffffdfdfdffffffffefefefbfbfbffffffefefef
+fdfdfdfcfcfcf5f5f5edededf3f3f3f7f7f7f8f8f8f9f9f9fffffff8f8f8f7f7f7ffffff
+fffffff8f8f8f1f1f1eeeeeefffffff8f8f8f2f2f2f4f4f4f2f2f2fffffffffffff0f0f0
+fdfdfdf0f0f0f3f3f3f6f6f6fcfcfcffffff070707000000030303131313cacacaffffff
+f4f4f4fbfbfbfffffffffffffcfcfcfdfdfdfffffffafafafdfdfdecececffffffffffff
+fcfcfcffffffe8e8e8fbfbfbfefefefbfbfbffffffefefeffdfdfdfcfcfcf5f5f5ededed
+f3f3f3f7f7f7f8f8f8f9f9f9fffffff8f8f8f7f7f7fffffffffffff8f8f8f1f1f1eeeeee
+fffffff8f8f8f2f2f2f4f4f4f2f2f2fffffffffffff0f0f0fdfdfdf0f0f0f3f3f3f6f6f6
+ffffffefefef0000000a0a0a0000000f0f0fedededfffffff9f9f9fcfcfcfffffff5f5f5
+eeeeeeffffffe3e3e3eeeeeefcfcfcfffffffffffff6f6f6f7f7f7fbfbfbfdfdfdf9f9f9
+eeeeeefffffff4f4f4e1e1e1fcfcfcffffffd7d7d7fffffff7f7f7e4e4e4ffffffe3e3e3
+ffffffecececf0f0f0f8f8f8f0f0f0fcfcfcffffffffffffe7e7e7ddddddffffffe4e4e4
+f9f9f9f4f4f4f7f7f7eeeeeefffffffcfcfcfffffff4f4f4f6f6f6ffffffe4e4e4ffffff
+f0f0f0f4f4f4fffffffbfbfbefefeffafafafafafaf8f8f8f1f1f1f5f5f5ffffffe8e8e8
+dfdfdfffffffffffffefefefe0e0e0fffffff0f0f0f8f8f8fffffff2f2f2fafafaf4f4f4
+ffffffebebebfefefef3f3f3ffffffefefefe4e4e4ffffffe8e8e8fefefef2f2f2f7f7f7
+fffffffffffffdfdfdfffffff8f8f8fefefee8e8e8fafafafffffff7f7f7fbfbfbffffff
+ffffffeeeeeeeeeeeefbfbfbf8f8f8f7f7f7f5f5f5fffffff0f0f0fffffffffffff8f8f8
+fdfdfde3e3e3ffffffe9e9e9fffffffffffffffffff0f0f0ddddddfffffff1f1f1fcfcfc
+fffffffafafae7e7e7fffffffbfbfbfcfcfcfffffffdfdfdf6f6f6f9f9f9fffffffbfbfb
+edededeaeaeafefefef6f6f6fffffff4f4f4efefeffffffffbfbfbf9f9f9f8f8f8f9f9f9
+fbfbfbfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fdfdfdfffffff9f9f9ffffff
+f6f6f6fafafaf3f3f3fffffffefefefcfcfcfafafaf9f9f9f9f9f9eeeeeef7f7f7ffffff
+fbfbfbfffffffffffffffffffcfcfcfffffff6f6f6fffffff2f2f2fffffff8f8f8f3f3f3
+fffffffffffff9f9f9f4f4f4ffffffedededf8f8f8fafafafdfdfdfffffffbfbfbf5f5f5
+fffffffffffffbfbfbfffffffdfdfdf9f9f9f7f7f7fffffffcfcfcfffffff9f9f9f8f8f8
+fffffff7f7f7eeeeeefffffff5f5f5ffffffeeeeeefffffff9f9f9f7f7f7ffffffe4e4e4
+fdfdfdfcfcfcfffffffafafafbfbfbf1f1f1efefefffffffffffffe1e1e1fefefeffffff
+f3f3f3fffffff0f0f0fbfbfbfcfcfcfefefef6f6f6f9f9f9fbfbfbf9f9f9f9f9f9f2f2f2
+fcfcfcf9f9f9eeeeeef4f4f4fffffff5f5f5f5f5f5ffffffe6e6e6ffffffe6e6e6e8e8e8
+fffffff4f4f4f6f6f6efefeffcfcfcf8f8f8fffffff3f3f3fbfbfbeaeaeaf5f5f5ffffff
+fbfbfbfffffffcfcfcffffffecececfbfbfbfffffffdfdfddfdfdfffffffe4e4e4f0f0f0
+ffffffeaeaeaf8f8f8fffffff5f5f5fffffffefefefffffff2f2f2fffffffcfcfcf7f7f7
+eeeeeefbfbfbfffffff9f9f9f4f4f4fbfbfbfffffffffffff4f4f4f3f3f3ffffffffffff
+fcfcfcf2f2f2fbfbfbffffffe7e7e7f7f7f7fffffffdfdfdefefeff9f9f9ffffffececec
+f6f6f6fffffff5f5f5f0f0f0eaeaeafffffff5f5f5ecececfffffff4f4f4fdfdfdf5f5f5
+fcfcfce8e8e8fafafaffffffdfdfdfffffffe4e4e4f0f0f0ffffffeaeaeaf8f8f8ffffff
+f5f5f5fffffffefefefffffff2f2f2fffffffcfcfcf7f7f7eeeeeefbfbfbfffffff9f9f9
+f4f4f4fbfbfbfffffffffffff4f4f4f3f3f3fffffffffffffcfcfcf2f2f2fbfbfbffffff
+e7e7e7fdfdfdfdfdfdfffffff1f1f1efefefffffffdededefafafaf8f8f8f3f3f3f6f6f6
+fffffff6f6f6fdfdfdfffffff5f5f5fafafae2e2e2ffffffffffffe8e8e8fafafaffffff
+fdfdfdfcfcfcf8f8f8ffffffe3e3e3ecececfffffff2f2f2fdfdfdfffffffbfbfbf6f6f6
+f6f6f6fcfcfcf4f4f4fcfcfcfefefefffffff2f2f2fafafafffffff7f7f7dadadaffffff
+fafafafafafaffffffffffffdededefffffff6f6f6fcfcfcf3f3f3fefefeffffffd3d3d3
+ffffffe8e8e8f2f2f2f5f5f5fffffff9f9f9fffffff4f4f4f8f8f8fafafafafafaffffff
+ffffffecececfffffffffffffbfbfbfafafaf3f3f3fffffffbfbfbf5f5f5efefefffffff
+f1f1f1fffffffafafaf4f4f4f4f4f4f0f0f0fffffffafafafefefef5f5f5ffffffffffff
+efefeffcfcfce5e5e5f4f4f4fffffff6f6f6fffffff6f6f6e8e8e8fffffff6f6f6eaeaea
+f8f8f8fffffff8f8f8fffffffefefefefefefbfbfbfffffffcfcfcf7f7f7f3f3f3fefefe
+fcfcfcfffffff6f6f6ffffffffffffecececf5f5f5ffffffffffffe7e7e7fefefeececec
+fffffffffffff9f9f9f4f4f4fafafafcfcfcffffffeeeeeefffffff0f0f0f8f8f8fcfcfc
+f5f5f5fffffffcfcfcf9f9f9efefeffffffff2f2f2fefefefefefefcfcfcfbfbfbfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafefefefafafafcfcfcebebebf4f4f4f9f9f9
+fefefef3f3f3fbfbfbf6f6f6f6f6f6fdfdfdf5f5f5fbfbfbfbfbfbfffffff1f1f1fafafa
+f3f3f3fffffff5f5f5f5f5f5fffffffffffffefefefffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfcfcfcfdfdfdfdfdfdfbfbfbfafafaf9f9f9
+f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbfafafafbfbfbfcfcfcf8f8f8f7f7f7fffffff1f1f1
+fffffffbfbfbfffffff9f9f9f8f8f8f6f6f6f6f6f6fafafafbfbfbf8f8f8f9f9f9fcfcfc
+f7f7f7f8f8f8fafafafefefefffffffffffffefefefbfbfbf9f9f9fcfcfcf7f7f7eeeeee
+f1f1f1fdfdfdfffffff7f7f7f5f5f5f4f4f4fffffff7f7f7fbfbfbffffffe4e4e4ffffff
+fbfbfbf5f5f5f3f3f3fffffff3f3f3fafafaf9f9f9ffffffeeeeeef9f9f9fefefef9f9f9
+f8f8f8fefefefffffffcfcfcfcfcfcfafafaf9f9f9fafafafdfdfdfefefefffffffefefe
+edededf5f5f5fcfcfcf8f8f8f9f9f9f9f9f9fffffffffffffbfbfbfefefef9f9f9fcfcfc
+f2f2f2f6f6f6fffffff2f2f2fafafafafafafffffff3f3f3fffffff6f6f6fdfdfdf3f3f3
+fffffff5f5f5f8f8f8f5f5f5fcfcfce5e5e5ffffffddddddfcfcfcfcfcfcfdfdfdfdfdfd
+fdfdfdfefefefefefefefefefbfbfbfdfdfdfffffffffffffbfbfbf6f6f6fbfbfbffffff
+ebebebffffffecececfffffff8f8f8fdfdfdfffffff4f4f4fdfdfdffffffffffffefefef
+f4f4f4fffffffffffff0f0f0fbfbfbfefefef9f9f9fcfcfcf2f2f2f6f6f6fffffff2f2f2
+fafafafafafafffffff3f3f3fffffff6f6f6fdfdfdf3f3f3fffffff5f5f5f8f8f8f5f5f5
+fcfcfce5e5e5ffffffddddddfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefe
+f6f6f6fafafafffffffffffffbfbfbf5f5f5f8f8f8fffffff2f2f2fffffffdfdfdffffff
+f7f7f7f9f9f9eeeeeefffffff2f2f2f7f7f7fcfcfcfdfdfdfbfbfbfafafafbfbfbfdfdfd
+f3f3f3f1f1f1f7f7f7fffffffcfcfcf4f4f4f8f8f8fffffff9f9f9fafafafafafafbfbfb
+fbfbfbfcfcfcfcfcfcfdfdfdf4f4f4f6f6f6f7f7f7f6f6f6f5f5f5f4f4f4f5f5f5f7f7f7
+f6f6f6fafafafcfcfcfafafaf6f6f6f5f5f5f9f9f9fdfdfdfcfcfcfffffff5f5f5f1f1f1
+edededfffffff6f6f6ffffffeaeaeaf9f9f9fffffff7f7f7fefefefbfbfbefefeffefefe
+fbfbfbf9f9f9fafafafefefefefefefafafaf9f9f9fbfbfbf4f4f4fdfdfdffffffe6e6e6
+ffffffeeeeeef7f7f7ffffffeeeeeefdfdfdfffffff6f6f6f4f4f4fdfdfdfefefef5f5f5
+fffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f8f8f8eeeeeeffffffefefeffdfdfd
+ffffffe8e8e8fdfdfdffffffebebebfdfdfdfffffff9f9f9f3f3f3fdfdfdfdfdfdf7f7f7
+f6f6f6f7f7f7fffffff8f8f8f7f7f7ffffffd8d8d8fffffffafafaf2f2f2fefefefbfbfb
+fffffffffffff2f2f2f3f3f3f0f0f0f4f4f4fefefeffffffffffffdcdcdcffffffdedede
+fffffff4f4f4fffffffefefeeeeeeefefefeffffffeaeaeafcfcfcfbfbfbfafafafbfbfb
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff1f1f1fafafafffffffffffff2f2f2fefefe
+fffffffffffffffffff5f5f5fcfcfcfffffffafafaf5f5f5fefefeffffffffffffffffff
+fffffffffffffefefefdfdfd000000000000000000000000000000
+000000000000000000000000040404fafafafefefefafafaf2f2f2f5f5f5ffffffeaeaea
+fbfbfbecececfffffff8f8f8fbfbfbfffffff0f0f0fffffff8f8f8f3f3f3fffffff5f5f5
+fcfcfcfbfbfbfffffff9f9f9e8e8e8f6f6f6f4f4f4fcfcfcfdfdfdfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfafafa
+f6f6f6f8f8f8fafafafafafaf8f8f8f7f7f7f8f8f8f9f9f9fcfcfcfcfcfcfefefef5f5f5
+fcfcfcfbfbfbfdfdfdf5f5f5fafafaf8f8f8f8f8f8fbfbfbfbfbfbf9f9f9f9f9f9fcfcfc
+fefefefcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfcfcfcfafafafffffff2f2f2efefeffdfdfd
+fffffff6f6f6f7f7f7fffffffffffffcfcfcf7f7f7f1f1f1f4f4f4fffffffffffffafafa
+f7f7f7fefefefafafaf1f1f1fffffff3f3f3f0f0f0fefefef8f8f8fcfcfcfdfdfdfbfbfb
+f9f9f9fbfbfbfbfbfbf9f9f9fdfdfdfbfbfbf9f9f9f8f8f8f9f9f9f9f9f9f8f8f8f7f7f7
+fffffffefefef3f3f3fffffffcfcfcfdfdfdedededeeeeeefffffffffffff5f5f5fefefe
+fffffffbfbfbf4f4f4f5f5f5f7f7f7f9f9f9fefefef6f6f6fcfcfcfafafafdfdfdf6f6f6
+e3e3e3f2f2f2fefefeebebebffffffffffffd6d6d6fffffff9f9f9f9f9f9f9f9f9fafafa
+fafafafafafafbfbfbfbfbfbfefefefcfcfcfcfcfcfefefefdfdfdfafafafbfbfbffffff
+f4f4f4ffffffffffffecececfcfcfcffffffffffffffffffe5e5e5f3f3f3fcfcfcffffff
+f7f7f7f2f2f2eeeeeefffffffffffffffffff5f5f5fefefefffffffbfbfbf4f4f4f5f5f5
+f7f7f7f9f9f9fefefef6f6f6fcfcfcfafafafdfdfdf6f6f6e3e3e3f2f2f2fefefeebebeb
+ffffffffffffd6d6d6fffffff9f9f9f9f9f9f9f9f9fafafafafafafafafafbfbfbfbfbfb
+fafafaf9f9f9fbfbfbfffffffdfdfdf9f9f9f9f9f9fcfcfcfffffff1f1f1f2f2f2f4f4f4
+fffffffffffffffffff3f3f3f9f9f9fbfbfbfdfdfdfdfdfdfbfbfbfafafaf9f9f9f9f9f9
+fffffffefefefcfcfcfffffffcfcfcf1f1f1eeeeeef3f3f3fafafafbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfcfcfcfafafafcfcfcfdfdfdfcfcfcfafafafafafafbfbfbfcfcfc
+f8f8f8fbfbfbfefefefcfcfcf8f8f8f7f7f7fafafafefefefcfcfcfffffffefefefefefe
+fffffff7f7f7f0f0f0d7d7d7fffffffffffff1f1f1eaeaeafbfbfbfffffffffffff0f0f0
+fbfbfbf9f9f9fafafafefefefefefefafafaf9f9f9fbfbfbfafafafafafaf2f2f2ffffff
+ecececfffffffefefefffffff5f5f5fdfdfdfffffff9f9f9f8f8f8fdfdfdfdfdfdf7f7f7
+fffffffefefefefefefcfcfcfbfbfbfafafaf9f9f9f9f9f9fdfdfdfffffff4f4f4f6f6f6
+fffffffffffffcfcfcfdfdfdfffffff4f4f4f5f5f5fafafafffffffbfbfbf8f8f8f3f3f3
+ffffffe6e6e6fffffff1f1f1f4f4f4fffffffefefef5f5f5ffffffffffffe9e9e9ffffff
+fffffff8f8f8fffffffffffffffffff2f2f2eeeeeef0f0f0f6f6f6ffffffe5e5e5ffffff
+f3f3f3fffffff0f0f0f6f6f6fffffff8f8f8f6f6f6fffffffdfdfdfcfcfcfafafafbfbfb
+fdfdfdfffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffefefefefefefefefeecececfffffffffffffafafae7e7e7f9f9f9fffffff7f7f7
+fdfdfdfbfbfbfcfcfcfcfcfcfbfbfbe5e5e5fbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdfafafaffffffebebebe4e4e4f3f3f3
+fffffffbfbfbf9f9f9fcfcfcf0f0f0f8f8f8f7f7f7edededffffffffffffe8e8e8f8f8f8
+fffffff7f7f7ffffffffffffefefeffffffffcfcfcf9f9f9fdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfc
+f7f7f7f9f9f9fbfbfbfbfbfbf9f9f9f8f8f8f8f8f8f9f9f9fcfcfcfffffff9f9f9fbfbfb
+f7f7f7fefefef8f8f8f6f6f6fefefefbfbfbfafafafdfdfdfdfdfdf9f9f9f9f9f9fcfcfc
+fffffffefefefafafaf8f8f8f9f9f9fbfbfbfdfdfdfdfdfdf8f8f8f9f9f9f9f9f9f7f7f7
+fafafafffffffffffffefefefbfbfbf7f7f7f1f1f1fffffffdfdfde5e5e5fcfcfceaeaea
+fffffffffffffafafaf7f7f7fffffffffffffffffffdfdfdfffffffbfbfbfafafafcfcfc
+fcfcfcfafafaf9f9f9fbfbfbfffffffefefefcfcfcfcfcfcfdfdfdfdfdfdfbfbfbf9f9f9
+f0f0f0f4f4f4ffffffeeeeeefffffffcfcfcfffffff9f9f9efefeff8f8f8fbfbfbf5f5f5
+f9f9f9f1f1f1edededfffffff8f8f8fdfdfdfbfbfbfffffffafafafffffffefefefefefe
+f7f7f7fffffffdfdfdfffffff3f3f3f2f2f2f9f9f9eeeeeefbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfffffffbfbfbf9f9f9fcfcfcfffffffdfdfdfcfcfcfdfdfd
+fffffffffffff6f6f6ffffffeeeeeee6e6e6ffffffefefeffffffff8f8f8fcfcfce5e5e5
+fcfcfcf6f6f6fffffffefefeefefeff8f8f8fbfbfbf5f5f5f9f9f9f1f1f1edededffffff
+f8f8f8fdfdfdfbfbfbfffffffafafafffffffefefefefefef7f7f7fffffffdfdfdffffff
+f3f3f3f2f2f2f9f9f9eeeeeefbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fefefef9f9f9f8f8f8fcfcfcfffffffcfcfcfafafafafafafffffff7f7f7ffffffffffff
+efefefefefeff8f8f8edededfdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfafafa
+fafafaf2f2f2f1f1f1fbfbfbfffffffffffffdfdfdfffffffcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfffffffffffffffffffefefefdfdfdfefefeffffff
+fafafafdfdfdfffffffefefefbfbfbf9f9f9fcfcfcfefefef8f8f8fffffffbfbfbffffff
+f9f9f9f5f5f5ffffffffffffe9e9e9f4f4f4f1f1f1ffffffffffffefefeffbfbfbfafafa
+fcfcfcf9f9f9fafafafdfdfdfdfdfdfafafaf9f9f9fcfcfcf3f3f3fffffff6f6f6ededed
+fffffffbfbfbf3f3f3fffffffcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfcfcfcfbfbfbf9f9f9
+fdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafafffffff9f9f9fffffff8f8f8
+eaeaeafafafafcfcfcfafafafcfcfcfcfcfcfffffffffffffbfbfbfffffffffffff6f6f6
+ebebebffffffe7e7e7ffffffffffffeaeaeafffffff1f1f1f4f4f4f2f2f2ffffffeeeeee
+fcfcfcf5f5f5fafafaf5f5f5e6e6e6fffffff0f0f0fffffff9f9f9e5e5e5f4f4f4fcfcfc
+ffffffedededffffffe4e4e4ffffffffffffebebebfffffffffffffdfdfdfbfbfbfbfbfb
+fdfdfdfefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfffffffcfcfcf3f3f3fbfbfbfffffffffffff9f9f9ffffff
+f7f7f7fafafafffffffffffffffffff5f5f5ffffffeaeaeafffffffffffffefefefdfdfd
+fefefefefefeffffffffffff000000000000000000000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9fbfbfbfffffff9f9f9fdfdfd
+f6f6f6fffffffbfbfbfffffff7f7f7fffffffffffff1f1f1f6f6f6ededededededffffff
+fafafaf9f9f9e9e9e9f2f2f2e4e4e4fefefefbfbfbfffffffefefefefefefdfdfdfcfcfc
+fcfcfcfbfbfbfafafafafafafdfdfdfcfcfcfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+fcfcfcfefefefffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfafafafefefef5f5f5ffffff
+f6f6f6fffffffafafafcfcfcfffffffdfdfdfdfdfdfffffffefefefafafaf9f9f9fcfcfc
+fefefefbfbfbf8f8f8f8f8f8fbfbfbfefefefffffffffffff0f0f0fdfdfdfefefef3f3f3
+f5f5f5fffffffffffff5f5f5fefefefffffff1f1f1fffffffdfdfdecececffffffffffff
+f9f9f9f7f7f7fafafaffffffdfdfdffbfbfbfffffff1f1f1fffffff8f8f8f5f5f5fcfcfc
+fffffffcfcfcfbfbfbfffffffefefefdfdfdfcfcfcfefefefffffffffffffffffffefefe
+fffffffbfbfbffffffe7e7e7f6f6f6f0f0f0fffffffcfcfcfffffffefefefefefef5f5f5
+fefefefffffff7f7f7f3f3f3f9f9f9fffffff7f7f7fffffff7f7f7fffffffbfbfbffffff
+f2f2f2fafafafbfbfbddddddfdfdfdfffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefefefefffffffbfbfbf9f9f9fcfcfcfefefefcfcfcfbfbfbfdfdfd
+fdfdfdfbfbfbeeeeeefffffff6f6f6fcfcfcfcfcfcfffffff6f6f6f8f8f8fffffff6f6f6
+fffffff8f8f8fffffff9f9f9fffffffefefefefefef5f5f5fefefefffffff7f7f7f3f3f3
+f9f9f9fffffff7f7f7fffffff7f7f7fffffffbfbfbfffffff2f2f2fafafafbfbfbdddddd
+fdfdfdfffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+fdfdfdf9f9f9f8f8f8fcfcfcfefefefbfbfbfafafafbfbfbf5f5f5f6f6f6ebebebffffff
+f5f5f5fffffffdfdfdfefefefcfcfcf9f9f9f7f7f7f9f9f9fdfdfdfffffffffffffefefe
+fffffff9f9f9f7f7f7fcfcfcfffffffcfcfcf9f9f9f9f9f9fdfdfdfdfdfdfdfdfdfcfcfc
+fbfbfbfbfbfbfafafafafafafbfbfbfcfcfcfefefefdfdfdfbfbfbfbfbfbfcfcfcfdfdfd
+fbfbfbfdfdfdfffffffefefefbfbfbfafafafbfbfbfcfcfcfbfbfbfffffff8f8f8ffffff
+e4e4e4f4f4f4f2f2f2f5f5f5fffffffcfcfcf7f7f7fcfcfcfcfcfcfafafafdfdfdffffff
+fcfcfcf9f9f9fafafafdfdfdfdfdfdfafafaf9f9f9fcfcfcfdfdfdf7f7f7f9f9f9ffffff
+efefeff9f9f9f8f8f8f1f1f1fefefef6f6f6f4f4f4fcfcfcfffffffcfcfcf9f9f9fcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbeeeeeefdfdfdfffffff6f6f6
+f8f8f8fffffffffffff6f6f6f2f2f2f2f2f2fafafafffffff4f4f4ffffffffffffffffff
+fafafaf7f7f7ffffffe9e9e9f4f4f4fafafae9e9e9fffffffbfbfbf7f7f7fefefeeeeeee
+fffffffbfbfbfffffff1f1f1f9f9f9e1e1e1fffffff9f9f9fffffff9f9f9fffffff2f2f2
+eeeeeef7f7f7d9d9d9ffffffe3e3e3ebebebfffffff0f0f0fffffffefefefcfcfcfcfcfc
+fdfdfdfefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fffffffefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfcfcfcfafafafcfcfcfffffff6f6f6efefefedededf5f5f5eeeeee
+fffffffbfbfbf7f7f7f5f5f5f9f9f9fcfcfcfcfcfce5e5e5fffffffefefefbfbfbfafafa
+fafafafcfcfcffffffffffff000000000000000000000000000000
+000000000000000000000000030303f9f9f9fdfdfdf8f8f8f7f7f7fbfbfbf8f8f8f2f2f2
+fffffff6f6f6f2f2f2f8f8f8f6f6f6f7f7f7e4e4e4fffffffefefef6f6f6ffffffececec
+edededfffffffdfdfdfffffffffffff3f3f3efefeff4f4f4fdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbfdfdfdfcfcfcfbfbfbfafafafbfbfbfcfcfcfefefeffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefcfcfcfefefef5f5f5ffffff
+f8f8f8fffffffafafafffffffffffffffffffefefefffffffefefefafafafafafafcfcfc
+fbfbfbfafafafafafafcfcfcfefefefffffffdfdfdfcfcfcfefefef3f3f3f4f4f4ffffff
+fffffff3f3f3f2f2f2fefefef5f5f5fffffffcfcfcedededfbfbfbfffffff6f6f6f4f4f4
+e8e8e8f7f7f7fcfcfcfafafaeaeaeaf5f5f5fcfcfcfffffffffffff8f8f8f5f5f5fcfcfc
+fffffffcfcfcfbfbfbfffffffafafaf9f9f9f9f9f9fafafafcfcfcfcfcfcfafafaf8f8f8
+fffffff4f4f4eaeaeafffffffffffffcfcfce5e5e5eeeeeefafafaebebebfbfbfbffffff
+f9f9f9fefefefffffff2f2f2f9f9f9fcfcfcf3f3f3fffffff3f3f3fefefef5f5f5fbfbfb
+fffffffbfbfbedededfffffffffffff1f1f1fffffff9f9f9f8f8f8f8f8f8f8f8f8f9f9f9
+f9f9f9fafafafafafafafafafdfdfdfbfbfbfcfcfcfdfdfdfcfcfcf8f8f8fafafaffffff
+fefefefefefeffffffe8e8e8f5f5f5ffffffdcdcdcfafafafefefef7f7f7e7e7e7fdfdfd
+f4f4f4fffffff4f4f4fdfdfdfafafaebebebfbfbfbfffffff9f9f9fefefefffffff2f2f2
+f9f9f9fcfcfcf3f3f3fffffff3f3f3fefefef5f5f5fbfbfbfffffffbfbfbedededffffff
+fffffff1f1f1fffffff9f9f9f8f8f8f8f8f8f8f8f8f9f9f9f9f9f9fafafafafafafafafa
+fcfcfcfafafafbfbfbfdfdfdfbfbfbf8f8f8f9f9f9fefefefdfdfdfffffffffffffcfcfc
+fdfdfdf8f8f8e9e9e9f8f8f8fcfcfcf9f9f9f7f7f7f9f9f9fdfdfdfffffffffffffefefe
+fcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfafafaf9f9f9fafafafefefefefefefdfdfdfdfdfd
+fcfcfcfbfbfbfbfbfbfbfbfbf9f9f9fafafafbfbfbfbfbfbf9f9f9f8f8f8fafafafbfbfb
+fafafafbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8f9f9f9fffffff1f1f1f8f8f8f7f7f7
+f5f5f5fffffffafafaffffffeaeaeaf6f6f6ffffffefefeff1f1f1fffffffdfdfdffffff
+fdfdfdfafafaf9f9f9fcfcfcfcfcfcf9f9f9fafafafdfdfde9e9e9f7f7f7fafafaeeeeee
+fffffff8f8f8f8f8f8fffffffcfcfcf2f2f2f1f1f1fafafafffffffafafafafafaffffff
+fafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfbfbfbffffffe1e1e1f5f5f5
+ffffffeeeeeef3f3f3fefefeffffffe8e8e8e7e7e7fffffff9f9f9efefefedededeeeeee
+ffffffecececf7f7f7fffffff5f5f5ffffffffffffeaeaeaffffffffffffc7c7c7ffffff
+fffffff0f0f0fffffff9f9f9fffffffffffff9f9f9f3f3f3f8f8f8fffffff8f8f8ffffff
+fffffff1f1f1ffffffe1e1e1fffffffafafaf6f6f6fefefefffffffefefefcfcfcfcfcfc
+fdfdfdfefefefdfdfdfcfcfcfafafafafafafafafafafafafafafafafafafafafafafafa
+fbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+fcfcfcfcfcfcfbfbfbfbfbfbffffffe7e7e7fcfcfcffffffedededf8f8f8fffffff7f7f7
+f6f6f6e9e9e9f8f8f8fffffff6f6f6fffffff6f6f6fffffffdfdfdfbfbfbf8f8f8f7f7f7
+f7f7f7fafafafdfdfdffffff000000000000000000000000000000
+010101000000000000000000030303f9f9f9fcfcfcf8f8f8e8e8e8fffffff1f1f1fbfbfb
+f8f8f8fffffff5f5f5fffffffefefefffffff6f6f6e8e8e8eeeeeeffffffd8d8d8ffffff
+e4e4e4f5f5f5ebebebefefeffffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefeffffff
+fefefefffffffffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfffffffdfdfdf8f8f8ffffff
+fcfcfcfffffffafafafdfdfdfffffffefefefefefefffffffffffffbfbfbfafafafdfdfd
+fcfcfcfdfdfdfefefefffffffffffffdfdfdf9f9f9f5f5f5fbfbfbfafafafbfbfbfdfdfd
+fbfbfbf6f6f6f6f6f6fafafaf2f2f2fbfbfbfdfdfdfdfdfdfffffff3f3f3edededffffff
+fdfdfdfffffff6f6f6ddddddfffffffffffff0f0f0f5f5f5fffffffbfbfbfafafafcfcfc
+fcfcfcfafafaf9f9f9fbfbfbfefefefdfdfdfcfcfcfcfcfcfcfcfcfafafaf7f7f7f4f4f4
+fffffffdfdfdfefefef1f1f1f8f8f8f5f5f5fffffffffffffffffff7f7f7f2f2f2ffffff
+f3f3f3e8e8e8fffffffffffffefefefdfdfdf8f8f8fffffffafafafdfdfdfafafaffffff
+f7f7f7f5f5f5fcfcfce5e5e5f3f3f3f5f5f5111111fdfdfdf9f9f9f9f9f9f9f9f9fafafa
+fafafafbfbfbfbfbfbfbfbfbfcfcfcfbfbfbfcfcfcfdfdfdfbfbfbf7f7f7fafafaffffff
+fdfdfdfefefeffffffeeeeeef0f0f0efefefffffffe4e4e4fcfcfcfffffffffffff4f4f4
+fcfcfcffffffffffffecececfffffff7f7f7f2f2f2fffffff3f3f3e8e8e8ffffffffffff
+fefefefdfdfdf8f8f8fffffffafafafdfdfdfafafafffffff7f7f7f5f5f5fcfcfce5e5e5
+f3f3f3f5f5f5111111fdfdfdf9f9f9f9f9f9f9f9f9fafafafafafafbfbfbfbfbfbfbfbfb
+fbfbfbfafafafbfbfbfdfdfdfafafaf7f7f7f9f9f9fffffff1f1f1f5f5f5fbfbfbebebeb
+fffffff4f4f4f8f8f8fcfcfcfdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfafafa
+f4f4f4f6f6f6f8f8f8fbfbfbfcfcfcfdfdfdfefefefffffffdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfcfcfcfcfcfcfafafaf9f9f9fafafafcfcfc
+f9f9f9fafafafafafafbfbfbfafafaf8f8f8f6f6f6f5f5f5ecececedededffffffeeeeee
+ffffffeeeeeee9e9e9f4f4f4f1f1f1f6f6f6f7f7f7f3f3f3ffffffffffffecececffffff
+fdfdfdfafafaf9f9f9fcfcfcfcfcfcf9f9f9fafafafdfdfdf4f4f4fffffff9f9f9f3f3f3
+fffffff7f7f7e9e9e9f7f7f7f9f9f9f3f3f3f2f2f2f9f9f9fcfcfcf9f9f9fafafaffffff
+fafafafafafafafafafafafafafafafbfbfbfbfbfbfbfbfbffffffe6e6e6fbfbfbffffff
+ccccccffffffffffff000000000000fffffff2f2f2fafafa000000fffffffbfbfbffffff
+e0e0e0fffffff7f7f7000000111111dddddde9e9e9fffffff5f5f5f9f9f9fffffff9f9f9
+fafafaf4f4f4f8f8f8f9f9f9f0f0f0edededffffffeeeeeefcfcfc000000080808f0f0f0
+fbfbfbf7f7f7f2f2f2fffffffdfdfd0f0f0f050505ebebebfffffffdfdfdfbfbfbfbfbfb
+fdfdfdfefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafbfbfbfbfbfbfcfcfcfdfdfdfefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf3f3f3fffffff4f4f4f8f8f8f2f2f2fbfbfbedededfafafa
+e9e9e9fbfbfbfdfdfde7e7e7eeeeeefffffff0f0f0eeeeeefbfbfbfafafaf8f8f8f7f7f7
+f7f7f7fafafafdfdfdffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf7f7f7fafafaffffffffffffe2e2e2
+fffffff3f3f3f1f1f1f0f0f0eeeeeefbfbfbffffffffffffedededffffffddddddfefefe
+ffffffe6e6e6fffffff4f4f4efefeff8f8f8fcfcfcf7f7f7fafafafafafafbfbfbfcfcfc
+fcfcfcfdfdfdfefefefefefefafafafbfbfbfcfcfcfdfdfdfefefefefefefefefefefefe
+fdfdfdfefefefffffffefefefcfcfcfafafafafafafbfbfbfdfdfdf6f6f6f9f9f9f9f9f9
+fffffff9f9f9fbfbfbfcfcfcfffffffdfdfdfdfdfdfffffffefefefbfbfbfafafafdfdfd
+fdfdfdfdfdfdfefefefffffffffffffdfdfdf8f8f8f4f4f4f1f1f1fffffffffffff3f3f3
+f0f0f0fdfdfdfffffff3f3f3fffffff6f6f6edededfffffff8f8f8f4f4f4ffffffeeeeee
+f3f3f3f6f6f6f1f1f1fefefef1f1f1f9f9f9f6f6f6fffffff8f8f8fcfcfcfdfdfdfbfbfb
+f9f9f9fbfbfbfbfbfbf9f9f9fffffffefefefefefefefefefefefefcfcfcf8f8f8f4f4f4
+fefefef2f2f2e9e9e9fafafafffffffffffff5f5f5f0f0f0e4e4e4ffffffefefeff4f4f4
+fffffffbfbfbffffffe8e8e8fffffff9f9f9fcfcfcfbfbfbfffffffafafaffffffffffff
+fdfdfdfcfcfcfffffffffffffdfdfdffffff000000fffffffbfbfbfbfbfbfcfcfcfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfffffffafafaf8f8f8fbfbfbfdfdfdfbfbfbfafafafcfcfc
+f6f6f6f8f8f8efefeffffffffffffff2f2f2f2f2f2fffffff4f4f4fbfbfbfbfbfbffffff
+f4f4f4f8f8f8fbfbfbffffffe4e4e4ffffffefefeff4f4f4fffffffbfbfbffffffe8e8e8
+fffffff9f9f9fcfcfcfbfbfbfffffffafafafffffffffffffdfdfdfcfcfcffffffffffff
+fdfdfdffffff000000fffffffbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fffffffafafaf8f8f8fafafafcfcfcfafafafafafafdfdfdfffffff3f3f3f4f4f4ffffff
+efefefffffffffffffeeeeeef9f9f9fbfbfbfdfdfdfdfdfdfbfbfbfafafaf9f9f9f9f9f9
+fffffffffffffdfdfdfafafafafafaf8f8f8f2f2f2edededfcfcfcfcfcfcfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfefefefbfbfbfcfcfcfdfdfdfdfdfdfbfbfbfbfbfbfcfcfcfdfdfd
+f9f9f9f9f9f9fafafafbfbfbfafafaf9f9f9f6f6f6f3f3f3eeeeeeffffffdfdfdff8f8f8
+fffffffbfbfbf9f9f9fffffff0f0f0ffffffe0e0e0e9e9e9fffffffafafaf6f6f6f3f3f3
+fefefefafafaf9f9f9fbfbfbfbfbfbf9f9f9fafafafefefeffffffeeeeeef3f3f3ffffff
+f5f5f5fffffffffffff6f6f6fafafaf9f9f9f9f9f9f9f9f9f8f8f8f8f8f8fafafafdfdfd
+fbfbfbfbfbfbfafafafafafafafafafafafafafafafafafaeeeeeefffffffbfbfbffffff
+ffffffefefeffdfdfdffffff0a0a0afcfcfcffffffe5e5e5141414f1f1f1fffffff2f2f2
+eeeeeefefefef5f5f5ffffff000000fffffff7f7f7fdfdfdfbfbfbf5f5f5efefeffbfbfb
+fffffffffffffffffffbfbfbf8f8f8fffffff5f5f5f7f7f7fefefeffffff040404ffffff
+ecececffffffe4e4e4fffffff4f4f4f1f1f1060606fffffffdfdfdfcfcfcfafafafbfbfb
+fdfdfdfffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcf9f9f9fafafafafafafbfbfb
+fcfcfcfcfcfcfdfdfdfdfdfdf1f1f1ffffffecececffffffecececfffffff2f2f2ffffff
+eaeaeafffffff2f2f2e1e1e1ffffffe8e8e8fffffff9f9f9fcfcfcfbfbfbf9f9f9f9f9f9
+fafafafcfcfcfefefeffffff000000000000000000000000000000
+010101010101010101000000030303f9f9f9fcfcfcf7f7f7f8f8f80000000303030a0a0a
+f1f1f10505051010100f0f0f101010000000000000fffffff4f4f4ffffffffffff000000
+0000000d0d0deeeeeefffffff0f0f0fefefefdfdfdfbfbfbf9f9f9f9f9f9fafafafbfbfb
+fdfdfdfefefefffffffffffff9f9f9fafafafcfcfcfefefefffffffffffffefefefefefe
+fefefefffffffffffffffffffdfdfdfbfbfbfafafafbfbfbf8f8f8eeeeeef7f7f7f3f3f3
+fffffff6f6f6fffffffffffffffffffcfcfcfcfcfcfffffffefefefbfbfbfbfbfbfefefe
+fbfbfbfafafafbfbfbfdfdfdfffffffefefefcfcfcf9f9f9f7f7f7f1f1f1f3f3f3fafafa
+f8f8f8f0f0f0f3f3f3fefefef7f7f7fffffff4f4f4fffffff4f4f4ffffffe3e3e30e0e0e
+fffffffcfcfcf8f8f8ffffff090909040404010101080808eeeeeef9f9f9fefefef9f9f9
+f8f8f8fefefefffffffcfcfcf7f7f7f7f7f7f8f8f8f9f9f9fbfbfbfafafaf6f6f6f3f3f3
+070707030303000000ffffffeaeaeae2e2e2141414020202121212e1e1e1fefefef4f4f4
+ffffffe9e9e9fffffffffffff8f8f8efefeff8f8f8f1f1f1fffffff2f2f2fdfdfdfefefe
+f6f6f6f2f2f2ffffffe6e6e6f9f9f9ffffff000000f7f7f7f8f8f8f8f8f8f8f8f8f9f9f9
+f9f9f9f9f9f9fafafafafafafffffff9f9f9f4f4f4f9f9f9fffffffffffffbfbfbf9f9f9
+fffffffffffff7f7f7f5f5f5fcfcfcf6f6f60b0b0bfbfbfb0e0e0e000000000000ffffff
+f6f6f6eaeaea131313000000121212e1e1e1fefefef4f4f4ffffffe9e9e9ffffffffffff
+f8f8f8efefeff8f8f8f1f1f1fffffff2f2f2fdfdfdfefefef6f6f6f2f2f2ffffffe6e6e6
+f9f9f9ffffff000000f7f7f7f8f8f8f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9fafafafafafa
+fffffff9f9f9f3f3f3f8f8f8fefefefefefefbfbfbf9f9f9e7e7e7fffffffcfcfcf5f5f5
+080808000000000000131313f2f2f2f7f7f7fcfcfcfdfdfdfbfbfbfafafafbfbfbfdfdfd
+f8f8f8f4f4f4f0f0f0f4f4f4fefefefffffffffffff6f6f6fbfbfbfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefffffffbfbfbfcfcfcfdfdfdfdfdfdfbfbfbfafafafcfcfcfdfdfd
+fafafafafafafafafafbfbfbfbfbfbf9f9f9f6f6f6f3f3f3fffffff1f1f1000000151515
+000000111111010101030303030303e7e7e7fffffffdfdfdf8f8f8e0e0e0fffffff0f0f0
+fefefefafafaf9f9f9fbfbfbfbfbfbf9f9f9fafafafefefefdfdfdfffffffdfdfd020202
+fdfdfd020202000000030303fcfcfcfffffffffffffafafaf6f6f6f7f7f7fafafafcfcfc
+fbfbfbfbfbfbfbfbfbfafafafafafaf9f9f9f9f9f9f9f9f9fffffffffffffafafae8e8e8
+f7f7f7fffffff2f2f2f9f9f9000000fffffffcfcfcf8f8f8000000fffffffdfdfdfdfdfd
+fffffff9f9f9ffffffeeeeee030303f5f5f5eaeaeafcfcfcfffffff2f2f2070707ffffff
+edededf6f6f6fffffff3f3f3fbfbfbfbfbfbfcfcfcf1f1f1e8e8e8fcfcfc000000f8f8f8
+fdfdfdf4f4f4fefefef3f3f3fffffffbfbfb030303eaeaeafcfcfcfbfbfbfafafafbfbfb
+fdfdfdfffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8f9f9f9fafafa
+fcfcfcfdfdfdfdfdfdfefefefdfdfd000000000000fffffff4f4f4f8f8f8fdfdfdfafafa
+fdfdfdfffffff3f3f3ffffffffffff020202000000000000fcfcfcfcfcfcfbfbfbfbfbfb
+fcfcfcfefefeffffffffffff000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf7f7f7f8f8f8070707f9f9f9
+fdfdfdefefef000000fdfdfdf6f6f6fffffffdfdfd000000000000f0f0f0f6f6f6ffffff
+000000ffffffd4d4d4fffffffafafaecececfffffff9f9f9fffffffdfdfdfffffff0f0f0
+fffffffffffff7f7f7ffffffffffffedededf5f5f5f1f1f1fbfbfbf6f6f6fdfdfdfbfbfb
+f3f3f3ffffffe9e9e9fffffff6f6f6f8f8f8f8f8f8ecececfffffffcfcfcfbfbfbffffff
+fffffff4f4f4fdfdfdfffffffffffff6f6f6fffffffefefeffffffeeeeeefffffff9f9f9
+fffffffefefee9e9e9e8e8e8fffffff4f4f4fffffff8f8f8fffffff6f6f6fefefeeaeaea
+fdfdfdfffffffefefef8f8f8ffffffecececf6f6f6fffffffffffff7f7f7181818eaeaea
+fdfdfdfbfbfb090909000000fcfcfcf3f3f3f8f8f8f4f4f4020202fffffff1f1f1ffffff
+e3e3e3e6e6e6fffffff7f7f7fffffffbfbfbf4f4f4fafafae8e8e8ffffffedededffffff
+fbfbfb000000000000ffffffffffffffffffe2e2e2000000f8f8f8f2f2f2ffffffffffff
+f7f7f7fffffff0f0f0fffffffcfcfcfafafaf4f4f4fefefeffffffffffffffffffeeeeee
+fbfbfbfefefeffffffe4e4e4ffffffebebebfffffff5f5f5f3f3f3fffffff4f4f4ffffff
+f3f3f3fdfdfdffffffffffffffffffe4e4e4fffffffffffff9f9f9fafafaeeeeeefcfcfc
+fffffff2f2f2fcfcfcfffffff2f2f20e0e0ef5f5f5fdfdfdf5f5f5070707000000ffffff
+fffffff8f8f8ebebeb0d0d0df8f8f8f2f2f2fffffffffffff7f7f7fffffff0f0f0ffffff
+fcfcfcfafafaf4f4f4fefefeffffffffffffffffffeeeeeefbfbfbfefefeffffffe4e4e4
+ffffffebebebfffffff5f5f5f3f3f3fffffff4f4f4fffffff3f3f3fdfdfdffffffffffff
+fcfcfce9e9e9fffffffffffffefefeecececf4f4f4fcfcfcfbfbfbf6f6f60b0b0b030303
+fcfcfcf5f5f5fffffff8f8f8000000ffffffefefeffffffff7f7f7dbdbdbfffffffcfcfc
+fdfdfdeeeeeefffffffefefeecececfcfcfcf4f4f4fffffffffffff0f0f0ffffff000000
+fdfdfdf9f9f9f5f5f5fefefef5f5f5fefefef4f4f4fbfbfbecececfffffff2f2f2f2f2f2
+fcfcfcfcfcfcfcfcfcf4f4f4fdfdfdffffff050505fffffff7f7f7fffffff5f5f5000000
+fdfdfdedededfefefeeaeaea0a0a0afffffff5f5f5ffffffe2e2e2fffffff8f8f8f6f6f6
+eaeaeaffffff131313f3f3f3fbfbfbfefefefffffff8f8f8ecececf3f3f3151515ffffff
+edededf5f5f5000000fdfdfdffffffffffffe0e0e0e9e9e9fffffffffffffdfdfdf5f5f5
+e6e6e6fdfdfdfcfcfcf5f5f5fffffffffffffffffffffffff4f4f4fffffffdfdfdf3f3f3
+fffffff9f9f9f3f3f3ffffff000000f7f7f7fdfdfdfffffff2f2f2efefeff8f8f8fafafa
+fffffffefefee2e2e2ffffff000000fffffffffffff5f5f5fafafa0c0c0c030303020202
+fefefeeaeaeaf7f7f7fefefefffffffafafafffffff9f9f9fefefeffffff000000fefefe
+fbfbfbfcfcfcf2f2f2fffffff0f0f0ffffff090909fefefeffffffe5e5e5fffffff5f5f5
+f8f8f8fffffff1f1f1f9f9f9f6f6f6f8f8f8fffffffdfdfdfbfbfbffffffe3e3e3ffffff
+f6f6f6eaeaeaffffffe9e9e9fffffff1f1f1f1f1f1fffffff9f9f9fffffffcfcfcf2f2f2
+f5f5f5ffffffe4e4e4fdfdfd000000ffffff0a0a0afafafafbfbfbfcfcfcfffffffefefe
+f4f4f4fffffff2f2f2fafafa070707f5f5f5f8f8f8f8f8f8010101fcfcfcf6f6f6ffffff
+f7f7f7fcfcfcfffffff5f5f5000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfdfdfdfafafa070707fafafa
+fffffff7f7f7020202fcfcfcfdfdfdf7f7f7e6e6e6fefefe000000080808ffffffe8e8e8
+050505fdfdfdfffffff5f5f5dadadaffffffe5e5e5fdfdfde9e9e9e9e9e9f9f9f9ffffff
+f4f4f4ebebebd9d9d9fefefef9f9f9eaeaeafffffff3f3f3fcfcfcffffffffffffeeeeee
+fffffffffffffffffff1f1f1fffffff9f9f9fffffffffffffbfbfbf8f8f8e6e6e6ffffff
+e6e6e6fffffff5f5f5f8f8f8f5f5f5fcfcfcfbfbfbf7f7f7ffffffffffffe5e5e5ffffff
+ffffffe6e6e6fffffffffffff0f0f0ebebebffffffe4e4e4f2f2f2ebebebecececffffff
+f6f6f6eaeaeae4e4e4f6f6f6eaeaeafffffff6f6f6fffffffffffff2f2f2000000fbfbfb
+f7f7f7111111000000fffffffefefeffffffffffffffffff090909e9e9e9fffffffafafa
+ffffffffffffe4e4e4f4f4f4f4f4f4f8f8f8fffffffffffffcfcfce5e5e5ffffffe9e9e9
+f4f4f40f0f0f0f0f0f030303ffffffe8e8e8f5f5f5101010fefefefffffff5f5f5f4f4f4
+ebebebf5f5f5fffffff2f2f2fbfbfbfffffffefefefffffff1f1f1f6f6f6dadadaffffff
+ffffffffffffc9c9c9fffffff7f7f7fbfbfbf7f7f7ffffffdcdcdcffffffffffffeeeeee
+fffffffffffff8f8f8fdfdfdecececfffffff0f0f0fdfdfde9e9e9e4e4e4ffffffd7d7d7
+f1f1f1ffffffeeeeeeffffffeaeaea171717f8f8f8efefefececec0b0b0b080808060606
+ffffffedededffffff000000fefefefffffff5f5f5f4f4f4ebebebf5f5f5fffffff2f2f2
+fbfbfbfffffffefefefffffff1f1f1f6f6f6dadadaffffffffffffffffffc9c9c9ffffff
+f7f7f7fbfbfbf7f7f7ffffffdcdcdcffffffffffffeeeeeefffffffffffff8f8f8fdfdfd
+ebebebffffffeaeaeaf0f0f0edededfffffff1f1f1ebebebf5f5f50c0c0c000000ffffff
+f8f8f8f8f8f8fdfdfdf5f5f50c0c0cf7f7f7efefefffffffffffffffffffe2e2e2ffffff
+fefefeffffffe4e4e4f4f4f4f7f7f7fffffffefefefcfcfceaeaeaffffffffffff000000
+fbfbfbfffffffffffff8f8f8e8e8e8ffffffffffffe2e2e2ffffffffffffedededffffff
+fcfcfce5e5e5fffffff6f6f6ecececf3f3f3040404f2f2f2fdfdfde3e3e3f9f9f90a0a0a
+fcfcfcfffffffffffffefefef6f6f6fcfcfcffffffefefefffffffefefeffbfbfbf8f8f8
+ffffffe5e5e5010101fdfdfdffffffedededededede2e2e2f5f5f5ffffff020202efefef
+fffffff1f1f1070707f6f6f6dadadaffffffffffffffffffe4e4e4f6f6f6f9f9f9ffffff
+ebebebfffffffcfcfcedededfdfdfdf1f1f1f5f5f5efefeffffffff5f5f5efefefffffff
+fbfbfbf3f3f3e1e1e1ffffff040404fffffff8f8f8dadadafffffffffffffdfdfdfefefe
+dfdfdffffffff2f2f2ffffff101010d5d5d5edededfefefef9f9f9010101ffffff000000
+f8f8f8ffffffffffffeeeeeeebebebe8e8e8ffffffcdcdcdfefefef3f3f3232323f2f2f2
+e6e6e6fffffffafafae2e2e2fefefeffffff000000e9e9e9fafafaf5f5f5edededffffff
+e7e7e7ffffffefefeffffffffffffff9f9f9f5f5f5fbfbfbf0f0f0dbdbdbfffffff7f7f7
+f8f8f8fffffffffffff1f1f1f3f3f3ffffffe9e9e9fdfdfdf7f7f7efefeff8f8f8fefefe
+ffffffe2e2e2edededfffffff1f1f1f8f8f8010101fffffffefefef6f6f6f6f6f6ffffff
+fcfcfcfefefeffffff020202e9e9e9f1f1f1fffffffcfcfcf7f7f7121212fcfcfceeeeee
+fffffff5f5f5ffffffffffff000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfffffffbfbfb050505f8f8f8
+fffffffcfcfc040404f9f9f9fffffff2f2f2fffffff8f8f8ffffff000000eeeeeefcfcfc
+000000ffffffefefeff8f8f8ffffffeaeaeaffffffeeeeee0c0c0c111111fefefeffffff
+d1d1d1ffffff080808050505000000ffffffe3e3e3ffffff0505050202020000000d0d0d
+000000030303000000000000000000131313f7f7f7e7e7e7fdfdfd070707080808000000
+000000ffffffffffffffffffffffffe5e5e5ffffffffffffe8e8e8ffffff000000000000
+000000f8f8f8ffffffeeeeee0000001a1a1affffff000000080808ffffffffffff000000
+030303090909070707fffffff4f4f4ffffffe8e8e8ffffffffffff030303f0f0f0ffffff
+ffffff000000fbfbfbeeeeeefdfdfdf5f5f5f6f6f6f5f5f5f7f7f7ffffffffffffe3e3e3
+000000000000111111ffffffffffffeaeaeaf3f3f3000000050505000000000000ffffff
+ffffff020202ebebeb0d0d0dfcfcfcfffffff7f7f7000000ebebebf0f0f0ffffff050505
+141414101010fcfcfcfdfdfdededed1d1d1d0000000000001414140f0f0f000000000000
+040404000000101010e9e9e9ebebeb0505050d0d0df0f0f0ffffff000000080808050505
+0000000a0a0a121212f1f1f1f5f5f5ffffff000000010101020202101010d9d9d9ffffff
+fcfcfcffffffe4e4e4f3f3f30d0d0df0f0f0f0f0f0ffffffffffff131313e9e9e9060606
+fffffffffffff2f2f2040404ebebebf0f0f0ffffff050505141414101010fcfcfcfdfdfd
+ededed1d1d1d0000000000001414140f0f0f000000000000040404000000101010e9e9e9
+ebebeb0505050d0d0df0f0f0ffffff0000000808080505050000000a0a0a121212f1f1f1
+fdfdfdffffff0000000000000f0f0f010101fffffffefefeffffff000000fffffff8f8f8
+fffffffafafafefefef8f8f8efefefffffffffffffededed0d0d0d0000001b1b1bf6f6f6
+e7e7e7f2f2f20f0f0f000000141414000000000000000000ffffffeeeeee030303010101
+070707000000edededffffffffffff0000000a0a0a0c0c0cffffff000000000000020202
+ffffff000000000000020202ffffff050505101010000000020202ffffffe5e5e5040404
+f9f9f9efefefe3e3e3080808f5f5f5111111070707010101e3e3e30a0a0a181818000000
+f6f6f6000000161616020202000000fffffffffffff1f1f1ffffff0e0e0ef5f5f5f7f7f7
+fdfdfdf1f1f1040404fbfbfbffffff0000000c0c0c000000060606010101020202ffffff
+080808030303000000eeeeeeffffff181818000000ffffffffffff000000080808020202
+fffffffcfcfcfffffffcfcfc121212f5f5f5f5f5f50f0f0f000000f9f9f9f1f1f1fdfdfd
+fbfbfb0c0c0c0101010000000a0a0affffffdededefffffff9f9f9090909f0f0f0191919
+000000d7d7d7fffffff3f3f3fefefeffffffe5e5e5060606070707000000000000ffffff
+fffffff4f4f4eaeaea1717170505050000000e0e0effffffffffff171717010101e2e2e2
+131313000000f0f0f0f3f3f3fdfdfd000000000000020202fafafafffffff0f0f0060606
+0000000e0e0e0e0e0efbfbfbffffff000000030303010101191919fafafaf6f6f6131313
+000000f3f3f3fffffffffffffdfdfdfbfbfb131313f1f1f1fffffffdfdfdf7f7f7f6f6f6
+f5f5f5f4f4f4ebebeb0d0d0dfefefeffffffe7e7e7f4f4f4fefefe050505f7f7f7fefefe
+fefefefafafaf1f1f1ffffff000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfdfdfdfafafa050505f6f6f6
+fffffffafafa030303f7f7f7ebebebffffffedededfcfcfcf9f9f90a0a0affffffffffff
+070707fefefef6f6f6fbfbfbd9d9d9f1f1f1cececeffffff000000030303fffffff8f8f8
+ffffff000000ebebebfafafaf9f9f9070707fffffff4f4f4eeeeee121212fffffff7f7f7
+fefefe0a0a0aefefefffffffffffff000000f2f2f2ffffff1a1a1afbfbfbedededfbfbfb
+ffffff000000000000f1f1f1eaeaeafffffff5f5f5fffffff2f2f2070707ffffffffffff
+fcfcfc000000ffffffe8e8e8ffffff000000000000fbfbfbf0f0f0f7f7f7000000ffffff
+fcfcfcf1f1f1fefefe0000000b0b0bfffffffafafafafafafdfdfd050505fffffff3f3f3
+f9f9f9171717f9f9f9f5f5f5fcfcfcfdfdfdfbfbfbf3f3f3f5f5f5edededffffff0a0a0a
+f3f3f3ffffffe8e8e8010101fcfcfcffffff030303ffffffe4e4e4ffffff000000f5f5f5
+f9f9f9000000ffffffe2e2e2050505ffffffefefef000000ffffffebebeb0f0f0f000000
+fcfcfce2e2e2090909f2f2f2f4f4f4fdfdfd1d1d1dffffffe8e8e8ffffff000000fcfcfc
+efefefffffff000000fffffffffffff0f0f00d0d0dfdfdfde0e0e0ffffff000000ffffff
+e3e3e3fdfdfd0b0b0bffffffffffff000000fffffff7f7f7fefefeefefef060606000000
+f2f2f2eaeaeaffffffffffff000000f0f0f0ffffffe7e7e7ffffff000000fffffff3f3f3
+000000f0f0f0f9f9f9060606ffffffebebeb0f0f0f000000fcfcfce2e2e2090909f2f2f2
+f4f4f4fdfdfd1d1d1dffffffe8e8e8ffffff000000fcfcfcefefefffffff000000ffffff
+fffffff0f0f00d0d0dfdfdfde0e0e0ffffff000000ffffffe3e3e3fdfdfd0b0b0bffffff
+fbfbfb000000fffffff2f2f2f9f9f9f7f7f70000000e0e0ef2f2f20f0f0ff9f9f9f9f9f9
+fbfbfbfdfdfdfffffff2f2f2ffffffefefefffffff000000efefeff8f8f8ffffff000000
+ffffffebebebffffff000000fefefeedededffffff0f0f0ff3f3f3fdfdfdffffff000000
+fffffffffffffffffff9f9f9000000ffffffedededfefefe000000ffffff222222020202
+eeeeeeffffff151515fcfcfcf3f3f3e7e7e7171717f6f6f6fbfbfbffffffeeeeee111111
+040404050505050505000000f9f9f9f1f1f1000000202020fffffffcfcfc0f0f0ffbfbfb
+fbfbfbffffff000000ffffffffffffe5e5e5e4e4e4ffffffffffff000000ffffffffffff
+ffffffffffff090909f7f7f7f1f1f1ffffff000000ffffffecececfbfbfb171717fafafa
+f8f8f8000000ffffffffffffe2e2e2040404fffffff9f9f90000001a1a1affffffeeeeee
+060606fcfcfcfafafaececec000000fcfcfcfefefeffffff000000ffffffffffffffffff
+0a0a0afbfbfbffffffffffff000000f9f9f9f8f8f8f5f5f5000000fbfbfbfbfbfbe7e7e7
+1d1d1dffffffd7d7d7fffffff7f7f7f9f9f9030303ffffffe7e7e7ffffff060606fdfdfd
+fafafaebebeb151515f4f4f4ffffffffffff000000ffffffdcdcdcf8f8f8080808040404
+fffffffbfbfbfffffff4f4f4080808fffffff5f5f5fbfbfb0b0b0bededed000000f7f7f7
+fbfbfbeeeeee000000ededed0c0c0cefefeffffffff4f4f4000000f5f5f5ffffff010101
+000000fffffff4f4f4fafafae3e3e3ffffff000000f4f4f4ffffffebebebffffffffffff
+fffffffffffff5f5f5101010f3f3f3ffffffeaeaeafffffffbfbfb000000fffffff5f5f5
+f0f0f0fffffff6f6f6f9f9f9000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfafafafcfcfc090909f7f7f7
+fffffff8f8f8030303f9f9f9e5e5e5ffffffe9e9e9f8f8f8f5f5f5060606fcfcfcffffff
+000000efefefffffffdededefffffffffffffbfbfbf0f0f0fffffffffffff4f4f4fbfbfb
+000000fffffffffffffffffffdfdfde6e6e6090909fffffff4f4f4000000f9f9f9ffffff
+ffffff000000ffffffffffffebebeb202020fffffff3f3f3000000fafafaffffffe6e6e6
+f5f5f5090909ffffffffffffffffffedededf3f3f3f6f6f6232323efefeff0f0f0fdfdfd
+fdfdfdf0f0f0000000ffffffe4e4e4000000fffffff5f5f5ffffffdcdcdc000000fbfbfb
+fffffff3f3f3ffffff000000f7f7f7f5f5f5e5e5e5ffffff040404cbcbcbffffffeeeeee
+f2f2f2111111f5f5f5f3f3f3fdfdfdfffffffffffffafafafffffffcfcfc000000f9f9f9
+ffffffe9e9e9edededffffff000000fafafa000000040404fcfcfcfffffff7f7f7f7f7f7
+fbfbfb000000f7f7f7ffffff090909000000ffffff0d0d0dfafafaf2f2f2f5f5f5f8f8f8
+ffffff0f0f0f232323ecececfffffffdfdfd000000fffffff6f6f6fcfcfc000000ffffff
+fdfdfdffffff000000e0e0e0ffffffffffff000000fefefefffffff5f5f5000000f4f4f4
+fffffffdfdfd000000fbfbfbffffff0b0b0bf4f4f4fafafaf1f1f1ffffff030303f2f2f2
+fcfcfcffffffffffff000000f4f4f4ffffffebebebf7f7f7e4e4e40b0b0bfffffff1f1f1
+0b0b0b0f0f0fffffff000000fafafaf2f2f2f5f5f5f8f8f8ffffff0f0f0f232323ececec
+fffffffdfdfd000000fffffff6f6f6fcfcfc000000fffffffdfdfdffffff000000e0e0e0
+ffffffffffff000000fefefefffffff5f5f5000000f4f4f4fffffffdfdfd000000fbfbfb
+ffffff0d0d0df6f6f6f9f9f9e9e9e9ffffff000000fefefef4f4f4101010fafafaf9f9f9
+fbfbfbfdfdfdfffffff3f3f3f6f6f6ffffff000000fffffffffffffcfcfcf7f7f7f3f3f3
+000000ffffffffffff0e0e0ef9f9f9fafafaf4f4f4000000f0f0f0fefefee0e0e0111111
+fffffff3f3f3f1f1f1070707fbfbfbf8f8f8ffffffffffff000000ffffffdcdcdc060606
+f8f8f8060606dadadaf3f3f3fffffffdfdfd000000ffffffffffffe6e6e6f6f6f6040404
+fafafaf4f4f4efefef040404ffffffffffffffffff000000fefefe000000f4f4f4fbfbfb
+ffffffe7e7e7080808f9f9f9f4f4f4ffffffe2e2e2ffffff000000efefefffffffe2e2e2
+f2f2f2f1f1f1000000fffffffffffff8f8f8000000fffffff4f4f4ffffff000000fbfbfb
+f4f4f40e0e0e000000fffffff8f8f8090909f3f3f3efefefffffffffffffe7e7e7161616
+000000fffffff9f9f9ffffff222222f9f9f9ffffffececec131313f1f1f1ffffff000000
+f3f3f3f7f7f7f9f9f9e6e6e6000000ffffffffffffeeeeee0707071414140303030d0d0d
+000000f4f4f4fdfdfdfcfcfcf1f1f1000000fefefefffffff9f9f9fdfdfd000000ededed
+ffffff000000fffffff8f8f8f0f0f0fefefe000000fefefeffffffffffff000000ededed
+ebebebfdfdfdf9f9f9020202e8e8e8fffffff9f9f9f1f1f1020202f2f2f21818180b0b0b
+ffffffefefefffffffffffff0000000b0b0bedededf8f8f8fdfdfdffffffe7e7e7fefefe
+ffffffdbdbdbfffffff0f0f0fffffffbfbfb000000fffffff6f6f6f3f3f3ffffffe0e0e0
+ecececf4f4f4ffffff090909eaeaeafcfcfcfffffff3f3f3fefefe020202fffffff8f8f8
+f3f3f3fffffff9f9f9fcfcfc000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfafafafefefe0c0c0cf8f8f8
+fffffffafafa060606fafafafefefeeeeeeefffffff7f7f7ffffff000000edededf9f9f9
+050505e0e0e0fefefefdfdfdfffffff6f6f6f0f0f0fcfcfcffffffebebebf4f4f4ffffff
+050505fefefeffffffe6e6e6fffffff1f1f1000000ffffffffffff060606ffffffdddddd
+fcfcfc121212fbfbfbe2e2e2ffffff000000fefefef6f6f6fcfcfc0a0a0a010101000000
+161616fcfcfceaeaeaecececf8f8f8f4f4f4ffffffffffff000000fffffffffffff3f3f3
+ebebebffffff121212fffffffdfdfd0a0a0afcfcfcffffffdcdcdcfffffffbfbfb161616
+000000010101000000f5f5f5fffffffefefeffffff000000ffffffffffffd0d0d0fdfdfd
+ffffff000000fafafaeeeeeefdfdfdf6f6f6f7f7f7f6f6f6fafafaeaeaea1d1d1df6f6f6
+f4f4f4ffffffefefeff7f7f7010101ffffffececec000000030303000000fffffffafafa
+efefef2b2b2bf0f0f0e1e1e1f3f3f30e0e0ef8f8f8090909fcfcfceeeeeeffffff000000
+060606e8e8e8000000ffffffecececf8f8f8070707fefefefcfcfcf5f5f5141414ffffff
+fafafaf0f0f0121212e7e7e7e5e5e5fefefe090909fefefefffffff6f6f60f0f0fefefef
+fbfbfbffffff050505fcfcfcecececffffff0000001b1b1b000000000000e6e6e6fbfbfb
+f3f3f3ffffff070707f6f6f6fbfbfbf5f5f5fefefeffffffffffff0d0d0de8e8e8fafafa
+fafafa010101ededed0f0f0ffcfcfceeeeeeffffff000000060606e8e8e8000000ffffff
+ecececf8f8f8070707fefefefcfcfcf5f5f5141414fffffffafafaf0f0f0121212e7e7e7
+e5e5e5fefefe090909fefefefffffff6f6f60f0f0fefefeffbfbfbffffff050505fcfcfc
+fdfdfdfefefe000000222222000000000000ffffffe5e5e5ffffff000000fffffff8f8f8
+fffffff9f9f9fffffff9f9f9fffffff4f4f4151515efefefe6e6e6fffffffffffff9f9f9
+000000fbfbfbf2f2f20b0b0bf0f0f0ffffffefefef1b1b1bffffffeaeaeaffffff020202
+dcdcdcf9f9f9ffffff0909091111110000000000000c0c0c090909fffffffefefefbfbfb
+060606ffffffffffffe3e3e3e1e1e1ffffff000000f9f9f9f8f8f8ffffffeeeeee090909
+fdfdfdfefefeeaeaeaffffffeaeaeae2e2e2f9f9f9e7e7e7020202fffffff2f2f2ffffff
+fdfdfdf3f3f3070707ffffffd2d2d2fdfdfdfafafa000000fbfbfbfffffffbfbfbefefef
+ffffffffffff060606e6e6e6f4f4f4ffffff0e0e0ee6e6e6ffffffffffff000000ffffff
+fcfcfcececec3c3c3ce3e3e3ffffff000000fffffffbfbfbf8f8f8030303000000ffffff
+000000f5f5f5fbfbfbe6e6e6000000f9f9f9fafafaffffff000000ffffffededed010101
+f8f8f8f9f9f9fefefeffffff000000f7f7f7e4e4e4ffffff000000e0e0e0fffffffefefe
+1d1d1d000000fffffff0f0f0f5f5f51f1f1ff6f6f6f2f2f2f0f0f0f4f4f4020202ffffff
+eaeaea000000fffffffffffffafafafdfdfd111111f8f8f8fdfdfde3e3e3050505fdfdfd
+ffffffffffffdbdbdb020202101010000000000000060606000000f6f6f6e8e8e8090909
+000000000000e2e2e2fffffff6f6f60000001313130a0a0ae5e5e5fffffffbfbfbdedede
+f7f7f7fcfcfcffffffeeeeeef7f7f7f3f3f30d0d0dfffffff1f1f1fffffffffffffcfcfc
+ffffffeeeeeef2f2f2070707fffffff0f0f0ffffffdfdfdffdfdfd050505f6f6f6fefefe
+fefefefafafaf1f1f1ffffff000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfbfbfbfdfdfd080808f4f4f4
+fffffffdfdfd060606f6f6f6fdfdfdf9f9f9ebebebffffff010101101010ffffffededed
+090909fffffff1f1f1f8f8f8efefef010101fefefeffffffe9e9e9f9f9f9ffffffefefef
+070707f3f3f3fffffff7f7f7f6f6f6ffffff030303f2f2f2f3f3f30a0a0afcfcfcffffff
+f2f2f2050505fffffffffffffafafa191919cbcbcbffffffffffff000000ffffffffffff
+e2e2e2fcfcfcfffffffcfcfce6e6e6fffffff5f5f5ffffff151515eaeaeafdfdfdf8f8f8
+fffffff7f7f7010101ffffffececec0e0e0eebebebf1f1f1fefefee9e9e9fbfbfb050505
+fafafaf1f1f1fffffffffffffdfdfdf0f0f0ffffff0b0b0bf5f5f5efefeffffffff8f8f8
+ffffff181818010101fffffffdfdfdfafafaf9f9f9f6f6f60d0d0dffffff000000e6e6e6
+f3f3f3fffffff0f0f0efefef080808f5f5f5f6f6f6fcfcfcffffffffffff000000f8f8f8
+f9f9f9080808eaeaeafbfbfbffffff000000000000060606f8f8f8fbfbfb030303ffffff
+fbfbfbffffff000000fffffffefefeffffff131313ebebebf5f5f5fdfdfd090909f1f1f1
+ffffffe5e5e5000000ffffffffffffffffff030303e5e5e5f1f1f1ffffff000000ffffff
+fbfbfbf7f7f7000000fefefeecececfdfdfd000000ffffffffffffe9e9e9ffffffeeeeee
+f5f5f5ffffff000000fffffffffffffafafaf2f2f2fefefee7e7e71f1f1fffffffe7e7e7
+ffffff0d0d0d0000000a0a0af8f8f8fbfbfb030303fffffffbfbfbffffff000000ffffff
+fefefeffffff131313ebebebf5f5f5fdfdfd090909f1f1f1ffffffe5e5e5000000ffffff
+ffffffffffff030303e5e5e5f1f1f1ffffff000000fffffffbfbfbf7f7f7000000fefefe
+f2f2f2ffffff000000fffffffdfdfdfffffff1f1f1f5f5f5fcfcfc111111000000ffffff
+f6f6f6f7f7f7fdfdfdf7f7f7030303ffffff060606dededefffffffafafaf8f8f8e5e5e5
+0d0d0dffffffefefef000000ffffffebebebfbfbfb000000f1f1f1f0f0f0e7e7e7060606
+fffffff2f2f2ffffff060606f9f9f9fffffffefefeffffffe9e9e9eeeeeef8f8f8060606
+fdfdfd000000f8f8f8fffffffbfbfbffffff0f0f0ffffffff2f2f2eeeeeeffffff050505
+dfdfdffffffffafafafafafa181818fdfdfde9e9e9141414ffffff000000f5f5f5e6e6e6
+eeeeeeffffff0b0b0be8e8e8fffffff3f3f3ffffff101010eeeeeeedededebebebffffff
+fdfdfdffffff000000fffffffbfbfbeaeaea000000fefefefcfcfcf3f3f3151515eeeeee
+fffffffcfcfc000000f1f1f1040404ffffffe7e7e7fdfdfd050505f9f9f9f5f5f5d9d9d9
+090909ffffffeaeaeaffffff000000ffffffecececffffff141414e4e4e4fdfdfd010101
+ffffffe8e8e8f5f5f5f4f4f4000000fffffff1f1f1000000fffffffffffff5f5f5e9e9e9
+fefefe020202f5f5f5fffffff3f3f3000000fffffff5f5f5f6f6f6ffffff000000f9f9f9
+ffffff111111ffffffc6c6c6f9f9f9ffffff000000ffffffdbdbdbffffff010101f0f0f0
+efefeff9f9f9f5f5f5010101f9f9f9f7f7f7ffffffebebebfcfcfcffffffedededffffff
+f4f4f4f9f9f91f1f1ff3f3f3fdfdfdfffffff7f7f7dfdfdf090909ffffffe1e1e1ffffff
+fffffff5f5f5fffffff3f3f3fffffff3f3f30a0a0affffffffffffecececfbfbfbf4f4f4
+eeeeeefffffff4f4f4040404fefefedfdfdffffffffafafaf1f1f10c0c0cf6f6f6e8e8e8
+fefefeefefeffcfcfcffffff000000000000000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfbfbfbfafafa010101efefef
+ffffffffffff040404efefeff2f2f2fffffffefefe040404020202f5f5f5f9f9f9ffffff
+010101efefeffffffffdfdfdffffff000000fdfdfdefefef070707050505f1f1f1f5f5f5
+f8f8f8131313f3f3f3fffffff9f9f9000000ebebebfffffffdfdfd000000fffffffafafa
+ffffff0c0c0cedededebebebffffff000000ffffffececece5e5e5151515010101000000
+141414000000fafafafdfdfd000000090909f6f6f6edededf9f9f9171717e0e0e0ffffff
+ececec060606e9e9e9fefefefafafa050505fffffff7f7f7fdfdfdedededffffff010101
+030303111111000000020202ffffffffffff000000f4f4f4fffffff0f0f0ffffffffffff
+f8f8f8f7f7f7060606000000fdfdfdf6f6f6fdfdfdf9f9f9080808efefefffffff151515
+fafafaf6f6f6ffffff000000ffffffefefef0f0f0ffafafaf4f4f4fbfbfb080808fcfcfc
+fcfcfc0c0c0cf3f3f3f7f7f7edededf6f6f6222222040404fafafaf5f5f5000000e5e5e5
+f3f3f3000000282828f3f3f3fafafaefefef101010f2f2f2e2e2e2ffffff000000fefefe
+eaeaeaffffff000000fefefef9f9f9f4f4f4070707fffffffafafaffffff030303fbfbfb
+fffffff6f6f6131313f6f6f6fffffff8f8f80000000000000404040b0b0b000000ffffff
+ffffff000000fffffffffffffbfbfbf3f3f3ffffffeeeeeeffffff000000f4f4f4fdfdfd
+f2f2f2fdfdfd171717000000fafafaf5f5f5000000e5e5e5f3f3f3000000282828f3f3f3
+fafafaefefef101010f2f2f2e2e2e2ffffff000000fefefeeaeaeaffffff000000fefefe
+f9f9f9f4f4f4070707fffffffafafaffffff030303fbfbfbfffffff6f6f6131313f6f6f6
+ffffffededed0606060707070101010000000c0c0cf7f7f7fffffffcfcfc0d0d0d030303
+fafafaf4f4f4fffffffbfbfb000000fdfdfdf7f7f7141414f6f6f6f6f6f6ffffff020202
+f1f1f1f8f8f8fdfdfd0c0c0cfdfdfdfdfdfdfefefe000000f1f1f1fffffff1f1f1000000
+fffffff9f9f9ffffff111111000000fffffff3f3f3f3f3f3101010fdfdfd000000f9f9f9
+ffffff060606040404fffffff9f9f9fefefe000000fffffffffffffffffff4f4f40e0e0e
+fffffff1f1f1fafafafefefe090909ececec0b0b0bffffffe1e1e10e0e0e070707ffffff
+fafafaffffff000000fbfbfbfefefeffffff000000f6f6f6ffffffffffffffffffffffff
+f4f4f4f3f3f3151515f9f9f9efefefffffff000000f8f8f8ffffffffffff0c0c0cf7f7f7
+fffffffbfbfb0a0a0a171717030303f6f6f6fffffffafafa000000efefefffffff050505
+000000fffffff5f5f5f2f2f2141414e8e8e8fffffff4f4f4000000ffffffe3e3e30f0f0f
+0d0d0dfefefefdfdfd0303030b0b0becececfbfbfb090909ffffffeaeaeafefefeffffff
+f0f0f0141414020202f2f2f2ffffff000000030303eeeeeeffffff000000080808ffffff
+efefef000000020202ffffffffffff000000090909e0e0e0fefefeebebeb111111f7f7f7
+fffffff9f9f9f1f1f10a0a0a020202fcfcfcf5f5f5fefefe080808f5f5f5000000ffffff
+ffffffffffff000000fdfdfd000000f1f1f1f6f6f6ffffff0d0d0de6e6e6ffffff000000
+000000fafafafffffffdfdfdf8f8f8fcfcfc131313fffffff5f5f5f2f2f2ffffff050505
+040404f9f9f9f6f6f6f6f6f6000000f9f9f9f1f1f1ffffff010101fcfcfcf6f6f6ffffff
+f7f7f7fcfcfcfffffff5f5f5000000000000000000000000000000
+020202010101000000000000010101f7f7f7fafafaf6f6f6f8f8f8000000121212050505
+ffffff0000001818180d0d0d0b0b0b000000000000fcfcfcf6f6f6edededffffff000000
+0f0f0f1313130101010a0a0a010101010101fafafaf6f6f6020202040404f8f8f8f9f9f9
+f8f8f8f5f5f5000000000000020202f6f6f6fafafaffffff000000000000020202f5f5f5
+050505000000040404fbfbfb040404000000000000fafafa212121d4d4d4ffffffe8e8e8
+fdfdfd0101010c0c0cffffff000000010101f7f7f7fbfbfbfbfbfbf7f7f7010101000000
+000000f5f5f5fafafaffffff000000060606090909fbfbfbf9f9f9ffffff080808dedede
+fcfcfcffffffe8e8e80b0b0b040404ffffff000000f3f3f3fffffff1f1f1ffffffffffff
+fffffff0f0f0fefefefcfcfc080808000000090909000000f3f3f3ffffffedededffffff
+000000050505000000fffffff7f7f7ffffff000000080808080808000000fffffff7f7f7
+0a0a0a000000070707ffffffe0e0e0f1f1f1ffffff060606f5f5f5e4e4e4fbfbfb0d0d0d
+000000ffffff050505000000ffffff000000000000111111f4f4f40909090c0c0c000000
+ffffff000000000000000000ffffff050505040404000000fbfbfb000000000000000000
+ffffff090909090909000000f1f1f1131313fcfcfcf5f5f5fefefeffffff000000040404
+ffffff050505edededfafafafefefef5f5f5f9f9f9ffffff090909010101020202fbfbfb
+f6f6f6e7e7e7ffffff000000f5f5f5e4e4e4fbfbfb0d0d0d000000ffffff050505000000
+ffffff000000000000111111f4f4f40909090c0c0c000000ffffff000000000000000000
+ffffff050505040404000000fbfbfb000000000000000000ffffff090909090909000000
+eeeeee141414fefefef6f6f6fbfbfbffffff0000000c0c0cfdfdfdebebebf8f8f8ffffff
+0000000303030c0c0c000000f4f4f4ffffffedededffffff000000010101000000ffffff
+fbfbfbffffff000000050505010101ffffff0d0d0d000000010101f7f7f7ffffff0b0b0b
+000000090909f6f6f6fbfbfb010101020202040404000000ffffff0000000000001e1e1e
+fcfcfc000000090909000000e5e5e5ffffff020202040404141414f7f7f7000000070707
+101010000000000000040404000000040404151515000000f6f6f61c1c1c000000020202
+fffffff8f8f80000001616160d0d0dffffff0b0b0bedededfffffff0f0f0fffffff7f7f7
+f5f5f50909090b0b0b000000ffffff0000000505050f0f0ffbfbfb050505161616000000
+f0f0f0fffffff5f5f5000000fffffffffffff8f8f8fcfcfcf8f8f80202020b0b0bffffff
+0b0b0b000000ffffff0000000000000f0f0ff4f4f4040404000000080808d9d9d9fefefe
+0606060000000d0d0dfefefe0000000a0a0a101010000000040404efefeffcfcfcf7f7f7
+0d0d0d0000000000000a0a0afffffffbfbfb000000303030000000ffffff040404000000
+fffffff3f3f3050505181818000000ffffff020202080808f9f9f9080808000000080808
+efefeff6f6f6fafafaf4f4f40c0c0c1111110000000d0d0dedededfbfbfb060606050505
+060606000000fffffff0f0f0141414070707040404010101ecececfffffff6f6f6080808
+080808f6f6f6ffffffececec0202020505050000000f0f0ffbfbfbfefefefefefe000000
+000000fffffff4f4f4eeeeeefbfbfb080808000000101010f6f6f6fafafaf7f7f7eeeeee
+f0f0f0fdfdfdffffffffffff000000000000000000000000000000
+010101000000000000000000020202f8f8f8fcfcfcf8f8f8f8f8f8fffffffdfdfdeaeaea
+fffffff7f7f7eeeeeef2f2f2fdfdfdfffffff9f9f9fffffff5f5f5ffffffecececffffff
+f5f5f5e2e2e2fffffff4f4f4ffffffe8e8e8fffffff2f2f2fffffffffffffffffff9f9f9
+f8f8f8fefefefbfbfbfffffff3f3f3fffffff7f7f7f3f3f3fffffffdfdfdeeeeeefefefe
+fffffff5f5f5eeeeeeffffffe5e5e5fffffffffffff1f1f1000000f2f2f2edededffffff
+ffffffffffff020202f2f2f2fffffffcfcfcfffffff9f9f9f9f9f9fffffffcfcfcffffff
+fbfbfbfffffffcfcfcf6f6f6fffffffbfbfbebebebfafafafbfbfbfbfbfb000000ffffff
+dcdcdcffffffe1e1e1ffffff030303000000fffffffcfcfce6e6e6e6e6e6fdfdfdffffff
+f1f1f1ffffffe6e6e6fbfbfbfcfcfcffffffe6e6e6fffffffffffff4f4f4fffffff6f6f6
+efefefffffffe9e9e9fafafaf7f7f7fcfcfcfffffffffffffffffffffffffcfcfcf7f7f7
+f7f7f7ffffffe6e6e6fffffffffffffffffffcfcfce9e9e9f8f8f8ffffffe6e6e6ffffff
+fefefefefefee4e4e4f8f8f8efefeffcfcfcf5f5f5fcfcfcf5f5f5fefefef7f7f7ffffff
+ecececfffffff6f6f6edededfffffffbfbfbf0f0f0fffffffffffffffffff6f6f6fafafa
+ffffffeeeeeee0e0e0ffffffffffff000000fffffff6f6f6ecececf1f1f1fafafa0a0a0a
+000000fffffffffffffffffffdfdfdf4f4f4ffffffebebebf1f1f1f3f3f3ffffffffffff
+fffffffffffff6f6f6fffffff8f8f8ffffffe6e6e6fffffffefefefefefee4e4e4f8f8f8
+efefeffcfcfcf5f5f5fcfcfcf5f5f5fefefef7f7f7ffffffecececfffffff6f6f6ededed
+fffffffbfbfbf0f0f0fffffffffffffffffff6f6f6fafafaffffffeeeeeee0e0e0ffffff
+ffffff000000fffffff4f4f4f1f1f1f8f8f8fbfbfb050505f6f6f6ffffffedededf6f6f6
+fcfcfcffffffe9e9e9fafafafffffff3f3f3fffffff8f8f8f0f0f0ffffffe7e7e7fcfcfc
+f6f6f6e7e7e7fffffff2f2f2f0f0f0ffffffe8e8e8fefefeeaeaeafffffff2f2f2f3f3f3
+ffffffecececfbfbfbfbfbfbfafafaffffffd9d9d9fffffff9f9f9fdfdfdfffffffdfdfd
+f6f6f6f0f0f0ffffffefefefffffffdfdfdfe1e1e1fefefedededeffffffecececffffff
+f4f4f4f2f2f2fffffff2f2f2f2f2f2ffffffe6e6e6f8f8f8ffffffedededf5f5f5ffffff
+ffffffe6e6e6ffffffe4e4e4f0f0f0000000f7f7f7ffffffe5e5e5fffffff6f6f6f9f9f9
+ffffffe5e5e5fffffffffffff7f7f7fffffffffffff8f8f8fcfcfcf8f8f8f7f7f7fefefe
+ffffffedededfffffff4f4f4f6f6f6ffffffecececfefefefafafaffffffe7e7e7f5f5f5
+f6f6f6fcfcfcf5f5f5f9f9f9ffffffdfdfdffffffff9f9f9fcfcfcfffffffffffff9f9f9
+f0f0f0fffffff7f7f7fffffff7f7f7e5e5e5fffffffefefef6f6f6ffffffefefefeaeaea
+fdfdfdf2f2f2ffffffdbdbdbfafafafcfcfcffffffd5d5d5f0f0f0ffffffecececfdfdfd
+f5f5f5f9f9f9fafafaecececffffffffffffdededefffffff9f9f9ecececfffffffbfbfb
+eeeeeeffffffecececffffffffffffeeeeeefffffff4f4f4f6f6f6ffffffeaeaeaf6f6f6
+fffffff9f9f9fdfdfdf9f9f9fafafafffffffafafafdfdfdfcfcfcf7f7f7f8f8f8eeeeee
+eeeeeef8f8f8f7f7f7fcfcfcf0f0f0ffffffe5e5e5fffffff7f7f7f4f4f4fffffff6f6f6
+fafafafffffff8f8f8f4f4f4ffffffeaeaeafffffff3f3f3f5f5f5fbfbfbfafafaf3f3f3
+f5f5f5fffffffffffffdfdfd000000000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbedededfcfcfcffffffececec
+fffffffbfbfbfffffffffffff7f7f7fffffffffffff7f7f7fffffffefefeddddddf9f9f9
+fffffff3f3f3ffffffe7e7e7ffffffffffffe4e4e4f4f4f4f1f1f1fdfdfdf9f9f9ffffff
+fffffff6f6f6f9f9f9edededfffffff0f0f0fffffff3f3f3fefefeeaeaeaffffffececec
+fafafaf1f1f1f8f8f8f5f5f5f4f4f4f6f6f6fdfdfdf0f0f00e0e0effffffffffffededed
+f1f1f1000000ffffffedededf0f0f0fbfbfbf7f7f7fffffffffffff7f7f7fbfbfbf0f0f0
+fcfcfceaeaeafffffff1f1f1ffffffeeeeeefffffff6f6f6f6f6f6ffffff0c0c0cf0f0f0
+ecececfefefeffffff000000f3f3f3fbfbfbeaeaeaf1f1f1ffffffffffffe6e6e6fbfbfb
+efefeffffffffbfbfbf0f0f0fffffff0f0f0e4e4e4fefefef6f6f6f5f5f5ffffffe3e3e3
+f2f2f2fffffffffffff3f3f3ffffffecececffffffececececececffffffecececffffff
+f7f7f7fbfbfbffffffebebebf8f8f8efefefe5e5e5ffffffe9e9e9efefeff9f9f9fafafa
+fffffffcfcfcf3f3f3fffffffffffffbfbfbfffffffafafafefefef8f8f8fffffff8f8f8
+ffffffffffffffffffefefeffffffff6f6f6fcfcfcf9f9f9e5e5e5f9f9f9ffffffdddddd
+fbfbfbfdfdfdfffffff3f3f3f4f4f4000000fffffffdfdfdffffffffffff0b0b0bf0f0f0
+ffffffe8e8e8f7f7f7ffffffdededeffffffe6e6e6f6f6f6fffffff4f4f4ffffffe2e2e2
+fefefef0f0f0efefefffffffe9e9e9efefeff9f9f9fafafafffffffcfcfcf3f3f3ffffff
+fffffffbfbfbfffffffafafafefefef8f8f8fffffff8f8f8ffffffffffffffffffefefef
+fffffff6f6f6fcfcfcf9f9f9e5e5e5f9f9f9ffffffddddddfbfbfbfdfdfdfffffff3f3f3
+e7e7e7000000fffffffffffff8f8f8f7f7f7090909fafafafdfdfdfffffffffffff0f0f0
+fffffff1f1f1f2f2f2fffffff7f7f7f4f4f4ffffffe6e6e6f4f4f4fffffffffffff7f7f7
+ffffffe3e3e3f4f4f4ffffffe5e5e5fbfbfbfbfbfbfffffffffffffcfcfceeeeeef8f8f8
+f9f9f9ffffffe7e7e7f2f2f2f1f1f1fbfbfbffffffffffffe9e9e9ecececffffffeaeaea
+fcfcfcfafafafffffff7f7f7fafafaf3f3f3fffffff5f5f5fbfbfbd8d8d8fffffffafafa
+fafafaf0f0f0f3f3f3f3f3f3ebebebfefefeefefefffffffdadadaf1f1f1ffffffeaeaea
+fcfcfcfafafafffffff9f9f9ffffffffffffedededf8f8f8f4f4f4fffffff2f2f2ffffff
+edededfafafaf9f9f9ebebebfffffffffffffffffff3f3f3fffffff7f7f7fffffffcfcfc
+ffffffefefeff3f3f3ffffffe3e3e3f8f8f8efefefffffffe7e7e7fefefefffffffbfbfb
+fbfbfbffffffecececfffffffcfcfcffffffe2e2e2f7f7f7fcfcfcfcfcfcf2f2f2fcfcfc
+efefeffbfbfbf3f3f3dbdbdbfffffff2f2f2fffffff1f1f1f3f3f3f6f6f6fbfbfbffffff
+ffffffeeeeeeffffffffffffffffffebebebfffffffffffffffffffffffffafafaf9f9f9
+fffffffefefeedededfffffffafafafdfdfdfffffffffffffbfbfbfffffffffffffcfcfc
+e8e8e8fafafaeeeeeefdfdfdfffffff8f8f8f5f5f5fffffff5f5f5f8f8f8fffffff5f5f5
+eeeeeeffffffe9e9e9f4f4f4ffffffe9e9e9f9f9f9f5f5f5f6f6f6fffffff4f4f4ffffff
+fffffff4f4f4fffffff6f6f6fffffffffffffffffffffffff4f4f4fdfdfdeeeeeeffffff
+f8f8f8e0e0e0fffffffdfdfdf5f5f5fffffff9f9f9f4f4f4f5f5f5fcfcfcfefefefafafa
+fbfbfbfffffffffffffafafa000000000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefef8f8f8fffffff9f9f9f8f8f8
+fcfcfcfafafaf2f2f2fdfdfdfffffffdfdfdedededfcfcfcfafafae5e5e5fffffffefefe
+ecececfdfdfdf4f4f4edededf7f7f7f2f2f2f5f5f5fffffffffffff3f3f3fffffff1f1f1
+f1f1f1fffffff0f0f0fffffffffffff7f7f7fcfcfcfffffff5f5f5fffffffffffff8f8f8
+fefefefffffffafafafffffff5f5f5fffffff3f3f3fffffff9f9f9000000000000101010
+050505ffffffeeeeeefffffffffffff2f2f2ffffffefefefefefeffffffff2f2f2ffffff
+fffffffbfbfbfdfdfdfffffff2f2f2fdfdfdfffffff8f8f8fffffff7f7f7f8f8f80f0f0f
+060606070707020202fafafafafafaddddddffffffecececffffffefefeffffffffcfcfc
+ffffffeaeaeafffffffffffff9f9f9fafafafffffff9f9f9fdfdfdfffffffbfbfbffffff
+f2f2f2f2f2f2f0f0f0fffffff4f4f4fffffff9f9f9fffffffffffff9f9f9fffffff4f4f4
+fdfdfde7e7e7fdfdfdfffffffffffffdfdfdffffffefefeffffffffbfbfbfcfcfcf3f3f3
+fefefefffffffffffff6f6f6fffffff2f2f2fbfbfbfbfbfbfafafaf6f6f6fffffff0f0f0
+fffffff6f6f6fafafaf5f5f5fffffff6f6f6fafafaf0f0f0fffffff6f6f6fafafafcfcfc
+fffffff8f8f8fdfdfdfafafaffffffffffff0606061010100202020c0c0ce1e1e1ffffff
+ebebebfefefef0f0f0e4e4e4fffffff9f9f9fffffffffffffefefeebebebf4f4f4ffffff
+ffffffe1e1e1ffffffe5e5e5fffffffbfbfbfcfcfcf3f3f3fefefefffffffffffff6f6f6
+fffffff2f2f2fbfbfbfbfbfbfafafaf6f6f6fffffff0f0f0fffffff6f6f6fafafaf5f5f5
+fffffff6f6f6fafafaf0f0f0fffffff6f6f6fafafafcfcfcfffffff8f8f8fdfdfdfafafa
+ffffffffffff000000050505040404151515e6e6e6ffffffffffffe3e3e3efefefffffff
+edededfffffffffffff8f8f8fdfdfdfffffffbfbfbfffffff4f4f4f1f1f1f0f0f0ffffff
+fefefefffffff2f2f2f6f6f6f7f7f7fffffff8f8f8e9e9e9fdfdfdf3f3f3fffffff4f4f4
+f4f4f4fdfdfdfdfdfdfffffffffffffffffff8f8f8fcfcfcffffffffffffeaeaeaffffff
+ffffffe6e6e6fffffffefefef2f2f2fffffff5f5f5f9f9f9fffffffffffff9f9f9f6f6f6
+fffffffffffff0f0f0fffffffffffffffffff7f7f7fafafafffffffbfbfbfffffff9f9f9
+ecececfffffff2f2f2f3f3f3fffffff5f5f5fffffff8f8f8ffffffe7e7e7f5f5f5ffffff
+fffffffbfbfbfffffffffffffefefefafafafafafaf2f2f2fffffff9f9f9f9f9f9f9f9f9
+f0f0f0fffffff5f5f5e4e4e4fffffffffffffdfdfdfdfdfdfffffff7f7f7e9e9e9ffffff
+f8f8f8e2e2e2fffffff2f2f2e2e2e2ffffffffffffe9e9e9ffffffedededffffffffffff
+ffffffedededf6f6f6fffffff5f5f5fbfbfbffffffffffffffffffffffffefefefffffff
+edededffffffeeeeeef1f1f1fffffffefefef4f4f4ffffffebebebfbfbfbfffffff0f0f0
+fefefefffffffcfcfcfbfbfbf8f8f8f8f8f8ffffffe4e4e4ffffffedededf6f6f6f4f4f4
+fffffff3f3f3fffffffffffff7f7f7ffffffe9e9e9eeeeeefffffff9f9f9f5f5f5f5f5f5
+fcfcfcf0f0f0fffffffffffff5f5f5fafafafffffff9f9f9fbfbfbfbfbfbfafafaf0f0f0
+f0f0f0fafafafbfbfbfbfbfbfbfbfbecececffffffdbdbdbfffffffffffffffffff5f5f5
+fffffffffffff1f1f1f2f2f2fafafafcfcfcf2f2f2fffffffafafafffffffffffffefefe
+fefefefffffffffffffafafa000000000000000000000000000000
+000000000000000000000000060606fdfdfdfffffffffffff8f8f8fffffff7f7f7ffffff
+f3f3f3fffffff8f8f8fffffff7f7f7fcfcfcfffffff5f5f5fffffff1f1f1eaeaeaf8f8f8
+f9f9f9fffffff4f4f4fffffffffffffcfcfcffffffeeeeeef7f7f7fffffff9f9f9ffffff
+fffffff8f8f8fffffff5f5f5f4f4f4f9f9f9fffffffafafafffffff7f7f7ffffffffffff
+fffffffffffff2f2f2edededfefefefffffff3f3f3eaeaeafafafafbfbfbf3f3f3f9f9f9
+fcfcfce7e7e7ffffffe6e6e6f8f8f8fffffff8f8f8fffffffffffff8f8f8fffffff8f8f8
+fbfbfbfefefefffffffafafafffffff5f5f5ffffffffffffe3e3e3f9f9f9fdfdfdc9c9c9
+f7f7f7fdfdfdddddddfffffff9f9f9ffffffe7e7e7f9f9f9fdfdfdf5f5f5fdfdfdffffff
+fffffffffffff8f8f8fcfcfcfdfdfdfffffffafafaf3f3f3f5f5f5f6f6f6f9f9f9f2f2f2
+fffffff7f7f7ffffffefefeffffffffffffffffffffcfcfcfcfcfcffffffffffffffffff
+fffffffffffff5f5f5f5f5f5fffffff2f2f2fffffff8f8f8f6f6f6fbfbfbf2f2f2ffffff
+fcfcfcf5f5f5fffffffefefeeeeeeef7f7f7ffffffffffffedededf9f9f9ffffffffffff
+efefeffbfbfbffffffffffffeeeeeefcfcfcfffffffffffff4f4f4f8f8f8fdfdfdffffff
+e9e9e9edededf3f3f3fcfcfcf3f3f3f5f5f5f3f3f3ebebebfcfcfcffffffffffffe3e3e3
+fffffff6f6f6ecececf7f7f7f0f0f0ffffffecececfbfbfbfffffff8f8f8fffffffbfbfb
+f8f8f8f8f8f8fbfbfbfffffff6f6f6fbfbfbf2f2f2fffffffcfcfcf5f5f5fffffffefefe
+eeeeeef7f7f7ffffffffffffedededf9f9f9ffffffffffffefefeffbfbfbffffffffffff
+eeeeeefcfcfcfffffffffffff4f4f4f8f8f8fdfdfdffffffe9e9e9edededf3f3f3fcfcfc
+e7e7e7f7f7f7fffffff2f2f2f6f6f6f5f5f5fffffff2f2f2fffffffbfbfbe8e8e8ffffff
+f1f1f1fffffff5f5f5eeeeeef3f3f3f3f3f3f7f7f7f3f3f3fffffff5f5f5fffffff2f2f2
+e4e4e4fffffffffffff8f8f8fffffff6f6f6fcfcfcffffffffffffeeeeeefffffffefefe
+fffffff6f6f6ffffffedededfffffff6f6f6f1f1f1fefefeedededfffffff8f8f8f9f9f9
+fefefeffffffeeeeeefffffffffffff9f9f9fcfcfcf8f8f8efefeffafafaedededffffff
+f2f2f2fffffffffffff2f2f2f7f7f7fffffff3f3f3fdfdfdfdfdfdf9f9f9f6f6f6ffffff
+fffffff0f0f0f4f4f4ffffffefefeffdfdfdfbfbfbfffffffffffff0f0f0ffffffebebeb
+f2f2f2f9f9f9fffffff5f5f5eeeeeefffffffffffffffffff4f4f4fbfbfbf9f9f9ffffff
+fbfbfbfffffffcfcfcfffffff9f9f9fafafafffffffafafafefefefffffffcfcfce2e2e2
+ffffffffffffeeeeeefffffffffffff7f7f7fbfbfbfffffffffffffefefefbfbfbfbfbfb
+fafafaffffffffffffebebebf6f6f6fcfcfcf9f9f9fffffff4f4f4fafafafffffff5f5f5
+efefeffcfcfcffffffffffffe2e2e2fcfcfcfffffffafafafcfcfcefefefffffffffffff
+ebebebf1f1f1fffffffbfbfbffffffe9e9e9f8f8f8fffffff3f3f3ffffffffffffffffff
+f9f9f9f3f3f3fafafaf0f0f0fcfcfcfdfdfdfffffffffffff4f4f4f4f4f4fefefeffffff
+fffffff1f1f1f0f0f0e1e1e1f4f4f4fffffff1f1f1fffffffefefef2f2f2fffffffefefe
+fefefefffffff2f2f2fefefefffffffffffffbfbfbfefefef7f7f7f3f3f3f9f9f9ffffff
+f0f0f0fafafae8e8e8fffffffdfdfdfffffffffffff6f6f6fffffffffffffffffffefefe
+fdfdfdfffffffffffffdfdfd000000000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefeffffffe6e6e6edededefefef
+fffffff4f4f4fbfbfbf8f8f8fffffff8f8f8fbfbfbddddddffffffffffffedededffffff
+fffffff0f0f0f5f5f5fafafaf1f1f1fffffffffffffcfcfcf8f8f8fffffff4f4f4ffffff
+fffffff4f4f4fffffff8f8f8fffffffffffff5f5f5efefeffffffffefefef0f0f0f1f1f1
+f9f9f9fbfbfbfdfdfdfffffffffffff4f4f4f6f6f6fffffff3f3f3f9f9f9fffffff3f3f3
+ffffffffffffecececfffffff9f9f9fffffff4f4f4fefefefefefef4f4f4fffffff9f9f9
+fdfdfdfffffff3f3f3eeeeeefffffffffffff7f7f7fbfbfbfffffffcfcfcf2f2f2ffffff
+f5f5f5fffffff5f5f5fffffff2f2f2ecececfffffffffffffafafaffffffedededfcfcfc
+e8e8e8fffffffdfdfdfffffff0f0f0f6f6f6f0f0f0fffffffffffffffffffffffff1f1f1
+ffffffecececfffffffefefefcfcfcfffffffbfbfbfdfdfdfdfdfdfbfbfbfffffffcfcfc
+eeeeeef9f9f9fffffff6f6f6ffffffffffffecececfffffff8f8f8f8f8f8fffffff8f8f8
+e2e2e2fffffff4f4f4fafafaffffffe8e8e8fcfcfcedededffffffe7e7e7fcfcfcf0f0f0
+ffffffebebebf9f9f9f1f1f1ffffffecececfafafaefefeffffffff5f5f5ffffffeeeeee
+fffffffcfcfcfffffff1f1f1fffffffafafaf3f3f3ffffffe8e8e8f5f5f5f7f7f7ffffff
+dededefffffffffffffffffffafafafffffffdfdfdfffffff8f8f8f2f2f2f7f7f7fbfbfb
+ffffffffffffedededfffffff8f8f8f8f8f8fffffff8f8f8e2e2e2fffffff4f4f4fafafa
+ffffffe8e8e8fcfcfcedededffffffe7e7e7fcfcfcf0f0f0ffffffebebebf9f9f9f1f1f1
+ffffffecececfafafaefefeffffffff5f5f5ffffffeeeeeefffffffcfcfcfffffff1f1f1
+fffffff5f5f5eeeeeefffffff5f5f5fffffff8f8f8fffffff6f6f6fdfdfdffffffffffff
+fdfdfdf7f7f7fefefefffffffffffffffffffffffff2f2f2ffffffe8e8e8ffffffffffff
+ffffffffffffefefefffffffe8e8e8fffffffcfcfcfefefef6f6f6fffffffefefef9f9f9
+eaeaeaedededfffffff7f7f7fbfbfbe8e8e8fffffffefefefffffff7f7f7ffffffeeeeee
+ebebebfffffffdfdfdfcfcfcfbfbfbefefeffefefeffffffffffffedededffffffffffff
+f8f8f8fbfbfbf7f7f7f4f4f4f0f0f0f8f8f8fffffffffffff9f9f9ffffffffffffeeeeee
+e6e6e6fffffff0f0f0fafafafafafafffffffdfdfdfffffff3f3f3fafafaffffffffffff
+f9f9f9fffffffffffff6f6f6fffffff2f2f2f9f9f9ecececffffffebebebf2f2f2f3f3f3
+fffffffcfcfcfafafafdfdfde9e9e9f1f1f1fffffff9f9f9fffffff0f0f0fffffff5f5f5
+f3f3f3fffffffffffffdfdfdffffffe3e3e3fdfdfdf7f7f7f0f0f0f1f1f1fbfbfbffffff
+efefeffffffffffffff4f4f4fffffffffffff6f6f6f5f5f5fffffff5f5f5fdfdfdfdfdfd
+fffffffffffff5f5f5efefeffbfbfbfffffff3f3f3fdfdfdfffffffffffff1f1f1f5f5f5
+ffffffffffffecececf4f4f4f9f9f9ffffffddddddfffffffffffffffffff3f3f3f4f4f4
+f5f5f5fffffffffffffefefef9f9f9e2e2e2fafafafffffffbfbfbfffffffefefef1f1f1
+f5f5f5fffffffffffffffffffffffff6f6f6f2f2f2fffffff7f7f7fffffffdfdfdf0f0f0
+f0f0f0fdfdfdfffffff7f7f7f8f8f8fcfcfceeeeeefffffffffffffcfcfcfefefef6f6f6
+fffffff7f7f7ffffffffffffdededef8f8f8f6f6f6fffffffffffffffffffffffffefefe
+fdfdfdfefefeffffffffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffdfdfdeeeeeeffffffffffffffffff
+edededfcfcfcfffffffdfdfdf7f7f7fbfbfbfffffffffffffdfdfdeeeeeefefefeffffff
+fffffff6f6f6fffffffdfdfdf9f9f9fbfbfbfafafafffffffffffff4f4f4fffffff5f5f5
+f5f5f5fffffff4f4f4ffffffedededfefefefafafafffffff5f5f5fefefef9f9f9ffffff
+f7f7f7fffffffffffff9f9f9e9e9e9fffffff6f6f6ebebebffffffdededef9f9f9ffffff
+f9f9f9fafafafafafaeeeeeefffffff4f4f4fffffff6f6f6f6f6f6fffffff4f4f4ffffff
+f6f6f6fffffffffffffffffff4f4f4fafafaf2f2f2ffffffeeeeeefdfdfde1e1e1f4f4f4
+e2e2e2d3d3d3fffffff4f4f4fffffff3f3f3f0f0f0f8f8f8f1f1f1fffffff3f3f3fdfdfd
+fffffffbfbfbf9f9f9fffffff3f3f3fffffffefefef0f0f0fefefef4f4f4efefefffffff
+fffffffffffff2f2f2f9f9f9f5f5f5fffffff2f2f2fffffffffffff2f2f2fffffff5f5f5
+ffffffecececfffffff6f6f6f0f0f0fffffff9f9f9ffffffffffffffffffe2e2e2ffffff
+fefefef6f6f6ffffffffffffefefeffffffffffffff2f2f2f7f7f7fffffffffffffbfbfb
+f2f2f2fffffffffffffafafaf1f1f1fffffffffffff9f9f9fafafafdfdfdf4f4f4ffffff
+f4f4f4fcfcfcf4f4f4fafafafcfcfcfffffffefefedadadafefefeffffffe7e7e7f1f1f1
+fffffff2f2f2f3f3f3f4f4f4fbfbfbf5f5f5f7f7f7fcfcfcfcfcfcffffffffffffffffff
+eeeeeeeeeeeef8f8f8ffffffffffffffffffe2e2e2fffffffefefef6f6f6ffffffffffff
+efefeffffffffffffff2f2f2f7f7f7fffffffffffffbfbfbf2f2f2fffffffffffffafafa
+f1f1f1fffffffffffff9f9f9fafafafdfdfdf4f4f4fffffff4f4f4fcfcfcf4f4f4fafafa
+edededffffffffffffe4e4e4ffffffffffffe5e5e5f5f5f5ffffffe9e9e9f6f6f6fdfdfd
+fafafafafafafffffff4f4f4fffffff3f3f3efefeffffffffffffffffffff0f0f0fbfbfb
+eeeeeef1f1f1fffffffbfbfbf6f6f6fafafaffffffefefeffffffff8f8f8eaeaeaffffff
+fffffff7f7f7f9f9f9fffffffcfcfcfffffff2f2f2fffffffbfbfbf6f6f6f1f1f1ffffff
+fffffff3f3f3ffffffeaeaeafbfbfbfffffff6f6f6fdfdfdfffffff9f9f9fbfbfbf3f3f3
+fffffffbfbfbf6f6f6fffffffffffff3f3f3ffffffefefeff6f6f6fcfcfcfffffff1f1f1
+ffffffedededfffffffffffffdfdfdf0f0f0fcfcfcfffffffffffffffffff3f3f3fcfcfc
+f8f8f8f4f4f4f5f5f5ffffffeaeaeafffffffdfdfdf7f7f7f3f3f3ffffffffffffffffff
+f5f5f5ffffffffffffedededfffffffffffffffffff1f1f1fdfdfdfffffff8f8f8ffffff
+ffffffe2e2e2fffffffdfdfdfffffff3f3f3fffffff1f1f1ffffffffffffffffffe7e7e7
+fffffff9f9f9ebebebfffffff1f1f1fdfdfdfffffffffffffdfdfdfffffff2f2f2ffffff
+f0f0f0fafafaf8f8f8fffffffffffff9f9f9fffffff0f0f0fffffff4f4f4fefefeffffff
+f0f0f0fdfdfdfffffff3f3f3fffffffffffff2f2f2f2f2f2fbfbfbefefeffffffffefefe
+ffffffedededf4f4f4fcfcfcfffffffffffffffffff2f2f2f9f9f9fcfcfcf3f3f3ffffff
+f6f6f6f4f4f4f1f1f1fefefef7f7f7f8f8f8fffffffffffffffffffbfbfbf2f2f2ffffff
+fffffff2f2f2fbfbfbfffffffcfcfcffffffffffffecececf6f6f6eeeeeefffffffcfcfc
+fffffff8f8f8fdfdfdf4f4f4ffffffffffffe9e9e9f9f9f9ffffffffffffffffffffffff
+fffffffefefefefefeffffff000000000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffbfbfbfffffff3f3f3fafafaffffff
+fffffff9f9f9fffffffffffffffffff2f2f2fafafaf0f0f0fefefefffffff0f0f0ffffff
+f8f8f8fffffff2f2f2eeeeeefffffff4f4f4fffffffcfcfcfefefefafafafffffffcfcfc
+fcfcfcfffffffafafafffffffffffff1f1f1fefefef7f7f7fffffff9f9f9ffffffefefef
+fffffff0f0f0fffffff6f6f6fffffff5f5f5fffffffcfcfcedededffffffffffffe9e9e9
+f6f6f6fffffff4f4f4fffffffdfdfdf9f9f9fffffffefefefefefefffffff9f9f9fdfdfd
+ffffffefefeffdfdfdf6f6f6fffffff9f9f9ffffffeeeeeefefefee8e8e8fffffff8f8f8
+fdfdfdfffffff8f8f8fefefef6f6f6fefefefcfcfcfffffffdfdfdf6f6f6fdfdfdffffff
+f6f6f6fffffffffffff8f8f8fffffffffffffefefefffffffefefefcfcfcfffffff0f0f0
+f3f3f3fffffffffffffefefefffffffbfbfbfffffffcfcfcfcfcfcfffffffbfbfbffffff
+fafafaf6f6f6fffffff5f5f5fffffff6f6f6fffffffefefef0f0f0fffffffdfdfdfafafa
+fffffff8f8f8fffffff4f4f4f8f8f8fffffffffffff8f8f8fffffff8f8f8f6f6f6ffffff
+fcfcfcfffffffbfbfbfffffffdfdfdfffffff6f6f6fffffff5f5f5fffffffcfcfcfdfdfd
+f9f9f9fffffffbfbfbffffffefefefffffffe5e5e5fffffffdfdfdfffffffffffff5f5f5
+fafafafcfcfcfefefeffffffecececfffffffffffff5f5f5fefefef8f8f8fefefef2f2f2
+ffffffffffffecececfffffff0f0f0fffffffdfdfdfafafafffffff8f8f8fffffff4f4f4
+f8f8f8fffffffffffff8f8f8fffffff8f8f8f6f6f6fffffffcfcfcfffffffbfbfbffffff
+fdfdfdfffffff6f6f6fffffff5f5f5fffffffcfcfcfdfdfdf9f9f9fffffffbfbfbffffff
+efefefffffffe1e1e1fffffffafafafffffffffffff8f8f8fcfcfcfffffffbfbfbffffff
+f9f9f9fdfdfdf6f6f6fefefefffffffefefefffffff4f4f4f5f5f5fffffffefefeffffff
+fffffff4f4f4f9f9f9efefeffffffffffffff7f7f7fffffffefefefcfcfcffffffeeeeee
+fefefefbfbfbfefefefffffff1f1f1fffffffcfcfcfffffffcfcfcfffffffffffff1f1f1
+ffffffecececfffffffffffffffffff2f2f2fafafafdfdfdf0f0f0fffffff2f2f2ffffff
+f7f7f7f5f5f5ffffffefefeff7f7f7fffffff5f5f5ffffffffffffffffffeeeeeeffffff
+f0f0f0fffffffefefefdfdfdf4f4f4fffffff0f0f0ffffffefefeffffffffbfbfbf5f5f5
+fffffff9f9f9fffffffefefefcfcfcfffffffcfcfcfffffffbfbfbfbfbfbf2f2f2ffffff
+fffffffafafaf7f7f7ffffffefefeffefefeebebebfffffffffffffefefefefefef5f5f5
+fffffff1f1f1fffffffcfcfcf7f7f7fffffff0f0f0f7f7f7fffffffffffffbfbfbffffff
+fcfcfcfffffffffffff7f7f7ffffffefefeffffffff6f6f6f3f3f3fffffffffffffefefe
+fffffffefefefffffff1f1f1fffffffdfdfdfdfdfdffffffe2e2e2fffffffcfcfcf9f9f9
+fffffffffffffafafafffffffafafafbfbfbfffffffffffffffffff9f9f9fdfdfdf7f7f7
+f7f7f7fffffff8f8f8fffffff0f0f0fafafafcfcfcfffffffffffffcfcfcfffffffefefe
+fffffffbfbfbfffffffcfcfcfefefefffffff8f8f8fefefefffffffbfbfbfffffff3f3f3
+f3f3f3fffffffbfbfbfffffffdfdfdf9f9f9fdfdfdfafafafafafafffffffdfdfdffffff
+fbfbfbfefefefffffffffffff7f7f7f8f8f8fafafafffffffffffffefefeffffffffffff
+fffffffffffffefefefefefe000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf8f8f8fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfafafa
+f9f9f9f9f9f9f9f9f9f8f8f8fefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfafafafffffffefefefdfdfdfcfcfcfafafaf8f8f8f7f7f7f7f7f7
+fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafa
+fffffffefefefdfdfdfcfcfcfafafaf8f8f8f7f7f7f7f7f7fafafafbfbfbfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf9f9f9fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfafafafffffffefefefdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafa
+fffffffefefefdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9fbfbfbfbfbfbfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfbfbfbfafafafefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fefefefdfdfdfbfbfbfbfbfbfefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffefefefdfdfdfbfbfbfbfbfb
+fefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfcfcfcfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fefefefdfdfdfcfcfcfcfcfcfefefefefefeffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffefefefdfdfdfcfcfcfcfcfc
+fefefefefefefffffffffffffffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffefefefdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffefefefdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000010101f8f8f8ffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfffffffffffff9f9f9
+fefefefffffffcfcfcfffffffffffffcfcfcfffffffefefefcfcfcfbfbfbfcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafaffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffcfcfc
+fffffffefefefcfcfcfffffffffffff7f7f7fdfdfdfffffffefefefffffffdfdfdfafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000030303fafafafffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+fffffffcfcfcfcfcfcfffffffffffffafafaf7f7f7fffffffafafafffffffffffff7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000010101f6f6f6f9f9f9f5f5f5fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffbfbfbfdfdfdffffff
+fdfdfdfefefefffffffffffffbfbfbfffffff6f6f6fefefef2f2f2fcfcfcfffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101000000000000000000f0f0f0eeeeeee6e6e6e5e5e5e5e5e5e5e5e5e5e5e5
+e5e5e5e5e5e5e5e5e5e5e5e5e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3eaeaeae0e0e0e3e3e3e6e6e6
+e1e1e1e8e8e8ececece1e1e1cdcdcdfdfdfdf7f7f7fffffff1f1f1fbfbfbfffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101010101010101000000000000eaeaeae3e3e3d7d7d7e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e9e9e9e0e0e0e5e5e5e5e5e5
+dededeeaeaeae9e9e9cacaca8c8c8cf5f5f5f8f8f8fffffff8f8f8fffffff9f9f9fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000000000e9e9e9ddddddcececec2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3c3c3bebebec6c6c6c3c3c3
+bababac9c9c9bcbcbc888888636363f8f8f8f9f9f9fffffffcfcfcfffffff6f6f6fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000010101000000000000e9e9e9dbdbdbcbcbcbc1c1c1c1c1c1c1c1c1c1c1c1
+c1c1c1c1c1c1c1c1c1c1c1c1c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bebebec9c9c9c3c3c3
+b9b9b9c8c8c8b3b3b37070705c5c5cfffffffbfbfbf7f7f7fbfbfbfffffff5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1b8b8b8c3c3c3bebebec1c1c1
+b9b9b9bebebec0c0c0c0c0c0bfbfbfc5c5c5b2b2b2bebebec7c7c7c1c1c1bdbdbdbcbcbc
+bcbcbcbdbdbdbdbdbdcececeb7b7b7c0c0c0bdbdbdc4c4c4bbbbbbc3c3c3b0b0b0c5c5c5
+bdbdbdbfbfbfb1b1b1bcbcbcbebebebbbbbbc3c3c3c2c2c2cdcdcdacacacc2c2c2c1c1c1
+babababcbcbcc4c4c4bcbcbcbebebebcbcbcd2d2d2b3b3b3c1c1c1c6c6c6bdbdbdb3b3b3
+cacacacacacabababa696969727272fffffffcfcfcf6f6f6fcfcfcfbfbfbffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1c5c5c5c3c3c3bdbdbdd6d6d6
+bcbcbcc8c8c8c5c5c5b9b9b9c6c6c6c0c0c0cececebfbfbfbbbbbbbdbdbdb5b5b5cacaca
+c6c6c6cececebcbcbcbdbdbdb4b4b4bfbfbfcacacab9b9b9c4c4c4b7b7b7d4d4d4bebebe
+b6b6b6cecececfcfcfc2c2c2c2c2c2c5c5c5bbbbbbbababac5c5c5c4c4c4cececebebebe
+cdcdcdbfbfbfc7c7c7c2c2c2bdbdbdcdcdcd9a9a9ac5c5c5c0c0c0c2c2c2c5c5c5cccccc
+c3c3c3bcbcbcc7c7c75a5a5a6e6e6efefefefefefefafafafffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1bcbcbcbfbfbfc1c1c1b6b6b6
+b7b7b7cdcdcdc2c2c2c5c5c5bdbdbdbababac8c8c8c7c7c7b7b7b7d0d0d0c4c4c4bbbbbb
+b9b9b9bebebebcbcbccacacad0d0d0bdbdbdc7c7c7bcbcbcbebebec5c5c5b6b6b6cdcdcd
+bdbdbdb9b9b9b5b5b5bdbdbdbbbbbbc2c2c2bcbcbcd0d0d0c9c9c9bcbcbcbdbdbdbdbdbd
+bdbdbdc1c1c1b7b7b7afafafd2d2d2b0b0b01414140a0a0ab5b5b5bdbdbdb6b6b6bbbbbb
+b4b4b4b2b2b2d4d4d47575756a6a6afdfdfdfffffffefefefffffffffffffdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1b2b2b2d4d4d4bababac2c2c2
+cececeb3b3b3bbbbbbccccccacacaccacacabfbfbfb9b9b9b9b9b9c8c8c8bbbbbbbdbdbd
+c5c5c5c1c1c1ccccccb7b7b7c2c2c2b5b5b5bbbbbbc2c2c2b9b9b9c4c4c4c1c1c1bcbcbc
+bababac9c9c9c9c9c9c7c7c7c6c6c6cacacabebebec1c1c1bcbcbcb7b7b7c7c7c7cacaca
+c3c3c3afafafcecececbcbcbcececec3c3c3aaaaaa101010bdbdbdc9c9c9bdbdbdb9b9b9
+cfcfcfc8c8c8bbbbbb6464646a6a6afcfcfcfffffffefefefffffffffffffdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1b5b5b5c5c5c5c5c5c5adadad
+c2c2c21414140000000000000b0b0b171717a5a5a5b5b5b5dadadac1c1c1afafafc8c8c8
+b9b9b9bababad6d6d6a6a6a6bebebed3d3d3bcbcbcbdbdbd0707070000000808080c0c0c
+000000040404c5c5c5c5c5c5acacacc4c4c4c3c3c3b8b8b8c1c1c1c5c5c5cacacaababab
+cbcbcbbbbbbbbfbfbfaaaaaab1b1b1bcbcbcc6c6c6040404b0b0b0bbbbbbd4d4d4c0c0c0
+b4b4b4b5b5b5b4b4b47474746c6c6cfdfdfdfffffffcfcfcfffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1d3d3d3bfbfbfcdcdcd080808
+000000bcbcbcc8c8c8bfbfbfbfbfbf000000e0e0e0c6c6c6adadadaeaeaecacacac4c4c4
+d0d0d0bbbbbbc8c8c8b5b5b5cececed2d2d2aeaeaec7c7c7b2b2b20d0d0da1a1a1c2c2c2
+d8d8d8b1b1b1000000cfcfcfc9c9c9d1d1d1c5c5c5ccccccbdbdbdb6b6b6c2c2c2cacaca
+b2b2b2b9b9b9c6c6c6cecececacacad5d5d5aaaaaa000000cbcbcbb1b1b1bebebebfbfbf
+bcbcbccccccccecece6363636e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1b7b7b7b2b2b2adadad020202
+c9c9c9d3d3d3959595e4e4e4c3c3c3000000bababac4c4c4b4b4b4e1e1e1cbcbcba8a8a8
+c0c0c0cdcdcdbababababababababaadadadaaaaaaccccccd0d0d0000000cececec2c2c2
+a9a9a9e3e3e3000000010101b9b9b9c4c4c4a1a1a1d2d2d2b5b5b5ccccccb4b4b4b9b9b9
+d2d2d2bababab2b2b2c9c9c9acacacb8b8b8cfcfcf090909aeaeaedcdcdcb8b8b8b8b8b8
+cbcbcbadadadbcbcbc6d6d6d6d6d6dfdfdfdfffffffcfcfcfffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000020202000000020202000000e6e6e6e2e2e2c1c1c1cacacad9d9d9000000c9c9c9
+bcbcbcc4c4c4c3c3c3b4b4b4bcbcbcc9c9c9c0c0c0b6b6b6c5c5c5b9b9b9000000050505
+090909a3a3a3bcbcbcc9c9c9c0c0c0c9c9c9d4d4d4b4b4b4c1c1c1000000bebebeb9b9b9
+d0d0d0030303040404c2c2c2cbcbcbb5b5b5111111040404050505c3c3c3d2d2d2bebebe
+b7b7b7c8c8c8000000000000cfcfcfbebebebdbdbd000000bdbdbdcdcdcd000000010101
+c5c5c5ccccccbfbfbf6a6a6a6b6b6bfdfdfdfffffffefefefffffffffffffdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+020202020202000000020202020202ebebebe4e4e4bfbfbfb8b8b8bababa0a0a0ab8b8b8
+cdcdcdcbcbcbbbbbbbc6c6c6b7b7b7c6c6c6cdcdcdb9b9b9c7c7c7000000d9d9d9b7b7b7
+c4c4c4060606c7c7c7c3c3c3c1c1c1c9c9c9b8b8b8bcbcbca2a2a20909090a0a0a000000
+000000232323020202bfbfbfbababa0505050a0a0abfbfbfcbcbcb000000bebebedbdbdb
+9e9e9e0e0e0ed6d6d6a6a6a6080808bfbfbfbfbfbf0f0f0fc5c5c5bebebe020202c1c1c1
+c1c1c1bababacfcfcf5a5a5a6e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+010101040404000000010101000000e3e3e3e0e0e0c0c0c0c9c9c9b6b6b6080808cacaca
+a5a5a5cdcdcda7a7a7d9d9d90606060f0f0f020202cacaca000000c9c9c9bfbfbfbfbfbf
+bababacbcbcb020202bdbdbdbdbdbdb3b3b3c4c4c4dfdfdfd6d6d60e0e0eb0b0b0d6d6d6
+c2c2c29c9c9c000000090909a8a8a8c8c8c8c2c2c2c9c9c9060606040404d6d6d6bbbbbb
+0d0d0db1b1b1c9c9c9d2d2d2b2b2b2c1c1c1d3d3d3000000a7a7a7151515bfbfbfbcbcbc
+d2d2d2bdbdbdbbbbbb7f7f7f6e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000040404010101020202000000e0e0e0e1e1e1c4c4c4ccccccbfbfbf000000c1c1c1
+d0d0d0b7b7b7c1c1c1bdbdbdcdcdcd000000c3c3c3bfbfbf000000c9c9c9b1b1b1cbcbcb
+c0c0c0bebebe000000c9c9c9c7c7c7c5c5c5b4b4b4a9a9a9a9a9a9121212c2c2c2c1c1c1
+b0b0b0cfcfcfbbbbbb131313dadadaa8a8a8080808000000b4b4b40f0f0faeaeaec9c9c9
+000000cacacab1b1b1ccccccaeaeaebababac1c1c1141414161616000000d1d1d1bababa
+aeaeaeb7b7b7c9c9c95858586e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000010101000000040404000000e5e5e5e3e3e3c4c4c4bfbfbfb7b7b70606060e0e0e
+c1c1c1c5c5c5c2c2c2aeaeaed0d0d0000000c1c1c1c7c7c70e0e0ec4c4c4bbbbbbc5c5c5
+c7c7c7bababa131313c8c8c8b6b6b6b3b3b3e6e6e6b2b2b2cccccc090909b2b2b2c7c7c7
+cacacacbcbcba9a9a9000000acacac080808d6d6d6a3a3a3d7d7d70d0d0dd0d0d0b6b6b6
+000000b2b2b2c1c1c1bababad7d7d7c8c8c8a1a1a1090909bbbbbbc0c0c0050505c2c2c2
+b1b1b1c4c4c4bcbcbc7676766e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000040404020202e8e8e8e0e0e0bbbbbbc6c6c6adadadc8c8c8070707
+000000bbbbbbc8c8c8dfdfdfababab111111b0b0b0cececeb5b5b5070707b4b4b4bdbdbd
+cacaca0c0c0ca1a1a1b0b0b0c5c5c5d1d1d1cdcdcdb6b6b6cacaca050505d4d4d4bfbfbf
+b6b6b6ababab2727271a1a1ab2b2b2202020acacaccacaca000000000000acacacd2d2d2
+0303031c1c1cccccccc4c4c4000000d7d7d7d1d1d1030303c2c2c2b4b4b4080808121212
+c4c4c4bbbbbbc2c2c25858586e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000010101000000e6e6e6dcdcdcb4b4b4bababac8c8c8cfcfcfb4b4b4
+d8d8d80a0a0a070707000000171717000000c4c4c4c4c4c4bfbfbfb7b7b7101010000000
+020202c5c5c5cececed5d5d5b6b6b6b7b7b7c3c3c3a9a9a90b0b0b1a1a1a000000000000
+060606131313a4a4a4bbbbbbccccccbdbdbd040404000000d0d0d0161616151515b3b3b3
+b3b3b31717170000000e0e0e131313c5c5c5000000090909000000d0d0d0cecece000000
+000000c8c8c8d9d9d96767676e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000010101000000010101000000e5e5e5e1e1e1bfbfbfb2b2b2c3c3c3a9a9a9cccccc
+b4b4b4cacacab8b8b8efefefabababc2c2c2d9d9d9adadadc9c9c9c6c6c6c6c6c6c0c0c0
+b8b8b8b9b9b9b6b6b6c0c0c0c6c6c6c5c5c5afafafdadadaa9a9a9b9b9b9b9b9b9c5c5c5
+d3d3d3bebebed1d1d1d0d0d0adadadb8b8b8b9b9b9c6c6c6cececec1c1c1b6b6b6dadada
+b5b5b5bebebed4d4d4b1b1b1bebebebfbfbfc2c2c2c2c2c2c8c8c8bcbcbcbdbdbdd4d4d4
+c9c9c9c9c9c9a7a7a76969696e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000010101000000020202000000e8e8e8ecececd1d1d1c1c1c1b3b3b3d4d4d4c4c4c4
+cacacab8b8b8cfcfcfbbbbbbaaaaaae6e6e6aeaeaebfbfbfcccccca6a6a6dcdcdcc3c3c3
+cfcfcfbebebec3c3c3d2d2d2b8b8b8c3c3c3bdbdbdbdbdbdcececec5c5c5bcbcbcbdbdbd
+c1c1c1adadadbdbdbdb0b0b0c9c9c9cdcdcdb7b7b7bebebec9c9c9c2c2c2acacacb5b5b5
+c6c6c6c1c1c1c3c3c3d6d6d6aaaaaad2d2d2aeaeaec1c1c1c2c2c2c6c6c6a3a3a3c0c0c0
+bdbdbdb5b5b5d9d9d96060606e6e6efefefefefefefbfbfbfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000070707020202020202e1e1e1e6e6e6b4b4b4cececec3c3c3c5c5c5b7b7b7
+c5c5c5bcbcbcc6c6c6c1c1c1c3c3c3bfbfbfbcbcbcbebebec2c2c2c4c4c4c1c1c1bdbdbd
+bcbcbcc3c3c3c3c3c3bcbcbcbcbcbcc3c3c3c3c3c3bcbcbcbebebec1c1c1c6c6c6cacaca
+cacacac6c6c6c1c1c1bebebec0c0c0c0c0c0c0c0c0c0c0c0c1c1c1c3c3c3c4c4c4c5c5c5
+bdbdbdc5c5c5b2b2b2b0b0b0cbcbcbc8c8c8b6b6b6bebebebdbdbdc5c5c5cacacad4d4d4
+b3b3b3bababac9c9c9656565646464fffffff8f8f8fffffff6f6f6fefefefbfbfbfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+030303000000000000070707000000e9e9e9dededec4c4c4c3c3c3c2c2c2bdbdbdbfbfbf
+bdbdbdc0c0c0bdbdbdbebebec4c4c4c1c1c1bebebec0c0c0c3c3c3c5c5c5c2c2c2bfbfbf
+bababac1c1c1c1c1c1babababababac1c1c1c1c1c1bababab8b8b8b9b9b9bbbbbbbdbdbd
+bdbdbdbbbbbbb9b9b9b8b8b8bfbfbfbfbfbfbfbfbfbfbfbfc0c0c0c1c1c1c2c2c2c3c3c3
+b7b7b7c3c3c3b6b6b6b2b2b2c5c5c5c0c0c0b3b3b3c0c0c0c1c1c1bfbfbfb9b9b9cacaca
+bdbdbdc1c1c1bfbfbf5e5e5e666666fffffff0f0f0f5f5f5f8f8f8fffffffcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000050505000000000000f7f7f7e0e0e0b9b9b9bebebec6c6c6bebebecdcdcd
+bdbdbdc9c9c9bdbdbdc2c2c2c0c0c0bdbdbdbabababcbcbcbfbfbfc0c0c0bebebebbbbbb
+c0c0c0c6c6c6c6c6c6c0c0c0c0c0c0c6c6c6c6c6c6c0c0c0c2c2c2c1c1c1c0c0c0bfbfbf
+bfbfbfc0c0c0c1c1c1c2c2c2c3c3c3c2c2c2c2c2c2c3c3c3c3c3c3c4c4c4c6c6c6c6c6c6
+b9b9b9c9c9c9c3c3c3bdbdbdc6c6c6c0c0c0bababac9c9c9c7c7c7c4c4c4b6b6b6c7c7c7
+c8c8c8c6c6c6c1c1c1808080696969fffffffdfdfdfcfcfcfffffffffffffafafaffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfd000000000000000000000000000000
+0000000000001111110000000a0a0ae3e3e3b9b9b98282826060606868686666666f6f6f
+6464646a6a6a6464646969696b6b6b6969696767676868686a6a6a6b6b6b696969676767
+6767676b6b6b6b6b6b6767676767676b6b6b6b6b6b6767676c6c6c6b6b6b696969686868
+6868686969696b6b6b6c6c6c656565656565656565656565656565666666676767686868
+6161616d6d6d6b6b6b6666666a6a6a6565656262626f6f6f6767676d6d6d626262696969
+6767676060606a6a6a5a5a5a616161f8f8f8fffffffcfcfcfefefefbfbfbf2f2f2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+0c0c0c000000000000000000020202c2c2c28b8b8b6969696868686767676f6f6f676767
+6d6d6d6565656e6e6e6e6e6e6f6f6f6e6e6e6d6d6d6e6e6e6f6f6f6f6f6f6e6e6e6d6d6d
+6c6c6c6e6e6e6e6e6e6c6c6c6c6c6c6e6e6e6e6e6e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c
+6c6c6c6c6c6c6c6c6c6c6c6c6969696969696868686868686969696969696a6a6a6b6b6b
+6a6a6a6f6f6f6d6d6d6b6b6b6d6d6d6b6b6b6969696e6e6e6868686f6f6f6a6a6a6d6d6d
+6868686060606c6c6c757575848484f3f3f3f9f9f9f6f6f6fffffffffffffafafaffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+0000000e0e0e000000000000030303fffffff9f9f9eeeeeefffffffafafafffffff4f4f4
+fffffff6f6f6fffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfffffffffffffefefefefefefefefeffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffffffffdfdfdfefefefbfbfbfcfcfcffffff
+fffffffbfbfbfafafafcfcfcd9d9d9fffffff8f8f8f5f5f5fffffffffffffffffffafafa
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfd000000000000000000000000000000
+0000000c0c0c000000020202141414e3e3e3fffffffffffffefefefbfbfbfbfbfbf7f7f7
+fcfcfcfbfbfbfefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+fefefefefefefdfdfdfdfdfdfefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfd
+fefefefafafafdfdfdfefefef9f9f9fafafafdfdfdf9f9f9fffffff3f3f3fbfbfbffffff
+fdfdfdfdfdfdfafafaf4f4f4fffffffffffffafafafafafafcfcfcfbfbfbfefefef2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+0c0c0c000000070707000000000000000000070707000000030303040404000000050505
+000000090909000000000000000000000000000000000000000000000000000000000000
+010101000000000000010101010101000000000000010101010101000000000000000000
+000000000000000000010101010101010101000000000000000000000000000000000000
+010101000000040404050505000000000000020202000000050505000000070707070707
+000000000000070707060606000000000000000000090909000000000000080808030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe3.gif b/lib/orber/doc/src/dataframe3.gif
new file mode 100644
index 0000000000..db8ffef7d1
--- /dev/null
+++ b/lib/orber/doc/src/dataframe3.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe3.ps b/lib/orber/doc/src/dataframe3.ps
new file mode 100644
index 0000000000..4f0e6f1865
--- /dev/null
+++ b/lib/orber/doc/src/dataframe3.ps
@@ -0,0 +1,14882 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe3.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 77 206 536 585
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 1377 string def
+
+% define space for color conversions
+/grays 459 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+77 206 translate
+
+% size of image (on paper, in 1/72inch coords)
+459.00000 379.00800 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+459 379 8 % dimensions of data
+[459 0 0 -379 0 379] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0505050000000c0c0c000000090909000000030303000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000010101000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000010101000000040404010101030303000000030303
+000000000000000000
+0303030404040000000000000000000b0b0b050505000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101010101010101010101
+010101010101010101010101030303030303030303030303030303030303030303030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+030303030303020202020202020202030303030303030303010101020202020202030303
+030303020202020202010101030303030303030303030303030303030303030303030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+030303030303020202020202020202030303030303030303030303030303030303030303
+030303020202020202020202000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000080808090909000000010101010101030303010101010101
+000000000000000000
+0202020101010000000a0a0a000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101010101010101010101
+010101010101010101010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000010101000000
+000000000000000000
+0202020000000606060808080505050000000909090b0b0b010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101000000000000000000000000
+000000000000000000000000030303030303040404040404040404040404050505050505
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404040404040404030303020202020202030303030303030303030303
+030303030303030303030303030303030303040404040404040404040404050505050505
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404040404040404030303020202020202020202020202020202030303
+030303030303030303030303010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101000000030303080808080808010101030303000000070707
+000000000000000000
+0202020000000b0b0b000000000000080808020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000010101010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000010101010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000e0e0e040404000000000000000000121212000000000000
+000000000000000000
+010101070707000000000000090909f2f2f2ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfbfbfbfafafafcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcfafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfbfbfbfafafafafafafafafafbfbfbfcfcfc
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7f8f8f8ffffffffffffffffffececec1d1d1d000000
+000000000000000000
+0000000707070000000b0b0b020202fffffff7f7f7eeeeeefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf6f6f6f6f6f6f6f6f6f6f6f6
+f6f6f6f6f6f6f6f6f6f6f6f6fbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefffffffffffffffffffffffffefefefbfbfbf9f9f9f7f7f7f9f9f9fbfbfbfcfcfc
+fcfcfcfbfbfbf9f9f9f7f7f7fbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefffffffffffffffffffffffffefefefbfbfbf9f9f9fdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffdfdfdf9f9f9fdfdfdfbfbfbffffff000000000000
+000000000000000000
+060606000000030303000000000000fdfdfdf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefffffffefefefbfbfbf9f9f9f7f7f7f0f0f0f4f4f4f9f9f9fdfdfd
+fdfdfdf9f9f9f4f4f4f0f0f0fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefffffffefefefbfbfbf9f9f9f7f7f7fdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8ffffff000000090909
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafffffffdfdfdf9f9f9fffffff2f2f2fefefef6f6f6fcfcfcfffffffafafaffffff
+e9e9e9fbfbfbfffffffffffffffffff9f9f9fffffff0f0f0fdfdfdeeeeeefffffffefefe
+fcfcfcfcfcfcfffffff4f4f4fefefefefefefbfbfbfffffffffffff6f6f6ffffffefefef
+fffffffffffffefefef2f2f2fffffffffffffffffff1f1f1fffffffdfdfdfffffff8f8f8
+fffffffcfcfcf2f2f2fffffffbfbfbf7f7f7f4f4f40e0e0e030303070707fafafafcfcfc
+020202030303fdfdfdeaeaeafcfcfcfdfdfdfbfbfbffffffffffffe2e2e2fffffff8f8f8
+f9f9f9fffffffbfbfbfafafafbfbfbffffffeeeeeefffffff9f9f9fffffffffffff2f2f2
+fffffffffffff8f8f8fffffffdfdfdf9f9f9fffffff7f7f7f1f1f1f6f6f6fffffff1f1f1
+f1f1f1fffffff6f6f6fafafaffffffecececfffffffffffff0f0f0fffffffafafaffffff
+f1f1f1fffffffffffff6f6f6fdfdfdfffffffafafafffffffefefefffffffafafafbfbfb
+ffffffffffffedededfffffffafafa010101000000fefefefbfbfbf9f9f9fffffff2f2f2
+f1f1f1fffffffafafafffffffcfcfcfbfbfbfffffffefefefffffffffffff5f5f5fcfcfc
+fbfbfbfffffffffffffafafafcfcfcfefefef8f8f8fffffffdfdfdfbfbfbfffffff4f4f4
+fffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfffffffffffffffffffafafaf8f8f8e4e4e4ffffffd7d7d7ffffffe4e4e4
+1212120b0b0b0404040d0d0d0505050b0b0b000000000000e6e6e6ffffffebebebffffff
+f6f6f6fffffffafafafffffffffffffdfdfdfdfdfdf3f3f3e9e9e9fafafafdfdfdfafafa
+fefefef9f9f9fffffffffffffffffff8f8f8fffffffbfbfbffffffedededf4f4f4fefefe
+fefefef1f1f1ffffffe3e3e3f9f9f90b0b0b030303ffffff060606080808fffffffafafa
+0000000b0b0b000000fffffffbfbfbfdfdfdedededfffffff9f9f9fffffffefefef5f5f5
+fafafafffffffffffff4f4f4ffffffefefeffdfdfdf6f6f6ffffffdbdbdbf2f2f2ffffff
+fffffffffffffffffff6f6f6ffffffffffffe1e1e1ffffffffffffedededfffffffefefe
+fffffff3f3f3fffffffefefeefefeff3f3f3fffffff6f6f6ffffffffffffe2e2e2f9f9f9
+fffffffffffff3f3f3fdfdfdeeeeeefffffff5f5f5fffffffefefee0e0e0fffffffafafa
+fdfdfdf6f6f6ffffffe1e1e1ffffff0101010606060c0c0cefefeffdfdfdedededffffff
+e2e2e2fffffffcfcfcfffffffffffffffffff2f2f2fcfcfcfffffff9f9f9eeeeeeffffff
+fefefef7f7f7f5f5f5f7f7f7fffffffcfcfcefefeff1f1f1ebebebfffffff0f0f0fdfdfd
+fffffffdfdfdf4f4f4f2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff9f9f9fffffffffffff1f1f1fafafafffffffffffff7f7f7ffffff000000000000
+141414fafafaf2f2f2fbfbfbfcfcfcfcfcfcf2f2f2121212101010fcfcfcf2f2f2fefefe
+f0f0f0ebebebfefefef5f5f5edededf7f7f7ecececfffffffffffffbfbfbfffffffafafa
+f8f8f8ffffffedededf5f5f5fefefefafafaffffffeeeeeef3f3f3fefefefffffffefefe
+f0f0f0fffffff3f3f3f7f7f7ffffff000000fbfbfbfbfbfbe5e5e5fdfdfdeeeeeeffffff
+0e0e0e000000ffffffecececf8f8f8fffffffdfdfdecececfefefeefefefe4e4e4ffffff
+f1f1f1e5e5e5fffffff1f1f1fffffffffffff9f9f9fcfcfcf7f7f7fffffffffffff9f9f9
+efefeff7f7f7efefeff9f9f9f0f0f0f7f7f7fefefef0f0f0f1f1f1fbfbfbecececfefefe
+f1f1f1e9e9e9fcfcfcf9f9f9f7f7f7ffffffebebebf5f5f5fffffff9f9f9ffffffffffff
+e8e8e8f7f7f7fffffffffffff5f5f5ffffffdfdfdff8f8f8eaeaeafffffffbfbfbf6f6f6
+fffffffffffffcfcfcfefefeffffff0f0f0f000000f4f4f4ffffffffffffedededf8f8f8
+ffffffedededebebebf3f3f3f6f6f6f2f2f2fffffff0f0f0fffffff6f6f6fafafadddddd
+fffffffffffffffffffffffffafafaf2f2f2fafafaffffffffffffe9e9e9fffffff3f3f3
+d8d8d8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff5f5f5f3f3f3fbfbfbffffffffffffe5e5e5e6e6e6fafafa080808000000ffffff
+f7f7f7ffffffffffffedededfefefee3e3e3fffffffafafa000000ddddddfefefef4f4f4
+fffffffffffff3f3f3fffffffffffff6f6f6fffffff3f3f3f2f2f2f2f2f2fafafaffffff
+efefeff0f0f0fefefef5f5f5fbfbfbf1f1f1fffffffefefefbfbfbfffffff5f5f5e6e6e6
+fffffffffffff0f0f0f8f8f80000000b0b0bfffffff4f4f4ffffffeeeeeef3f3f3ffffff
+ebebebfffffff9f9f9fffffff0f0f0edededeeeeeeffffffe3e3e3fffffffffffff3f3f3
+ffffffffffffefefeffafafaf3f3f3e8e8e8fafafaf8f8f8f2f2f2dfdfdfeaeaeaffffff
+eeeeeefffffffbfbfbffffffffffffe2e2e2ffffffededede7e7e7fffffff2f2f2f5f5f5
+fffffff8f8f8ffffffecececfffffff7f7f7efefeffffffff6f6f6f4f4f4f2f2f2fafafa
+f5f5f5fffffffffffffffffff2f2f2f8f8f8fffffffffffff0f0f0000000f2f2f2ffffff
+fdfdfddfdfdfffffffecececeaeaeafafafafafafaffffffe9e9e9fafafafafafae3e3e3
+fefefef9f9f9fffffffffffffefefef8f8f8f1f1f1fcfcfcf7f7f7f6f6f6ffffffefefef
+fbfbfbf5f5f5edededf7f7f7fafafaf9f9f9fffffff7f7f7fdfdfdf0f0f0efefeff8f8f8
+fffffff2f2f2fbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffdfdfdf5f5f5fffffffcfcfcf2f2f2ffffff0606061111110a0a0aeaeaea
+fffffffffffff7f7f7f1f1f1ffffffecececffffffe4e4e4161616ffffffebebebf9f9f9
+dbdbdbf7f7f7ffffffe8e8e8fcfcfcffffffebebebfffffff1f1f1ffffffd9d9d9f3f3f3
+ffffffe5e5e5ffffffe9e9e9fefefefafafae9e9e9fffffffcfcfce7e7e7fdfdfdffffff
+eeeeeeecececfffffff6f6f6141414000000fffffffcfcfcfffffff8f8f8ffffffebebeb
+f5f5f5ffffffe3e3e3e2e2e2f7f7f7ffffffffffffefefeffffffff5f5f5fffffffafafa
+f2f2f2e9e9e9fffffffcfcfcfffffffffffff1f1f1fcfcfcf6f6f6fffffff9f9f9f9f9f9
+f1f1f1ffffffe1e1e1f7f7f7f4f4f4f1f1f1f4f4f4fffffffefefee2e2e2f3f3f3ffffff
+dcdcdcebebebf8f8f8fffffffffffffafafaf6f6f6fffffffefefefefefeffffffe7e7e7
+f7f7f7fdfdfde2e2e2fffffff9f9f9e2e2e2eeeeeee8e8e8ffffff000000ffffffe9e9e9
+eeeeeefffffff1f1f1fafafafafafaf4f4f4fffffff1f1f1f8f8f8e8e8e8f0f0f0ffffff
+e7e7e7f3f3f3f2f2f2f3f3f3fcfcfcfefefeebebebffffffebebebfafafadcdcdcffffff
+f2f2f2fffffffefefefffffff8f8f8f8f8f8ffffffe8e8e8fefefef4f4f4ffffffffffff
+e1e1e1fffffff8f8f8fbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f6f6f6fffffffffffff1f1f1fffffff4f4f4ffffffe2e2e2000000151515d8d8d8ffffff
+fcfcfcedededefefefffffffd7d7d7fffffffbfbfbffffffe8e8e8fafafaf9f9f9fdfdfd
+f9f9f9fffffffafafafffffff6f6f6ffffffeaeaeaf1f1f1ffffffdcdcdcf9f9f9f8f8f8
+e0e0e0fcfcfcf1f1f1f6f6f6fcfcfcfffffff2f2f2f9f9f9fffffffffffff3f3f3f3f3f3
+ffffffedededf2f2f2f7f7f7000000080808f8f8f8f0f0f0f7f7f7e6e6e6fffffff6f6f6
+fdfdfdfbfbfbfffffffcfcfcfffffffcfcfce9e9e9fefefefffffffbfbfbddddddf7f7f7
+fafafafffffffefefedcdcdcfdfdfdfffffffbfbfbf5f5f5ffffffe6e6e6fffffff8f8f8
+fefefefffffffffffffbfbfbefefeffbfbfbf9f9f9fffffff0f0f0fffffff2f2f2dedede
+ebebebfffffffdfdfdd8d8d8fffffffcfcfce4e4e4eaeaeaeaeaeaf3f3f3fffffffdfdfd
+f8f8f8fafafaffffffe2e2e2fffffff2f2f2ffffffffffff000000212121ffffffffffff
+efefefefefeff6f6f6f6f6f6ffffffffffffedededfffffff2f2f2fffffff7f7f7e7e7e7
+ffffffffffffffffffedededefefeffffffff5f5f5eeeeeefffffff3f3f3ffffffffffff
+ffffffefefefddddddf7f7f7f5f5f5f0f0f0fffffffefefefffffff4f4f4cacacaffffff
+fafafaffffffecececffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffefefeff4f4f4f1f1f1ffffffffffffe2e2e21616160a0a0ad7d7d7fffffff9f9f9
+eaeaeafffffff0f0f0ddddddfffffff2f2f2f9f9f9e3e3e3fdfdfdf3f3f3efefefffffff
+f3f3f3ffffff0000000303030707070000001f1f1ff8f8f8fdfdfdfffffffffffffafafa
+fffffffdfdfd0000000f0f0ff5f5f5ffffff0c0c0c0505050707070d0d0ddcdcdcffffff
+fefefeffffff0404041919190a0a0a000000101010191919000000ffffffe5e5e5fbfbfb
+131313000000fdfdfdf7f7f7f8f8f8f2f2f2fffffff1f1f10000002626260000000e0e0e
+131313e4e4e4f7f7f7ffffffe7e7e7e2e2e2ffffffffffff0000000e0e0efefefef4f4f4
+f0f0f0f3f3f3ffffff000000161616fcfcfce7e7e7e0e0e0fafafaffffff0a0a0a121212
+ffffffd1d1d1070707151515000000ffffffeeeeeeffffffffffff000000000000060606
+141414000000070707fbfbfbd2d2d2ffffff0000001313131919190d0d0d0000000a0a0a
+161616000000fffffffcfcfcf8f8f80d0d0d000000f3f3f3ffffffe8e8e8e6e6e6ffffff
+dadada0000000303030606060b0b0b000000fffffffdfdfdecececfffffff4f4f4ffffff
+d6d6d62020201b1b1bf6f6f6fafafa222222000000181818000000fffffffafafaf7f7f7
+ffffffe5e5e5fffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff0f0f0fffffff8f8f8f0f0f0f4f4f4ffffff000000000000fffffff6f6f6f2f2f2
+fffffffdfdfdf2f2f2ffffffefefeffffffffbfbfbfffffff4f4f4fffffffffffffbfbfb
+fbfbfb0000000e0e0effffffebebebffffff000000161616ffffffe1e1e1f5f5f5ffffff
+0000000505050f0f0f0000001919190000000707070d0d0d0000000000001e1e1ef6f6f6
+f3f3f3f9f9f9fefefee1e1e1000000010101ffffffe7e7e7fdfdfde1e1e1000000141414
+000000000000ffffffe6e6e6fafafafffffffbfbfb0f0f0f101010e8e8e8ffffffefefef
+030303151515030303000000151515fdfdfd0a0a0a000000050505070707f8f8f8f5f5f5
+ffffff0000000b0b0b0a0a0a000000fafafafbfbfbfcfcfc000000111111000000121212
+e8e8e80f0f0f0a0a0a020202040404f5f5f5f5f5f5010101020202ffffffeeeeeef6f6f6
+fbfbfb1818180000001b1b1bffffffe3e3e3fffffffcfcfc000000000000fffffff0f0f0
+eaeaeaffffffffffff000000090909000000131313fffffffffffffffffffefefef4f4f4
+171717000000ffffffeeeeeeffffff121212000000ffffffe9e9e9f2f2f2ffffff000000
+0202020909090000000d0d0d000000030303282828000000010101000000f2f2f2ffffff
+f6f6f6f6f6f6fdfdfdfafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbffffffffffffffffffefefeffffffffafafa000000000000ffffffecececffffff
+f8f8f8eaeaeafffffffafafaf9f9f9ffffffeeeeeeeeeeeefefefef4f4f4fffffffdfdfd
+0b0b0b020202ffffffebebebfbfbfbf9f9f9ebebeb060606090909fffffffdfdfdebebeb
+f5f5f5ffffff000000070707fdfdfdfffffffcfcfcfbfbfbfbfbfb040404010101f8f8f8
+fffffffdfdfdfffffff6f6f6030303000000fbfbfbfcfcfcfbfbfbfefefeffffffffffff
+010101040404fafafaffffffffffffffffff0000000e0e0ef9f9f9fffffffffffff3f3f3
+f7f7f7131313060606fffffffbfbfbf4f4f4ffffffe2e2e2090909070707f6f6f6f9f9f9
+f6f6f6f7f7f7f7f7f7030303050505fffffffbfbfbf5f5f5fefefefbfbfb050505070707
+020202fffffffffffff7f7f7020202fffffff9f9f9000000000000fffffffefefef6f6f6
+fffffff2f2f2050505030303fcfcfcfbfbfbfbfbfbfdfdfd010101040404f5f5f5f6f6f6
+fcfcfcfbfbfbf5f5f5f5f5f5f8f8f8040404010101f8f8f8f9f9f9f5f5f5fefefe0c0c0c
+000000f9f9f9fffffffffffff9f9f9f8f8f8050505000000fffffffffffff0f0f0f8f8f8
+fefefe030303060606fffffffffffffafafaf9f9f9f7f7f7040404050505f4f4f4f6f6f6
+fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcf2f2f2f9f9f9fffffff6f6f6e9e9e9f5f5f5222222030303f6f6f6ffffffe7e7e7
+f6f6f6fffffff6f6f6efefeff6f6f6edededfdfdfdffffffffffffffffffebebeb040404
+060606fbfbfbefefeffffffff9f9f9fbfbfbffffffededed070707000000ffffffffffff
+f8f8f8f1f1f1050505010101fbfbfbfdfdfdfafafaf9f9f9f9f9f9020202000000f7f7f7
+fefefef8f8f8fffffff4f4f4020202000000fbfbfbfcfcfcfbfbfbfdfdfdffffffffffff
+000000040404fafafafffffff5f5f5f4f4f4080808000000fffffffefefef9f9f9efefef
+ffffff000000000000ffffffe6e6e6fffffff9f9f9ffffff040404050505f8f8f8fefefe
+fdfdfdfefefefcfcfc070707000000fdfdfdfcfcfcf9f9f9fffffffdfdfd020202010101
+fffffffdfdfdfbfbfbfffffffbfbfbedededfffffffffffff8f8f8e4e4e4e4e4e4ffffff
+f4f4f4ffffff000000282828f7f7f7f7f7f7f8f8f8fbfbfb020202080808fcfcfcffffff
+fcfcfcfbfbfbf6f6f6f7f7f7fafafa050505020202f8f8f8fafafafdfdfd000000010101
+f7f7f7ffffffebebebfafafafffffff3f3f3ffffff000000020202ecececffffffffffff
+fefefe020202050505fefefefefefefafafafafafaf8f8f8030303050505f6f6f6f8f8f8
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff6f6f6f3f3f3f9f9f9ffffffffffff0000000d0d0de8e8e8f8f8f8f6f6f6
+fffffffafafaebebebfffffffffffffffffff9f9f9e0e0e0f1f1f1f4f4f4fbfbfb050505
+090909ecececfbfbfbefefeff3f3f3fdfdfdf8f8f8ffffff0000000d0d0deaeaeafdfdfd
+e5e5e5fbfbfb090909020202fefefefffffffdfdfdfcfcfcfdfdfd060606030303fbfbfb
+fbfbfbf6f6f6fefefef4f4f4030303000000fcfcfcfefefefafafafcfcfcfefefefefefe
+000000040404f9f9f9fefefefffffff6f6f6141414000000fffffffcfcfceeeeeeffffff
+e8e8e82e2e2e090909fafafaffffffedededefefefffffff020202040404fafafaffffff
+fffffffffffffcfcfc050505000000fcfcfcfbfbfbf7f7f7fffffffbfbfb020202020202
+f3f3f3f3f3f3f2f2f2ffffffefefeffffffff7f7f7ecececfbfbfbfffffffcfcfcf8f8f8
+0303030000002e2e2e000000fefefefcfcfcfbfbfbfbfbfb000000060606f9f9f9fcfcfc
+fafafafbfbfbf8f8f8f9f9f9fcfcfc060606020202f8f8f8fffffff2f2f2040404030303
+f2f2f2f4f4f4edededfffffff8f8f8fffffffdfdfd000000060606fdfdfdfffffff2f2f2
+fefefe020202030303fcfcfcfdfdfdfafafafbfbfbfbfbfb030303060606f8f8f8fbfbfb
+fffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfdfdfdffffffffffffebebebf7f7f71c1c1c000000ffffffdcdcdcededed
+f8f8f8fdfdfdfdfdfdfafafaffffffe3e3e3f3f3f3ffffffffffffeeeeeeffffff060606
+000000fefefef9f9f9fcfcfcfffffff8f8f8f9f9f9f8f8f8080808000000fffffff3f3f3
+f7f7f7ffffff000000010101fffffffffffffefefefefefefefefe080808050505fcfcfc
+fdfdfdf9f9f9fffffff7f7f7060606010101fefefefffffffafafafbfbfbfcfcfcfcfcfc
+000000040404f8f8f8fdfdfdffffffe8e8e8000000232323e4e4e4fafafafffffff9f9f9
+fdfdfd090909000000f1f1f1eaeaeafefefeffffffffffff040404060606fafafaffffff
+fffffffcfcfcf8f8f8010101060606fffffff7f7f7efefeff8f8f8f8f8f8040404080808
+fffffff1f1f1ffffffdcdcdcf6f6f6fffffff5f5f5fbfbfbffffff0000000000000f0f0f
+f7f7f7f6f6f62323230f0f0ffffffffffffffcfcfcfcfcfc000000050505f8f8f8fcfcfc
+f9f9f9fbfbfbfafafafcfcfcfdfdfd070707030303f9f9f9fefefef5f5f50f0f0f030303
+f7f7f7fdfdfdf9f9f9eeeeeef8f8f8fcfcfcf6f6f6020202070707f7f7f7f2f2f2ffffff
+fefefe010101020202fbfbfbfcfcfcfafafafcfcfcfdfdfd030303080808fbfbfbfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+eeeeeeffffffffffffefefeffdfdfdffffffe6e6e6000000010101000000fefefeffffff
+f8f8f8f6f6f6ffffffe6e6e6edededf6f6f6ffffffe7e7e7f1f1f1e7e7e7fdfdfd090909
+020202fffffffbfbfbfdfdfdfffffff9f9f9fbfbfbfafafa090909000000fffffff5f5f5
+f9f9f9ffffff000000020202fafafafcfcfcf9f9f9f9f9f9fafafa030303010101f9f9f9
+fefefefafafafffffff8f8f8060606000000fcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfc
+000000050505f9f9f9fcfcfcdfdfdfffffffffffff000000080808f0f0f0fffffff8f8f8
+090909000000ffffffedededffffffececece4e4e4fcfcfc070707070707f9f9f9fdfdfd
+fbfbfbfbfbfbfafafa050505060606fffffff7f7f7efefeff8f8f8f8f8f8040404080808
+d9d9d9ffffffeaeaeaffffffffffffe3e3e3f6f6f6141414000000ffffffffffffebebeb
+ffffffe4e4e4000000070707fafafaf8f8f8f8f8f8fafafa010101090909ffffffffffff
+f7f7f7fbfbfbfbfbfbfcfcfcfdfdfd060606030303fbfbfbfcfcfcf2f2f20e0e0e020202
+f8f8f8fefefefbfbfbf0f0f0f8f8f8fbfbfbf5f5f5010101050505f5f5f5f0f0f0fefefe
+fdfdfd000000010101fafafafbfbfbfafafafcfcfcfcfcfc030303090909fdfdfdffffff
+fffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff4f4f4f4f4f4fffffff9f9f9edededfffffff7f7f70d0d0d070707f6f6f6f0f0f0
+f1f1f1fffffff3f3f3fffffff3f3f3ffffffeaeaeaffffff000000fffffffbfbfb000000
+0c0c0cf0f0f0fffffff3f3f3f7f7f7fffffffbfbfbffffff000000101010ecececffffff
+e7e7e7fefefe0c0c0c040404fbfbfbfdfdfdfafafafafafafbfbfb050505020202fafafa
+fcfcfcf8f8f8fffffff6f6f6040404000000f9f9f9f9f9f9fdfdfdfbfbfbfbfbfbfcfcfc
+010101060606f9f9f9fcfcfcfffffff0f0f0edededfcfcfc0202020c0c0c000000171717
+030303f9f9f9fcfcfcedededfffffff4f4f4ffffffe9e9e9070707060606f7f7f7fbfbfb
+fbfbfbfefefeffffff0e0e0e000000fcfcfcfbfbfbf7f7f7fffffffbfbfb020202020202
+fafafaffffffd8d8d8fffffff6f6f6ffffff0f0f0f000000edededf3f3f3fffffffefefe
+f7f7f7ffffff070707000000fafafaf9f9f9f9f9f9fbfbfb010101080808fcfcfcffffff
+f6f6f6fafafafafafafbfbfbfbfbfb040404030303fcfcfcffffffefefef020202020202
+f3f3f3f7f7f7f1f1f1fffffff7f7f7fffffffcfcfc000000030303fafafafcfcfceeeeee
+fdfdfd010101020202fbfbfbfcfcfcf9f9f9fafafafafafa040404090909fdfdfdfefefe
+fefefefcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafdfdfdffffffffffffffffffffffffe4e4e4d7d7d7000000101010010101fcfcfc
+fffffff5f5f5fbfbfbfffffff1f1f1f7f7f7ffffffd2d2d20e0e0ef3f3f3e0e0e0131313
+080808fdfdfdf2f2f2fffffffbfbfbfdfdfdffffffefefef070707000000ffffffffffff
+f9f9f9f2f2f2060606010101fefefefffffffefefefefefeffffff090909060606fefefe
+f9f9f9f6f6f6fffffff6f6f6050505000000fbfbfbfbfbfbfefefefcfcfcfbfbfbfdfdfd
+030303080808fafafafdfdfdf9f9f9eeeeeeffffffdbdbdb111111070707fefefeffffff
+f9f9f9ffffffe7e7e7f7f7f7fcfcfcfefefef6f6f6fcfcfc050505040404f5f5f5fafafa
+fafafafefefeffffff0d0d0d000000fdfdfdfcfcfcf9f9f9fffffffdfdfd020202010101
+ffffffe9e9e9f2f2f2fffffff8f8f8ffffff000000151515fffffff6f6f6e6e6e6ffffff
+e8e8e8fdfdfd101010010101fdfdfdfcfcfcfbfbfbfcfcfc010101050505f6f6f6f8f8f8
+f6f6f6fafafaf9f9f9f9f9f9f8f8f8030303030303fefefef9f9f9fcfcfc000000010101
+f7f7f7ffffffecececfbfbfbfffffff5f5f5ffffff000000010101eaeaeafffffffcfcfc
+fcfcfc010101030303fdfdfdfdfdfdf9f9f9f8f8f8f7f7f70404040a0a0afdfdfdfcfcfc
+fcfcfcfafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffcfcfcfffffff9f9f9ffffffe2e2e2fffffffafafa0202020000000a0a0a
+f4f4f4f5f5f5f3f3f3fffffffdfdfdf5f5f5fdfdfdffffff060606f5f5f5fffffff6f6f6
+0b0b0b020202ffffffebebebfbfbfbf9f9f9ebebeb060606070707fffffffbfbfbe9e9e9
+f3f3f3ffffff000000050505fcfcfcfefefefcfcfcfcfcfcfdfdfd070707050505fdfdfd
+f9f9f9f6f6f6fffffff8f8f8080808030303fffffffffffffffffffdfdfdfbfbfbfdfdfd
+030303090909fbfbfbfdfdfdf2f2f2ffffffe5e5e5ffffff040404000000fffffff9f9f9
+f6f6f6efefeffffffffbfbfbffffffeaeaeaf3f3f3ffffff050505040404f5f5f5f9f9f9
+f8f8f8f9f9f9f9f9f9050505050505fffffffbfbfbf5f5f5fefefefbfbfb050505070707
+fcfcfcfffffffafafaf6f6f6fafafaf1f1f1040404060606efefeffffffffefefefefefe
+f2f2f2fefefe0f0f0f040404f4f4f4f5f5f5f7f7f7fbfbfb020202080808fbfbfbfefefe
+f6f6f6f9f9f9f8f8f8f7f7f7f6f6f6010101030303fffffffdfdfdf8f8f8ffffff0d0d0d
+000000f7f7f7fffffffcfcfcfefefefdfdfd090909000000fffffffffffff0f0f0f8f8f8
+fcfcfc010101040404fefefefdfdfdf8f8f8f7f7f7f5f5f50505050a0a0afcfcfcfbfbfb
+fafafaf8f8f8fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefcfcfcfbfbfbfafafafafafafffffff0f0f0080808000000
+040404fffffff3f3f3fdfdfdfafafaffffffe2e2e2111111000000ffffffe4e4e4f1f1f1
+fcfcfc000000101010fffffff6f6f6ffffff000000131313f3f3f3f9f9f9fffffff0f0f0
+fffffff9f9f9000000090909fbfbfbffffffecececfffffffdfdfd040404171717fbfbfb
+e2e2e2ffffffdfdfdfffffff040404030303fcfcfcf5f5f5f0f0f0fffffff1f1f1ffffff
+000000010101f4f4f4fefefeffffffffffffe9e9e9f4f4f40909091b1b1b000000121212
+f9f9f9fffffffdfdfdf0f0f0fbfbfbffffffffffffffffff020202000000000000f9f9f9
+f7f7f7ffffff050505000000000000fffffffefefefcfcfcf9f9f9f2f2f21e1e1e020202
+f2f2f2fffffff6f6f6fbfbfbfffffffefefe020202000000000000fafafae5e5e5fafafa
+1111110000000303030e0e0efdfdfdffffffedededfdfdfd050505000000000000ffffff
+fffffff2f2f2f0f0f0fefefeeeeeee1c1c1c040404fafafaffffffebebebfffffffcfcfc
+000000181818eaeaeaf8f8f8f8f8f80d0d0d000000fffffff8f8f8fffffff1f1f1f7f7f7
+fdfdfd0101010a0a0affffffecececfafafafffffff1f1f1040404000000f2f2f2fbfbfb
+fffffff8f8f8ffffffeeeeeeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbf4f4f4ffffffffffff
+000000000000090909000000141414000000222222000000ffffffedededfcfcfcffffff
+fffffff2f2f20505050000000000000000000b0b0befefefffffffededede6e6e6ffffff
+0000001c1c1c0b0b0b020202000000000000ffffffebebeb000000101010000000070707
+070707fefefe0f0f0f000000252525000000151515030303ffffffeaeaea050505000000
+0e0e0e101010000000000000f5f5f5efefeffffffff4f4f4000000050505000000131313
+0a0a0a000000000000fffffff2f2f2fffffff3f3f3eaeaeaf6f6f61c1c1c020202000000
+232323000000ffffff0000001b1b1b000000131313ffffff000000242424000000202020
+0303030c0c0cededede3e3e3f5f5f5fefefeededed0d0d0d0f0f0f080808141414000000
+ffffffffffff070707000000000000121212ffffffe0e0e0fefefe131313000000000000
+060606000000ffffff0909090303030d0d0d000000101010010101fffffff0f0f0eaeaea
+ffffff000000020202101010000000030303e6e6e6fffffffdfdfdefefeffdfdfd000000
+0808080f0f0f000000000000181818fcfcfcececec0707070707070909091111110e0e0e
+e5e5e5ffffffe2e2e2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffecececffffff
+f4f4f4fffffffafafafffffffafafafcfcfcfbfbfbfffffff3f3f3eeeeeeffffffe3e3e3
+f9f9f9ffffffedededfffffffffffffffffffffffffdfdfdf6f6f6fffffff0f0f0f5f5f5
+ffffffe8e8e8fefefef3f3f3fffffffffffffafafaffffffeeeeeefffffff3f3f3ffffff
+fdfdfdfffffffffffffffffff8f8f8ffffffeaeaeafcfcfcfffffffffffff9f9f9ffffff
+f4f4f4fffffffffffffcfcfcfffffff1f1f1ffffff080808f4f4f4fffffff4f4f4f6f6f6
+060606060606151515040404e8e8e8fffffffffffff7f7f7fffffff9f9f9fffffff6f6f6
+f6f6f6f6f6f6fffffff8f8f8f8f8f8fffffffafafae6e6e6fffffffffffffdfdfdfdfdfd
+f3f3f3fffffffffffffffffffffffffdfdfdfffffffffffffcfcfcf3f3f3f9f9f9ffffff
+f4f4f4fbfbfbf9f9f9fffffffffffff7f7f7fffffffffffff7f7f7f5f5f5f1f1f1ffffff
+fffffff2f2f2fdfdfdffffffeeeeeeeeeeeefffffff1f1f1fafafaf2f2f2fefefef2f2f2
+fcfcfcf9f9f9fefefefffffff9f9f9fffffffffffffbfbfbfefefef9f9f9fafafaffffff
+fafafafbfbfbffffffffffffe9e9e9fefefefffffffbfbfbf5f5f5f7f7f7f9f9f9ebebeb
+fffffff0f0f0fffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffe5e5e5fffffffefefee8e8e8
+fdfdfdfffffffcfcfcfdfdfdffffffe8e8e8fdfdfde6e6e6ffffffffffffffffffededed
+f3f3f3f9f9f9ffffffe7e7e7f4f4f4fcfcfce2e2e2fcfcfcf4f4f4f1f1f1ffffffffffff
+fffffffdfdfdfffffffffffff7f7f7f7f7f7ebebebfafafafffffff5f5f5fffffff3f3f3
+ffffffdcdcdcf9f9f9fffffff6f6f6fffffffcfcfcfffffffafafafffffff2f2f2e5e5e5
+f8f8f8f7f7f7e9e9e9ffffffe2e2e2fbfbfb131313000000ffffffe0e0e0ffffffefefef
+f6f6f6f8f8f8000000161616fffffff0f0f0ebebebfffffff1f1f1e4e4e4ffffffffffff
+fffffffbfbfbe6e6e6fffffffffffffdfdfdf9f9f9f5f5f5fdfdfdf9f9f9f7f7f7f8f8f8
+fffffffafafae6e6e6ffffffebebebeeeeeefffffffefefef8f8f8ffffffe4e4e4ffffff
+fcfcfcfffffffffffff6f6f6fafafafffffff4f4f4fffffffafafafffffffcfcfcf3f3f3
+fdfdfdffffffebebebf3f3f3fafafaffffffe9e9e9fffffffffffffbfbfbf5f5f5ffffff
+e6e6e6fffffff8f8f8f1f1f1f5f5f5fefefee9e9e9f8f8f8fcfcfcffffffedededf4f4f4
+fffffff3f3f3edededfafafafffffffefefef8f8f8fefefefffffffdfdfdfafafaffffff
+fffffff4f4f4ffffffe6e6e6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffffffffffffff0f0f0fcfcfcffffff
+f2f2f2f1f1f1ffffffffffffefefeffffffffffffffffffffffffffcfcfcd7d7d7ffffff
+ffffffecececeeeeeefffffffbfbfbfdfdfdfffffffefefeffffffffffffeeeeeeeaeaea
+edededffffffdfdfdfffffffffffffe1e1e1fffffff3f3f3fdfdfdfffffffffffff3f3f3
+f8f8f8fffffff1f1f1fefefeffffffecececffffffdbdbdbf5f5f5fefefeffffffffffff
+fffffff7f7f7fdfdfdf4f4f4ffffff111111000000f5f5f5f3f3f3ffffffe0e0e0f6f6f6
+ecececffffff0a0a0a000000f2f2f2f6f6f6fffffffefefeffffffffffffe5e5e5f6f6f6
+f6f6f6fbfbfbfffffff0f0f0f6f6f6f8f8f8fffffffcfcfcf0f0f0eeeeeeffffffffffff
+f8f8f8ffffffffffffebebebfffffffffffffcfcfcfafafafffffff2f2f2fffffff9f9f9
+f4f4f4f6f6f6fffffffafafafbfbfbfffffffefefefdfdfdfcfcfcfafafafffffffdfdfd
+f2f2f2f5f5f5f9f9f9ffffffffffffdfdfdff3f3f3fefefef2f2f2fffffff3f3f3f8f8f8
+eaeaead3d3d3ffffffffffffffffffdadadaf2f2f2fffffff4f4f4f0f0f0fffffffcfcfc
+fffffffefefefffffffffffffffffff4f4f4fdfdfdfffffff9f9f9fffffffbfbfbfafafa
+edededf6f6f6fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefefefefffffffffffffffffffffffffafafafdfdfdfefefeffffff
+fffffffffffff5f5f5fdfdfdfffffff9f9f9fefefefffffff0f0f0f1f1f1ffffffebebeb
+fbfbfbfffffff7f7f7ffffffefefefe9e9e9f4f4f4fbfbfbf4f4f4f6f6f6fffffff1f1f1
+ffffffebebebfffffffcfcfcfbfbfbf0f0f0fffffffffffff8f8f8e7e7e7fafafaffffff
+f2f2f2fbfbfbfffffffafafafffffff9f9f9e2e2e2fffffff8f8f8fffffff1f1f1f7f7f7
+fffffff9f9f9ffffffffffffe3e3e3010101020202141414fffffff9f9f9fffffffcfcfc
+f5f5f5f1f1f1000000131313fffffffffffff2f2f2ffffffe9e9e9f1f1f1fffffff5f5f5
+fcfcfcfcfcfcfffffffdfdfdfffffff1f1f1e5e5e5fffffff3f3f3ffffffffffffffffff
+fffffff9f9f9fafafafffffff1f1f1ffffffebebebffffffeaeaeaffffffdcdcdcffffff
+fffffffefefefafafaf7f7f7fafafaf6f6f6ffffffefefefffffffebebebfffffffcfcfc
+fffffffefefefdfdfdf6f6f6e4e4e4fffffffffffff9f9f9fbfbfbf6f6f6ffffffdcdcdc
+ffffffffffffdededef7f7f7e8e8e8fffffffffffffffffff1f1f1ffffffedededececec
+f4f4f4ebebebf5f5f5f6f6f6f3f3f3fffffffffffff4f4f4ffffffedededffffffffffff
+efefeffffffffbfbfbeeeeeeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffffffffffffffbfbfbfffffff4f4f4
+e2e2e2f6f6f6fffffffafafaf0f0f0f9f9f9e5e5e5ffffffffffffecececfdfdfdffffff
+f6f6f6f1f1f1fcfcfcfffffff7f7f7fffffff1f1f1fdfdfdfffffffffffff8f8f8fbfbfb
+fffffff8f8f8fffffff6f6f6f5f5f5fffffffdfdfdebebebf4f4f4ffffffedededfdfdfd
+fffffffffffff2f2f2f5f5f5f1f1f1ffffffffffffebebebfffffffffffff6f6f6ffffff
+fcfcfcfdfdfdf7f7f7ecececffffffededed1a1a1a000000000000f1f1f1ffffffededed
+ffffff000000141414e4e4e4ffffffebebebfcfcfcfffffffafafaffffffe1e1e1ffffff
+fffffffffffff0f0f0fefefeedededfffffffffffff6f6f6fefefefffffff7f7f7fdfdfd
+f8f8f8f4f4f4fffffff5f5f5f7f7f7fffffffffffffafafafffffff8f8f8fffffff4f4f4
+f8f8f8f5f5f5f4f4f4fffffffffffffffffff8f8f8fffffff5f5f5fffffff7f7f7ffffff
+f5f5f5fcfcfcfffffffbfbfbfffffff2f2f2efefeffffffffdfdfdfffffff7f7f7fbfbfb
+f5f5f5fefefef8f8f8ffffffffffffedededf8f8f8f6f6f6fefefef8f8f8ffffffffffff
+fffffffffffffffffffffffff3f3f3fefefefffffff5f5f5f0f0f0fffffffffffff9f9f9
+fbfbfbfefefeedededffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000302000201000100000100030502fbfdf8fefffafdfff9fefffffffffffffffffffeff
+fffdfffffdfffffefffffefffffefffffefffffefffffffdfffffbfffffafffffbfffffb
+fffffdfffffffffffffffffffffffffffffdfffffafffffafffffdfffffdfffff8fffff8
+fffffdfffffffefffbfefffafefff8fffffafffffffffffffffffbfffffafffffdfffffd
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbf2f3eefffffbfefffaeff0eb
+fffffbfbfcf7f2f3eefffffbf5f6f1fffffbfffffbecede8f9faf5fffffbfffffbf8f9f4
+fffffbfffffbf9faf5fffffbf5f6f1f9faf5fcfdf8fffffbfdfef9f5f6f1fffffbfffffb
+f6f7f2fefffafbfcf7fffffbfffffbfdfef9f4f5f0fffffbf6f7f2e4e5e0fffffbf9faf5
+fffffbfafbf6f9faf5fffffbf5f6f1f6f7f2fdfef9fffffbfefffaf1f2edfdfef9fffffb
+edeee9fffffbfcfdf8fffffbf1f2edfffffbdadbd613140f07080305060101020012130e
+000100fffffbeeefeafffffbfffffbfbfcf7fffffbf1f2edfffffbdedfdafffffbfbfcf7
+ebece7fcfdf8fffffbf9faf5fffffbe7e8e3fcfdf8fffffbfffffbf2f3eefffffbf8f9f4
+fffffbf5f6f1f6f7f2fffffbfffffbf9faf5fffffbf2f3eefffffbfbfcf7fdfef9fffffb
+f1f2edfffffbfffffbf2f3eefcfdf8fafbf6fffffbfffffbf6f7f2fffffbf4f5f0fffffb
+fffffbfffffbf3f4effffffbf0f1ecfffffbfffffbfffffbf7f8f3fffffbfafbf6fffffb
+fffffbf8f9f4fffffbfdfef9fefffafffffbfffffbfffffbfffffbfcfdf8f6f7f2f3f4ef
+fdfef9fefffaf2f3eefffffbfefffafffffbf6f7f2fffffbfcfdf8fffffbf8f9f4fffffb
+fffffbfffffbfefffaf8f9f4fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffdfffffdfffffbfefffbfefffbfefffbfefffbfefffbfffffdfffffbfffff6fffff6
+fffefffffefffffefffffffffffefffffffffffffbfffffafffffbfffffbfffffbfffffd
+fffffffffffffffff8fffff6fffffafffff8fffff4fffff3fffff4fffff8fffffafffffa
+fffff6fffff6fffff8fffff8fffff4fffff4fffff8fffff8fffff6fffff8fffffbfffffb
+fffffafffffbfffffffffefffffefffffffffffffbfffffafffff8fffffafffffdffffff
+fffffffffffffffffdfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffa
+fffff8fffff8fffffafffffafffffbfffffbfffffafffffafffffafffffafffffafffffa
+fffffbfffffdfffffffffffdfffffbfdfef8fffffbfbfbf9ffffffffffff000002010103
+000000000000000000
+000400000703000807000400000400f2fdedfbffeffafff0fcfffdfefffffffefffffbff
+fff9fffff9fffffafffffcfcfffdfffffefffffefdfffef9fffff3fffff0fffff2fffff5
+fffffbfffefffffffffffffffefffffefffafefff1fffff1fffef9fffef7ffffe9feffe9
+fefffafdfffcfbfff3fbffecfbffe9fdffeefefefcfefefcfffff2fffff0fffdf7fffef9
+fffff6fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fbfdeffffff3fefff2f8faecf7f9ebfbfdeffafceef5f7e9
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff4fffff4fffff4fffff4
+fffff4fffff4fffff4fffff4fffff4fffff4fffff4fffff4fffff4fffff4fffff4fffff6
+fefbf6fefbf6fffff6fcfff4f1fceef4fff1f9fff3f5fdeefefffbfffff6ffffe3ffffe5
+fffcfbfdfafffcfafffcfbfffffdfffffefffffdf1feffedfffff3fffff4fffff6fefdf9
+fffeffebebe9faffe4feffe3fcffebfdffebfeffddf6ffd2ffffe1ffffe8fffff1fefff0
+feffe5feffe3feffebfeffe9ffffe1ffffe1ffffeaffffecffffe4ffffe8fffff4fffff6
+feffedfefff1fffdfffffdfffffcfffffdfffdfff4fdffebfeffebfeffeefefffbfeffff
+fefefffefffffdfffafdfff5fffff4fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff1
+ffffecffffecffffedffffeffffff3fffff3fffff1ffffefffffedffffedffffedfffff1
+fffff4fefff9fefefcfefffafbfdeffffff1fefff3fffffafffffffcfbff010005000004
+000002000000000100
+000400000602000708000400000600f3ffe7f9ffddf5ffd5fbffdefcffdffdfedffffce1
+fff9e7fffae5fffcd7fffed6fffcdefffbe1fffcdefffdd8ffffd3ffffcffdffcefdffd0
+feffd7fefedafefddffdfde1fdfedffdffdafdffd5fdffd5fffedfffffd9ffffc8ffffc8
+feffdffcffe2fbffd6faffcdfbffc9fcffd0fefee2fffee2ffffd4ffffd0fffddbfffddd
+feffd5fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fbfed1feffd2feffd4f9fccdf8fbcefbfecffbfed1f7facb
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd3fdffd3fdffd3fdffd5fdffd3
+fdffd5fdffd3fdffd5fdffd3fdffd5fdffd3fdffd5fdffd3fdffd5fdffd3fdffd5feffd5
+ffffdcfffed8ffffd8faffd8f3fedcf6ffe1fbffdcf5ffd5fbffdefdfdd7ffffc4ffffc7
+fffcdffffce9fdfedffcfddbfcfbdffffcddfffdd4fffed2fcfdd5fdfdd7feffd7ffffdd
+ecebd7ffffe6fdffcaf6ffc0ffffdcffffdfffffcdfaffbffeffc2feffc9feffd4feffd6
+feffcdfeffcdfeffd6feffd4fdffc8fdffc7fdffcffdffcffdffc7fdffc7fdffd3fdffd5
+feffc8feffccfffedffffde8fffce9fffee2fdffcffdffc7fcffc2fdffc8feffd8fcffe0
+fcfee6fcffe2fbffd7faffd0fdffd1fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffcf
+fdffc8fdffc8fdffcafdffcefdffd1fdffd1fdffcffdffcefeffcdfeffcbfeffcdfeffd0
+fdffd5fdffdafcfddefcfce2fcffe4ffffecfefff0fffff8fffffffcfbff010006000004
+000002000000000100
+000200000301000106000102000500f8ffdefaffc6f2fba8faffa3fdff98fdff92ffff8e
+ffff92ffff8fffff86ffff8bffffa2fffea9ffffa2ffff9cffff9effff9bffff94ffff92
+ffff95ffff98ffffa1ffffa4ffffa3ffffa4ffffacffffadffffadffffa5ffff96ffff97
+ffffabfeffaefdffa4fdff9dfeff9bfeffa2ffffb2ffffb0ffffa2ffffa0ffffabffffab
+ffffa3ffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dfeff9dffff9effffa0feff9bfeff9dffff9effffa0feff9b
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9fffff9fffff9fffffa1ffff9f
+ffffa1ffff9fffffa1ffff9fffffa1ffff9fffffa1ffff9fffffa1ffff9fffffa1ffffa1
+ffffa3fffea1faff9bf6ffa4f6ffbcf9ffc3f7ffaef0fda1fcffadfbfda9fdfc9ffffea2
+ffffb1ffffabffff91fdff88feff93ffff9fffffa9ffffaeffffaffffeacffffa7ffffad
+fbfcb0ffffb1ecf28ef7fc9effffcaf4f2bffcfdbbffffafffff9dffff9bffffa7ffffad
+ffffaeffffb2fffebbfffebbfffeb3ffffaffffeb1ffffacffff9fffff9cffffa1ffff9c
+ffff8cffff8bffff9dffffa6ffffa8ffffa0ffff92ffff88ffff85feff8cfeff98ffffa2
+ffffa4feff9ffeff96fdff94ffff9cffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9d
+ffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9dffff9fffff9c
+ffff96ffff95ffff98ffff9cffff9dffff9fffff9dffff9cffff9bffff99ffff9affff9d
+ffffa3ffffa7fffeacfcfdbbfdffd8ffffecfdffeffefff7fffffffcfbff010006000004
+000002000000000100
+000200000200000004010002050500fdffdafbffb3edf586ebf467edf554eef54deff648
+f2f448f3f647f6f741f6f54bece95cebe962ebec53ebec50ebeb55eced54ecee4becef46
+f3f54af2f54ef3f357f3f259f3f355f3f25af2ef6af2ef6ef3f063f3f259f2f54ef0f550
+f0f261eff263eef55aeef655eef655eff45cf0f169f2f067f3f259f5f257f5f061f5ef63
+f2f25ef0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35aebeb55eaed54ecec56eaed54eded57ecef56eeee58ecef56
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54f2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35cf2f25cf0f35cf2f25ef0f35c
+f2f25ef0f35cf2f25ef0f35cf2f25ef0f35cf2f25ef0f35cf2f25ef0f35cf2f25ef2f25e
+faf865fbfb69f2f765f1f779f9ffa9faffadf1fc82e8f665e7ef5ee7ea5be5e65ce7e860
+ebeb67ecf05ee9f440e6f236ebf145f0f253f2f25ef1f064edee64ebec62ecee5deeef63
+dcdd5ef0f16ffcff6bf8fd6fd1cf68e0dc81f3f288f9f97feaec5deaed58edec60ebeb65
+edea67ebea6beee971ecea6ff2ee70f0f06cf2ef6af0f167f2f161f0f35ef2f260f2f357
+f1f546f2f647f3f554f1f45df3f35ff1f55af2f54ceff644f1f644eff549f0f455f0f35c
+f0f35ef0f35aeff44feff44ff0f457f0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35a
+f2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f35af2f25cf0f459
+f2f453f0f553f2f357f0f35af2f25cf0f35ef2f25cf0f35af3f45af0f457f2f359f0f35a
+f1f060eff066f1ee6becea85feffccffffecfdffeffefff7fffffffbfaff020107000004
+000002000000000100
+0103000102000300000400020a0300fffcd7fcfba9eef073edf34beff637f1f433f2f42f
+f5f32ff6f42ff7f32ff8f337fcf64afcf646fdfc32fdfd2dfefc37fefc37fffe32ffff2b
+f7f61ff6f71ff7f620f7f61ff7f71bf7f622f7f236f7f137f5f525f5f71af3f815f2f818
+f2f623f2f625f1f91cf1f91af1f91cf2f721f3f42cf5f42af6f61cf8f51af8f325f8f22a
+f6f52bf4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bfdfb34fafb31fdfb34fcfd33fffd36fdfe34fffd36ffff36
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34f6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52df6f42df4f52df6f42ff4f52d
+f6f42ff4f52df6f42ff4f52df6f42ff4f52df6f42ff4f52df6f42ff4f52df6f42ff6f42d
+f4f22bf9f937f0f43ff1f361fffea9ffffa7ecf55ae4f22bf8ff2df8fe28f7f934f8f83e
+fafa44f7fc3df4fe2cf2fc22fcff2dfdfd2dfafd2afafd28fbfe2bfbfd2ef6f833f3f33b
+fbf94fd8d926f5fb29e6eb1bffff58eeec4cebee3ff5f640faf841fbfa3efdfa3bfcfc38
+fefc37fdfe36fffe30fdff2df6f624f4f722f6f622f4f626f6f42df4f430f6f332f6f42d
+f4f51ef5f61ff6f42df4f432f6f334f4f430f5f426f2f520f5f521f4f627f4f430f5f437
+f5f437f4f432f4f629f3f525f4f629f4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52b
+f6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f52bf6f42df4f629
+f6f626f4f626f6f529f4f52df6f42ff4f430f6f42ff4f52df7f62cf5f72af6f52bf4f52d
+f6f334f3f238f5f03eeeec63feffbffeffebfcffeefdfef6fffffffbfaff020107010005
+000002000000000100
+0303000301000400000600000b0000fff9d2fdf99ef0f165f9fe42faff2efbfd30fdfb2d
+fffb28fffb26fffa28fffb2bf6ef25f5f120f7f411f7f60ef8f416f9f517f9f70ffbf80b
+ffff0fffff0ffffe16fffe16ffff10fffe14fffb20fffd1fffff0fffff08ffff08fdff0c
+fdff11fdff0ffdff08fdff08fdff0effff13fffd18fffe15ffff08ffff06fffd11fffc16
+fffe17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17f8f60ef6f40cf6f40cf9f70ffaf810f8f60ef8f60efbf911
+faf810faf810faf810faf810faf810faf810faf810faf810ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17fffe19fffe19fffe19fffe19
+fffe19fffe19fffe19fffe19fffe19fffe19fffe19fffe19fffe19fffe19fffe19ffff17
+f4f20afefc1ef3f42cf3f259ffffb1ffffabedf44ce9f519effa0af1f80af3f41df2f125
+f1f11fedf21aebf316ecf214f7f818f6f50ff3f403f5f700f8fa01f5f904f0f20beaeb13
+fffc35fcfb31edef12e4e714fffa54fffb59e4e51ff6f720f5f120f5f11cf7f315f6f50f
+f8f510f8f80ef9f905f9fb02ffff09ffff09ffff09ffff0ffffe1bfffe1ffffe1dfffe19
+fffd14fffe16fffc1efffd22fffc24fffc1ffffd1afffd15fffd18fffe1dfffc24fffd28
+fffd28fffd22fffe1bfffe15ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17
+ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff17ffff16
+ffff12ffff12ffff16fffe19fffe1bfffe1dfffe1bfffe19ffff18ffff17ffff18fffe1b
+fffd20fffb25fffa2af9f554ffffbafdffeafbfeedfdfef6fffffffbfaff020107010005
+000002000000000100
+0102000300000500030600000a0000fff9cafefa96f4f55cf3f82cf3f91bf5f428f4f126
+f5f217f6f312f6f214f6f312fcf914fdfb13fefa15fefb18fffb1bfffd16ffff0cffff07
+fbf700fbf607fcf11bfcf022fcf11dfcf216fcf40dfbf607f8f506f7f608f7f50df6f50f
+f6f50ff6f60cf7f605f7f606f8f40df8f311faf213faf30dfbf503fbf501fdf20cfdf20d
+fcf507fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602ffff0bfffb07fffb07ffff0bffff0cfffc08fffc08ffff0c
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf604fcf604fcf604fcf604
+fcf604fcf604fcf604fcf604fcf604fcf604fcf604fcf604fcf604fcf604fcf604fbf604
+f7f200ffff19f6f328f4ee58fffdbcfffcb5eef34ff0f924f3f919f7fb22fdf83cfbf63a
+f7f820f3f818f3f927f8fb2efbf726fdf91efefc13ffff0cffff07ffff05fdff08f9fb11
+edea13f5f22bfffd45291f002c16001e0b00ffff54ffff2afdf822fdf91bfffc0ffffe0e
+fffd18fffe1bfffe16ffff13f9f609f8f707f9f704f8f706f9f50ef8f60ef9f706f9f704
+f8f508f8f40cf9f510f9f412f9f510f9f50efaf40afaf40afaf40cfaf30ffbf316fcf318
+fdf317fcf312fbf30afbf405fcf604fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602fcf602
+fcf700fcf600fcf602fcf506fcf507fcf509fcf507fcf506fdf705fdf703fcf604fcf507
+fbf30cfbf211fbf116f3ec44ffffb5fdffeafbfeedfcfdf5fffffffbfaff020107010005
+000002000000000100
+000200010200030106040000080100fff9c7fefc97f4f762f9ff3bfbfe35faf551faf252
+f9f23ff8f433f8f335faf333f6ed2cf7ee2df8ef2ef8f127f9f41cfaf810fcfa09fcfb03
+fffd08fffb13fff724fff52bfff52afff71ffffb0ffffd08fffe10fefd17fefb20fefb20
+fefd19fffd12fffe0dfffd0efffc17fffa1bfffb17fffb12fffd09fffc09fffa14fffa14
+fffb08fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffb02fdf800fff700fffc02fffb02fdf800fff700fffc02
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc04fffd04fffc04fffd04
+fffc04fffd04fffc04fffd04fffc04fffd04fffc04fffd04fffc04fffd04fffc04fffd04
+f8f400ffff16f5f322f0eb53fffbbafff9b9eef15af3f93deaea3af1eb4ff8eb68f6ec57
+eff122edf313eef627f6f83deae13af2e63af8f224f9f611f6f706f4f503f4f60cf6f713
+f6f61afaf72cf1ec3afff676260c002e1600eee646f0ef1bf7f41df9f613fafa06fafa04
+fbf911fcf916fdfa17fdfa15fefc13fefc11fefd0dfefd0ffefb16fefc13fefe06feff04
+fffc11fffc15fffc14fffe13fffe0ffffe0dfffd0bfffc0cfffb0cfffb0ffffa13fffb14
+fffb12fffa0dfffb0afffb05fffc04fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fffd01fffd01fffc04fffc06fffb0afffc0afffb0afffc08fffd05fffe05fffc04fffc08
+fffa0ffff813fff719faf247ffffb4fcffe9fafdecfcfdf5fffffffbfaff020107010005
+000002000000000100
+000500000200020307010000040100fdfbcbfcfba1e6e767f1f654252300382a00291800
+211300f2e676f5e9791c0e00220f002e1a00211100fffa5df9f62dfeff1dfdfc16faf913
+fcfb17faf817efed0cfffb1efffc24fcf81bfffd12f2f302eaee03ffff25f8f828f3f321
+ffff1cfeff0fe9eb00ffff09fdfb10fefb10fefc09fffc03fffd02fffc03fffa0bfffa0c
+fffb05fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffb05fffc05fffb05fffc05
+fffb05fffc05fffb05fffc05fffc06fffd06fffc06fffd06fffc06fffd06fffc06fffd04
+faf900ffff0ff0f419f5f652fffcafffffc0e5e8632225001910003421002d1600150400
+f5f643f6ff24dde919292c003020003a2500fff95cdcda13f9fa22f6f71ffdfd39f4f432
+e2e512feff2af0f326f0ea54261000251000e9e44cf2f427e5e513ffff27f8fc09f6fb01
+ffff17edef08ffff22eeef0df6f90cffff12ebee01f5f70effff1ff8fa13ffff0afdff08
+f7f610fbf918ffff16ebea00ffff0cffff04f2f100ffff04fefd03fffc05fffc05fffc05
+fffc05fffc03fffc02fffc02fffc02fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03
+fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffc03fffd02
+fffc02fffd02fffb05fffc07fffa0bfffb0bfffa0bfffb09fffb05fffd06fffc06fffc0a
+fffa11fff915fff61af7f047ffffb5ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00030200020400020b000002030200fffecefdffa5e7ec6cedf257ffff7d0f02002d1a00
+fcefa9f3ec94f4ed932f25002d1b00e7d67cfff87eede749e1e21ceef11cfcfd33f2f232
+eeec37ffff48eeee2affff3bf8f631edec22fefe2cfdff29fdff2fe1e51ef9fa46f8f83e
+eef219f3f70affff19e6e700fcfb13fdfb13fdfd07fefd02fefe00fefd05fefb0efefb0e
+fefd05fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffc03fefd03fffc03fefd03
+fffc03fefd03fffc03fefd03fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04
+ffff05f7fa09f9ff1ff8fc4ffaf49ce5e198faff7ff1f57c382d001100001b0005ead7ad
+fdfe64d5e216f2ff3ee6eb51251700ddcb77e5de4ffefd4be7e72febea38eeeb4ef9f852
+ffff3ae0e70df4fd26e9e94d1402001f0c00fafa5ef2f92fffff4ceff033e9ee16f6fd1b
+e9ef11fbff28e2e51cffff38e6ed0bffff25f2f721ffff37ffff3eeef128e4ea0eebef12
+ffff36e5e513e4e503f6f908ecf100f9ff00ffff07f5f800fdfe00fdfe00fefe00fefe00
+fefe00fffd00fffd00fffd00fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02fffd02fefd02
+fffd02fefd02fffc03fefc07fffb09fefc0bfffb09fefc07fffc05fffe04fffd06fffd0a
+fffb0ffefa13fff718f5f245feffb4ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00020e00010e000112000005030500ffffcaffff9feaf362deec37e1e74f221a00130800
+f3ef94edf07bdce169202300eded5bffff62e3e528f6fb2ffcff30f4f736e2df42efea6a
+fcf487ebe376f7f375ebea5ce3e44beff150ffff5ed0d32cf9ff55e7eb4cf5f36cf6f461
+ebee2ff5fb1fd7dd00ffff19faf922fcf920fcfc10fdfd07fdfd05fdfc0cfdfa19fdfa17
+fdfd07fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+fafc01f6fc08f4fd1ae3ea38ffffaaffffade0e763ecf274e4dba20e0000250e16130200
+f3f472dde93de3ee523139001f2100ffff68fafb58dcdc3ceaea58ffff89d6d15bf0ef63
+e3ed2ad9e70ef9ff35dddf4e1e0f00190b00e5ec46f5ff38e6e75df1ed72fcfd63e3e738
+edf339fbff4bffff66e7ea43f1fa31f3fc33f0f34cdcdc4aebe960f4f363eff150ffff5a
+e9e83effff47f4f626ffff2be9ef00e4ec00ffff05f6fc00fcfe03fcff02fdfe00fdff00
+fdff00fefe00fefd02fefd02fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefd02fdfe03fefd05fdfd07fefd05fdfe03fefd02feff01fffe03fefe06
+fffd0cfdfb10fdf914f4f341feffb4ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00020c00010e000013000007020300ffffcdffff9eeaf45fdceb2ef4fe5f120c00191100
+f1f199e8ef7f242c00e1eb68f2f94bdfe61efeff34e5ec20f5f942eaec492d2c00343200
+181500282300161200f2ef922524002023001d20002b2f00181f00f4f7721a1700222000
+232600f7fd27ffff23f6fa10fbfa23fbfb21fdfd11fdff08fdff06fdfe0dfdfb1cfdfb1a
+fefe08feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff01
+eaec00ffff16ffff26dae131ffffa5ffffb5eaf666e6f05cf4f1941307001e0b001f1100
+f7f68ce9f06cf5fc88111800eef54ff4f849dedf45363600282300140c00342a00191500
+ffff69f2fd3ff5ff3fe7ec5e110400221600fbff57d4e21b2e2f001a1700202200ffff71
+f4fc57131a002223001c1e00dfe93aeaf445f0f372fdfc922321001c1c002c30001f2200
+120f00f8f55ce5e52dd3d802ffff19f1fb00ffff0ce2e900fbff0afbff08fdff04fdff03
+feff03feff04fffd0afffd0afeff03feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff01feff01feff04feff04feff03feff01fdff00feff00feff01feff03
+fefe08fdfc0cfcfa11f4f340feffb2ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00040000020400000d000009030000fefcd5fdffa5e6ee64f6ff4df2fb640a03000a0000
+fffec50b0f00050a00f3f89ae2e846f2f738fdff48f0f14eefeb702f2d00121800e6ef44
+f1fb5ae7ec6b0d0b001b1800e2e29c1112001c1c00101200ecf17de3e76cf9f4962d2a00
+f9fd48f8ff1fdbe300f9ff09fbfd16fdfc14fdff08fdff03fdff01fdff06fbfe11fdfd0f
+feff04feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff01
+f7f700fbfe11f3f91df0f448ffffaaf1f09df4ff62eefe46e9f052f4f47c2d22000f0200
+efe898dad883f4f4aa232500feff6de6ea4d1b1900181100ebdfa5e9dbb8e2d0c21d0e00
+110c00dde156eef849f6fe6b251e000b0500d6e334f4ff41edf176222200171c00eff766
+f4fe5fe9f066120f001f1d00f1f965f6ff66d8d8761714001d1c00f9fc87eaf163f7fc6e
+443e001d1400fffb5ff7f838e2e707ffff1adbe000ffff18fbfe11fdfd0ffefe0afefe08
+fffd08fffc0dfffa14fffb13fefe06feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff01feff01feff01feff01feff00fdff00feff00feff00feff03
+fefe06fdfc0bfcfa0ff4f43efeffb2ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00050000030001010901000b040000fef9dbfdfcaae5eb65e2f038d6df482a2000180c0e
+0a07001e2100090a00202000f3f564ebef38f4f744dad7481e1200291f00eeef6ff3fd5e
+e1ec48f3fd781e1f000d0c00eef2a6dae09a252405060400e6ea8ce7e880312900151000
+fafd4eecf415f7fd07ffff0efefe14fefe12ffff07feff00ffff00feff05feff0efefe10
+ffff05ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff01feff01ffff01feff01ffff01feff01ffff01fffe04
+ffff12f3f309e6ea0ff6f84dffffb1f8f6a1eef953cadc0ef2ff35d5da35241b00291a00
+251900fff9c30a0500262600e5e859f4f665fdf799e9dda12718002617000f0000150500
+332b00f2f37edfe744f3fb6a0d0600140f00f9ff62e9f644e9ed7e202000191d00e6ed69
+d8e349e8ef6e140f00191500d9e158eef7681c1a00161100e9e898f0f38ae4eb69e3e568
+1c1200271a00f4ed61efee3bf0f41bfcff15f8fc0ffbfe11fefe14fffe10ffff0bfffe09
+fffe09fffd0efffb19fffb17fffe09ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02ffff02
+ffff00ffff00ffff02ffff02ffff04ffff04ffff04ffff02fefe00feff01ffff01feff03
+fffd08fdfc0bfdf911f4f340feffb2ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00070000040003010604000c070005fff7e3fffcafe8ec64fbff47eff7541108000c0000
+eae7bc0a0c001817020c0900fcfa7ff1f145f7fa3bfdfb681c0a00100000110600242300
+2628001a1f001d1d000b0e00e5f475ecfa880304001f1c090e0d00f3f0a10e0200fffdb3
+fffe61f1f522f7fa0bfeff0bfffc19fffc17fffe09ffff00ffff00ffff07fffd15fffd15
+fffe0bffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff05fffe05ffff07fffe07ffff07
+fffe07ffff07fffe07ffff07fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffd08
+fef90afaf60ffeff21eaea3afffca4fffeaafaff5af8ff31e9f817ecf238261c00190600
+170500f7eaca3c3800dee072eff35efffd74190d001103002b1f00e1d696f5eaaa1f1800
+151100eded71e5ea4fe9ec691b0f00140900e9ed65f0f864e5e4920f0b00343400e3e874
+ebf561eff577221c00140f00f3fc6df8ff700a06003128072b26001514002729002a2700
+1b0d00291900d7cd47faf843ffff2cf9fe0cf6fa07feff0bfeff0dffff0bffff05ffff04
+ffff04fffd09fffa15fffa15fffe09ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04ffff04
+ffff02ffff02ffff04ffff05fffe07ffff07fffe07ffff05fffd02fffe03fffe03fffe06
+fffc0cfefb0efff814f5f241feffb4ffffecfefff0fcfdf5fffffffdfcff030208000004
+000002000000000100
+00080000050003040003000908000ffff7effffdb7eced6ec5ce1bffff701308001d0f04
+efebbedbd9a92724110c07001f1800f7f36eeaeb45edea691f0a001e0616f9e9d0e0d79e
+eeec99f2f19fe0dea5ecefa0e8f861ecfb6c1317001a1600100a003028002b1e00f2e88f
+d9d631ffff2df6f608ffff0ffffb1bfffa1bfffd0dffff04ffff02fffe05fffd12fffc14
+fffd0bfffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe07fffe07fffe09fffe09fffe09
+fffe09fffe09fffe09fffe09fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffc0a
+fffe0decec00fcff18e5e72effffabffffaad2d931effe27f3ff1edae11ff8f17f231200
+140000241400161200e0e35ef0f74fdde0511d11002b1c00e6daa6f0e7a4e9e199191300
+2d2b00cfd156f1f75ff1f378140b00100600f0f380e1e665f3f2a21b1600151100ecea9f
+dadd76e5e6891711000b0700d8df5be3ea68322c00130800d4cca7e9e4acf6f4a7d1cc78
+ffefa7f0dc83fffa72e6df2ef9f821ffff12eef000ffff07ffff09ffff07fffe05ffff04
+fffe04fffd07fffc0efffc10fffe09fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05fffe05
+fffe05fffe05fffe07fffe09fffe09fffe09fffe09fffe07fffc03fffd04fffd06fffc0a
+fffb0ffff913fff816f5f245ffffb4ffffecfefff0fcfef3fffffdfdfdff030207000004
+000002000000000000
+000a0000080000050000000406001cfff9fffffdbeefef7de9ec5decea73291c000e0000
+f7ecbefcf4c30a00001c1200180c00170e00f6f38aebe58f1a08001100031b0f00ebe49e
+e1dc88d3d081fffbc7120e00f2fc68dfeb4be6ea7c1c1800150a00261a00e9e085edea5b
+fcfd33f5f70dfcfb0afffb0cfff517fff517fff60efff805fff900fffa00fffa01fff903
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fffd06fffd06fffd06fffd06fffd06fffd06fffd06fefe06
+f2f900fbff0beefd04f0f632ffffa3fffaa5e9ee4aeefa2af0fb25feff45e0df53281e00
+1502002d1e00161200f4fa5aebfb36f3ff5f160e000e00001b11001810000b0200211b00
+0f0e00f2f685e1eb57f1f77b0e0700170e00eeef91e7ec74eaf1811416000a0500201805
+0b02001b1400161200212100f1f78be4e985130f00080000110900f3eec8e3e39bfcf69e
+f1dd862a1300f8e65cebde30f9f122f9f50efffe0bffff0dfdfb06fffb06fffa08fffa08
+fffb06fffb04fffb04fffb04fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03
+fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa03fefa05
+fef909fef909fef909fef907fef907fefa05fefa03fefa03fefa03fefa05fdf808fdf70b
+fdf610fcf513fcf417f3ef45ffffb5ffffecfeffeefcfef1fffffafdfdfb030305000004
+000004000004000002
+00080000090000060000010204001efff8fffffdb3eef071f4f7603533002016001f1500
+140e00e7e47dfaf69d120c001c1400110b001b1800fdfb94dad092221900201b001e1e00
+232200262500100900221f00f1f469dee450ffff8b100b003227000e0500ffff81eaee39
+e2e907ffff0cffff0cf9f706fffb16fffb18fffc11fffd0afffe05ffff01ffff03ffff03
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06fefd03fefd03fefd03fefd03fefd03fefd03fefd03fcfe05
+eff902f6ff10ecf909eff637ffffa4fffaa5eeef4beef826ebf41fe7f025eef044eeeb68
+251700110600ffff6ce7ee2cf0ff21ecf83e1109002417001105001e1500fff8c2181100
+1e1b00252900f2f953191f001a13001c1500191900ffff72e8ee50fbfe791b13000d0100
+1d0d00e5daad231d001d1e00151700f8fa7ffcf6a01e1700291f00161000100d001e1a00
+322100271200faea4fffff4dffff2dfaf70cf9f702f7f600ffff08ffff0afffe0ffffe0f
+ffff0cffff08ffff03ffff03ffff05ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06
+ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff06ffff0a
+ffff0efffe0fffff0effff0cffff0affff06ffff06ffff06ffff06ffff0afffe0dfffd10
+fffb14fffa18fffa1cf8f548feffb5ffffecfeffeefcfef0fffff8fdfef9030303000002
+000005000005000004
+000302000401000300000004070016fff8effffd99eef34fe8ef25e6ed23f3f44eeff04d
+ebf12fffff39e7f229f4ff41eaf247f5fc57ffff5decf542ecf341f7ff4ae2eb30f6ff47
+ebf240f0f751f5f863f1f36ceae86df1ef80faf494e9e38b272100edea7fecf053ebf429
+f8ff13dfe900f8fe00fbfd02fbf809fbf809fbf904fbfa00fbfb00fbfb00fbfa00fafb00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00ffff05ffff05ffff05ffff05ffff05ffff05ffff05fdff0e
+f3f919f7ff2bf1f723f5f74cffffacffffa6f6f54bf2fc21f6ff1cffff29f5fb27f5fa3e
+f7f262ebea51f6fb2df6ff13ffff14edf116fffd67eadf63fff875e1d84ffff76df0e952
+fcf64affff40f3f224e7e723ffff6dfffb62dbd819f8fb24f8fa1df3f526f7f047ece453
+f7ea67fef568efe83ff6f636fffe32f2f32bede834fefa51f0e845faf64cfbf73cfffb42
+f4eb48f7eb49fdf43deae615ebeb01f5f700ffff09fcff00f9fc00f9fb02f9fa08f9fa08
+f9fa06f9fb02f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00
+f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fc00f9fb00
+f9fb04f9fa06f9fb04f9fb00f9fc00f9fc00f9fc00f9fc00fafd00fafd00f9fb04f9fa08
+f9f90bf8f80ef8f711f1f23ffeffb5ffffedfeffeefcfef0fffff8fdfef9030303000002
+000005000005000004
+00000b0001080202040300050b0012fff6e5fffd90f1f546ffff31e8f00ff6fa34fbff36
+ebf509f0ff04ecfc03f2ff14eefc23f2fe32d7e11ee0ec1effff22dff100eafa13e7f51a
+f1fd2fdce623f0f840e8ec51231e00201700eee5981711001e1e00e4e95be3ec37f8ff2d
+f1ff0dfbff08ffff0bf5fb03fcff0efcff0efcff09fcff07fcff07fcff09fbff0efbff0e
+f9ff0bf9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f2fb02f2fb02f2fb02f2fb02f2fb02f2fb02f2fb02f2f90d
+edf321f1f52febef29f2f04efffa9efff898f3f441edf516ebf40feaf40af7ff17f7fe24
+eef132f0f330f3fd11f6ff05f0f401f5f211f5ed2af5ea36ffff4df1e632ece228fffc3b
+f3ec20faf424fbf523ffff39e1d817f8f029ffff25e9e800f7f605fffe13fffa22ffff38
+ebe225fffa3dfff92fe1dc07f7f413ffff1bfaf714fffb1debe60efffd25faf61bf5f120
+e8e429ffff44e9eb1efaff1effff16f7ff02faff05f4fe00f8ff06f8ff0cf8ff13f8fe14
+f8ff11f8ff0df8ff0af8ff06f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09
+f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff09f9ff0b
+f9ff0ef9ff0ef9ff0df9ff0bf9ff07f9ff07f9ff07f9ff07faff08faff0af9ff0df9ff10
+f9ff14f8fe16f8fd1af3f748fdffb7ffffedfefff0fcfef1fffff8fdfef9030303000002
+000004000004000004
+0000090100060500040600040c0010fff4e4fffc98f7f757dbdf18e8eb1effff4ef3f53c
+e7ee14f0fc12f8ff1ef2fe20e5f121ecf536ffff59e6ef34ecfd11e5f800f6ff21ecf925
+eaf52ff0f93adbe524ffff6c251d00211400160a00332d00f3f973d3df33fdff46dcee10
+e2f505e5f500f5ff10f6ff13f2fc10f2fc10f2fd0df2fd0bf0fd0ff0fc12f0fb1bf0fb1b
+f0fc16f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f5ff17f5ff17f5ff17f5ff17f5ff17f5ff17f5ff17f5ff1e
+f6fe2df6fc36f3f933fafb55ffff92ffff8dfcff47f5ff22feff2df1fc1cdeea02f6ff1e
+f1fa27edf621ffff28e0e800fefd27f6f022fffb2df8f127f5ec2fffff4eefe722ece41d
+fffe39e8df22f7ec3af4e935f5ed28f7f11ffefa1fffff24ffff26f0ec11f7f21cf8f224
+ffff46e1d71dfff841ffff4bfdf532fffc2cf5f114e6e302ffff26ede813e8e01bfffd3c
+f4f633f6fd31f1fb21f5ff19edfb05e1f000f0ff04f4ff0ceffc0feffb15eff91ceff91e
+eff91ceffa18effb13effb11f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12
+f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc12f0fc14
+f0fc16f0fc16f0fc14f0fc12f0fd10f0fd0ff0fd0ff0fd0ff2ff11f2ff12f1fd15f1fc19
+f0fb1bf0fa1df0fa20ecf34dfbffbbffffeffefff2fcfef3fffffafdfdfb030303000002
+000004000004000004
+0101030100000500000600000c000ffff4e9fffcadfefb7affff65faf858f0e964e7e35d
+fafb58ecf043eaed46f4f955fbff5fe0e54de3e464f6f96afcff47ddea1ef5ff48e5ec44
+e4e94eeff459f7fd5bdee05bddd493eee0bbede1afeee89ce8ed77f0f968e2ee4ce4f142
+ffff61e1ed33e6ef3ae4ed3aeff845eff843eff940eff940eef943eef84aeef655eef655
+eef74eeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849e8f043e7f142e8f043e7f142e8f043e7f142e8f043e8f045
+ebf04beaec4bebed4eefec67f4e997f6ec93f1f15debef42eaec4bdfe140ffff55fbff4c
+eaee42f2f54ee7ea41e9ea47f1ed58ffff67f4f340ebeb33f9f651e0dc3be8e63cffff5e
+fbf758ebe455fffd7effff79eeeb44ffff50cdcc1af8f649fcf952e9e73df8f747fbf94c
+f4f14cf0ea54fef66fd3ca47ebe456ede94af9f845ffff4de2e228ffff59ffff6cdfda4b
+f8fc61e1ea43eef746e3ef35e4f02ef5ff3cf8ff42e2ee32eef648edf64feef454edf456
+eef454edf550eef64bedf748eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849
+eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef849eff74aeef84a
+eff74ceef74ceff74aeef849eff847eef945eff845eef945f0f946effa48f0f84beff84d
+eff650eef653eff555eaf074faffc9fffff1fefff3fcfef3fffffafdfdfb030303000002
+000004000004000002
+0103000101000301000400000b0010fff4f7fffdcefffdadfffb9dfcf49fffffcafffbcc
+fff5b5fff7b2ffffc6ede5a4ffffaefffeacffffbeffffb9ffff9df4f887ffffa4ffffa9
+ffffb3f4f49efcfe9dffffaefcf5c9f7eecfffffd6eae4b0fcfabfffffbeffffc1ffffb8
+e8e8a0ffffbffffcb5ffffbbffffb6ffffb2ffffafffffb0ffffb6ffffbdffffc7ffffc7
+ffffc0ffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffc0ffffbeffffc0ffffbeffffc0ffffbeffffc0ffffba
+ffffb0ffffaaffffb2ffffc6fff7e7fffae5ffffc1ffffb4fffac5ffffd1fbf3b2f5efa5
+ffffb7fff9bafff8cbffffd8f8f1c3f8f8b0ffff99ffff8cfaff96ffffa3ffffa5e7ec88
+ffffadfafab4fefbc4f5f4b3fcff98faff8dffffa8f3f69df4f6a3ffffb0ffffa8f2f790
+ffffaafdfeaefdfbc0ffffcfffffc8ffffb7ffffa1f3fa86f6fd8df8fc9bffffbcffffc2
+faf9b6f8f8aeffffb8ffffb1f3f399ffffacffffaffeffb3ffffbeffffc5fffecaffffca
+ffffc8ffffc3ffffc0ffffbcffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbb
+ffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbbffffbdffffbd
+ffffbdffffbdffffbbffffb9ffffb9ffffb7ffffb7ffffb7ffffb9ffffbbffffbdffffc0
+ffffc1ffffc5fffec6fffdd0fafae2fffff4fefff5fcfdf5fffffafdfdfb030303000002
+000004000004000002
+00040000030001020003000008000ffff5fdfffee2ffffcfffffcefffad3fff6edffeff0
+fffcf3fbeee5fffbf9fffcf3fbf7d4ffffdafcf9d8fbf8d7ffffd6ffffd3fffed8fffedf
+eeebccffffe0ffffdafdfbd4fbf7dafffce1fefbd8ffffddffffe3f4f0d7fffeecf3eddf
+fffaf0fff8f0f7f0e6fffbedfffde9fffee5ffffe1ffffe3fffee9fffcf0fffcf7fffbf8
+fffbf1fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffbeffffbedfffbeffffbedfffbeffffbedfffbeffffce8
+fffad6fbf6ccfffad8fff8e7f8eaf9fbedfafffbe1fff8dcfff7f9ede0e7fff8eefffbe1
+fbf5d3ffffeafff2fcf4e8fefffdfffefff1eefabcfeffbff3fec2f9ffcff7ffcdfaffd6
+f6fddcfeffedfefff4f8fee4feffcdf3ffbdf0f8cffeffe8feffe8f4fcd7f7ffcdf9ffcc
+fcffd6feffe3f1f5e6f7faf1f1f5e6f6fddef2fcc7feffcaf9ffc7feffd6f9fee7fffff3
+ffffedfffbe2f3efd4ffffe3f7f4d5ffffe4f7f2dcfffeeefffcf4fffbf9fffafdfffafb
+fffbf9fffcf4fffdf1fffdeffffceefffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffceefffcf0fffcee
+fffceefffceefffceefffcecfffcecfffdeafffdeafffdeaffffecfffeeefffdeffffdf1
+fffcf2fffbf3fffbf5fffbf5f8f8eefffff6fefff7fcfdf7fffffbfdfdfb030303000002
+000004000002000002
+00040000050000040000010001000af7f5fafdfce8fbfadbf5f2d1ffffeafffcfffdf3fe
+faf4f8fffdfffff7fff7f3f4fdffe9ffffe4f5f8ddffffecf7f7ebefeee9fffffdfbf9fc
+fffeffefedf0fcfbf9fffff8e9eadcffffedf7f9e1eff2d7fffee2ffffeaf2ebe1fffefb
+f8f1f8f6eff7fffdfefffcf7fffff3fcfee9f7f9e3f4f6e0fffff1ebebe1fffffbfaf9f5
+fffff8faf7eef9f6effffff6f6f3ecf0ede4fffff8f8f5ecfffdf6fffdf4fffdf6fffef5
+fffff8fffff6fffcf5fcf9f0fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6
+fffff8fffff6fffff8fffff6fffef7fffcf3fffcf5fffdf4fffef7fffff6fffff8fffff6
+fffff8fffef5fffff8fffff6fffff8fdfaf1fcf9f2fffef5fffff8fffcf3fffcf5fffff6
+fffff8f3f0e7fffff8fefbf2fdfaf3fdfaf1fffff8fffef5fffff8f3f0e7fffdf6fffff6
+fffff8fefbf2f6f3ecfffff6f1eee7fffff6f6f3ecfffff6f7f4edeeebe2fffff8f2efe6
+fffff8efece3f0ede6fffff6f6f3ecfffff6fffff8fbf8effefbf4fffef5fffff8fffff6
+fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6fffdf6fffdf4
+fffdf6fffef5fffff8fffff6fffef7fffdf4fffef7fffff6fffdf6fffff6fffff8fffff6
+fffef7fffdf4fffff8fffff6fffff8fffff6fffff8fffff6fffef7fffdf4fffcf5fffcf3
+fffff8fffef5fffff8fffcf3fffff8fefbf2f5f2ebfffff6fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffff2
+f9f8e3fefee6fffeeafcf9f2fdf7fffffdffffffeafdfde3fffdfff6f1f8fffff3ffffe3
+f9fdcbffffddfaf6f7fefaffe8e9fff9fffff9ffeaedfcd3effce0f9fff1f8fff7f1faf5
+f1faf9f9ffffeaf3f2f7fff4f4ffe1eaf7dbf9ffffebf2faf3fcf7eef9e8f9ffece7f4d8
+f9ffedeaf5e5f9fffff5fdfff3fcf9ecf6ebf9ffeaf5ffe0eefcd9f6ffe9f6fff7fbfffd
+fffff6fffff1fffff1fffdeefffdeefffef1fffff6fffffafffdfefffcfffffcfffffdfe
+fffdfcfffef7fffff3fffff2fffef5fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5fffef7fffef5
+fffef5fffff3fffff3fffff2fffff2fffff2fffff2fffff2fffff2fffff2fffff3fffef5
+fffef7fffef9fffef9fffef9fffffafdfef8fffffafbfcf7fffffbfffffd000000010101
+000002000002000002
+000400000400000500000200000308f8f9fbfdfff1fbffe8fbfde7eff0e2f8f6f9fffdff
+fffffffbfbfdfbfafffeffffe4e8d9f0f8e3fcfff1fcfff8fcfffffcfefffcfefff5f7ff
+f3f5fffcfefff0f2ffeaedf4f9fef7f0f6e8e3eadafeffeffbfbe3f3f0ddf1ece8f4eff6
+fff9fffffcfffffdffefefedfefff5fafeedfffff1f1f3e5dee0d5fffff8f2f3edf9faf4
+f7f8f2fffffafffffaf9faf4fefdf8fffffaf9f8f3f3f4eefdfcf7fbfcf6fcfbf6fdfef8
+fffffafffffafffffafdfef8fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fffffafffffafffffafffffafffffafffffafffffafffef9fefff9fffffafffffa
+fffef9fefff9fffef9fffffafffffafbfcf6fbfaf5fffffafffffafffffafffffafffffa
+fbfaf5fffffafdfcf7fbfcf6fffffafbfcf6fffffaecede7fbfaf5fbfcf6fffffafefff9
+fcfbf6fffffafcfbf6f9faf4fffffaeaebe5efeee9fafbf5f7f6f1fffffaf4f3eef5f6f0
+f6f5f0fffffafffffafafbf5fdfcf7fdfef8efeee9fefff9fdfcf7fdfef8fffef9fffffa
+fffffafffffafffffafffffafefdf8fefff9fffef9fffffafffffafffffafffef9fefff9
+fefdf8fefff9fffef9fefff9fefdf8fdfef8fffef9fefff9fefdf8fffffafffffafffffa
+fefdf8fcfdf7fffef9fffffafbfaf5fafbf5fbfaf5fcfdf7fefdf8fffffafffffafffffa
+f8f7f2e9eae4fbfaf5fffffaf8f7f2fffffafffffae2e3ddfffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff7
+f8fceefcfff2fdfff7fafbfdfaf9fffefffffeffedf9fee7f5f6f8f9faffecf0e2fdffe2
+e9f4bafeffd6f1f4edfcfdfffbfcffe7ecfff9fffaf9fff1f5fff2f4fdfaebf2fcf9ffff
+e5ebf9edf4fcf9ffffeaf5e7f9fff1f9fffadde2f6f9fdfff7fefff9fffdf6fff7f6fff5
+ecf6edf0f9f4f2fafdf7fefff9fffff0f9f6f3fdf2f7fff2f6fff3f9fffaf9fffffaffff
+f6f8f3f9faf4fefdf8fffffafffffbfffffbfffefcfdfdfffffdfffefdfffffdfffefefe
+fffefafefff7fffff3fefff3fffff7fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9fffef9fefff9
+fffff7fefff7fffff5fefff5fffff5fefff3fffff3fefff3fffff3fefff5fffff7fefff7
+fffef9fefff9fffef9fefff9fffffbfdfef9fffffbfbfbf9fffffdfffffd000000010101
+000002000002000000
+000300000300000500000200000606f8fdf9fcfff4faffedf3fbe4fcffeff1f7ebe8eee4
+fcfff3f9ffeee4eddaedf6e5fbfff6f4fbf3f4fbf4f1f7f5edf2f5f1f6fae5e9f2fbffff
+f8fcfffbfffffbfffffafffffbfffff9fff9e5ede2fbfff3ffffedf5f2e3fffeffdddae5
+fef9fff6f3fffefffff9fbf8e8ebe0f7fdefe5e8ddfefff8f5f6f0dfe0d8fffff4fffff4
+fffff6eef1e8edeee6f2f5ecf6f7effefff8eaebe3fefff8f8f9f1f6f9f0f6f7eff6f9f0
+fafbf3fbfef5fdfef6fbfef5fdfef6fcfff6fdfef6fcfff6fdfef6fcfff6fdfef6fcfff6
+fdfef6fcfff6fdfef6fcfff6fefff7fdfff7fefff7fefff8fdfef6fcfff6fdfef6fcfff6
+fdfef6fcfff6fdfef6fbfef5fefff7f8fbf2f8f9f1fafdf4fcfdf5f9fcf3f9faf2f9fcf3
+f8f9f1fefff8f0f1e9fefff8fffff8eaede4f8f9f1fefff8fffff8fdfff7f3f4ecf6f9f0
+fdfef6fefff8fffff8eff2e9f5f6eefefff8fffff8fdfff7fffff8fefff8dcddd5fefff8
+ecede5f2f5eceff0e8e9ece3fffff8fefff8f6f7effefff8fdfef6fbfef5fbfcf4fafdf4
+fdfef6fdfff7fefff7fdfff7fafbf3fafdf4fcfdf5fcfff6fefff7fdfff7fefff7fdfff7
+fdfef6fcfff6fdfef6fcfff6fdfef6fcfff6fdfef6fcfff6fcfdf5fcfff6fefff7fdfff7
+fcfdf5fbfef5fdfef6fdfff7fefff7fcfff6fbfcf4f8fbf2f8f9f1f7faf1f8f9f1f8fbf2
+fffff8fefff8f0f1e9fefff8edeee6e5e8dffffff8fefff8fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+f9fff5fbfffafbfffdf9fefff9fdfffafffff9ffedf6ffe8eff5f1fbfffffbfff6f0fbdb
+f7ffcdfbffd6f6fef1ebeef7e0e0ece9e8eef8faeffefff0eff1e6fffffdf0eefbf0eefc
+fffdfff4f4f2ffffeffbffe4f7fbe4f5f6eee3e0f3efebffe4e3ebfefefefffffdf6f6f4
+fafaf8fffffffffffffefeffeeeef0edededfffffde2e2e0eeefeafffffdfdfdfdfafafa
+f5f5f5f6f8f7fafafcfcfdfffffffffdfefffcfbfffafbfffefefffdfffefefefcfdfffa
+fefff9fdfff5fefff3fdfff3fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fdfff7fefff7fdfff5fefff5fdfff5fefff5fdfff7fefff7fdfff7
+fefff7fdfff7fefff7fefff9fffffbfdfdfbfffffdfbfbfbffffffffffff000000010101
+000000000000000000
+000202000200000301000200000602f5fcf5fafff7f8fff1f4fcede6eedfedf5e8f9fff2
+d0d9c6f2fbe6fbffedeff8e7eff5f3e1e6eaf9fefff5fafffbffffe4e9ecfbfffffaffff
+f0f5f8e4eaeafbfffdecf2eef7fdfbf2f8f6f7fef7f3f9eff5f6e6e9e6ddf2f0f5fffcff
+f7f4fffefdffe8eceffcfffbfcfff8f9fef7fbfffedddee2fefefff7f6f4fffff4dadcce
+f1f4ebf6f8f3f2f4effefffbfcfef9f1f3eeeaece7f6f8f3f9fbf6f7f9f4f5f7f2f5f7f2
+f8faf5fafcf7fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8
+fefffbfcfef9fbfdf8fafcf7fafcf7f9fbf6f7f9f4f6f8f3fcfef9fbfdf8fafcf7fafcf7
+fbfdf8fbfdf8fafcf7f9fbf6fdfffafafcf7f9fbf6f9fbf6f9fbf6f7f9f4f4f6f1f3f5f0
+f0f2edfefffbf7f9f4edefeafefffbfefffbe8eae5d8dad5e1e3def9fbf6f2f4effefffb
+f5f7f2e6e8e3f2f4effefffbf5f7f2e9ebe6edefeafefffbe8eae5fbfdf8fefffbe8eae5
+fafcf7f7f9f4fefffb060803000100f0f2edf8faf5eff1ecfcfef9fafcf7f7f9f4f7f9f4
+fafcf7fcfef9fcfef9fbfdf8f8faf5f9fbf6fafcf7fbfdf8fbfdf8fbfdf8fbfdf8fbfdf8
+fcfef9fbfdf8fafcf7fbfdf8fcfef9fcfef9fcfef9fbfdf8fbfdf8fbfdf8fcfef9fbfdf8
+fbfdf8fbfdf8fbfdf8fbfdf8fefffbfdfffaf9fbf6f6f8f3f3f5f0f2f4eff2f4eff2f4ef
+eff1ecfefffbe1e3def8faf5fefffbfefffbf8faf5f2f4effdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafbfffa
+fafff9fbfffbfbfffffafffff9fdfff8fdfff7ffeff5fee9f8fff8000202f4faf8fbfff3
+effcd1f0fcd4ebf2ebfcfffffffefff8f2f2fffff4fbf7ebfef9f3fffdfff8f0fd07000e
+040004f8f3ed040200ffffe3ffffeafefaf1fff9fffff9fffff8fff9f2fafdf6fdf0eaee
+fffbfffffdff040004fffcfffff8fffffcffd2cbd3fffcfffffcfffffdfffffcfffef9ff
+fefdfffbfcfff8f8fff6f6fef6f6fef8f8fffbfbfffcfdfffdfefffdfffefdfffcfdfffa
+fdfff9fdfff9fdfff9fdfff9fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfff9fdfff9fdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafffffdfdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000002000100000201000100010400f4f9f2f8fdf9f5f9f8fbffffecf0f1fafefdfcfffd
+fcfffbe7ece5edf3e7f6fbf7ebedfafcfdfffcfdffebedfcf4f7fffcffffeff3f6fcffff
+e0e5e1fcfffbd7ddd3fcfff8f5faf6f0f5f1fcfffbfefffafffff6ebe7e4fffdfff5f0ff
+faf7fff1f0fef7fbfcedf2eceaefe9f8fcfdf4f3fffffcfffffcffe5dfe9f8f5f0fdfdf3
+fffffdf2f3f5feffffdbdcdefdfefff1f2f4feffffedeef0fefffffcfdfffafbfdf9fafc
+fbfcfefcfdfffcfdfffcfdfffbfcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfcfe
+fefffffcfdfffafbfdf9fafcfafbfdfafbfdf8f9fbf5f6f8fcfdfffafbfdf8f9fbf9fafc
+fafbfdfbfcfef9fafcf7f8fafefffffdfefffdfefffcfdfffdfefffdfefffbfcfef7f8fa
+fefffff3f4f6fefffff9fafcfcfdfff9fafcecedeffefffff6f7f9feffffe1e2e4f0f1f3
+fefffffefffff8f9fbf1f2f4f9fafceff0f2fefffffefffffefffff3f4f6f1f2f4fafbfd
+fefffff7f8fad8d9db000002131416fafbfdfefffff0f1f3fbfcfef9fafcf7f8faf7f8fa
+f8f9fbfafbfdfbfcfefbfcfefafbfdfafbfdfafbfdfafbfdfafbfdf9fafcf8f9fbf7f8fa
+fcfdfffafbfdf9fafcfafbfdfcfdfffcfdfffbfcfef9fafcfbfcfefbfcfefafbfdfafbfd
+fbfcfefbfcfefbfcfefafbfdf9fafcf9fafcf8f9fbf7f8faf8f9fbf9fafcfafbfdfbfcfe
+fbfcfee6e7e9fefffffcfdffe9eaece8e9ebfefffffefffffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfffe
+fbfff9fafff6fafffbfafefff9fbfff7fafff5fbf1f5fbede7ece604070cf6f7ffeaedf6
+fcfff4edf3e5f8fafff1eeffded7defaf2effffff3f2ece0fffdfbdfd5dd0d0210fffbff
+090005fffdfa090300ebe6d3f9f4e0f8f1e7fffbfffcf0fffdf1fffef2fffffafff0e6ef
+fffbfffef4fd0e0311fbf0fff1e5f9f9edfffffaffe6dbebf8edfbfff5fffbf0fffff7ff
+fefcfffbfbfff9f8fff7f6fff7f6fff9f9fffcfcfffefefffdfefffdfffefdfffefdfffe
+fdfffefdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfffefffffffdfdfffffffffbfbfdffffffffffff000000010101
+000000000000000000
+010002020001020001010000010300f6f7eff8f9fbf5f5fdfefeff070711000005000002
+000002feffff000100040605090715000010fffdfffaf8fff3f2fafffeff00000013140e
+0f100a0001000b0c06d4d5cffffffafffffbf3f3f10100000300000d0a05020008090715
+0b0916ecedf2fcfff8e7eddffcfffaecedf1fffcffe4defafbf2ff090110130e0a0e0a00
+000000010204000002161719f0f1f3eff0f2fefffffefffffbfcfef9fafcf7f8faf7f8fa
+f8f9fbf9fafcf8f9fbf7f8fafbfcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfcfefbfcfe
+fdfefffafbfdf8f9fbfafbfdfdfefffefffffdfefffafbfdfefffffafbfdf8f9fbf8f9fb
+fbfcfefbfcfef8f9fbf5f6f8f6f7f9f9fafcfafbfdfafbfdfcfdfffefffffdfefff8f9fb
+feffffe2e3e5fefffffcfdfff9fafceff0f2f7f8faedeef0000103cdced0eff0f2feffff
+fefffff7f8faf5f6f8f5f6f8f7f8fa141517090a0c0000020000020f1012030406090a0c
+090a0cfefffffcfdff07080a0d0e10ecedeffdfeffeff0f2f8f9fbf9fafcfafbfdf9fafc
+f8f9fbf8f9fbfafbfdfcfdfffbfcfefbfcfefbfcfefbfcfefafbfdf8f9fbf7f8faf6f7f9
+fcfdfff9fafcf7f8faf8f9fbfbfcfefdfefffafbfdf7f8fafcfdfffbfcfefafbfdfafbfd
+fcfdfffcfdfffbfcfefafbfdfdfefffdfefffdfefffdfefffdfefffcfdfffcfdfffbfcfe
+f9fafcfeffff000002f7f8fafefffffefffff4f5f7fefffffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfffc
+fefff7fbfdf2fbfcf7fdfdfffcfafff8f6fff7f8f0f9fbedf8faef1e1e20e2def5fbf8ff
+f9f9f7f3f4efe8e6f1fffcfffffafffffefaebe8d9fffef2f1ebed07000afffbfffff9ff
+fffbfff3eded040000fffef8edead9f3f0e1fdf7f9eee6f3fffafffff6ffeae3ebfffbfb
+eee9e6fbf5f5100813fff9fffaf1fffffafffff8ffe5dee6fef7fefffcfffffbfffffcff
+f4f2fdf6f6fefafafffdfdfffefefffefefffefffffdfefffdfffcfdfffafdfffafdfffa
+fdfffefdfefffdfdfffdfdfffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffffffffdfdfffffffffbfbfdffffffffffff000000010101
+000000000000000000
+060002060000050001040000050300fbf8f1fdfbfefaf7ffe8e5f6f5f3ff06050d28272c
+fffeffebebedfffffd010000030000fffefadcd9cafffff30903030c0608040000faf6eb
+efebe0fffefa140d14231c23040000fffff6faf4f6fffdfd0e0c00030100fffffb000000
+1e1f1a000300dce5cafcffe8f4f8e7eef0edf8f5fffff9fff9effffff5ff0700000b0600
+fdfdf3040500070803000100161712fffffbe4e5e0f5f6f1f7f8f3f6f7f2f6f7f2f7f8f3
+f9faf5f9faf5f8f9f4f6f7f2fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9f9faf5f7f8f3f9faf5fdfef9fffffbfcfdf8f9faf5fffffbfcfdf8f9faf5f9faf5
+fcfdf8fdfef9f9faf5f6f7f2f4f5f0f8f9f4f9faf5f7f8f3f8f9f4fcfdf8f9faf5f2f3ee
+edeee9f7f8f3fffffbe0e1dcf9faf5fffffbf4f5f00b0c070f100bfffffbfffffbeeefea
+ecede8f5f6f1fdfef9fffffbeaebe6000100fffffbfffffb070803080904e5e6e1fefffa
+000100fcfdf8fffffb000100000100fcfdf8e3e4dffffffbf5f6f1fafbf6fffffbfefffa
+f9faf5f7f8f3fafbf6fffffbfafbf6fbfcf7fbfcf7fcfdf8fbfcf7fbfcf7fafbf6f9faf5
+fdfef9fafbf6f7f8f3f8f9f4fcfdf8fefffafbfcf7f7f8f3fefffafcfdf8fbfcf7fbfcf7
+fefffafffffbfdfef9fbfcf7fffffbfffffbfffffbfffffbfdfef9fafbf6f7f8f3f5f6f1
+f1f2ed000100000100e9eae5fdfef9fbfcf7fffffbf9faf5fefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefff9
+fffff7fefbf4fefbf6fffdfffffbfffcf6fffbf8effefde8ffffeaf1efe3fff9fff9f2ff
+fffef9fffdf0f5f2edefedeeffffffd8dad5feffeff9fdeefdfeff191925f7f8fceeeff1
+f7f8fafefffff3f2ffe7e7eff4f8e9feffefecefe8feffffececf6f7f8fdf7fbedfaffe8
+f4fadef8fde7eef1eaf7f8fafbfcfffeffff000200fefff3fcffefe0e4d6eff1eee1e2e4
+f4f4f2f6f7f2fafaf8fefefefffffffffffdfffffafefff5fefff3fefff2fefff2fefff3
+fefff9fefefefefdfffefdfffefefcfefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefefcfefefcfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefc
+fefefcfefffafefffafefefcfffffffdfcfffffefffbfbfdffffffffffff000000010101
+000000000000000000
+060002060000050001040000070400fdfaf3fffdfffefbfffefaffefebf90d0a11010004
+fffefff5f3f6fefdfb0d0c08030000f5f1e5f1efdaffffed040000040000fffff6fffbf0
+fffcf3f9f4f1f4edf5160f17040000fffbf5fffbffdfd9db0604000e0f00f3f3ebfffffb
+000100070b000a1000fbffe7fbffeefffffbfcfafff1ecfff1e9fefffbff060000040100
+fdfdf3fffffa0001001e1f19000100fffffaf8f9f3fffffafafbf5fafbf5fbfcf6fefff9
+fffffafffffafffffafdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fdfef8f8f9f3f5f6f0f5f6f0f8f9f3f9faf4f5f6f0f1f2ecfffffafcfdf7f9faf4f9faf4
+fdfef8fdfef8fafbf5f5f6f0fcfdf7fffffafefff9fafbf5f9faf4fafbf5f5f6f0edeee8
+fffffafbfcf6fcfdf7f8f9f3fefff9e3e4defbfcf6070802000100fffffaf6f7f1f3f4ee
+fffffafdfef8f1f2ecf9faf4fffffa0a0b05e5e6e0f3f4ee0c0d07000100fffffaf1f2ec
+040500fffffae8e9e3fffffafdfef8fffffafcfdf7e5e6e0f3f4eefbfcf6fffffafffffa
+f9faf4f6f7f1fafbf5fffffaf8f9f3f9faf4fafbf5fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7
+fdfef8f9faf4f6f7f1f8f9f3fcfdf7fefff9fbfcf6f7f8f2fffffafdfef8fbfcf6fcfdf7
+fefff9fffffafefff9fbfcf6f2f3edf4f5eff8f9f3fbfcf6fcfdf7fbfcf6f9faf4f8f9f3
+f0f1eb21221c181913f3f4eef7f8f2fffffafafbf5fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fffef9
+fffff8fefbf6fffbf8fffefffffcfffef9fffdfaf1ffffeeffffe7f0eedffffdfffbf5ff
+f0ede6fffff3fbf8effffffaeaebedfcfffdf1f8e8f6fceefcffff00030cd1d5d6f8fcfb
+fbfffff0f3fafcfefffbfdfffcfff8eaf1e1f6fbf4f8fcfbf4f7fcf7fbfafcfff3f0f9de
+fcffe8f9ffe9fcfff6f6fbf7f1f5f6eef3ef0f1507e4ecd7f9ffecf6fdebfcfffaf6fbf5
+fcfff8fbfcf6f9faf4f8f9f4f8f9f4fbfcf6fefff7fffff4fefff2fefff2fefff2fefff3
+fefff9fefefcfefdfffefefffefefcfefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefffafefffafefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefffa
+fefffafefffafefff9fefffafffffffdfcfffffefffbfbfdffffffffffff000000010101
+000000000000000000
+010000010000030102010000050400fcfbf9fffefffffefff6f5fafffeff0303050b0b0d
+fffffff7f7f7ffffff0000000b0a08eae9e5fffff70201000c0b09080607f5f4f0f6f5f1
+f8f7f3f3f2f0f4f2f51d1b1e09080622211fd7d5d6fffeff0d0c08000100fbfbf9fffffd
+000000050600080901fbfcf4eff0eafffffdf2f1f6f5f4fafffdfffffdff11100c010000
+eff0ebfffffd0101000303010b0b09fffffdebebe9fffffde5e5e3fffffd010100000000
+0c0c0a050503000000fffffdfafaf8eeeeecfffffd000000000000030301000000020200
+000000fffffdfcfcfa0f0f0d0b0b09000000fefefcf7f7f5010100121210000000f6f6f4
+fffffdfffffdeeeeec0202000000000303010000000a0a08ececeafbfbf9fdfdfb10100e
+03030110100e000000020200010100f2f2f01212100606040000000707050a0a08f5f5f3
+fffffdfcfcfae8e8e6fffffdfafaf8fdfdfbfffffdf5f5f30000001a1a18dfdfddfffffd
+fdfdfbfbfbf9030301161614020200e8e8e6fffffd000000070705090907000000010100
+0b0b090c0c0a00000001010000000020201efcfcfafbfbf9fcfcfaf9f9f7030301000000
+070705090907000000f8f8f6fffffdfafaf80404020e0e0c0000000d0d0b080806060604
+fffffdf3f3f1000000040402070705eeeeecfffffd0000000707050a0a08fbfbf9fefefc
+0000000a0a080000000c0c0a050503fffffdf7f7f5fffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffefcfffefcfffefffefcfffaf8fbfaf9f5fffef9010100010000f8f6f9fffeff
+01000001000022211d0404020a0a0a000100fefffbfefffb0000020b0c100d0f0e0d0f0e
+f5f7f600000205060bedeef2fafcf90d0f0a000100090b0a010204121413000100fefff8
+e8ebe2070a01000200fdfffefeffff0507060103001417100306000a0d060a0c09030502
+ededebfffffd0b0b09000000fffffdf3f3f1fffffdfbfcf7fffffbfffffbfffffbfffffb
+fffffdfffffffffffffffffffffffffffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffffdfffffdfffffdfffffdfffffffdfdfffffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000020202000000040404fbfbfbfffffffffffffdfdfdfcfcfc010101000000
+fefefefdfdfdf9f9f9070707000000fffffff3f3f3000000030303121212f2f2f2ffffff
+fefefeffffffffffff010101000000000000ffffffe5e5e50000001f1f1feeeeee060606
+090909000000f7f7f7fffffffbfbfbe9e9e9fffffff1f1f1f2f2f2ffffff040404070707
+ffffffeaeaea151515000000edededffffffffffffefefefffffff000000060606fafafa
+ffffffffffff020202000000ffffffffffff000000000000fffffffefefee3e3e30e0e0e
+080808fafafaf1f1f1eeeeee0000000e0e0efffffffdfdfdfcfcfc000000161616fafafa
+f8f8f8eaeaea0909090e0e0ef7f7f7fdfdfdededed020202181818f6f6f6090909000000
+fffffff9f9f9fffffff3f3f3000000ffffffd8d8d8070707080808f2f2f2ffffffeeeeee
+fffffff0f0f0f9f9f9fbfbfbf1f1f1f5f5f5fffffffafafa1d1d1d000000fefefeeaeaea
+ffffffeeeeeee3e3e3090909020202ffffffdededeffffff020202000000fffffff8f8f8
+151515000000fefefeffffff070707030303fdfdfdeaeaeaf6f6f6040404000000ffffff
+f8f8f8e2e2e2222222020202fdfdfdf3f3f3101010000000f5f5f5f3f3f3161616000000
+f4f4f4efefefffffff0000000b0b0bfffffffcfcfcffffff1c1c1c000000ecececfefefe
+ffffff000000090909fffffffdfdfdeaeaeafffffff2f2f2ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef6f6f6000000ffffffebebeb
+ffffff050505f6f6f6f5f5f5fdfdfd000000ffffffd9d9d9ffffff000000fffffffdfdfd
+e3e3e3ffffff000000ffffffd8d8d8ffffff060606fdfdfdeeeeeeffffff020202ebebeb
+ffffffe6e6e60b0b0bffffffedededffffff090909eeeeeeeaeaeaf8f8f8060606ffffff
+ffffffffffff000000ffffffe9e9e9fffffffafafafdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000020202000000040404fafafafffffffefefeebebebffffff000000000000
+ffffffffffffe0e0e00000001a1a1aefefefffffff0f0f0f010101000000fbfbfbeeeeee
+eaeaeafdfdfdf0f0f0070707131313000000e7e7e7ffffff121212000000101010000000
+000000fffffffefefefafafaffffffe2e2e2fffffffffffffefefeefefef000000060606
+000000000000fcfcfcffffffffffffeeeeeefefefef1f1f10202020f0f0ffffffffafafa
+fdfdfdfafafa000000191919ededed0b0b0b000000fefefefffffff9f9f9ffffff000000
+030303fefefefbfbfbfefefe0c0c0c141414e9e9e9fffffff5f5f5000000060606fafafa
+efefef1d1d1d000000f1f1f1fffffff7f7f7ffffff000000000000f6f6f6000000080808
+000000151515020202f6f6f6fffffffafafaffffff121212090909ecececfbfbfbffffff
+eeeeeefefefeffffffe7e7e7fdfdfdffffffeeeeeeffffff000000060606f8f8f8ffffff
+f8f8f8ffffffffffff000000000000fffffff5f5f5f4f4f40a0a0a0e0e0efffffffbfbfb
+020202040404fbfbfbf0f0f0090909070707f5f5f5f6f6f6222222000000ffffffffffff
+ffffffffffff000000000000f8f8f8161616000000fdfdfdfffffffffffff6f6f6101010
+040404fffffff1f1f1050505111111e9e9e9edededffffff0000001d1d1dffffffdddddd
+e8e8e80e0e0e000000f8f8f8fffffff5f5f5ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefeffffff131313f0f0f0ffffff
+ffffff000000fbfbfbfbfbfbf6f6f6151515e6e6e6ffffffffffff000000fafafafdfdfd
+fffffff2f2f2000000f1f1f1fffffffdfdfd000000fffffffafafae6e6e6000000ffffff
+e1e1e1ffffff040404efefeffdfdfdffffff080808f7f7f7ffffffffffff020202000000
+fdfdfdf8f8f80d0d0df8f8f8e8e8e8f8f8f8fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000020202000000030303fafafafffffffdfdfdffffffebebeb1e1e1e000000
+f3f3f3f7f7f7ffffff080808020202e3e3e3fafafa090909000000000000ffffffffffff
+fffffff3f3f3fefefe000000060606000000f5f5f5f1f1f10000000b0b0bfafafaffffff
+f5f5f5fffffffafafafffffffffffff1f1f1f7f7f7f9f9f9f8f8f8ffffff040404000000
+fcfcfc0f0f0f000000000000e8e8e8fafafaffffffe8e8e8000000191919000000141414
+000000080808282828000000f6f6f6070707050505fbfbfbf9f9f9f5f5f5fefefe0e0e0e
+212121e2e2e2fffffffdfdfd050505000000f3f3f3f8f8f8ffffff020202020202ffffff
+fafafa0000000000000d0d0d000000060606000000181818000000fffffffcfcfc000000
+1a1a1a000000080808090909000000fefefef4f4f4000000000000fffffff5f5f5ffffff
+efefefeaeaeae4e4e4fefefef5f5f5f3f3f3fdfdfdf4f4f4111111020202fffffff7f7f7
+fafafafafafaf7f7f71c1c1c010101ebebebfefefeffffff000000000000fafafaf1f1f1
+0909090b0b0bfffffffcfcfc090909060606ebebebffffff1111110606060505050a0a0a
+0000000000000b0b0b181818ffffff000000161616f5f5f5fffffffbfbfbffffff040404
+000000f8f8f8e3e3e30808080b0b0bf2f2f2fefefeffffff000000000000f5f5f5ffffff
+f7f7f7121212040404f3f3f3e2e2e2fbfbfbfefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef4f4f40b0b0bf6f6f6f8f8f8
+fefefe000000fffffff2f2f2ededed010101fbfbfbfffffffafafa111111fcfcfcfafafa
+f2f2f2fbfbfb161616f1f1f1f3f3f3fcfcfc0a0a0afcfcfcffffffe4e4e40e0e0ef5f5f5
+fffffff9f9f9070707f9f9f9f1f1f1ffffff000000fafafaf9f9f9f0f0f0ffffff040404
+f9f9f90f0f0fe9e9e9fffffffffffff6f6f6e9e9e9fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fefefefcfcfce6e6e6ffffff020202030303
+fdfdfdfafafafdfdfd0b0b0b000000ffffffdfdfdfffffff0606060c0c0c000000f3f3f3
+f1f1f1fefefef7f7f7040404050505fdfdfdfffffff1f1f11d1d1d090909f8f8f8f8f8f8
+f0f0f0fffffff8f8f8e9e9e9fffffffdfdfdfafafaf9f9f9ffffffdddddd000000171717
+fffffff3f3f30a0a0a000000000000ffffffc8c8c8ffffff121212000000ffffffeaeaea
+f7f7f7ffffffd6d6d6fffffffefefe020202080808fcfcfcffffffe4e4e4ffffff000000
+000000ffffffe8e8e8f0f0f0161616090909ffffffffffffd6d6d60f0f0f000000f5f5f5
+f3f3f3010101202020dbdbdbfffffffffffffafafafffffff8f8f8ececec131313f5f5f5
+fcfcfcededed0c0c0c131313000000ffffffffffff090909000000fbfbfbf6f6f6f2f2f2
+f7f7f7fcfcfcfffffffffffffbfbfbecececffffffe3e3e30f0f0f070707ecececf5f5f5
+fcfcfcf9f9f9fcfcfc0d0d0d010101ffffffddddddfcfcfc141414151515f9f9f9f5f5f5
+141414080808eaeaeaf2f2f20e0e0e000000ffffffe8e8e8000000171717fffffff2f2f2
+ffffffe3e3e3fdfdfdf0f0f0e9e9e9000000080808fffffff4f4f4e7e7e7f5f5f5000000
+060606f9f9f9ffffff000000000000ffffffeeeeeeeeeeee151515010101ffffffececec
+ffffff000000212121f6f6f6fffffffffffff8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef9f9f90e0e0ef5f5f5ffffff
+e4e4e4020202fafafaefefefffffff010101ffffffebebebe5e5e5010101f0f0f0fdfdfd
+ffffffebebeb000000ffffffe8e8e8efefef141414ebebebe5e5e5ffffff0b0b0bfefefe
+d6d6d6f9f9f90d0d0dfffffffcfcfcfefefe0c0c0cffffffe6e6e6ffffffececec060606
+f1f1f1050505fffffff5f5f5e6e6e6fffffff8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101010101000000020202f8f8f8fdfdfdfbfbfbfffffffefefe000000101010
+fffffff7f7f7f5f5f5000000000000f7f7f7fffffff2f2f20a0a0a000000181818ffffff
+f6f6f6f7f7f70000001b1b1be8e8e8ebebebf2f2f2f6f6f60d0d0d000000e5e5e5ffffff
+fffffff9f9f9fffffffffffff9f9f9fcfcfcffffffedededf3f3f3ffffff000000080808
+e7e7e7ffffff0000000b0b0b1a1a1afffffff7f7f7ffffff0000000000001b1b1beaeaea
+ffffffe7e7e7ffffff000000e6e6e6101010000000151515f6f6f6fbfbfbfefefe101010
+101010fbfbfbf2f2f2fbfbfb0000000000000000000f0f0f0101010000001c1c1cf9f9f9
+ffffff0000000707070a0a0aefefeff9f9f9efefeffdfdfd090909ffffff000000ffffff
+f6f6f6ffffffe9e9e9060606181818f2f2f2f3f3f3000000030303ffffffffffffffffff
+f0f0f0ffffffeeeeeeebebebefefeffcfcfcf6f6f6ffffff010101010101ffffffffffff
+fffffffffffff2f2f2080808000000e8e8e8ffffffdedede000000000000ffffffffffff
+000000070707fffffffefefe040404111111fbfbfbffffff0f0f0f000000000000ffffff
+ffffffecececffffff030303ffffffffffff000000070707ffffffffffff0303030d0d0d
+ffffffefefefd7d7d70000000505050d0d0d000000131313030303060606f3f3f3fafafa
+fcfcfc161616000000f1f1f1fafafaebebebf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef5f5f5070707f1f1f1f2f2f2
+ffffff0c0c0ce7e7e7fcfcfcf4f4f40e0e0eededededededffffff000000e4e4e4fefefe
+ddddddfbfbfb010101fffffffffffffefefe0b0b0bffffffefefefffffff000000ffffff
+fffffff3f3f3000000fefefeffffffe3e3e3010101ffffffebebebfafafafffffff3f3f3
+111111e8e8e8f3f3f3ffffffdededef5f5f5fffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101010101000000020202f8f8f8fdfdfdfbfbfbe3e3e30202021111110b0b0b
+000000ffffff0a0a0a070707030303000000f0f0f0fffffffcfcfcfdfdfd000000000000
+141414030303000000fafafafffffffffffff8f8f81212120000001a1a1a131313fcfcfc
+e8e8e8fffffff0f0f0f6f6f6fbfbfbfffffff7f7f7fbfbfbffffff0000001717170d0d0d
+070707f8f8f8f7f7f71111110000000d0d0d000000ecececffffff040404080808000000
+0000000000000a0a0a0a0a0affffffffffff0d0d0d000000090909020202000000050505
+070707fefefef2f2f2f4f4f4ffffff000000121212000000fdfdfd000000050505040404
+fbfbfbf1f1f10a0a0a0000000909090b0b0b1c1c1c000000000000ffffff010101090909
+0303030000000c0c0c101010f8f8f8ecececffffff000000151515000000131313f6f6f6
+e5e5e5eeeeeee0e0e0fffffffffffff5f5f5f4f4f4171717000000000000090909dedede
+f5f5f5f6f6f60000000b0b0b141414010101e1e1e10e0e0e1c1c1c000000000000ffffff
+090909070707070707efefef0a0a0a020202000000e6e6e6ffffff0a0a0a090909000000
+000000232323070707000000fdfdfdfefefe000000090909070707000000121212000000
+f3f3f3fefefef6f6f6ffffff181818000000080808fefefe0b0b0b000000000000ffffff
+fbfbfb0000001515151c1c1c000000fffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe0f0f0f000000101010efefef
+000000000000212121ffffff010101060606070707ffffff000000000000131313ffffff
+ffffff000000010101000000f2f2f20000000000000b0b0bffffff1616160000000c0c0c
+ececec1414141717170b0b0bf6f6f6f4f4f40606060000001a1a1affffffd0d0d0ffffff
+000000ffffffe8e8e8fffffff8f8f8fffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101010101000000020202f7f7f7fcfcfcfafafafffffff1f1f1fafafaffffff
+ffffffffffffeeeeeef3f3f3f8f8f8fffffffffffff4f4f4fdfdfdebebebfffffffcfcfc
+e5e5e5fffffffffffff6f6f6f7f7f7fefefef7f7f7fffffffefefef9f9f9f9f9f9e5e5e5
+ffffffedededf6f6f6fffffffffffffffffff1f1f1ffffffeeeeeefffffff3f3f3ededed
+fffffffdfdfdfafafafffffffffffffffffff6f6f6fdfdfdf7f7f7f5f5f5e5e5e5fafafa
+fffffff8f8f8f9f9f9e9e9e9f4f4f4fffffff2f2f2fffffffffffffafafaffffff000000
+020202ffffffffffffffffffe5e5e5fcfcfcfcfcfcf9f9f9fffffffdfdfdfcfcfcf3f3f3
+fffffff2f2f2fffffff8f8f8fcfcfcf5f5f5f9f9f9fafafafffffffbfbfbf3f3f3f2f2f2
+f5f5f5ffffffe9e9e9fffffff3f3f3f4f4f4f3f3f3fffffff5f5f5fffffff8f8f8ffffff
+fffffffffffffffffff5f5f5efefeffffffff5f5f5ecececffffffffffffe4e4e4ffffff
+fcfcfcfffffff7f7f7ebebebf6f6f6fcfcfcfdfdfdfafafae0e0e0fffffff7f7f7e7e7e7
+fefefefdfdfdf0f0f0fffffffdfdfdfbfbfbfefefeffffffe4e4e4fdfdfde9e9e9ffffff
+ffffffffffffefefeffffffff1f1f1f8f8f8fffffff2f2f2fbfbfbfffffff5f5f5ffffff
+f5f5f5f2f2f2ffffffe5e5e5f6f6f6f6f6f6fffffff0f0f0fffffff5f5f5f5f5f5f2f2f2
+ffffffe7e7e7f3f3f3fafafaf3f3f3f2f2f2fffffff5f5f5ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef1f1f1ffffffdfdfdfffffff
+efefeffffffff8f8f8f1f1f1f6f6f6fafafaf5f5f5f9f9f9f4f4f4ffffffe9e9e9fbfbfb
+fefefed9d9d9ffffffecececf6f6f6fffffff9f9f9fffffffcfcfcf0f0f0ffffffffffff
+efefeff7f7f7fcfcfcf9f9f9fbfbfbfffffffffffffbfbfbecececfffffff9f9f9efefef
+0d0d0dfafafaf7f7f7fafafafffffff3f3f3fefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefef7f7f7fafafafefefefcfcfc
+f8f8f8f6f6f6f9f9f9fdfdfdfcfcfcf9f9f9f7f7f7f8f8f8fbfbfbfcfcfcfafafaf8f8f8
+fffffffffffffdfdfdfafafaf7f7f7f4f4f4f2f2f2f1f1f1fffffffefefefafafaf8f8f8
+f8f8f8fafafafefefefffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfafafa
+f9f9f9fdfdfdfdfdfdf9f9f9f9f9f9fdfdfdfdfdfdf9f9f9fafafafafafafafafafafafa
+fafafafafafafafafafafafafefefef5f5f5fefefefefefee8e8e8ffffffffffff000000
+101010f1f1f1f8f8f8e9e9e9ffffffebebebf7f7f7fffffff9f9f9fbfbfbfdfdfdfefefe
+fefefefdfdfdfbfbfbf9f9f9f1f1f1f4f4f4f7f7f7fbfbfbfdfdfdfefefefefefefdfdfd
+f4f4f4f3f3f3f5f5f5fafafafcfcfcfafafafbfbfbfefefef1f1f1f6f6f6fbfbfbfafafa
+f7f7f7f7f7f7fcfcfcfffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefef4f4f4f6f6f6f8f8f8fbfbfbfcfcfcfbfbfbfafafaf9f9f9
+fffffffafafaf8f8f8fcfcfcfcfcfcf9f9f9fbfbfbfffffffbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfafafaf9f9f9f5f5f5f9f9f9fafafaf7f7f7
+f9f9f9fdfdfdfbfbfbf4f4f4fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfcfcfcf9f9f9f6f6f6
+fdfdfdfffffffffffffdfdfdfcfcfcfefefefdfdfdf9f9f9f8f8f8fdfdfdf9f9f9f7f7f7
+fefefefcfcfcfafafafffffffffffff9f9f9ffffffe6e6e6ffffff000000ffffff0a0a0a
+f5f5f5f7f7f7fbfbfbfdfdfdfffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefef9f9f9fdfdfdfffffffefefe
+fafafaf9f9f9fbfbfbfffffffefefefcfcfcfafafafbfbfbfdfdfdfefefefcfcfcfafafa
+fffffffffffffefefefcfcfcfbfbfbf9f9f9f8f8f8f8f8f8fffffffefefefbfbfbfafafa
+fafafafbfbfbfefefefffffffffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfb
+fbfbfbfffffffffffffbfbfbfbfbfbfffffffffffffbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcffffffedededfffffff7f7f7fefefe000000000000030303
+0b0b0b090909e7e7e7ffffffcfcfcffffffff0f0f0e1e1e1fafafafcfcfcfefefeffffff
+fffffffefefefcfcfcfafafaf7f7f7f9f9f9fbfbfbfefefefffffffefefefdfdfdfcfcfc
+fcfcfcf9f9f9fafafafdfdfdfdfdfdfafafaf9f9f9fcfcfcfcfcfcfefefefffffffdfdfd
+f9f9f9f8f8f8f9f9f9fcfcfcfcfcfcfbfbfbfafafafafafaf9f9f9f9f9f9fafafafafafa
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbfcfcfcfdfdfdfefefefdfdfdfbfbfbf8f8f8f7f7f7
+fdfdfdfafafafafafafffffffffffffbfbfbfbfbfbfffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffefefefdfdfdfdfdfdfbfbfbfefefefdfdfdfbfbfb
+fdfdfdfffffffffffffafafafdfdfdfcfcfcfcfcfcfdfdfdfefefefdfdfdf9f9f9f7f7f7
+fbfbfbfefefefefefefbfbfbfbfbfbfdfdfdfdfdfdf9f9f9f9f9f9fefefefafafaf7f7f7
+fefefefcfcfcf9f9f9fefefefbfbfbfefefef1f1f1fefefef5f5f5020202101010ececec
+f8f8f8f9f9f9fcfcfcfefefefffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefcfcfcffffffffffffffffff
+fdfdfdfcfcfcfefefefffffffffffffefefefdfdfdfefefefffffffffffffffffffdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefefffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfcfcfc
+fefefefffffffffffffefefefefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffddddddffffffeeeeeefbfbfbfffffffffffff6f6f6ffffff
+f8f8f8f6f6f6f5f5f5fffffff6f6f6e6e6e6fffffffffffffcfcfcfdfdfdffffffffffff
+fffffffffffffdfdfdfcfcfcfefefefffffffffffffffffffffffffffffffdfdfdfcfcfc
+fffffffdfdfdfdfdfdfffffffffffffbfbfbfafafafcfcfcfffffffffffffffffffcfcfc
+fafafaf9f9f9f9f9f9f9f9f9fefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefcfcfcfafafaf8f8f8
+fbfbfbfafafafdfdfdfffffffffffffefefefcfcfcfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffefefefffffffefefefcfcfc
+fefefefffffffffffffefefefefefefefefefdfdfdfefefefffffffefefefbfbfbf8f8f8
+fbfbfbfefefefefefefcfcfcfcfcfcfffffffffffffcfcfcfafafafffffffbfbfbf9f9f9
+fefefefcfcfcf7f7f7fdfdfdffffffe8e8e8f8f8f8ffffffefefefffffffeeeeeeffffff
+fbfbfbfcfcfcfefefefffffffffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefefefeffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffeeeeeef1f1f1ffffffeeeeeeffffffffffffeaeaea
+fbfbfbffffffeaeaeafefefefffffff0f0f0fffffff5f5f5fefefefefefeffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffffffffffffffffffffefefefdfdfd
+fefefefcfcfcfdfdfdfffffffffffffefefefdfdfdfffffffdfdfdfbfbfbf8f8f8f8f8f8
+fafafafbfbfbfbfbfbfafafafefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffefefefdfdfdfdfdfd
+fbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfafafaf9f9f9
+fcfcfcfffffffffffffffffffffffffffffffefefefffffffffffffffffffcfcfcf9f9f9
+fbfbfbfffffffffffffcfcfcfdfdfdfffffffffffffffffffcfcfcfffffffdfdfdfafafa
+fffffffbfbfbf6f6f6fbfbfbedededfffffff1f1f1eeeeeefffffff5f5f5f7f7f7f4f4f4
+fefefefffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefefefeffffffffffffffffff
+fefefefefefefffffffffffffefefefffffffffffffffffffffffffefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffffffffefefefefefefefefefefefefdfdfd
+fffffffefefefefefefffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffe6e6e6ebebebfffffff4f4f4fffffff9f9f9fffffff9f9f9
+ffffffecececfffffff5f5f5eaeaeafffffffafafaf6f6f6ffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfdfdfdfffffffffffffdfdfdfcfcfcfffffffbfbfbf9f9f9f7f7f7f7f7f7
+f9f9f9fbfbfbfcfcfcfcfcfcf9f9f9f9f9f9f9f9f9f9f9f9fbfbfbfcfcfcfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefffffffefefefefefefdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafafcfcfcf9f9f9f7f7f7f9f9f9
+fbfbfbfdfdfdfefefefffffffffffffffffffffffffffffffffffffffffffcfcfcf9f9f9
+fafafafdfdfdfdfdfdfafafafbfbfbfffffffffffffffffffcfcfcfffffffefefefbfbfb
+fffffffcfcfcf6f6f6fafafafcfcfcfbfbfbf6f6f6f4f4f4e7e7e7fffffffffffff7f7f7
+fffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffffffffefefefdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfdfdfdfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefee6e6e6fbfbfbf2f2f2ffffffe7e7e7ffffff
+edededfffffffafafafffffffffffffafafaefefefffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffafafaf9f9f9fbfbfbfffffffdfdfdfbfbfbf9f9f9
+f8f8f8f9f9f9fbfbfbfcfcfcfafafafafafafafafafbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbfafafafafafa
+fcfcfcfdfdfdfcfcfcf9f9f9fafafafffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9fdfdfdf9f9f9f8f8f8fcfcfc
+fefefefefefefefefefffffffffffffffffffffffffffffffffffffffffffcfcfcf9f9f9
+f8f8f8fbfbfbfafafaf7f7f7f8f8f8fdfdfdfffffffdfdfdfbfbfbfffffffefefefcfcfc
+fffffffdfdfdf6f6f6fafafaffffffffffffffffffffffffefefefe9e9e9e9e9e9ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffffffffefefefdfdfdffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfcfcfcfffffffffffffcfcfcfcfcfcffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfdfdfdfffffffffffffafafafbfbfbfffffff0f0f0
+ffffffecececfffffffcfcfcecececf7f7f7f4f4f4fffffffffffffffffffefefefefefe
+fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafcfcfcfefefefffffffdfdfdf9f9f9
+f5f5f5f4f4f4f7f7f7fbfbfbfffffffffffffefefeffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+f8f8f8fcfcfcfcfcfcf9f9f9fbfbfbfffffffffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbf7f7f7f8f8f8fefefe
+fffffffefefefdfdfdfffffffffffffefefefefefefffffffffffffefefefbfbfbf9f9f9
+fbfbfbfdfdfdfbfbfbf8f8f8f8f8f8fdfdfdfffffffefefefafafafffffffefefefcfcfc
+fffffffefefef7f7f7fbfbfbedededf8f8f8fefefef1f1f1fffffff7f7f7ffffffefefef
+fefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffefefeffffffffffff
+fdfdfdfdfdfdfefefefefefefffffffffffffffffffffffffffffffefefefefefefdfdfd
+fdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf4f4f4f6f6f6ffffffeeeeeeffffffffffff
+ebebebfffffff8f8f8f9f9f9fffffffbfbfbfffffffbfbfbfffffffefefefefefefdfdfd
+fdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefbfbfbfdfdfdfffffffffffffffffffffffffffffff9f9f9fbfbfbfbfbfbf6f6f6
+f1f1f1f0f0f0f5f5f5fbfbfbfefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+f4f4f4fafafafdfdfdfbfbfbfcfcfcfffffffffffffbfbfbffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffffffff9f9f9f5f5f5f6f6f6fdfdfd
+fffffffdfdfdfbfbfbfefefefffffffefefefdfdfdfefefefffffffefefefbfbfbf8f8f8
+fffffffffffffffffffbfbfbfbfbfbfffffffffffffffffffafafafffffffefefefdfdfd
+fffffffefefef8f8f8fcfcfcffffffe9e9e9fffffffafafaefefefffffffeeeeeeffffff
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffff6f6f6fdfdfdfefefe
+fffffff4f4f4fffffffcfcfcfffffffbfbfbf8f8f8fffffffffffff3f3f3ffffffffffff
+f7f7f7fffffff6f6f6fffffff7f7f7fdfdfdfffffffffffffdfdfdf6f6f6fffffff2f2f2
+f5f5f5fffffff9f9f9f5f5f5f3f3f3fffffff7f7f7f9f9f9fffffffdfdfdfafafaffffff
+f4f4f4fffffffffffffffffffcfcfcfcfcfcf7f7f7fafafafffffff4f4f4fffffff3f3f3
+fffffffcfcfcecececfffffffefefefffffff3f3f3f6f6f6ffffffffffffeaeaeaffffff
+f8f8f8fffffffffffffffffffbfbfbfffffffbfbfbfffffff6f6f6fcfcfcffffffe6e6e6
+fdfdfdfffffff9f9f9fffffffefefef0f0f0ffffffedededfffffffdfdfdefefefffffff
+fefefefffffff7f7f7fffffff6f6f6ffffffefefeff5f5f5fbfbfbfffffffdfdfde4e4e4
+191919171717e6e6e6fffffffcfcfcfdfdfdebebebf5f5f5fffffff5f5f5fbfbfbffffff
+f9f9f9ebebebfffffff3f3f3e8e8e8fffffff1f1f1fffffffffffffcfcfcf6f6f6fcfcfc
+fffffffbfbfbfffffffbfbfbf9f9f9ffffffeeeeeefefefefdfdfdecececfffffff6f6f6
+f7f7f7ffffff000000070707f9f9f9fdfdfdfefefefffffffefefefffffffefefefcfcfc
+fdfdfdfffffffffffffffffffafafaeeeeeeffffffefefeffffffffafafaf8f8f8fcfcfc
+efefeffffffffefefef7f7f7fffffffffffffffffff6f6f6fffffffffffffbfbfbf5f5f5
+fffffffefefefdfdfdfffffff6f6f6efefefffffffffffffeaeaeaf6f6f6fffffff5f5f5
+edededfffffff5f5f5edededfffffff8f8f8fdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfffffffffffffcfcfcf1f1f1e7e7e7ffffff0e0e0effffffdddddd
+fafafafffffffffffff6f6f6fcfcfcfdfdfdfdfdfdfffffffbfbfbebebebffffff000000
+000000fefefe000000ffffffecececfffffffffffffcfcfcfffffffffffffcfcfcf6f6f6
+ffffffffffff090909fcfcfcf9f9f9e3e3e3fffffffffffff8f8f8fcfcfcfdfdfdfbfbfb
+fffffff2f2f2fcfcfcfffffffffffffffffff7f7f7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcefefeffffffffffffffbfbfb
+fbfbfbf0f0f0fffffffbfbfbffffffecececffffffffffffffffffe8e8e8ffffffeeeeee
+fffffffdfdfdffffffedededffffffe9e9e9fffffff5f5f5f9f9f9fffffff0f0f0ffffff
+fefefef6f6f6ebebebfffffffdfdfdddddddfafafafbfbfbfffffffdfdfdf7f7f7f9f9f9
+fffffff2f2f2e7e7e7ffffffe4e4e4fffffffcfcfcffffffedededfffffff6f6f6f4f4f4
+fffffffffffff9f9f9fdfdfdf8f8f8ffffffffffffffffffeaeaeaf7f7f7f7f7f7ffffff
+fffffff5f5f5fffffff6f6f6fffffff9f9f9f6f6f6ffffffffffffecececf6f6f6f5f5f5
+fffffffffffffbfbfbfffffffffffff9f9f9fcfcfcffffffeaeaeaf4f4f4fffffff0f0f0
+fdfdfdf2f2f2fffffff7f7f7ffffffeeeeeef3f3f3fffffffffffffafafaf0f0f0ffffff
+000000000000fcfcfcfcfcfcf0f0f0ffffffffffffe4e4e4ecececfffffffffffff7f7f7
+fbfbfbffffffe1e1e1f3f3f3fffffffbfbfbf1f1f1fcfcfcfffffffffffffffffffbfbfb
+f8f8f8fbfbfbfffffffdfdfdfffffffefefefffffff9f9f9f8f8f8fffffffdfdfdfefefe
+f8f8f8f7f7f7030303141414ffffffe0e0e0fbfbfbf3f3f3fefefefffffffffffffefefe
+fdfdfdfffffffffffffffffffffffff6f6f6f2f2f2f7f7f7dcdcdcfffffffcfcfcf9f9f9
+fffffffafafafffffff8f8f8e9e9e9f8f8f8f0f0f0fffffffdfdfdfffffff6f6f6ffffff
+e3e3e3f3f3f3fffffffafafafffffff4f4f4f8f8f8fefefefffffffffffff9f9f9fafafa
+ffffffedededfffffffafafaf5f5f5fffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfcfcfcfefefefefefefbfbfbf8f8f8eeeeee010101ebebebffffff
+f4f4f4e9e9e9f2f2f2ffffffeeeeeefffffffffffff0f0f0fffffffbfbfb000000ffffff
+090909ebebeb1d1d1df8f8f8fcfcfcf9f9f9eaeaeafbfbfbfdfdfdfefefef8f8f8f7f7f7
+fcfcfcffffff020202fffffffffffffffffffffffff7f7f7fffffff3f3f3eeeeeeffffff
+f6f6f6fffffffefefef2f2f2fcfcfcf2f2f2ffffffeeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcffffff0000000404041f1f1f
+000000ffffff000000020202090909000000e7e7e7fffffff5f5f5f0f0f0161616070707
+080808000000020202ffffffeeeeeefffffff1f1f10000000f0f0f000000050505080808
+000000fffffff9f9f9e6e6e6fffffffffffff3f3f3fcfcfcfefefef0f0f0f9f9f9ffffff
+040404050505141414000000060606000000f6f6f6f0f0f0f2f2f2ffffffeeeeeef4f4f4
+fdfdfdfffffff9f9f9fafafafffffff4f4f4ebebebfffffff6f6f6fffffffbfbfbeaeaea
+ffffffe5e5e5edededffffffd3d3d3fefefeffffffebebebf5f5f5fbfbfbecececffffff
+e9e9e9f9f9f9fafafaf0f0f0fbfbfbffffffe0e0e0dbdbdbffffffffffffedededf8f8f8
+f0f0f0ffffffe6e6e6e7e7e7f6f6f6fffffff4f4f4080808fffffff5f5f5f4f4f4ffffff
+000000131313fffffffffffff3f3f3edededebebebffffffffffffededede9e9e9fdfdfd
+e4e4e4fffffff7f7f7fffffff3f3f3fafafafffffffdfdfdfffffff7f7f7fafafaffffff
+fffffffffffff5f5f5f8f8f80f0f0f000000050505050505050505060606000000101010
+fcfcfce8e8e8121212000000ecececfffffffffffffcfcfcfcfcfcfbfbfbfdfdfdffffff
+fbfbfbf5f5f5f6f6f6fbfbfbe8e8e8ffffffffffffe9e9e9ffffffdededeeaeaeaffffff
+f4f4f4dcdcdcfafafafbfbfbfffffffffffffffffff8f8f8f5f5f5f5f5f5f3f3f3fcfcfc
+eeeeeefffffff9f9f9f5f5f5eeeeeefffffff8f8f8ecececf3f3f3fefefef4f4f4ffffff
+ffffff000000dbdbdbffffffeeeeeefdfdfdfffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefeffffffffffff030303f5f5f5ffffff
+e6e6e6fffffff3f3f3edededf8f8f8f7f7f7fcfcfcffffffffffff0a0a0afffffff2f2f2
+f9f9f9ffffff000000e8e8e8ffffffe5e5e5fffffffffffffffffffffffffdfdfdffffff
+f2f2f2fcfcfc000000fffffff3f3f3ddddddf5f5f5ffffffecececfffffffffffff9f9f9
+f9f9f9fffffffefefefffffffffffffafafaf8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf0f0f0ffffff000000090909
+ffffffeaeaeaefefef0d0d0d070707f1f1f1fafafaf6f6f60000000d0d0d000000efefef
+ffffffffffff000000101010080808eaeaeafefefeffffff000000000000fdfdfd0c0c0c
+090909030303fffffff4f4f4f3f3f3ebebebffffffe9e9e9fdfdfdffffff000000050505
+232323000000fffffffffffffcfcfc0e0e0eeaeaeaffffffffffffedededfefefeffffff
+e3e3e3e6e6e6fffffff9f9f9fffffffffffffcfcfcf4f4f4f0f0f0fefefefffffffafafa
+ffffffefefeff7f7f7dbdbdbffffffefefeff1f1f1f9f9f9fffffff6f6f6fefefefafafa
+ffffffe9e9e9ffffffe2e2e2fcfcfcefefefffffffffffffffffffdededef2f2f2ffffff
+fafafaf5f5f5efefeffefefeffffffe2e2e2080808000000f3f3f3ffffffeaeaeaf9f9f9
+0b0b0b000000fcfcfcdbdbdbfcfcfcfffffff7f7f7ebebebeeeeeef4f4f4ffffffffffff
+ffffffeeeeeeffffffffffffe7e7e7fffffffffffff7f7f7fafafaededede4e4e4fafafa
+ffffffffffffeeeeeefefefe000000fffffff6f6f6000000010101f8f8f8ffffff020202
+f5f5f5ffffff000000050505ecececffffffeeeeeef5f5f5f6f6f6fffffffffffffcfcfc
+f8f8f8fdfdfdfefefef7f7f7fbfbfbe9e9e9f0f0f0f8f8f8f9f9f9fffffffefefef6f6f6
+fffffff3f3f3fffffffbfbfbffffffe8e8e8ffffffe8e8e8e4e4e4ffffffffffffdadada
+fffffffbfbfbfbfbfbfffffffefefeffffffffffffefefeff4f4f4fffffff8f8f8f8f8f8
+0000001b1b1bffffffeeeeeef8f8f8f3f3f3fefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fcfcfcfffffffffffffffffffbfbfbf9f9f9f7f7f7e9e9e9edededffffffededed
+ecececf7f7f7ecececffffffe8e8e8ffffffffffffe7e7e7f6f6f60b0b0bf2f2f2e5e5e5
+fdfdfdf5f5f5dbdbdbfffffff1f1f1fffffff5f5f5f2f2f2edededf1f1f1f8f8f8f3f3f3
+ffffffefefefffffffedededffffffffffff000000fafafaf3f3f3fffffffcfcfcf1f1f1
+fafafae0e0e0fafafaf4f4f4f3f3f3ffffffedededffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcebebebffffff000000020202
+fcfcfcffffffffffff000000000000fffffff6f6f6fcfcfc1d1d1d010101f1f1f1ffffff
+f3f3f3fefefeffffff000000000000fffffffafafaf0f0f0161616010101fdfdfdfdfdfd
+0d0d0d111111000000fffffffffffff8f8f8ffffffeeeeeeffffffebebeb0000000a0a0a
+000000fffffff8f8f8f1f1f1f9f9f90f0f0ffcfcfce8e8e8fffffffbfbfbfcfcfcececec
+fefefee8e8e8fffffff1f1f1f4f4f4f2f2f2fffffffefefefffffffbfbfbf3f3f3ffffff
+f0f0f0e7e7e7fffffff3f3f3fafafafdfdfdf0f0f0f5f5f5f7f7f7f8f8f8ffffffe6e6e6
+eeeeeeffffffd5d5d5fffffff9f9f9ffffffe6e6e6e3e3e3ebebebffffffffffffefefef
+fffffff5f5f5ffffffeeeeeef4f4f4ffffff0000000f0f0ffffffffffffff6f6f6f5f5f5
+fffffffcfcfce7e7e7ffffffedededf1f1f1fffffffffffffffffffcfcfcebebebf7f7f7
+fdfdfdfefefef1f1f1fbfbfbfffffff9f9f9fcfcfcfbfbfbe2e2e2ffffffffffffffffff
+fafafafdfdfdefefeffbfbfb020202f5f5f5ffffff000000000000fffffff7f7f7060606
+fbfbfbfafafaeeeeeef6f6f6fffffffdfdfdf9f9f9f7f7f7f6f6f6fbfbfbfefefefcfcfc
+fafafaf9f9f9fafafaf9f9f9fefefefdfdfdfffffff9f9f9efefefe8e8e8fefefef8f8f8
+f3f3f3f5f5f5f9f9f9efefeffdfdfdf5f5f5f3f3f3ffffffffffffedededdfdfdff8f8f8
+ffffffe0e0e0fffffff5f5f5fefefec7c7c7fffffffdfdfdfffffffcfcfcfefefeffffff
+030303060606f2f2f2ffffffe9e9e9fffffff3f3f3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fcfcfcfffffffffffffffffffbfbfbf9f9f9f7f7f7fffffff7f7f7eeeeeeffffff
+fffffff9f9f9efefeffafafaffffffe4e4e4f6f6f6f5f5f5fafafa111111f5f5f5ffffff
+edededffffffffffffe7e7e7e5e5e5ffffffeaeaeafffffff1f1f1fffffff2f2f2fafafa
+fafafafffffff8f8f8fbfbfbe1e1e1e4e4e4050505fffffff0f0f0fffffff5f5f5ffffff
+fffffffffffff9f9f9f4f4f4e3e3e3ffffffffffffe4e4e4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffff9f9f90000000b0b0b
+edededd8d8d8ededed0d0d0d030303f2f2f2e5e5e5000000111111000000f9f9f9ececec
+e9e9e9e5e5e5f6f6f60f0f0f040404000000f0f0f0ffffff010101141414eaeaeaf7f7f7
+000000000000222222fafafaecececfdfdfdf3f3f3ffffffececec2626260a0a0a000000
+eeeeeefffffffdfdfdfdfdfdf4f4f4fbfbfbf8f8f8fefefe000000343434030303040404
+111111020202efefeff6f6f60d0d0d0404041515150202020000001b1b1b000000060606
+ffffffffffff0000000303030505050000000909090e0e0e000000181818ebebebffffff
+f1f1f1fcfcfc1c1c1c0000000a0a0a000000060606fffffff9f9f9ecececf5f5f50f0f0f
+0b0b0b000000050505fdfdfdefefef030303020202020202000000161616fafafa0e0e0e
+0000000d0d0df3f3f3eeeeeef9f9f9090909090909000000000000090909020202ffffff
+f5f5f50000000202020000000000000505050000000b0b0b1c1c1cd7d7d7e6e6e6e5e5e5
+ebebebfffffffffffffffffff2f2f2fdfdfdf6f6f60d0d0d0d0d0df7f7f7fefefef4f4f4
+f5f5f5000000222222151515f0f0f0ffffff000000151515040404070707070707060606
+060606080808080808050505060606f7f7f7d9d9d9efefefffffff000000050505000000
+131313000000fffffffafafaf8f8f81111110b0b0b000000010101101010040404ffffff
+dddddd141414070707030303f5f5f5ffffff000000000000000000f2f2f2f7f7f7060606
+020202010101000000070707f4f4f4fffffffffffff5f5f5ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefeffffff030303000000f9f9f9ffffff
+0000000202021a1a1a050505000000161616fffffffcfcfc0e0e0e000000090909030303
+fcfcfc0f0f0f000000e0e0e0ffffff151515000000070707030303000000010101ffffff
+e4e4e4020202080808f7f7f7ffffff0d0d0d0202020c0c0c0c0c0c000000050505000000
+edededededed000000080808ffffffecececfcfcfcffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfce2e2e2fafafa0000000a0a0a
+ffffffffffffffffff000000000000fffffffdfdfd141414000000141414f9f9f9fcfcfc
+fffffff3f3f3ffffff000000171717202020fcfcfcf2f2f2131313000000ffffff000000
+101010141414edededf6f6f6ffffffefefeffbfbfbf9f9f9f4f4f4090909050505030303
+fffffff0f0f0e8e8e8fffffff5f5f5eaeaeaffffffefefef242424000000ffffffffffff
+000000070707f4f4f4fffffff3f3f3000000000000eaeaeaffffffe7e7e71313130c0c0c
+e4e4e4ffffffffffff0b0b0b161616f3f3f3fefefee9e9e9121212000000fbfbfbffffff
+ffffff0b0b0b000000ffffffffffffededed1d1d1d000000f7f7f7ffffff070707060606
+f1f1f1080808000000101010f1f1f1ededed090909101010fafafafdfdfdf4f4f4f4f4f4
+1e1e1e000000fffffffafafafbfbfb040404000000f5f5f5fcfcfc030303000000fcfcfc
+fafafaffffff151515090909fcfcfcfffffff1f1f10d0d0d000000fdfdfdffffffffffff
+fffffffdfdfdf8f8f8ecececffffffebebebfcfcfc080808080808fcfcfceaeaeaffffff
+fffffffbfbfb000000000000fffffff4f4f4ffffff131313060606fcfcfcf9f9f9000000
+010101fdfdfdfbfbfb000000151515f5f5f5fefefefefefe040404020202fdfdfdf9f9f9
+ffffff000000000000ffffffeeeeee000000000000ffffffffffff0000001c1c1ce7e7e7
+f8f8f8efefef282828000000ebebebf4f4f4f0f0f01a1a1a101010f3f3f3ffffffebebeb
+0808080d0d0dffffffe4e4e4ffffffe3e3e3fffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfcfcfcfefefefefefefbfbfbf8f8f8ffffff010101fffffff0f0f0
+ffffff000000f9f9f9f2f2f2f8f8f8161616f6f6f6f9f9f9ffffff060606f9f9f9fdfdfd
+fcfcfceaeaea0a0a0afffffff4f4f4ffffff030303fffffffffffff7f7f70c0c0ce1e1e1
+f1f1f1ffffff090909ffffffefefefffffff000000f3f3f3ffffffffffff0c0c0cffffff
+ffffffffffff000000fafafae6e6e6fefefefbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffff4f4f40000000f0f0f
+e5e5e5fafafaeeeeee1616160d0d0decececfefefe040404020202000000fdfdfdffffff
+f3f3f3f0f0f0eeeeee080808070707000000fafafafcfcfc0c0c0c121212000000030303
+000000f0f0f0fffffffafafadadadaffffffebebebfdfdfdffffff000000020202050505
+f3f3f3fffffffcfcfcf4f4f4ffffffffffffececec050505000000fffffff4f4f4ffffff
+ffffff010101202020e1e1e1ffffff000000030303ffffffe2e2e2f9f9f9151515000000
+ffffffefefefffffff0000000d0d0dfdfdfdf2f2f2ffffff000000101010fbfbfbfdfdfd
+090909080808e5e5e5fffffff7f7f7fafafa000000212121f8f8f8000000010101f9f9f9
+fefefe0c0c0c050505030303f9f9f9ffffff080808000000fffffff8f8f8f9f9f9f6f6f6
+020202080808e8e8e8f9f9f90d0d0d060606e7e7e7fefefeffffffeeeeee0000000c0c0c
+f6f6f6eeeeee050505000000fafafafdfdfdffffff000000030303ffffffe5e5e5f1f1f1
+ffffffebebebf3f3f3fdfdfdf4f4f4ffffffffffff010101000000fffffffffffff1f1f1
+fefefefbfbfb050505080808f9f9f9fbfbfbe5e5e5000000161616fffffff8f8f8080808
+0c0c0cfefefefafafa050505000000f3f3f3f3f3f3000000000000fffffff5f5f5fcfcfc
+f8f8f8040404090909ededed0b0b0b090909fffffff7f7f7fffffff9f9f9000000020202
+fefefef8f8f80a0a0a010101fffffffcfcfcfefefe050505000000ffffffe3e3e3ffffff
+010101000000e1e1e1ffffffdadadafffffff7f7f7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfffffffffffffcfcfcf1f1f1e7e7e7f8f8f8000000fffffff1f1f1
+ffffff000000f8f8f8ffffffffffff000000fffffff4f4f4f5f5f5090909fbfbfbf7f7f7
+f2f2f2f8f8f8141414f2f2f2f2f2f2ffffff0a0a0af1f1f1efefefffffff000000ffffff
+fcfcfcffffff000000e1e1e1f6f6f6f4f4f4010101fffffffbfbfbfafafa080808000000
+f9f9f9f2f2f2121212eaeaeaffffffefefeffdfdfdfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f7f7f7fafafaf6f6f6f7f7f7ffffff040404010101
+fcfcfcf4f4f4fefefe111111010101fafafaffffff0c0c0c000000090909f4f4f4fcfcfc
+fefefefffffffdfdfd0f0f0f000000131313ffffffeeeeee040404070707fafafafefefe
+fffffffdfdfdf8f8f8f9f9f9fefefeeaeaeaffffffedededffffff0202020606060d0d0d
+edededfffffffbfbfbf4f4f4ffffffebebebf8f8f8000000151515efefeffcfcfcf4f4f4
+f8f8f8080808000000ffffffffffff111111161616ebebebffffffffffff000000040404
+fcfcfcfcfcfcf1f1f1060606060606f2f2f2fefefefefefe000000040404fffffffafafa
+0000000d0d0d080808080808070707050505000000000000ffffff0e0e0e050505ffffff
+f8f8f8f0f0f0fffffffbfbfbfefefeffffff0000000d0d0df4f4f4f4f4f4f7f7f7ffffff
+040404030303ffffffededed0b0b0b0d0d0de3e3e3ffffffffffffe1e1e10a0a0a080808
+f5f5f5ffffff0000000f0f0ff9f9f9eaeaeaffffff000000111111e5e5e5fffffff4f4f4
+fcfcfcfffffff1f1f1fafafae5e5e5fdfdfdf9f9f9070707020202f0f0f0fdfdfdefefef
+fffffffefefe020202010101fefefef8f8f8f7f7f7151515000000fcfcfcebebeb0c0c0c
+000000fffffff3f3f3040404080808ffffffffffff020202000000111111000000030303
+1313130000000b0b0be9e9e90000000a0a0afbfbfbe0e0e0fbfbfbffffff000000000000
+fffffff7f7f7000000030303f6f6f6f7f7f7ffffff000000000000fafafaecececfbfbfb
+000000020202fffffff8f8f8f7f7f7ffffffe4e4e4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfcfcfcfefefef1f1f1050505f2f2f2fbfbfb
+ededed050505f8f8f8ffffffeeeeee080808f9f9f9fffffff0f0f0060606f8f8f8ffffff
+ffffffeeeeee070707f7f7f7fdfdfdf7f7f70b0b0be9e9e9f9f9f9ffffff070707f9f9f9
+fffffffefefe040404fafafaffffffe6e6e6101010fffffffcfcfcf6f6f6fefefe161616
+fefefe040404fffffff5f5f5f9f9f9f7f7f7ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fcfcfcf8f8f8ffffffd9d9d90a0a0a080808
+f2f2f2fafafaffffff030303000000ffffffebebebfdfdfd171717000000131313fcfcfc
+ecececfcfcfcffffff0000000c0c0cf1f1f1e2e2e2ffffff030303030303ffffffe8e8e8
+fffffff8f8f8fffffff0f0f0edededfffffff5f5f5e5e5e5f9f9f9ffffff000000050505
+080808f9f9f9f4f4f4f4f4f4fafafa000000ffffff080808000000fafafaffffffededed
+fcfcfc0d0d0d191919f6f6f6f9f9f9000000080808fefefeecececffffff141414050505
+f3f3f3fffffffafafa0a0a0a090909f9f9f9fffffff1f1f1242424000000fffffffdfdfd
+040404030303ffffffe8e8e8eeeeeefffffff5f5f5fffffffefefe050505010101eeeeee
+fffffff0f0f0edededfdfdfdf6f6f6ededed1c1c1c030303f6f6f6ffffffedededffffff
+0000000c0c0cf8f8f8ffffff020202050505fffffff6f6f6f6f6f6ffffff040404010101
+fffffffcfcfc000000060606f1f1f1ffffffffffff151515000000ffffffd3d3d3ebebeb
+ffffffefefeffffffffffffffffffffcfcfcf1f1f10b0b0b070707e6e6e6f4f4f4ffffff
+ffffffd8d8d81e1e1e040404fcfcfcffffffffffff000000121212fafafaf8f8f8080808
+0f0f0ff4f4f4f2f2f2060606000000eaeaeaf7f7f7000000121212eaeaeafffffff0f0f0
+ebebebfffffffbfbfbeeeeee000000040404ffffffffffffebebebffffff000000000000
+f6f6f6ffffff101010000000ffffffe0e0e0f1f1f1101010000000ffffffffffffe7e7e7
+131313000000fdfdfdfffffff4f4f4fffffffffffff0f0f0ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffbfbfbfafafafdfdfdffffff000000fcfcfcfafafa
+ffffff000000fffffff6f6f6ffffff000000f7f7f7eeeeeeffffff000000f4f4f4f8f8f8
+f2f2f2ffffff000000fffffffdfdfdfdfdfd000000fffffff4f4f4f5f5f5000000ffffff
+efefeff4f4f4000000ffffffeaeaeaffffff141414d9d9d9f3f3f3fffffff7f7f7010101
+ffffff000000e3e3e3ffffffe7e7e7ffffffe6e6e6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fafafafefefefafafad8d8d8ffffff000000070707
+f7f7f7ffffffe4e4e40000001b1b1beeeeeeffffffffffff0202021a1a1a000000fdfdfd
+fffffffafafa111111000000fffffff7f7f7ffffffffffff000000020202fffffff5f5f5
+fefefefbfbfbeeeeeefffffffffffff1f1f1fbfbfbffffffffffffecececffffff131313
+080808000000fffffff1f1f1ffffff000000f4f4f4f5f5f5000000000000f6f6f6ffffff
+0c0c0c000000f7f7f7fefefeffffff000000000000fffffffffffff7f7f7000000191919
+fdfdfdf4f4f4f4f4f4010101010101f4f4f4f3f3f3fdfdfd121212060606f9f9f9f5f5f5
+0c0c0c0000000c0c0cdfdfdfffffffeeeeeeffffff060606f9f9f9000000141414101010
+dededefffffff9f9f9010101ffffffefefef161616000000e0e0e0fffffffefefefafafa
+020202010101e6e6e6fefefeffffff0000000b0b0bfbfbfbfbfbfb0b0b0b000000ffffff
+f0f0f0ffffff1c1c1c000000fffffff1f1f1ffffff000000161616edededffffffffffff
+fffffff0f0f0e6e6e6fffffffffffff5f5f5ffffff000000000000ffffffeeeeeef6f6f6
+f4f4f4ffffff050505000000ffffffeaeaeae2e2e2121212000000fdfdfdfdfdfd020202
+010101fefefeffffff0a0a0a080808ffffffffffff090909010101000000e6e6e6f6f6f6
+ffffffffffff000000fffffffdfdfd151515000000fffffffcfcfc0000000e0e0effffff
+eeeeeeececec0606060000000606060101010e0e0e0a0a0a000000fefefeedededffffff
+0000000d0d0dfbfbfbffffffffffffeaeaeafffffff5f5f5ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffefefefafafaf8f8f8fafafaf3f3f3000000ffffffffffff
+ebebeb000000fffffff4f4f4f8f8f8000000ffffffffffffebebeb000000fffffff8f8f8
+fffffff6f6f6000000f6f6f6f5f5f5fcfcfc0a0a0aefefefffffffffffff010101dedede
+ffffffffffff010101f9f9f9fefefeffffff161616f5f5f5ffffffe4e4e4fcfcfce4e4e4
+000000fffffffbfbfbeaeaeaffffffe2e2e2fffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffbfbfbffffff030303000000101010
+000000f8f8f81b1b1b0a0a0a0000000a0a0af5f5f5fffffff5f5f5ebebeb080808000000
+0000000c0c0c000000ffffffecececfcfcfcfcfcfc0000001c1c1c030303000000f7f7f7
+fbfbfbfffffff3f3f3fdfdfdfefefef1f1f1fffffff7f7f7ebebebfffffffbfbfbd7d7d7
+0f0f0f070707000000181818000000000000fdfdfdffffff040404101010000000020202
+1111112d2d2ddfdfdff2f2f2151515000000151515000000ffffff000000212121030303
+040404ffffff000000070707080808010101ffffff0909090606060e0e0e030303ffffff
+f2f2f20000000a0a0a222222000000000000181818000000fbfbfbffffff121212000000
+0e0e0e000000101010020202fffffff1f1f1000000000000171717000000ffffff080808
+0404041414140f0f0ff4f4f4f7f7f70c0c0c0000000303030303030000000f0f0ffbfbfb
+ffffff000000000000070707060606ffffff1111111010100404040f0f0fdfdfdfffffff
+ebebebfdfdfdffffffecececfafafafafafa000000060606080808000000fafafaf5f5f5
+f2f2f20000000c0c0c060606060606ffffff232323000000151515000000fcfcfc000000
+0e0e0e000000fdfdfd0000000000000c0c0cf4f4f4ffffff000000111111060606070707
+0000000000000b0b0bf1f1f1f3f3f3000000040404000000060606111111000000ffffff
+fefefef7f7f7ffffff010101070707111111eaeaea000000060606010101fcfcfcfbfbfb
+121212010101000000000000e5e5e5ffffffebebebfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffdfdfdf9f9f9f7f7f7f9f9f9020202080808030303f4f4f4
+101010090909030303fefefe050505040404020202f4f4f4080808000000000000f7f7f7
+fbfbfb0c0c0c070707090909fbfbfb0404040000000b0b0bfefefe040404050505010101
+fbfbfb000000030303060606fefefee9e9e90000000a0a0a000000ffffffddddddffffff
+080808f8f8f8f2f2f2eeeeeef0f0f0ecececfefefeedededffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffbfbfbf6f6f6f0f0f0ffffffffffff
+f1f1f1f2f2f2ffffffdbdbdbffffffecececfffffff9f9f9fafafaf1f1f1ffffffffffff
+fefefef0f0f0fcfcfcfffffffffffffafafaf1f1f1fffffffcfcfcf0f0f0fffffff8f8f8
+f8f8f8f8f8f8ffffffe4e4e4ffffffe7e7e7fffffff5f5f5ffffffe3e3e3f8f8f8ffffff
+fffffff5f5f5fffffff1f1f1fefefeffffffe8e8e8ffffffffffffebebebfefefef8f8f8
+e6e6e6fafafafffffff1f1f1efefefffffffeeeeeefffffff2f2f2fafafaf4f4f4f1f1f1
+fafafaf2f2f2fffffffffffffffffffffffff3f3f3fbfbfbf8f8f8f0f0f0fffffff0f0f0
+fffffff0f0f0ffffffdfdfdff4f4f4ffffffdbdbdbfafafafffffff1f1f1f1f1f1fafafa
+f9f9f9ffffffe3e3e3fafafae4e4e4fffffff3f3f3ffffffebebebffffffe2e2e2f2f2f2
+f6f6f6e1e1e1fdfdfdeaeaeafafafafffffffffffff3f3f3f3f3f3fffffffffffffdfdfd
+fcfcfcf3f3f3fffffff8f8f8edededfefefefbfbfbedededfffffff2f2f2ffffffe4e4e4
+ffffffedededf3f3f3fdfdfdfffffffffffff4f4f4fffffffffffffafafafffffffcfcfc
+ffffffe5e5e5fafafafefefeefefefe5e5e5fdfdfdfcfcfcfafafaffffffeaeaeafbfbfb
+f9f9f9ffffffeeeeeeffffffffffffdfdfdffffffffffffffdfdfdf3f3f3f6f6f6fcfcfc
+fffffff6f6f6f1f1f1fffffff5f5f5ffffffffffffffffffe7e7e7fefefeffffffdbdbdb
+f3f3f3f8f8f8e8e8e8fffffff7f7f7f6f6f6fefefef6f6f6fffffffffffff2f2f2ffffff
+f6f6f6f4f4f4fffffffffffffffffff9f9f9ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffdfdfdf9f9f9f7f7f7f9f9f9fffffffdfdfdffffffffffff
+f3f3f3fcfcfcfffffffcfcfcf3f3f3fffffffafafaf2f2f2fffffffafafae7e7e7ffffff
+ffffffefefeffefefefffffff9f9f9fafafafffffff4f4f4ffffffedededf8f8f8ffffff
+eeeeeef9f9f9fffffff2f2f2f3f3f3fffffffffffff8f8f8f7f7f7f0f0f0f7f7f7dedede
+0b0b0bd8d8d8fffffffffffff3f3f3f8f8f8ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fafafafefefefafafafcfcfcffffffdbdbdbffffff
+ffffffedededf0f0f0ffffffdfdfdff9f9f9fffffff6f6f6e8e8e8ffffffd5d5d5f8f8f8
+f8f8f8fdfdfdf7f7f7e9e9e9f0f0f0fbfbfbfffffff8f8f8ffffffffffffe9e9e9ffffff
+f3f3f3f2f2f2fffffffffffffcfcfcfafafafcfcfcfcfcfcfffffffdfdfdf8f8f8f0f0f0
+e2e2e2ffffffd9d9d9f7f7f7f2f2f2fffffff8f8f8f7f7f7f6f6f6ffffffe3e3e3ffffff
+f7f7f7f1f1f1fffffff2f2f2f1f1f1fefefecbcbcbe4e4e4fffffffdfdfdffffffffffff
+fcfcfcffffffedededf2f2f2f0f0f0e9e9e9fffffff6f6f6eeeeeeffffffe4e4e4f3f3f3
+f4f4f4fffffffafafafefefeffffffd6d6d6fffffff1f1f1e7e7e7ffffffffffffe4e4e4
+e7e7e7fafafaf6f6f6f4f4f4ffffffe9e9e9f9f9f9fffffff8f8f8ffffffffffffebebeb
+fffffff7f7f7fffffff8f8f8fbfbfbeeeeeef2f2f2fffffffffffff3f3f3f0f0f0fcfcfc
+ffffffe9e9e9ebebebffffffffffffe5e5e5fffffffffffff7f7f7fcfcfcf8f8f8fbfbfb
+f0f0f0f4f4f4fffffff1f1f1f6f6f6f8f8f8fafafafbfbfbfdfdfdfcfcfcf4f4f4ededed
+f2f2f2ffffffecececfffffffffffffffffff1f1f1fdfdfdf9f9f9f1f1f1fffffffbfbfb
+e0e0e0eeeeeeffffffecececf3f3f3ffffffeaeaeacacacafdfdfdeeeeeefffffffafafa
+e6e6e6f9f9f9ffffffe2e2e2f7f7f7fdfdfdf2f2f2f4f4f4fffffff4f4f4e7e7e7ffffff
+fffffff5f5f5f3f3f3fefefee7e7e7f5f5f5ffffffefefeff0f0f0fdfdfdffffffdfdfdf
+fcfcfcffffffeeeeeef8f8f8fdfdfdffffffefefefeeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffefefefafafaf8f8f8fafafaefefeffffffff4f4f4f2f2f2
+fafafaf9f9f9eeeeeefffffffdfdfde9e9e9f5f5f5fffffff1f1f1f9f9f9fffffffdfdfd
+fffffff5f5f5fcfcfcfffffffefefef0f0f0f3f3f3f0f0f0f7f7f7fffffff4f4f4f8f8f8
+fffffff9f9f9dededefefefefdfdfdffffffd9d9d9ecececffffff000000ffffff111111
+fafafafffffff8f8f8f6f6f6f6f6f6f2f2f2f6f6f6fafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fcfcfcf8f8f8ecececfffffff7f7f7f3f3f3
+f7f7f7fffffffcfcfce3e3e3fffffffdfdfdeaeaeaf4f4f4fcfcfcffffffe1e1e1ffffff
+fffffffefefef3f3f3fbfbfbf6f6f6fffffffdfdfdf4f4f4fdfdfdf0f0f0ffffffeeeeee
+f7f7f7ffffffe9e9e9ecececf9f9f9fffffffbfbfbfffffffcfcfcfafafafffffff1f1f1
+ffffffcdcdcdffffffedededfafafaf3f3f3fffffffffffffafafafcfcfcfffffff8f8f8
+f6f6f6f9f9f9efefeffffffff7f7f7f4f4f4ffffffe3e3e3f5f5f5ffffffedededebebeb
+fffffffefefef4f4f4fffffffffffff5f5f5fffffffffffffafafae8e8e8ffffffffffff
+f7f7f7fffffffbfbfbf3f3f3f8f8f8efefeffffffffdfdfdeeeeeef6f6f6ebebebffffff
+ffffffeeeeeeffffffffffffeeeeeefafafae8e8e8fbfbfbfafafad4d4d4fefefef9f9f9
+dcdcdcfffffffbfbfbf5f5f5fffffff5f5f5fffffff7f7f7f7f7f7fffffff4f4f4ffffff
+d5d5d5ffffffeeeeeeefefefffffffffffffececece2e2e2efefeffafafafffffff6f6f6
+e7e7e7fdfdfdedededfffffffffffffcfcfcffffffefefeff0f0f0fffffffafafaffffff
+fffffffffffff6f6f6efefeffbfbfbf8f8f8f5f5f5efefeffbfbfbfcfcfcffffffdfdfdf
+fffffff4f4f4fdfdfdfafafaf3f3f3f8f8f8fffffffffffffffffffffffffdfdfdf5f5f5
+ffffffebebebf5f5f5fffffff7f7f7efefefffffffd7d7d7f9f9f9ffffffe4e4e4ffffff
+e4e4e4fbfbfbfcfcfcfcfcfcf3f3f3ffffffe9e9e9f5f5f5fdfdfdf3f3f3ecececffffff
+f9f9f9f5f5f5f3f3f3fffffff8f8f8ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffbfbfbfafafafdfdfdfffffff6f6f6ffffffffffff
+e3e3e3ffffffffffffeaeaeaf2f2f2fffffff1f1f1f1f1f1f7f7f7ffffffebebebf6f6f6
+f1f1f1fefefefffffff5f5f5fffffffdfdfdfffffffffffff5f5f5f0f0f0fcfcfcf5f5f5
+f4f4f4f6f6f6fffffff6f6f6fcfcfcedededfffffffafafae2e2e2030303000000f2f2f2
+fffffff8f8f8e3e3e3f3f3f3fffffffffffffffffff6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f7f7f7fafafaf6f6f6fffffff9f9f9fdfdfdffffff
+e8e8e8ffffffe8e8e8fffffff7f7f7fffffff4f4f4fffffff6f6f6f7f7f7ffffffe0e0e0
+ffffffecececfffffffffffff2f2f2fafafafcfcfcf3f3f3f7f7f7ffffffe0e0e0f7f7f7
+ffffffe6e6e6fffffffdfdfdfffffff9f9f9fafafafffffff7f7f7f9f9f9e8e8e8fefefe
+f5f5f5fcfcfcfcfcfcfffffff6f6f6fdfdfdfdfdfdf6f6f6f6f6f6fffffff7f7f7ededed
+fffffff1f1f1f6f6f6f9f9f9fffffffbfbfbe3e3e3f5f5f5ffffffebebebf8f8f8ffffff
+eaeaeaf4f4f4f6f6f6fdfdfdfffffffffffffffffffafafafafafafffffff7f7f7f2f2f2
+fefefef5f5f5f9f9f9fffffff4f4f4ffffffebebebf4f4f4fffffff7f7f7f9f9f9f2f2f2
+f2f2f2ffffffe8e8e8f9f9f9fafafafffffff4f4f4fdfdfdeaeaeaffffffecececfefefe
+fffffff6f6f6fffffff9f9f9fcfcfcfdfdfdf8f8f8f7f7f7f7f7f7f6f6f6fbfbfbf8f8f8
+ffffffeaeaeaffffffedededf9f9f9e4e4e4fffffffefefeffffffebebebfafafaf4f4f4
+fffffffafafaf9f9f9f2f2f2f2f2f2edededf7f7f7fffffffffffffbfbfbf4f4f4fafafa
+fdfdfde8e8e8fffffff2f2f2f3f3f3ffffffe8e8e8fefefefefefef1f1f1ffffffffffff
+e3e3e3efefeffffffff6f6f6fffffffdfdfdf5f5f5f2f2f2fbfbfbffffffdbdbdbffffff
+e8e8e8fffffff7f7f7f9f9f9edededffffffdfdfdffffffffefefeefefefffffffdfdfdf
+ffffffedededfffffff9f9f9fdfdfdfefefefdfdfdfefefefafafaffffffffffffe6e6e6
+f4f4f4f6f6f6fffffffcfcfcfcfcfcf2f2f2fbfbfbf9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfcfcfcfefefeecececf4f4f4f7f7f7fcfcfc
+fcfcfcfffffffefefefdfdfdfffffff3f3f3f5f5f5fffffffafafafdfdfdfffffffdfdfd
+f8f8f8f2f2f2f8f8f8fafafaf7f7f7f0f0f0f9f9f9fffffffefefefafafaf7f7f7e8e8e8
+fffffff4f4f4f6f6f6fffffff3f3f3ffffffe4e4e4efefeffffffffefefee5e5e5ffffff
+fbfbfbfbfbfbfffffffffffff3f3f3f6f6f6f5f5f5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fbfbfbfffffffdfdfdf5f5f5ecececfafafaffffff
+fefefef4f4f4f3f3f3f2f2f2eeeeeef8f8f8f4f4f4fefefefefefef6f6f6fefefef8f8f8
+fffffff8f8f8f6f6f6f6f6f6f9f9f9fffffffcfcfcf6f6f6ffffffffffffe4e4e4ffffff
+fafafaf6f6f6fffffffffffff8f8f8fafafafffffffffffff3f3f3f5f5f5fffffff5f5f5
+fffffff8f8f8e9e9e9fffffff9f9f9fffffffffffffffffffcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafcfcfcfdfdfdfafafafffffffffffff6f6f6fdfdfdefefeffffffff7f7f7
+f9f9f9fdfdfdfffffffefefefafafaf8f8f8fbfbfbfffffffffffffefefefefefefcfcfc
+fbfbfbfafafaf9f9f9f9f9f9fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+fafafafcfcfcfefefefffffffffffff5f5f5efefefebebebfefefefcfcfcfafafaf8f8f8
+f8f8f8fafafafcfcfcfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf7f7f7f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefeffffff
+f7f7f7fdfdfdfefefefbfbfbfcfcfcfffffffffffffdfdfde2e2e2fffffff6f6f6fafafa
+fffffff9f9f9f6f6f6fefefef9f9f9fbfbfbfbfbfbfafafaf7f7f7f6f6f6f7f7f7f8f8f8
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfdfdfdfdfdfd
+fdfdfdfcfcfcfbfbfbfafafaf6f6f6fffffff6f6f6f6f6f6fffffff8f8f8fafafaffffff
+fffffffdfdfdf1f1f1f1f1f1fdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+eeeeeefffffff7f7f7fafafafffffffffffff8f8f8f7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafafffffff6f6f6ffffffe1e1e1fbfbfb
+ffffffffffffecececfdfdfdffffffebebebfcfcfcfffffff7f7f7fafafaffffffe5e5e5
+f6f6f6f1f1f1fafafaf9f9f9fdfdfdfffffff9f9f9f5f5f5f7f7f7fafafaf9f9f9ffffff
+fefefed4d4d4ffffffefefeffdfdfdf9f9f9fafafafffffffffffffcfcfcfcfcfcffffff
+f8f8f8f8f8f8fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafffffffcfcfcfdfdfdfefefef5f5f5ffffff
+f9f9f9fefefefffffffffffffefefeefefeffffffff6f6f6f5f5f5fffffff3f3f3ffffff
+e5e5e5fffffff7f7f7fffffffffffff1f1f1f1f1f1fffffff9f9f9fffffffefefef2f2f2
+fffffffffffffdfdfdedededfffffffefefefffffff2f2f2fefefefffffff7f7f7f5f5f5
+edededfffffffffffffafafafbfbfbfbfbfbffffffefefeffdfdfdfcfcfcfbfbfbfafafa
+fafafafbfbfbfcfcfcfdfdfdf5f5f5e3e3e3f8f8f8fffffff9f9f9fffffff7f7f7fefefe
+fafafafdfdfdfffffffffffffbfbfbf9f9f9fcfcfcfffffffffffffefefefefefefdfdfd
+fcfcfcfcfcfcfbfbfbfbfbfbfffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+edededfffffff6f6f6f6f6f6f5f5f5f4f4f4ffffffe9e9e9fefefefefefefcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffff
+fbfbfbfffffffffffffcfcfcfcfcfcfffffffefefefafafafffffffefefefffffffcfcfc
+ffffffe4e4e4f2f2f2fffffffcfcfcfdfdfdfefefefcfcfcfafafaf9f9f9fafafafbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfcfcfcfbfbfbfbfbfbf1f1f1e8e8e8fdfdfdfffffffffffff6f6f6f3f3f3ffffff
+fdfdfdf9f9f9fffffffffffffcfcfcfcfcfcf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fafafafffffffafafaffffffffffffddddddffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafaffffffffffffd7d7d7ffffffffffff
+f6f6f6fefefefefefefdfdfdedededfffffffbfbfbe2e2e2fffffffffffff7f7f7f7f7f7
+fffffff3f3f3ffffffffffffe6e6e6f2f2f2f5f5f5fffffff6f6f6fcfcfcf8f8f8fbfbfb
+fffffffcfcfce3e3e3fffffffafafaf7f7f7f8f8f8fdfdfdfefefefafafafbfbfbfefefe
+fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbfffffff6f6f6fffffff4f4f4
+f0f0f0ffffffddddddf1f1f1f8f8f8f7f7f7fcfcfcfafafaf9f9f9fbfbfbf9f9f9fcfcfc
+fdfdfdf0f0f0f0f0f0f5f5f5edededfffffff8f8f8fdfdfdfffffffffffffefefeefefef
+f6f6f6f5f5f5f1f1f1ffffffe9e9e9f1f1f1ffffffefefeffffffffffffff5f5f5ffffff
+fbfbfbfffffffefefef3f3f3f4f4f4f6f6f6f8f8f8fffffffefefefdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfdfdfdfefefef3f3f3fffffff6f6f6f0f0f0fffffffffffffffffffafafa
+fcfcfcfefefefffffffffffffcfcfcfbfbfbfdfdfdfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+fefefefdfdfdf1f1f1fffffffffffff3f3f3ffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefe
+fffffffffffffffffffdfdfdfcfcfcfcfcfcfafafaf7f7f7eeeeeef2f2f2fffffff4f4f4
+f6f6f6ffffffffffffe8e8e8fefefefffffffffffffffffffefefefdfdfdfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefeffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfffffff2f2f2fbfbfbefefefebebebfffffffdfdfdeeeeee
+fafafaf2f2f2efefeffbfbfbf9f9f9f6f6f6fffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefefefefe
+ffffffeeeeeef6f6f6f8f8f8f6f6f6ffffffefefeff1f1f1ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafafffffffbfbfbf3f3f3fffffff0f0f0
+fbfbfbffffffecececfffffffcfcfcf3f3f3f0f0f0fffffff5f5f5f1f1f1fffffff5f5f5
+eeeeeeedededffffffe9e9e9fcfcfcfffffff4f4f4f3f3f3fcfcfcfffffffdfdfdf4f4f4
+fdfdfdffffffe8e8e8fffffffafafaf8f8f8f8f8f8fcfcfcfdfdfdfbfbfbfbfbfbfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fafafafdfdfdfafafae0e0e0fffffffdfdfdffffff
+fafafaf3f3f3fffffffffffff5f5f5fafafafbfbfbfefefefcfcfcf8f8f8f9f9f9f7f7f7
+eeeeeefffffffffffff4f4f4fffffff8f8f8e1e1e1f3f3f3e6e6e6ffffffe9e9e9ffffff
+fcfcfcfefefeefefeffffffffffffffcfcfcffffffebebebf6f6f6e7e7e7f5f5f5f7f7f7
+edededf7f7f7efefeffffffffcfcfcfffffff2f2f2fffffffffffffffffffefefefefefe
+fdfdfdfdfdfdfdfdfdfefefef7f7f7f9f9f9ffffffe6e6e6fffffff7f7f7fefefefafafa
+fdfdfdfffffffffffffffffffefefefdfdfdfffffffffffffefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+ececececececfffffffafafafafafaffffffebebebecececfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fffffffffffffffffffefefefcfcfcfbfbfbf9f9f9f7f7f7fffffffdfdfdf9f9f9ffffff
+edededfffffff2f2f2fefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfcfcfcfcfcfcebebebf6f6f6fffffffcfcfcf4f4f4f7f7f7fbfbfbfafafa
+ffffffffffffedededffffffffffffefefefffffffefefefffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfefefe
+ffffffe5e5e5fffffff3f3f3fffffff9f9f9fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafafffffff6f6f6fefefef7f7f7fafafa
+e6e6e6fffffffffffff9f9f9ffffffe3e3e3fffffff3f3f3f5f5f5fdfdfdf2f2f2ebebeb
+d4d4d4fffffff5f5f5f5f5f5ffffffdcdcdcfffffff7f7f7fffffffefefefffffff0f0f0
+f0f0f0edededffffffe7e7e7fcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fcfcfcf8f8f8fbfbfbf9f9f9f7f7f7eaeaea
+fbfbfbfffffffffffff5f5f5fffffff8f8f8fefefef2f2f2f0f0f0fafafaf6f6f6ffffff
+fefefefcfcfceaeaeae8e8e8ffffffe6e6e6fffffff6f6f6f7f7f7ffffffe3e3e3f1f1f1
+fbfbfbf5f5f5f8f8f8e2e2e2f7f7f7efefeff4f4f4fffffffffffffafafafffffff0f0f0
+f9f9f9fdfdfdfffffff3f3f3f0f0f0fffffff0f0f0f2f2f2ffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfcfcfcc6c6c6fffffffffffff6f6f6ffffffeeeeeeffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+fffffffdfdfdfafafaf2f2f2f3f3f3fbfbfbfefefefffffffbfbfbfcfcfcfdfdfdfefefe
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffefefefbfbfbfafafafafafae4e4e4fefefeffffffe5e5e5
+fefefefafafaf5f5f5fffffffcfcfcfefefefffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbffffffffffffeeeeeeffffffffffffeeeeeef3f3f3ffffff
+f6f6f6e9e9e9fdfdfdfefefefbfbfbfdfdfdf5f5f5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfc
+fffffff7f7f7e1e1e1fffffff7f7f7efefefffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafafffffffffffff4f4f4fffffffbfbfb
+ffffffffffffe1e1e1fffffffcfcfcfffffffafafafafafaeeeeeeffffffffffffffffff
+ffffffffffffeaeaeafffffff3f3f3fdfdfde4e4e4fefefef7f7f7f0f0f0ffffffffffff
+ffffffffffffe0e0e0fffffffcfcfcfcfcfcfcfcfcfbfbfbfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fbfbfbf6f6f6fffffffcfcfcfdfdfdffffff
+fefefefefefeffffffeaeaeaeaeaeaffffffedededffffffffffffeaeaeaffffffececec
+ffffffe3e3e3ffffffe9e9e9fdfdfdf9f9f9eeeeeee9e9e9fefefef4f4f4f1f1f1fdfdfd
+ffffffe1e1e1fffffffffffff7f7f7f5f5f5f4f4f4fefefeebebebe5e5e5f4f4f4ececec
+ffffffe2e2e2fffffffbfbfbfffffff3f3f3fbfbfbffffffffffffffffffffffffffffff
+fffffffdfdfdfcfcfcfbfbfbfcfcfcfffffff4f4f4fcfcfcfbfbfbfffffff3f3f3ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+edededfdfdfdeeeeeefbfbfbfcfcfcf2f2f2fffffff3f3f3fbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffbfbfbfafafafcfcfcffffffebebebf7f7f7ffffff
+fdfdfd000000161616efefeff9f9f9fbfbfbfdfdfdfefefefdfdfdfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefcfcfcfbfbfbfafafaf5f5f5ffffffe9e9e9e9e9e9fbfbfbfafafaf9f9f9f5f5f5
+fefefefffffff1f1f10000000f0f0ffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbf9f9f9
+f5f5f5ffffffffffffffffffe9e9e9fffffff5f5f5f0f0f0ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafaffffffe1e1e10f0f0fe3e3e3f6f6f6
+f0f0f0f8f8f8ffffffffffffeeeeeefffffffcfcfcfbfbfbffffffefefeff4f4f4000000
+000000e7e7e70c0c0ce5e5e5fffffffbfbfbfffffffafafafffffffafafafffffff7f7f7
+f0f0f0e6e6e6121212dfdfdff9f9f9fbfbfbfafafaf7f7f7f8f8f8fdfdfdfffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fdfdfdf9f9f9d7d7d7ffffff
+e6e6e6f7f7f7ffffffedededfefefefbfbfbfbfbfbf6f6f6f5f5f5f9f9f9fbfbfbffffff
+f5f5f5ffffffffffffe8e8e8ffffffffffffddddddffffffffffffedededffffffffffff
+e6e6e6f7f7f7ebebebf1f1f1fffffffffffffdfdfdf7f7f7f7f7f7ffffffdcdcdcffffff
+ffffffe7e7e7fefefeffffffe6e6e6fffffff4f4f4f0f0f0fefefeffffffffffffffffff
+fefefefdfdfdfbfbfbfafafafafafaeaeaeaedededeeeeeefffffffbfbfbfffffffbfbfb
+fffffffefefefefefefefefefffffffffffffffffffefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+fcfcfcf2f2f2fffffff8f8f8f8f8f8fffffff3f3f3fefefefcfcfcfbfbfbfafafafafafa
+fbfbfbfdfdfdfffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffafafaf9f9f9fcfcfcefefefffffffdededee4e4e4
+ffffff000000040404f3f3f3f8f8f8fafafafcfcfcfdfdfdfdfdfdfdfdfdffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfbfbfbf9f9f9f8f8f8ffffffe4e4e4fffffffffffff1f1f1fffffffcfcfcffffff
+e6e6e6fffffffdfdfd050505141414f9f9f9e9e9e9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffcfcfcf9f9f9f7f7f7
+eeeeeef9f9f9fffffff7f7f7ffffffeeeeeeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafaffffffffffff050505ffffffffffff
+fffffff7f7f7f2f2f2f9f9f9f5f5f5f8f8f8ffffffedededffffffefefef070707ffffff
+000000ffffff040404fbfbfbfffffff7f7f7f6f6f6fffffff7f7f7fafafafffffffbfbfb
+ffffffffffff000000fffffff9f9f9fcfcfcfbfbfbf6f6f6f7f7f7fdfdfdfffffffdfdfd
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fbfbfb050505151515000000
+101010dedede0000000b0b0b010101000000fffffff8f8f8f7f7f7ffffff000000060606
+0f0f0f000000121212ffffffefefeff1f1f1ffffff000000060606050505000000000000
+000000fffffff3f3f3edededfbfbfbf7f7f7fafafaf4f4f4ffffffe4e4e4020202000000
+0000001212120000000c0c0c010101f6f6f6fffffff3f3f3fefefefefefeffffffffffff
+fefefefcfcfcfafafaf9f9f9fbfbfb020202f8f8f8fffffffefefefffffffafafafbfbfb
+fffffffefefefdfdfdfdfdfdfefefefffffffefefefdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe
+fafafa030303000000080808060606000000000000f1f1f1fdfdfdfcfcfcfafafafafafa
+fbfbfbfdfdfdfffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfffffffffffff9f9f9f7f7f7fbfbfb000000fefefefffffffcfcfc
+eaeaea0f0f0f080808fefefef8f8f8fafafafcfcfcfdfdfdfdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfd
+fcfcfcfafafaf9f9f9f8f8f8f8f8f80f0f0f0000000808080202021d1d1d0000000a0a0a
+151515dbdbdbffffff050505050505f0f0f0fffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefefffffffffffffffffffdfdfdf8f8f8f5f5f5
+fffffffefefe000000fffffffbfbfbf9f9f9fffffff7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefafafafafafafffffff2f2f20e0e0efbfbfbffffff
+f4f4f4fdfdfdfffffffdfdfdfffffffefefee2e2e2fffffff9f9f9000000ffffffebebeb
+f7f7f7fcfcfc040404fffffff2f2f2fffffffffffffbfbfbfafafaffffffffffffeeeeee
+fbfbfbfefefe020202f3f3f3fbfbfbfffffffdfdfdf8f8f8f9f9f9ffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbffffffffffff000000000000
+fffffff7f7f7f7f7f7000000111111fbfbfbeaeaeaffffff010101080808000000f2f2f2
+f5f5f5ffffff0000001010100a0a0aebebebfffffff0f0f00c0c0c000000ffffff000000
+0000000c0c0cf5f5f5f5f5f5fafafafffffff6f6f6fcfcfcffffff0101010404040b0b0b
+ebebebfffffffafafa080808000000fffffff3f3f3fefefefffffff4f4f4fdfdfdffffff
+f4f4f4ffffffd1d1d1ffffff1010100c0c0cfffffffcfcfceaeaeafafafafbfbfbf3f3f3
+fbfbfbf9f9f9fcfcfcfffffffcfcfcfffffff9f9f9fefefef8f8f8fcfcfcfafafaffffff
+fffffff1f1f1f9f9f9fffffffafafafdfdfdfffffff8f8f8fffffffbfbfbf8f8f8010101
+0000000e0e0e000000fdfdfdfbfbfbe5e5e51f1f1ffafafaedededffffffffffffffffff
+fcfcfcfffffffffffff5f5f5fffffffffffffafafaf8f8f8f5f5f5fffffff1f1f1ffffff
+fffffffcfcfcf1f1f1fffffff3f3f3f7f7f7f3f3f3fefefefcfcfcfafafafcfcfcffffff
+f5f5f5ebebebfffffff6f6f6fffffffafafaf9f9f9fffffff9f9f9fefefeedededffffff
+fffffff1f1f1fffffff9f9f9fbfbfbfdfdfdf2f2f2010101000000ffffffe6e6e6fdfdfd
+ffffff000000282828f0f0f0fffffff7f7f7fffffff2f2f2fffffff8f8f8fdfdfdfcfcfc
+f9f9f9fffffff7f7f7fbfbfbfcfcfcf2f2f2fffffff9f9f9f6f6f6ffffffebebebfcfcfc
+fffffffcfcfcfffffffdfdfdffffff000000ffffffe2e2e2101010090909f8f8f8f4f4f4
+111111f3f3f3fafafa080808010101fcfcfcfcfcfcf6f6f6fdfdfdfdfdfdfffffff6f6f6
+fffffffafafafbfbfbfcfcfcf9f9f9fffffffefefef6f6f6fffffff5f5f5ecececffffff
+fffffff8f8f8fbfbfbf9f9f9fcfcfcfefefeffffffffffffffffffe6e6e6f7f7f7ffffff
+edededf8f8f8fffffffbfbfbf8f8f8fdfdfdf6f6f6ffffffffffffebebebfefefeffffff
+efefef101010000000e7e7e7fffffffbfbfbf8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfcf5f5f5f8f8f8fffffff5f5f5
+ffffffffffffeeeeeefffffffdfdfdf3f3f3ffffffdededeffffff141414dfdfdffefefe
+fdfdfddcdcdcfffffffffffff5f5f5f7f7f7fffffffafafafffffff8f8f8f6f6f6fefefe
+ffffffe8e8e8ffffffe9e9e9f5f5f5ffffff000000fafafafffffffbfbfbecececffffff
+fffffff6f6f6fffffff1f1f1fffffff5f5f5fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbffffffffffff000000020202
+fffffff9f9f9f8f8f8000000060606f0f0f0fffffffbfbfb0b0b0b000000fffffff0f0f0
+fafafaedededffffff0c0c0c070707fdfdfdffffffeeeeee010101010101f7f7f7ededed
+1818180a0a0a020202f9f9f9fcfcfcecececfffffffafafae9e9e91010100f0f0ffcfcfc
+f7f7f7fffffffcfcfcebebeb181818fffffffafafafafafaf9f9f9fcfcfcfffffffcfcfc
+ffffffe7e7e7fffffff2f2f2000000111111f4f4f4f5f5f5fdfdfdffffffffffffffffff
+fffffffbfbfbf4f4f4ffffffffffffebebebddddddfffffffafafafffffffffffff8f8f8
+f4f4f4ffffffffffffe7e7e7fffffffafafaf5f5f5f6f6f6ffffffedededf5f5f50a0a0a
+000000090909fffffff1f1f1fffffffbfbfb0d0d0dfcfcfcfcfcfcf3f3f3fffffff6f6f6
+f6f6f6fffffff6f6f6fffffff4f4f4fffffff4f4f4fdfdfdfffffff7f7f7ffffffffffff
+fdfdfdf3f3f3fffffff3f3f3f7f7f7fffffffffffff8f8f8fefefefbfbfbf8f8f8f5f5f5
+fffffff6f6f6fffffffffffffffffff5f5f5ffffffffffffefefeffffffffbfbfbffffff
+f9f9f9ffffffffffffedededfafafaffffffffffff000000000000f8f8f8f6f6f6efefef
+ffffffffffffe5e5e5fffffff8f8f8fdfdfdfefefef8f8f8fbfbfbffffffedededffffff
+fffffffffffff8f8f8f9f9f9f5f5f5fffffff2f2f2fffffffafafaecececfffffff4f4f4
+f6f6f6eeeeeef6f6f6ffffffffffff111111e5e5e5ffffff010101000000ffffffffffff
+000000ffffffffffffdbdbdbffffffffffffe2e2e2ffffffffffffe9e9e9ffffffffffff
+f7f7f7f9f9f9fffffff3f3f3fffffff5f5f5fffffffffffffffffff8f8f8fffffff3f3f3
+f5f5f5ffffffffffffffffffe8e8e8fffffffefefefafafaf8f8f8fffffffffffff6f6f6
+fffffffffffff3f3f3fdfdfdfffffffffffffcfcfcfffffffafafaffffffefefefffffff
+fbfbfb0000000d0d0dffffffe9e9e9fffffff9f9f9f6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfffffff5f5f5ebebebf2f2f2
+ecececfffffff7f7f7fffffffbfbfbfffffff2f2f2ffffffe6e6e6000000fffffff0f0f0
+fffffffffffffffffff7f7f7efefeffffffffdfdfdffffffeaeaeafffffffffffffafafa
+ecececffffffdadadaffffffeeeeeefafafa111111ffffffebebebf2f2f2ffffffefefef
+f8f8f8fdfdfdf9f9f9ffffffebebebfffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfdfdfdffffff010101040404
+fffffffafafaf9f9f90000000a0a0affffffe2e2e20c0c0c000000030303e3e3e3ffffff
+f6f6f6f7f7f7ffffff0000000f0f0f000000ffffffeeeeee060606060606f9f9f9fcfcfc
+000000050505090909f5f5f5fefefeffffffeeeeeefcfcfcffffff010101000000040404
+111111f4f4f4f5f5f5ffffffe7e7e7fffffffcfcfcfefefe0b0b0b141414000000000000
+000000fffffff8f8f80000001212120000000505050b0b0bffffff000000010101000000
+fafafaffffff000000030303030303fdfdfdffffff000000151515000000141414010101
+070707030303000000191919fffffff3f3f3e7e7e7fffffff2f2f2fdfdfd202020000000
+030303f7f7f7f5f5f5fbfbfbf9f9f9f7f7f7ffffffffffffffffff030303000000000000
+000000000000010101fdfdfdffffff000000101010090909000000000000020202040404
+121212fffffff1f1f10000000000000000001212120000000505052e2e2e000000ffffff
+fffffffbfbfbf9f9f90000000000000000000e0e0e040404f2f2f2f0f0f0fffffff3f3f3
+000000171717000000111111f2f2f2f2f2f2010101000000000000070707070707ffffff
+060606080808050505fdfdfdf4f4f4fafafa000000060606070707000000252525000000
+f6f6f6efefef0000001e1e1e0303030303030000000000000000000d0d0de2e2e2e6e6e6
+fffffffffffff3f3f3f3f3f3f5f5f5e5e5e5ffffffdfdfdf090909141414eeeeeef6f6f6
+f9f9f9ffffff000000141414000000f8f8f8ffffff0000000202020e0e0e121212000000
+0f0f0f000000000000090909000000000000ffffffe4e4e4fefefeffffff000000000000
+040404000000000000fdfdfdf7f7f7ffffff000000000000000000121212050505000000
+f5f5f5e6e6e6030303020202000000fafafaf1f1f10000000c0c0c040404f1f1f1ffffff
+0000001c1c1c0000000000000a0a0af1f1f1fcfcfcffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfb0000001c1c1cfffffff9f9f9
+1010100b0b0b0000000000000303030e0e0ef5f5f5f2f2f2161616000000101010000000
+fdfdfd000000000000fdfdfdffffff0000000000001111110000000d0d0d000000ededed
+ffffff000000101010d9d9d9ffffff0c0c0c0000001c1c1c000000121212000000000000
+ffffffffffff000000101010edededf1f1f1f9f9f9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfbfbfbffffff020202050505
+fffffff9f9f9f8f8f8000000000000f9f9f9ffffff0c0c0c0404040d0d0dffffffededed
+e8e8e8fffffff9f9f9000000000000020202f1f1f1f2f2f2000000000000ffffff070707
+0c0c0c040404fffffffdfdfdf7f7f7fffffffafafafafafadddddd0c0c0c1414140e0e0e
+0e0e0e000000090909070707f1f1f1fffffff6f6f60c0c0c000000dfdfdfffffffffffff
+050505000000ffffffffffff050505050505eeeeeefafafaf0f0f0f9f9f9232323000000
+eaeaeafdfdfdefefef262626000000fffffff4f4f4f3f3f30606061f1f1ff2f2f2ffffff
+ffffff000000000000060606dbdbdbfdfdfdfffffffffffffbfbfbe1e1e10e0e0e000000
+0c0c0cf6f6f6fafafafffffffbfbfbf7f7f7fffffff8f8f8fbfbfb121212000000ffffff
+ffffff0000000b0b0bedededfffffffefefe010101020202fffffffffffffbfbfb080808
+0f0f0ff3f3f3ffffffffffff070707141414f8f8f8ffffffededed000000080808e9e9e9
+fffffffdfdfd000000030303fdfdfdfffffff7f7f7030303000000fffffff1f1f10c0c0c
+000000f1f1f12c2c2c1414140c0c0ceaeaeaffffff242424000000f7f7f7fffffff2f2f2
+e2e2e20808080a0a0afcfcfcffffffefefef0b0b0b141414f7f7f7ffffff030303040404
+fefefefffffffdfdfd000000000000fcfcfcffffffdedede0d0d0d0c0c0cfbfbfbededed
+fcfcfcf8f8f8fbfbfbfffffffefefefffffff6f6f6f9f9f9070707040404eeeeeeffffff
+fffffff1f1f1e8e8e80909091b1b1be9e9e9fffffffafafa020202000000edededf9f9f9
+080808141414ffffffffffff0202020f0f0fe8e8e8f9f9f9fcfcfc040404070707ffffff
+ffffffececec0a0a0a000000f1f1f1ffffff151515060606ffffffececec050505101010
+f7f7f7fffffff4f4f40f0f0f0c0c0cfffffff5f5f5ffffff111111040404fcfcfcffffff
+fcfcfc0000000d0d0dffffffeeeeeefffffff2f2f2fdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9ffffff000000fbfbfbfbfbfb
+ffffff000000ffffffffffffeeeeee000000fffffffefefee7e7e7000000ffffffffffff
+fbfbfbfcfcfc1a1a1af0f0f0ddddddffffff101010f3f3f3fefefef3f3f30e0e0efdfdfd
+d4d4d4ffffff080808ffffffe0e0e0fdfdfd131313fffffffffffff8f8f81c1c1cffffff
+e7e7e7f7f7f7000000f2f2f2ffffffffffffe7e7e7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf8f8f8fefefe010101040404
+fffffff7f7f7f7f7f70000000e0e0efafafaf2f2f2070707000000040404dbdbdbfbfbfb
+f7f7f7f7f7f7efefef090909141414010101fafafaf7f7f71a1a1a131313000000000000
+101010eeeeeeffffffcececef8f8f8e9e9e9fffffffbfbfbfffffff1f1f1000000000000
+0000000909090c0c0c000000070707e7e7e70f0f0f000000fdfdfdffffffebebebf5f5f5
+0505050f0f0fffffffececec020202040404efefeffbfbfbfffffff9f9f9000000050505
+fffffffffffff5f5f50000000b0b0bf9f9f9f0f0f0ffffff030303070707dededef7f7f7
+ebebebffffff070707000000efefefffffffe6e6e6cfcfcffffffff0f0f0040404171717
+101010f2f2f2fbfbfbfffffffcfcfcfafafafbfbfbf8f8f80d0d0d010101f9f9f9f2f2f2
+f4f4f4fcfcfc000000040404f8f8f8f0f0f0050505000000fafafaf4f4f4f9f9f9020202
+000000fffffffefefee6e6e6010101000000ffffffeeeeeeffffff020202010101ffffff
+f0f0f00606060b0b0bfcfcfcfffffffcfcfcf5f5f50303031d1d1de1e1e1000000000000
+ffffffffffff000000090909000000f8f8f8f6f6f60000000e0e0efffffff4f4f4fdfdfd
+ffffff000000000000fafafaefefef131313090909e8e8e8ecececfffffff5f5f5050505
+090909ecececdcdcdc222222131313ffffffecececf1f1f10101010a0a0af9f9f9ffffff
+fdfdfdf8f8f8fdfdfdf5f5f5e3e3e3fffffff7f7f7ededed0000000a0a0af7f7f7fefefe
+dfdfdffcfcfcffffff141414040404fffffff6f6f6f7f7f7090909000000fbfbfbffffff
+000000020202fefefef4f4f4030303000000f8f8f8ffffff020202000000f9f9f9dddddd
+e8e8e8ffffff000000000000ffffff050505000000fcfcfcf6f6f6fffffff5f5f5000000
+000000ffffffefefef000000151515ddddddfefefeffffff000000131313fcfcfcebebeb
+fcfcfc0d0d0d080808fffffffefefef1f1f1f0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefcfcfcf9f9f9f7f7f7eaeaea0a0a0afefefeececec
+f7f7f71a1a1ae1e1e1f7f7f7ffffff020202fefefeffffffffffff0e0e0efcfcfce9e9e9
+ffffffffffff000000fffffffffffff4f4f4020202f3f3f3f4f4f4ffffff000000f0f0f0
+f1f1f1ffffff030303fafafafffffff2f2f2050505efefefffffffeaeaea000000121212
+f7f7f7ffffff070707f6f6f6fffffffffffffffffff2f2f2ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf7f7f7fefefe010101030303
+fffffff6f6f6f7f7f7020202000000fffffff8f8f8020202020202000000fffffff1f1f1
+f7f7f7f0f0f0f2f2f2040404000000000000fffffffafafa000000121212f6f6f6ffffff
+fafafaf9f9f9fcfcfcfffffffffffff6f6f6f8f8f8e7e7e7fafafafffffff6f6f6fafafa
+ffffffdddddd080808363636000000ffffff0000001212120d0d0d000000030303000000
+000000080808c5c5c5ffffff000000121212f6f6f6f6f6f6fafafaffffff000000131313
+f9f9f9f0f0f0f8f8f8171717000000fffffff4f4f4f2f2f2000000000000ffffffffffff
+fffffffafafa000000181818ecececfefefeffffffeeeeeeeaeaeaf2f2f20d0d0d020202
+0c0c0cedededf8f8f8f9f9f9fafafafefefef4f4f4ffffff0000000a0a0afffffff5f5f5
+f8f8f8ffffff101010000000fffffff1f1f10f0f0f0c0c0cfffffffffffffefefe000000
+080808fcfcfcefefeffefefe080808191919edededffffffe4e4e4151515000000f3f3f3
+efefef1010100000000b0b0b000000000000131313000000000000fdfdfd222222000000
+d8d8d8fffffffffffffffffff6f6f6f6f6f6ffffff131313000000eeeeeefffffffbfbfb
+ececec090909131313edededeaeaea030303000000fafafaffffffe8e8e8f1f1f1020202
+000000ffffffffffff090909000000ecececfffffff0f0f0090909121212edededffffff
+f0f0f0f5f5f5fffffffbfbfbffffffe2e2e2f4f4f4ffffff040404000000f9f9f9ffffff
+fffffff2f2f2e9e9e91010100b0b0bffffffe6e6e6ffffff0a0a0a070707fffffffefefe
+0a0a0a070707fffffffefefe101010000000e3e3e3fdfdfd0f0f0f000000141414050505
+070707000000030303050505f7f7f7070707000000fffffff5f5f5fffffff3f3f30f0f0f
+000000ebebebffffff1f1f1f000000ffffffecececfbfbfb040404222222e6e6e6fdfdfd
+ffffff000000000000fafafafcfcfcf1f1f1fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefbfbfbf8f8f8f6f6f6ececec323232ecececffffff
+f2f2f2000000fffffffdfdfdefefef080808f9f9f9f5f5f5eaeaea000000f5f5f5ffffff
+e1e1e1e2e2e2393939f8f8f8efefeffbfbfb000000ffffffefefefe1e1e1121212f3f3f3
+fffffff7f7f7000000fffffff9f9f9fafafa080808f9f9f9e8e8e8fffffff4f4f4030303
+ececec000000fffffffbfbfbebebebf8f8f8fcfcfcfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf8f8f8ffffff010101030303
+fefefef6f6f6f9f9f9050505181818efefefffffffffffff050505090909000000f4f4f4
+e7e7e7ffffffffffff070707121212ffffffeaeaeafefefe262626000000ffffffffffff
+fffffff4f4f4f1f1f1f1f1f1f4f4f4f4f4f4ebebebffffffe3e3e3000000fffffff5f5f5
+fcfcfcffffffeeeeee000000000000ffffff050505000000f7f7f7f1f1f1ffffffffffff
+fdfdfdfffffff9f9f9f0f0f0131313070707f0f0f0f5f5f5eeeeeeffffff0000000d0d0d
+ecececffffffffffff000000101010f3f3f3f2f2f2ffffff000000000000ffffffcdcdcd
+ffffffffffff0000000c0c0cffffffe2e2e2f4f4f4fafafaeeeeeefffffffafafa000000
+0d0d0d000000ffffffeeeeeeffffffffffff000000ffffff1b1b1b000000fbfbfbf8f8f8
+f8f8f8fcfcfc000000232323efefeff9f9f9060606000000f5f5f5e3e3e3f6f6f60e0e0e
+050505ebebebfffffff8f8f8101010000000fdfdfdfafafaffffff000000121212fefefe
+e9e9e9151515000000fffffffffffffffffff9f9f9ffffffeaeaeaebebeb000000101010
+ffffffececece8e8e8eeeeeefffffff8f8f8ffffff030303252525f7f7f7f7f7f7fbfbfb
+f5f5f5050505010101f8f8f8ffffff0303031f1f1ff8f8f8d8d8d8ecececffffff040404
+090909fffffff9f9f90b0b0b000000ffffffe6e6e6fefefe000000050505f3f3f3ffffff
+fbfbfbfefefefbfbfbf5f5f5cfcfcffffffff1f1f1d4d4d4050505141414f4f4f4ffffff
+f3f3f3ffffffd6d6d6131313080808e8e8e8ffffffececec040404030303fffffff9f9f9
+050505000000fcfcfcfbfbfb000000060606fffffffcfcfc000000000000fffffff0f0f0
+efefeff9f9f9eeeeeefffffff7f7f7000000000000eeeeeefdfdfdf7f7f7fafafa000000
+080808fffffffafafa0404040f0f0ff6f6f6fbfbfbffffff060606000000ffffffffffff
+f2f2f20000000f0f0ffffffff1f1f1ffffffffffffdfdfdfffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfffffffffffffffffffefefefbfbfbf7f7f7f5f5f5fdfdfd000000fcfcfcffffff
+fefefe0e0e0efffffff5f5f5ffffff050505fffffffcfcfcffffff242424f8f8f8f4f4f4
+fffffffefefe000000e2e2e2ffffffececec090909f0f0f0fffffff4f4f4252525eaeaea
+ecececfcfcfc000000ffffffffffffffffff050505fffffffbfbfbf6f6f6ffffff000000
+ffffff000000fafafafffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfafafaffffff030303030303
+fefefef6f6f6fbfbfb080808010101efefeff1f1f1f5f5f50b0b0b0d0d0d000000ffffff
+ffffffdadada060606000000f7f7f7fbfbfbf7f7f7ffffff0000000a0a0affffffd4d4d4
+fffffff9f9f9fcfcfcfffffffffffff9f9f9f5f5f5f4f4f4ffffff050505fefefefdfdfd
+ffffffdbdbdb0606060e0e0e111111ededed101010101010000000fffffff3f3f3f6f6f6
+f2f2f2000000f7f7f7ffffff000000000000f3f3f3fffffff5f5f5ededed000000040404
+171717000000080808050505030303ffffffeeeeeef2f2f2111111020202efefefffffff
+f4f4f4040404030303fbfbfbf6f6f6fdfdfde9e9e9ffffffe8e8e8ecececf7f7f7ffffff
+0f0f0f000000000000fafafafcfcfcf1f1f10c0c0cfefefef4f4f40f0f0f0d0d0df8f8f8
+f4f4f40505050b0b0bf5f5f5ffffffffffff030303000000ffffffffffffffffff000000
+040404ffffffdadadaffffff010101000000ffffffe9e9e9f7f7f7090909000000fdfdfd
+fafafa0000001b1b1b000000fafafaf0f0f0fffffff2f2f2040404ffffff060606000000
+090909e7e7e7fffffff8f8f8000000f0f0f0ffffff000000000000fffffff1f1f1fafafa
+ffffff000000020202f8f8f8f5f5f5f0f0f0020202060606fffffff2f2f21a1a1a000000
+fffffff3f3f3f7f7f70a0a0a0d0d0df3f3f3ffffffe5e5e5030303000000fffffff9f9f9
+fffffffffffff4f4f4f7f7f7fffffff9f9f9e5e5e5ffffff020202000000ffffffffffff
+f1f1f1fafafaffffff040404000000fffffff3f3f3ffffff000000050505fbfbfbf0f0f0
+0e0e0e030303f9f9f9ffffff0e0e0e000000f3f3f3fafafa0a0a0a1b1b1b000000fbfbfb
+fefefeffffffefefef000000f8f8f8ffffff111111060606f6f6f6ffffff131313060606
+fffffffafafaf5f5f50000000e0e0e0808080000000505050d0d0d030303f5f5f5fafafa
+f6f6f6070707030303f7f7f7eeeeeeffffffd3d3d3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffefefefbfbfbf7f7f7f4f4f4f4f4f4141414fdfdfdf9f9f9
+ebebeb0d0d0defefefffffffffffff000000fffffff5f5f5fbfbfb000000fbfbfbfbfbfb
+ecececf8f8f8020202fdfdfdfdfdfdececec080808fdfdfdfcfcfcffffff000000ffffff
+efefefffffff0c0c0cefefeffcfcfce2e2e20b0b0bf1f1f1fcfcfcffffffedededffffff
+000000fbfbfbffffffefefefedededfffffff1f1f1ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9f7f7f7000000101010000000
+0d0d0dfcfcfc0000000b0b0b030303040404f9f9f9fafafafbfbfbfafafa070707060606
+121212000000131313f9f9f9f6f6f6fffffff8f8f80202020000001f1f1f0c0c0ce9e9e9
+fffffff3f3f3f8f8f8fffffffffffffbfbfbf7f7f7f9f9f9f2f2f20a0a0a050505141414
+1111110d0d0d000000111111fbfbfbfafafafcfcfc000000000000020202080808000000
+1010100b0b0bf2f2f2ffffff161616000000050505030303fffffffffffffcfcfc040404
+050505000000f8f8f80707070e0e0e020202fffffffdfdfd0000000f0f0f0202020c0c0c
+000000050505fffffffffffff9f9f9fbfbfbfdfdfdfefefefefefefdfdfdfbfbfbf9f9f9
+f6f6f60e0e0e0000000f0f0f0f0f0f0000000e0e0ef6f6f6fbfbfb030303000000080808
+080808000000030303fbfbfbebebeb0303030606060404040a0a0afbfbfb000000090909
+020202000000ffffff1212120000000e0e0e000000fefefe000000070707000000151515
+f6f6f6ffffff070707020202141414030303090909050505060606fafafaffffff000000
+0101011c1c1c0b0b0b0000001f1f1fffffffe9e9e90000000000000000000d0d0df6f6f6
+000000030303060606060606f8f8f8e8e8e80303030c0c0c0000000d0d0d0a0a0a060606
+f5f5f5ffffff0000000c0c0c0000000d0d0de6e6e61111110000001313130c0c0ce4e4e4
+fffffff9f9f9ebebebffffffeaeaeaffffffececec0b0b0b020202212121000000ffffff
+fbfbfbffffff0000001212120404040b0b0be5e5e51818180e0e0e070707000000ffffff
+020202131313000000f9f9f90c0c0c0f0f0f000000f7f7f7f7f7f70000000f0f0f0c0c0c
+000000000000101010101010f6f6f6fcfcfc0101010a0a0a0404040000000b0b0b0a0a0a
+edededf6f6f6fffffff6f6f6000000101010030303fbfbfb0a0a0a030303000000ffffff
+f1f1f10000000c0c0c000000171717f5f5f5fffffff6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfafafa070707000000000000f6f6f6
+0f0f0f0808080c0c0cffffff080808090909050505ffffff000000000000000000ffffff
+ffffff0000000f0f0f0d0d0dfcfcfc0000001a1a1a000000ffffff020202050505020202
+ffffff0101010808080c0c0cffffffececec101010000000080808fffffff2f2f2fbfbfb
+080808fffffff8f8f8efefeffffffffffffff1f1f1ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fffffff8f8f8efefefffffff
+e7e7e7f2f2f2ffffffeeeeeefffffffcfcfcfefefef7f7f7f7f7f7fffffffefefeffffff
+ebebebfffffff4f4f4fffffffffffffffffffafafafefefeffffffffffffd5d5d5ffffff
+fdfdfdfafafafbfbfbfcfcfce4e4e4fffffff9f9f9eeeeeeffffffe3e3e3fffffff3f3f3
+f4f4f4ffffffe5e5e5fffffff8f8f8f3f3f3fffffff9f9f9fbfbfbf4f4f4ffffffffffff
+ffffffdcdcdcffffffe3e3e3f4f4f4ffffffe6e6e6fbfbfbffffffeeeeeefffffff8f8f8
+fffffffdfdfdffffffe7e7e7f0f0f0fcfcfcfafafaf9f9f9000000000000f6f6f6eeeeee
+fffffff4f4f4ffffffedededfafafafcfcfcfefefefffffffffffffefefefcfcfcfafafa
+fefefefcfcfcfdfdfdf1f1f1f1f1f1fdfdfdfcfcfcfefefefffffff4f4f4ffffffededed
+edededfffffff4f4f4ffffffffffffefefeffbfbfbffffffdededefffffff5f5f5f6f6f6
+f4f4f4ffffffeeeeeee6e6e6fffffff5f5f5f8f8f8fbfbfbfffffff1f1f1fffffff4f4f4
+f4f4f4ffffffebebebfafafaf5f5f5f8f8f8e8e8e8fefefef7f7f7fffffff5f5f5ffffff
+fafafae9e9e9eeeeeeffffffe8e8e8fffffffffffff4f4f4fefefefffffff2f2f2ffffff
+f0f0f0e9e9e9ffffffefefefecececffffffe0e0e0fffffffefefefafafae9e9e9efefef
+ffffffe6e6e6f7f7f7f8f8f8efefeffffffffffffff8f8f8f5f5f5ffffffddddddffffff
+fffffffffffffefefee4e4e4fffffffffffff4f4f4f9f9f9fcfcfcfafafafffffffdfdfd
+ffffffefefeffffffff0f0f0e4e4e4ffffffffffffe9e9e9fffffff4f4f4fefefeffffff
+e8e8e8f5f5f5fffffff1f1f1f6f6f6f7f7f7fffffffbfbfbfbfbfbfffffff7f7f7f6f6f6
+fffffff6f6f6fdfdfdeeeeeefffffff9f9f9f5f5f5edededfffffffffffff8f8f8e6e6e6
+fffffffffffff7f7f7f5f5f5fbfbfbf5f5f5f6f6f6fafafaf7f7f7fdfdfdfefefef6f6f6
+ffffffedededffffffffffffe5e5e5fffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbffffffefefefffffffffffff
+f1f1f1eeeeeeffffffedededffffffeeeeeef8f8f8ffffffedededfafafafffffff2f2f2
+f2f2f2f6f6f6fffffff9f9f9fcfcfcf7f7f7fffffffffffff7f7f7fffffff1f1f1e7e7e7
+fffffffdfdfdedededfafafaf3f3f3ffffffecececfefefeffffffeaeaeaf9f9f9fdfdfd
+030303e1e1e1ffffffffffffe7e7e7edededf8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafafcfcfcefefeffffffffafafa
+fefefef5f5f5fffffffcfcfcf1f1f1fdfdfdf9f9f9fffffffffffffafafafefefef3f3f3
+fffffff8f8f8ffffffedededf0f0f0ffffffe4e4e4ffffffefefefefefeffafafaf1f1f1
+f9f9f9fffffffffffffcfcfcfefefefffffff4f4f4e9e9e9ecececfafafaffffffebebeb
+fffffffcfcfcfffffffffffff6f6f6fcfcfcecececfefefefffffff4f4f4ffffffffffff
+f9f9f9fffffffdfdfdf8f8f8fcfcfcfffffffafafafffffffefefeeeeeeef7f7f7fafafa
+f8f8f8efefefddddddfffffff5f5f5ffffffffffffededed0f0f0f0b0b0bf8f8f8ffffff
+f1f1f1fffffffffffffdfdfdfcfcfcfdfdfdfffffffffffffffffffffffffdfdfdfcfcfc
+f1f1f1fffffff5f5f5fffffffffffff5f5f5fffffff1f1f1f5f5f5fffffff9f9f9ffffff
+fffffff9f9f9fffffff5f5f5f6f6f6fffffffcfcfcffffffffffffebebebfffffff9f9f9
+f7f7f7fffffffffffffffffff6f6f6ffffffecececfffffffefefef5f5f5f6f6f6ffffff
+f9f9f9fbfbfbfffffff8f8f8fefefefffffff7f7f7fafafafffffffcfcfcf3f3f3ffffff
+fffffffffffff8f8f8f9f9f9fbfbfbfbfbfbf7f7f7fdfdfdedededfffffff7f7f7dfdfdf
+fffffff3f3f3fdfdfdf2f2f2eeeeeef4f4f4fefefef7f7f7fffffffffffff9f9f9ffffff
+f2f2f2fffffffefefefffffffffffff7f7f7f7f7f7fffffff3f3f3fbfbfbeeeeeeececec
+f2f2f2f7f7f7fffffffffffff7f7f7f4f4f4f5f5f5fffffffefefef8f8f8ffffffeaeaea
+f8f8f8fffffffffffffffffffffffff1f1f1f0f0f0fffffffbfbfbfcfcfcfafafaffffff
+f1f1f1fffffffffffffffffffffffffcfcfcfffffff6f6f6f6f6f6fffffffcfcfcffffff
+fcfcfcfefefef5f5f5fffffffdfdfde9e9e9fffffff1f1f1f1f1f1f4f4f4f4f4f4ffffff
+e9e9e9fffffffffffffffffff8f8f8fffffff5f5f5fffffff6f6f6fffffff8f8f8ffffff
+f0f0f0ffffffeeeeeefefefefffffff5f5f5f2f2f2f1f1f1ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfffffffdfdfdf9f9f9ffffff
+f4f4f4fffffffffffff7f7f7fefefefefefef6f6f6ffffffeeeeeefffffffffffffefefe
+fefefefdfdfdfffffff9f9f9fffffff9f9f9fffffffefefefcfcfcffffffffffffeeeeee
+fffffff2f2f2fbfbfbfcfcfcffffffeeeeeeffffffdcdcdcffffff000000ffffff000000
+f5f5f5fefefef1f1f1f8f8f8ffffffffffffffffffeeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbfffffffcfcfceeeeeef1f1f1
+f8f8f8fffffff7f7f7f8f8f8fffffff4f4f4fffffff4f4f4f4f4f4fffffff5f5f5ffffff
+ffffffe7e7e7fffffffffffff4f4f4f1f1f1ffffffebebebfffffff6f6f6fffffff8f8f8
+fefefefefefef4f4f4fcfcfcf9f9f9f0f0f0fbfbfbfffffffefefeffffffffffffffffff
+fcfcfceaeaeaffffffdcdcdcfffffffffffffffffff2f2f2fefefefcfcfcfffffff7f7f7
+e9e9e9f9f9f9edededfffffff7f7f7f0f0f0ffffffe1e1e1fffffffcfcfcffffffefefef
+fffffff9f9f9fffffff2f2f2f0f0f0f8f8f8f0f0f0090909020202000000151515131313
+e6e6e6eeeeeefffffffefefefefefefefefefffffffffffffffffffffffffefefefefefe
+fffffffafafaf9f9f9f5f5f5f5f5f5f9f9f9fafafafffffffffffff9f9f9fcfcfcf8f8f8
+f8f8f8fcfcfcf9f9f9fffffffffffff9f9f9f2f2f2eeeeeef1f1f1ffffffefefeff9f9f9
+fffffff2f2f2f4f4f4efefeffafafafffffffffffffcfcfceaeaeaffffffe8e8e8f2f2f2
+fffffffcfcfcf6f6f6f5f5f5ffffffe3e3e3fefefeffffffefefeff4f4f4ffffffefefef
+f9f9f9fbfbfbfbfbfbecececfffffff8f8f8fcfcfcfefefefffffffbfbfbfefefeffffff
+fdfdfdf9f9f9f6f6f6fffffffffffff1f1f1fdfdfdecececf7f7f7fffffff7f7f7f7f7f7
+f9f9f9fffffffafafae9e9e9f8f8f8fffffffbfbfbfafafafffffff7f7f7ffffffffffff
+fffffff0f0f0f1f1f1fdfdfdffffffffffffffffffeaeaeafbfbfbffffffdededeffffff
+fffffffffffff5f5f5f1f1f1fffffffbfbfbf6f6f6fffffff6f6f6f7f7f7f8f8f8f7f7f7
+fcfcfcf8f8f8fafafaffffffedededffffffedededffffffffffffedededffffffededed
+ebebebfefefefcfcfcf3f3f3fffffffcfcfcecececfdfdfdfffffff4f4f4fdfdfdfcfcfc
+f8f8f8fafafafffffff0f0f0f4f4f4fffffff7f7f7fcfcfcf9f9f9fafafaedededffffff
+fffffff0f0f0f7f7f7fbfbfbf3f3f3ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfcf6f6f6f9f9f9f2f2f2fbfbfb
+f9f9f9fffffff8f8f8fffffff7f7f7fffffff7f7f7fffffff4f4f4f9f9f9f3f3f3ffffff
+fffffffcfcfcf7f7f7fcfcfcfbfbfbfcfcfcf7f7f7f7f7f7fdfdfdf7f7f7fffffff9f9f9
+fcfcfcf1f1f1fefefefdfdfde5e5e5fffffff6f6f6fffffffefefe000000000000ffffff
+ffffffe9e9e9fffffffffffff0f0f0ddddddf3f3f3fdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcedededfffffff2f2f2ffffff
+fffffffffffffefefefffffff5f5f5fffffff8f8f8fffffffffffff7f7f7fffffff5f5f5
+fdfdfdfffffffdfdfdf8f8f8fdfdfde3e3e3fffffff8f8f8fcfcfcf4f4f4edededf9f9f9
+fbfbfbfdfdfdfefefefffffffffffff1f1f1fffffffdfdfdefefeff7f7f7fdfdfdf5f5f5
+fffffffefefef9f9f9fefefef7f7f7f0f0f0f6f6f6fffffff0f0f0f9f9f9fafafafbfbfb
+fffffffffffffefefefffffffffffffbfbfbfffffffffffff3f3f3f3f3f3eeeeeeffffff
+fffffff2f2f2f7f7f7fbfbfbfffffff7f7f7ffffffedededffffffffffffeaeaeaf4f4f4
+fafafafffffff1f1f1ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7f7f7fffffffbfbfbfbfbfbfffffff7f7f7fffffffdfdfdf8f8f8fffffffefefe
+fefefefffffff8f8f8fdfdfdf2f2f2fffffff7f7f7fffffffcfcfcfffffff8f8f8ffffff
+f7f7f7fcfcfcffffffffffffffffffebebebfffffff9f9f9ffffffffffffffffffffffff
+ebebebecececfdfdfdfffffffffffff9f9f9fffffffbfbfbfffffff0f0f0fffffffdfdfd
+fffffff7f7f7fffffffffffffffffff0f0f0fffffffdfdfdfffffff5f5f5fffffff1f1f1
+f1f1f1fffffffffffff5f5f5f5f5f5f6f6f6fffffffffffffffffffffffffffffffdfdfd
+fafafaeaeaeafffffffffffffdfdfdfffffff2f2f2fffffff3f3f3f8f8f8fffffff4f4f4
+f0f0f0fffffffefefefffffff6f6f6f3f3f3f2f2f2fffffffefefefefefefffffff5f5f5
+efefefecececfffffffafafaf7f7f7fffffffafafaffffffffffffffffffffffffeaeaea
+fffffff6f6f6fdfdfdf3f3f3fffffffdfdfdfffffff8f8f8f8f8f8fffffffdfdfdffffff
+fffffff9f9f9fffffffafafaebebebfefefef6f6f6fffffffafafaf7f7f7fffffff3f3f3
+fffffff3f3f3fffffffffffffffffffffffff9f9f9ebebebfffffffffffffbfbfbf1f1f1
+ffffffe7e7e7fffffffffffff1f1f1fefefefcfcfceeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefdfdfdfefefefffffffffffff4f4f4
+fffffffcfcfcfafafaf8f8f8fffffffffffff9f9f9ecececfffffffffffffdfdfdf1f1f1
+edededffffffffffffffffffebebebfffffffbfbfbfffffffbfbfbffffffffffffffffff
+f2f2f2fffffffffffffffffffffffffffffffefefefffffffffffffffffffffffff0f0f0
+f7f7f7ecececfffffff1f1f1fffffffffffffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfbfbfbefefeffffffff2f2f2
+fdfdfdffffffecececfbfbfbf8f8f8fffffff5f5f5fffffffffffff4f4f4fffffff6f6f6
+f5f5f5f3f3f3fcfcfcf0f0f0fffffffffffffbfbfbfafafaf5f5f5fffffff2f2f2ffffff
+fffffffffffffffffff1f1f1ffffffeeeeeefffffff6f6f6fcfcfcfdfdfdfffffffbfbfb
+f9f9f9fafafaebebebfffffffffffffbfbfbfffffffbfbfbfffffffffffff6f6f6ededed
+ffffffe9e9e9fafafaefefeffcfcfcf4f4f4f3f3f3fffffffffffffffffff2f2f2ffffff
+f6f6f6fffffff7f7f7f5f5f5f4f4f4fefefee7e7e7fffffffdfdfdfffffffdfdfdebebeb
+ffffffedededefefeffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7f7f7eeeeeefbfbfbfbfbfbeeeeeef7f7f7fffffffffffffcfcfcecececfcfcfc
+fcfcfcecececfcfcfcfffffffbfbfbfbfbfbf6f6f6f2f2f2fffffffbfbfbfdfdfdf6f6f6
+ffffffeaeaeafefefef5f5f5f7f7f7fffffff1f1f1f2f2f2fefefee6e6e6fcfcfcfefefe
+f8f8f8fffffffffffff5f5f5f2f2f2fdfdfdfcfcfce3e3e3fffffffffffffffffff3f3f3
+f9f9f9e9e9e9fdfdfdf2f2f2f4f4f4fcfcfcffffffe9e9e9f3f3f3fffffffffffff4f4f4
+fffffffffffff7f7f7f1f1f1fcfcfcfffffff0f0f0ffffffedededf3f3f3fffffffcfcfc
+fffffffffffff0f0f0fffffff8f8f8e4e4e4fffffff6f6f6fffffffffffffffffffcfcfc
+efefeffffffffefefefffffffffffffffffff9f9f9ffffffececece5e5e5fffffffafafa
+fffffffffffff1f1f1fffffff8f8f8e7e7e7fffffff7f7f7f2f2f2f9f9f9edededffffff
+f3f3f3f6f6f6ecececffffffffffffe9e9e9fefefefffffffffffffefefee9e9e9ffffff
+f9f9f9edededebebebfffffff8f8f8fffffffffffff1f1f1fcfcfcfffffffcfcfcf8f8f8
+fffffff9f9f9f1f1f1fffffff0f0f0f8f8f8eaeaeafffffff1f1f1fafafaebebebffffff
+fcfcfcfcfcfceaeaeaecececfffffff7f7f7fffffff6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeecececfcfcfcebebebffffff
+ebebebf9f9f9e7e7e7fffffff0f0f0f9f9f9eaeaeafffffff2f2f2fafafaeaeaeaffffff
+fffffff2f2f2f8f8f8f2f2f2ffffffedededf2f2f2eeeeeeffffffecececf9f9f9f1f1f1
+ffffffebebebf9f9f9eeeeeef5f5f5fefefef5f5f5f1f1f1fdfdfdf6f6f6e6e6e6ffffff
+fffffffefefeffffffe4e4e4f3f3f3efefeff8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefefffffffffffffdfdfdfcfcfc
+fbfbfbebebebfffffffdfdfdfffffff7f7f7fffffff9f9f9f8f8f8fffffff5f5f5ffffff
+fffffffafafafffffffcfcfcf3f3f3f5f5f5fcfcfcfffffffffffffffffff3f3f3f8f8f8
+f2f2f2fcfcfcfffffffbfbfbfffffff1f1f1f7f7f7fffffffffffff9f9f9fffffffcfcfc
+fbfbfbffffffffffffedededf8f8f8eeeeeefffffffefefeeeeeeef8f8f8ffffffffffff
+fffffff7f7f7fffffffffffffdfdfdfffffffffffff1f1f1f2f2f2f5f5f5ffffffffffff
+fbfbfbf2f2f2f9f9f9fffffffffffff2f2f2f3f3f3fefefefefefeececece2e2e2ffffff
+e7e7e7fbfbfbfffffff6f6f6fffffffffffffefefefefefefefefefefefeffffffffffff
+f2f2f2fffffffffffffefefefefefefffffffffffff2f2f2edededfffffffcfcfcffffff
+fffffffcfcfcffffffedededfffffff9f9f9fffffff0f0f0fdfdfdf6f6f6fdfdfdffffff
+fafafafffffff3f3f3fefefef5f5f5f2f2f2fffffffffffffffffffffffffffffff9f9f9
+fffffffffffff4f4f4fffffffffffff8f8f8fffffffffffffcfcfce8e8e8f6f6f6ffffff
+fffffff1f1f1fffffffffffffbfbfbe5e5e5f7f7f7fffffffbfbfbfffffff1f1f1fefefe
+f8f8f8f7f7f7efefeffffffffefefefffffff1f1f1fffffffffffffffffffffffffbfbfb
+fafafaf0f0f0fffffff6f6f6f8f8f8fffffffbfbfbf3f3f3fffffffefefef7f7f7ffffff
+fffffffafafaf6f6f6fdfdfdfffffffffffff9f9f9f6f6f6fffffffffffff7f7f7fbfbfb
+ffffffebebebfcfcfcfffffffffffffffffff7f7f7fdfdfdffffffffffffffffffededed
+fbfbfbffffffffffffeaeaeafbfbfbfffffffffffff7f7f7f7f7f7fffffffffffffbfbfb
+f3f3f3fffffffbfbfbfffffff9f9f9f5f5f5f7f7f7fffffffffffffefefef4f4f4fefefe
+fffffffffffffcfcfcfffffffffffffffffffffffff2f2f2f8f8f8fdfdfdffffffebebeb
+e9e9e9fffffffbfbfbf8f8f8ffffffe5e5e5fcfcfcffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf1f1f1
+f8f8f8ffffffffffffebebebfefefefffffffffffff1f1f1fafafafdfdfdffffffeaeaea
+f4f4f4fffffffffffff7f7f7f3f3f3fffffffffffff6f6f6e3e3e3fffffffffffffdfdfd
+ebebebfffffffffffffffffffafafafdfdfdfffffff6f6f6ffffffffffffe7e7e7efefef
+fafafaf4f4f4f5f5f5fffffffffffff7f7f7f9f9f9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefef8f8f8fffffff2f2f2ffffff
+f8f8f8fcfcfcfffffff7f7f7fdfdfdf9f9f9fffffffdfdfdfdfdfdfffffff7f7f7fafafa
+f8f8f8ffffffedededf2f2f2fffffffdfdfdfffffffefefefffffff4f4f4fefefeffffff
+fffffffafafaf5f5f5fffffff3f3f3fffffffffffffefefef5f5f5f9f9f9fffffffdfdfd
+fdfdfdf8f8f8fefefefffffffefefefffffff6f6f6fafafafffffffafafaffffffffffff
+fcfcfcfffffffafafaf7f7f7fcfcfcffffffedededfffffffafafafffffffcfcfcf8f8f8
+fdfdfdffffffedededf3f3f3fafafaffffffffffffe9e9e9ffffffedededffffffe8e8e8
+ffffffffffffeaeaeafffffffffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffff3f3f3fffffffffffffffffffffffff3f3f3fffffffdfdfdfdfdfdfcfcfcffffff
+fffffffcfcfcfdfdfdfdfdfdf7f7f7ffffffeeeeeefffffffffffff3f3f3fffffff2f2f2
+fafafafffffffcfcfcf7f7f7ffffffeeeeeefdfdfdf6f6f6f6f6f6fefefefdfdfdffffff
+fbfbfbf6f6f6fefefefefefef6f6f6fffffff9f9f9eeeeeefffffffffffffcfcfcfcfcfc
+fcfcfcfdfdfdf7f7f7f4f4f4fffffffffffffffffffffffffffffff7f7f7ffffffffffff
+fffffff3f3f3ffffffe8e8e8fffffffffffffffffff8f8f8fdfdfdfcfcfcf6f6f6ffffff
+fcfcfcfffffffffffff8f8f8fdfdfdfefefeeeeeeefffffffcfcfcfffffffefefeffffff
+fffffff6f6f6fffffffdfdfdf4f4f4fffffffbfbfbfffffffafafaecececffffffffffff
+f2f2f2fefefefffffff2f2f2f7f7f7fffffff3f3f3fffffffdfdfdfbfbfbfefefeffffff
+f6f6f6f8f8f8fdfdfdffffffffffffefefeffffffffdfdfdfdfdfdffffffefefefffffff
+fffffffafafafbfbfbfffffff6f6f6fffffff3f3f3fdfdfdfefefef1f1f1ffffffffffff
+fafafaeeeeeeffffffffffffffffffeeeeeefbfbfbfdfdfdfffffffdfdfdfffffffcfcfc
+fffffff6f6f6f8f8f8eeeeeefffffff8f8f8fffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcf8f8f8fafafaffffff
+f9f9f9fefefefffffffffffffffffff3f3f3fcfcfcfbfbfbfffffffcfcfcfffffffafafa
+fefefefbfbfbfefefefcfcfcfffffff9f9f9fcfcfcfefefefefefefffffff7f7f7ffffff
+fdfdfdfefefef2f2f2fbfbfbffffffedededfefefefffffff1f1f1fafafafffffffcfcfc
+e6e6e6f8f8f8fbfbfbfcfcfcf5f5f5f5f5f5fffffff7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefeffffffe5e5e5ffffffffffff
+f0f0f0fafafafffffffcfcfcf9f9f9fcfcfcf1f1f1fffffff5f5f5edededfffffffafafa
+fffffff2f2f2fffffff8f8f8fffffffffffff3f3f3fefefefffffff6f6f6fefefeffffff
+fafafafffffff6f6f6fffffffffffffffffffefefefffffffbfbfbfcfcfcfefefeffffff
+fdfdfdffffffe9e9e9fffffffafafaf5f5f5fffffffffffffdfdfdf8f8f8fcfcfcebebeb
+fffffffffffffffffff5f5f5f2f2f2fffffff7f7f7f5f5f5fffffff9f9f9f8f8f8ffffff
+fffffffcfcfcf9f9f9fffffffffffff8f8f8fdfdfdf8f8f8fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefef2f2f2fffffffffffff2f2f2
+fffffffdfdfdf2f2f2fffffffffffffffffffcfcfcfffffffdfdfdf6f6f6fffffff6f6f6
+fffffff4f4f4ffffffefefeffafafafdfdfdfffffff0f0f0f9f9f9fefefeeaeaeaffffff
+f6f6f6fafafafffffff7f7f7fffffffffffffefefefdfdfdfbfbfbfafafaf8f8f8f8f8f8
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdf1f1f1fffffff0f0f0eaeaea
+fffffffafafaedededf2f2f2fffffffdfdfdfffffffffffffbfbfbffffffe9e9e9fbfbfb
+f7f7f7fffffffdfdfdf6f6f6ffffffecececf8f8f8fffffff0f0f0fffffffefefef9f9f9
+fefefefffffff7f7f7ffffffeeeeeee9e9e9ffffffefefefeeeeeeffffffeaeaeaffffff
+fffffffcfcfcfffffffefefee6e6e6ffffffeeeeeefffffffffffffdfdfdfafafaffffff
+efefeff3f3f3f4f4f4ffffffffffffeaeaeaf9f9f9fffffff8f8f8fefefefffffffdfdfd
+fafafaf5f5f5fffffff3f3f3fcfcfcf4f4f4f2f2f2fffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcffffffe7e7e7fffffff1f1f1
+ffffffeaeaeafffffffffffff8f8f8f3f3f3fffffffafafafdfdfdfffffffffffff0f0f0
+fefefef0f0f0fbfbfbfffffff6f6f6fdfdfdf0f0f0fbfbfbfffffff0f0f0fffffff3f3f3
+f6f6f6ffffffefefeffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafafafafa
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafafffffffdfdfdeeeeeeffffff
+efefeffcfcfcfdfdfdfffffff0f0f0f3f3f3fcfcfce9e9e9f2f2f2edededffffffffffff
+f9f9f9ffffffe5e5e5ffffffe6e6e6fefefefffffffcfcfcf5f5f5fffffff4f4f4ececec
+fffffffffffffffffff8f8f8fefefefdfdfdebebebe4e4e4ffffffe6e6e6fafafaf7f7f7
+f0f0f0ffffffe3e3e3eaeaeafffffff6f6f6f6f6f6f8f8f8f5f5f5fffffffbfbfbdbdbdb
+fffffffffffffffffff5f5f5f8f8f8fffffffefefeeeeeeeffffffffffffe4e4e4fafafa
+fffffff3f3f3fffffff6f6f6fffffffffffff4f4f4f5f5f5fefefefefefefdfdfdfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaecececffffffdadadae7e7e7
+fffffffdfdfdf4f4f4fafafafefefee7e7e7fffffffafafafcfcfce1e1e1e8e8e8fcfcfc
+ffffffedededfbfbfbfffffffffffffffffffffffffffffffefefefafafaf6f6f6f4f4f4
+f9f9f9f9f9f9fffffffcfcfcfffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f9f9f9fcfcfcf9f9f9fbfbfbe6e6e6ffffffffffff
+fffffff7f7f7e2e2e2f5f5f5eeeeeeffffffe9e9e9fffffff0f0f0ffffffffffffefefef
+fbfbfbe8e8e8fbfbfbebebebffffffeaeaeaf8f8f8fffffffffffff8f8f8f2f2f2ffffff
+f8f8f8edededfafafafefefee5e5e5fffffff9f9f9fcfcfcfffffffffffffbfbfbfefefe
+ffffffffffffffffffe7e7e7f6f6f6fafafafffffffbfbfbfffffff8f8f8ffffffe6e6e6
+ffffffe5e5e5fdfdfdfefefee2e2e2fffffff5f5f5f6f6f6e9e9e9e1e1e1fffffff8f8f8
+fdfdfdf5f5f5f0f0f0ebebebfcfcfcfcfcfcfffffffefefefffffffffffffefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbf9f9f9f8f8f8fbfbfbf1f1f1ffffffffffff
+fffffff0f0f0f7f7f7fafafaffffffefefefeeeeeef8f8f8fffffffffffffcfcfcffffff
+fafafafefefefcfcfcf0f0f0f6f6f6eaeaeafafafaecececfbfbfbf4f4f4f1f1f1ffffff
+fffffffffffffffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f9f9f9fcfcfcf9f9f9f7f7f70606060e0e0e000000
+040404ffffff0e0e0e0b0b0b060606000000fcfcfcf8f8f8fafafaefefef0404040a0a0a
+0e0e0e0000000f0f0ffcfcfcfffffffdfdfdf1f1f10000000000000c0c0c0000001b1b1b
+000000eaeaeaffffffebebebeeeeeef8f8f8fdfdfdf6f6f6fafafa0000000202020f0f0f
+0505050000000d0d0dffffffdfdfdffffffff7f7f7efefeffbfbfbedededf1f1f1fefefe
+e5e5e5f8f8f8fffffff4f4f4fffffff0f0f0fdfdfdfffffffffffff9f9f9ddddddffffff
+0a0a0ae9e9e9fffffff3f3f3fbfbfbf4f4f4fffffffcfcfcffffffffffffffffffffffff
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbf9f9f9f8f8f8fbfbfbf9f9f9f2f2f2e4e4e4
+000000f3f3f3ffffffdfdfdff4f4f4eeeeee1212120b0b0b000000fffffff3f3f3efefef
+fdfdfde4e4e4000000080808101010fffffffffffff4f4f4efefefffffff000000000000
+f9f9f9efefefe7e7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafaf9f9f9f9f9f90e0e0e090909
+fdfdfdebebebe4e4e4030303030303ffffffebebebf7f7f70d0d0d040404050505ededed
+e8e8e8f5f5f50a0a0a0b0b0b000000f9f9f9fffffff6f6f6101010000000fcfcfc020202
+0c0c0c060606edededf1f1f1fffffffdfdfdf9f9f9ffffffffffffffffff0b0b0b000000
+fcfcfc0000000a0a0a0f0f0ffffffffcfcfcfbfbfbf5f5f5fbfbfbfffffff5f5f5fafafa
+fffffffdfdfdefefeffffffff8f8f8f0f0f0f7f7f7fcfcfccececefffffffdfdfd040404
+080808ffffffe2e2e2e3e3e3fffffff6f6f6eeeeeefffffffffffffffffffffffffefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf7f7f7ffffffffffff151515
+060606ffffffecececffffffffffff000000ffffffe4e4e4ffffff000000ffffffffffff
+ffffff000000fffffff0f0f0fbfbfb000000fafafafefefeefefef000000ffffff000000
+fffffffffffff5f5f5e7e7e7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdffffffececec181818000000
+fffffffcfcfcffffff000000000000fffffffffffffbfbfb020202010101f3f3f3ffffff
+ffffffebebebffffff000000111111ffffffe2e2e2ffffff000000020202f1f1f1ffffff
+000000000000141414ffffffefefeffffffff1f1f1ffffffeaeaeaffffff010101030303
+f8f8f8ffffff000000020202000000fffffffefefefefefef6f6f6f0f0f0f5f5f5f8f8f8
+fffffff9f9f9fefefeffffffedededffffffe6e6e6fffffffffffffdfdfddfdfdf000000
+000000ffffffffffffffffffdfdfdfffffffffffffe8e8e8fffffffffffffffffffefefe
+fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcdbdbdbffffff000000e3e3e3
+090909efefeffbfbfbdddddd000000ffffffe5e5e5fffffff4f4f4e7e7e7000000f0f0f0
+000000ffffffe2e2e2fffffff1f1f1ffffff040404f2f2f2ffffffe8e8e8f6f6f6060606
+fffffff2f2f2f3f3f3fffffffffffffffffffffffffffffffefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefef9f9f9f2f2f2000000161616
+fcfcfcedededffffff0000000c0c0cffffffffffff0000000b0b0b0f0f0ff9f9f9ededed
+f7f7f7ebebebffffff090909000000040404ffffffededed000000010101ffffffe8e8e8
+0505051b1b1b090909f4f4f4fffffffefefefafafaf9f9f9fffffffbfbfb0606060d0d0d
+f4f4f4eaeaea000000060606030303f0f0f0fefefe020202111111000000070707141414
+000000fbfbfbffffff000000101010000000ffffff000000000000ffffff0d0d0d141414
+141414000000111111fffffff8f8f8fffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefeffffffe2e2e2050505fefefe
+040404fffffff6f6f6ffffff000000f8f8f8fefefef8f8f8f6f6f6ffffff020202ffffff
+060606e7e7e7fffffff2f2f2fbfbfbffffff000000fffffff6f6f6fffffffefefe000000
+f3f3f3fffffff4f4f4fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+030303000000000000000000050505fafafaf9f9f9f0f0f0fffffffbfbfb010101000000
+f4f4f4f6f6f6ffffff060606000000ffffffececec0000000707070f0f0fe6e6e6ffffff
+edededfefefef8f8f8000000080808000000f1f1f1ffffff000000171717ffffff000000
+1e1e1e000000fcfcfcfffffffffffffbfbfbf9f9f9f3f3f3f6f6f6ffffff060606000000
+ffffff0b0b0b0a0a0a101010fbfbfbfefefeffffff000000020202fefefef5f5f5090909
+191919fffffff5f5f5eeeeee0b0b0b1d1d1d000000060606101010f8f8f8ededed0e0e0e
+090909fafafafffffff0f0f0f6f6f6fffffff9f9f9fcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefffffffdfdfdf6f6f6efefeffbfbfb040404ffffffe6e6e6
+000000ffffffe6e6e6ffffff040404ffffffedededfffffffcfcfcfafafa010101f8f8f8
+0a0a0aeeeeeefffffffdfdfde9e9e9ffffff121212dfdfdffcfcfcefefefffffff000000
+f0f0f0fffffff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000060606fdfdfdfffffff9f9f9edededeeeeee060606060606
+fffffff0f0f0fdfdfd000000000000fffffff3f3f31d1d1d070707000000fffffff2f2f2
+ffffffedededffffff000000141414131313f4f4f4f0f0f0080808000000000000101010
+000000ffffffffffffeaeaeaecececffffffeeeeeefffffffefefeeaeaea0d0d0d000000
+000000070707000000f6f6f6ffffffefefef0404040f0f0ffcfcfcf3f3f3fefefeffffff
+000000000000ffffffffffff000000000000ffffffffffff000000e6e6e6ffffff000000
+151515e6e6e6fffffffffffff8f8f8f7f7f7ffffffeeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffcfcfcf8f8f81a1a1af0f0f0f2f2f2ffffff
+000000fffffff2f2f2fbfbfb000000f4f4f4fffffffbfbfbd2d2d2ffffff1b1b1bf9f9f9
+000000ffffffebebebf2f2f2ffffffe2e2e2080808fffffffffffffdfdfddddddd030303
+ffffffe8e8e8fffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000040404fbfbfbfffffffefefefffffff7f7f7131313000000
+f7f7f7f8f8f8ffffff040404151515fefefeffffff000000030303010101fffffff2f2f2
+fffffffdfdfde3e3e3090909030303000000f4f4f4ffffff090909151515f1f1f1ffffff
+f6f6f6f4f4f4fffffff6f6f6fefefeeaeaeafffffff4f4f4ffffffffffff0000001c1c1c
+fffffff5f5f5fffffff6f6f6eeeeeefefefe030303101010fafafafffffff6f6f6f2f2f2
+0808080e0e0eefefefdddddd121212040404eaeaeae2e2e2fdfdfdffffffededed0a0a0a
+000000fefefef7f7f7eaeaeafffffff1f1f1f7f7f7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffefefefcfcfcfcfcfcfdfdfd000000030303000000020202
+0404040a0a0a121212fbfbfb0b0b0bf6f6f6fffffff4f4f4ffffffffffff000000ececec
+0c0c0ce7e7e7f7f7f7ffffffefefefffffff000000ddddddfefefee2e2e2ffffff111111
+fcfcfcfffffff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000000000f5f5f5fcfcfcfbfbfbe0e0e0ffffff101010020202
+fefefefbfbfbffffff0e0e0e040404f3f3f3e6e6e6ffffff0b0b0b060606000000ffffff
+f1f1f1fffffff9f9f9111111050505fffffff7f7f7f7f7f7030303070707fffffff0f0f0
+fcfcfcfffffffffffff6f6f6fffffff8f8f8fcfcfcfdfdfdffffffeaeaea000000010101
+f6f6f6f6f6f6f6f6f6fffffff3f3f3f8f8f8030303000000f6f6f6e8e8e8fefefeffffff
+0000000b0b0bfffffff5f5f5000000030303fffffff5f5f5ffffffffffffe9e9e90a0a0a
+000000fffffffffffffffffffffffff6f6f6fdfdfdf7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffefefefafafaf5f5f5f7f7f7fbfbfbefefeffdfdfdfefefee0e0e0
+111111f1f1f1f5f5f5fdfdfd000000ffffffddddddf9f9f9f9f9f9f2f2f2000000ffffff
+040404f5f5f5f9f9f9edededffffffeaeaea000000fffffffffffffffffff4f4f4000000
+eaeaeaf4f4f4fefefefafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000000000f5f5f5fcfcfcfbfbfbfefefeffffff000000030303
+ffffffe8e8e8f2f2f20000000c0c0cf6f6f6ffffffeeeeee000000101010000000f9f9f9
+f3f3f3ffffff090909000000fffffffafafaf1f1f1ffffff000000000000f2f2f2ffffff
+f9f9f9ffffffe0e0e0fffffff4f4f4f6f6f6fdfdfdfcfcfcefefefffffff080808000000
+f3f3f3ffffffe7e7e7f4f4f4fafafaffffffffffff1111110e0e0ef8f8f8ebebeb0e0e0e
+101010e1e1e1e8e8e8f5f5f5020202141414eaeaeaedededffffffddddddffffff000000
+010101ffffffedededfcfcfce9e9e9fafafaf5f5f5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefcfcfcfdfdfdfffffffafafaf4f4f4f5f5f5fcfcfcf9f9f9ffffffdbdbdbffffff
+000000fffffffcfcfce4e4e4ffffff000000ffffffffffffd1d1d10a0a0affffffd8d8d8
+fafafa141414fffffff7f7f7ffffff000000ffffffe4e4e4ffffffeaeaeafcfcfc191919
+fffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000040404fbfbfbfffffffefefeffffff010101161616212121
+000000fefefe1717170000000000000b0b0bebebebfffffff4f4f4ffffff000000000000
+000000000000000000fffffffcfcfcf8f8f8f2f2f2171717121212171717010101ececec
+ffffffeeeeeefffffff0f0f0fffffffbfbfbfffffff9f9f9f4f4f4000000010101121212
+000000f8f8f8fffffffbfbfbf4f4f4ffffffeeeeee030303000000171717000000000000
+161616ffffffffffff000000000000000000060606f6f6f6fffffffffffff5f5f5181818
+0b0b0b000000121212fefefefffffffffffffffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefafafafcfcfcfffffffffffff9f9f9f9f9f9fffffff5f5f5f5f5f5ffffffefefef
+000000f3f3f3f6f6f6fffffff8f8f8e8e8e8000000000000030303f6f6f6ffffffffffff
+eeeeeef1f1f10000000a0a0a000000fffffffffffffafafaf4f4f41f1f1f040404000000
+000000fffffff3f3f3f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000060606fdfdfdfffffff9f9f9f9f9f9f9f9f9ebebebf6f6f6
+fffffff0f0f0fefefefdfdfdffffffefefeffcfcfcf9f9f9ffffffe5e5e5fffffffefefe
+f2f2f2fffffff8f8f8ffffffd4d4d4f8f8f8ffffffecececf4f4f4ebebebfcfcfcffffff
+f2f2f2ffffffefefefffffffe6e6e6ffffffe9e9e9fffffffbfbfbfffffffcfcfcf5f5f5
+fffffffffffff4f4f4fffffff7f7f7fffffffffffff4f4f4f7f7f7fffffff0f0f0ffffff
+f4f4f4f9f9f9dcdcdcfcfcfcfffffffffffff3f3f3fffffff1f1f1fffffffbfbfbf9f9f9
+ffffffffffffebebebffffffe2e2e2ebebebfefefef8f8f8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff9f9f9fafafafffffffffffffafafaf7f7f7fbfbfbfdfdfdfffffff3f3f3f1f1f1
+fefefefffffff6f6f6fffffffbfbfbfffffff1f1f1ffffffecececf4f4f4fcfcfce9e9e9
+fffffff0f0f0fffffffffffffffffff9f9f9e4e4e4f9f9f9fcfcfcf5f5f5fcfcfcfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+030303000000000000000000050505fafafaf9f9f9f0f0f0fffffff4f4f4fffffff0f0f0
+f4f4f4fffffffffffffcfcfcf0f0f0fffffffefefef9f9f9fffffff7f7f7ecececf5f5f5
+f8f8f8eeeeeef2f2f2f9f9f9ffffffeeeeeef5f5f5fffffff6f6f6fffffffffffff2f2f2
+f9f9f9fffffffffffffffffffffffff5f5f5fafafafffffff3f3f3f7f7f7f1f1f1fafafa
+fffffffafafaf4f4f4fbfbfbfefefef7f7f7eaeaeafffffffcfcfcf8f8f8e0e0e0ffffff
+f2f2f2fffffffbfbfbffffffe8e8e8fffffff9f9f9f8f8f8f4f4f4fcfcfcfbfbfbeeeeee
+f2f2f2fefefef6f6f6f5f5f5fffffffcfcfcfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffafafaf9f9f9fffffffffffff6f6f6f0f0f0f1f1f1f9f9f9fffffff2f2f2fdfdfd
+fffffff0f0f0e5e5e5fffffffffffff4f4f4fdfdfdfffffff0f0f0edededfdfdfdffffff
+e0e0e0ffffffffffffe5e5e5fbfbfbf0f0f0ffffffe7e7e7fffffff7f7f7eeeeeeffffff
+dcdcdcfffffff1f1f1fafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfdfefefefefefefefefe
+fdfdfdfcfcfcfcfcfcfbfbfbfefefefcfcfcfafafafafafafcfcfcfdfdfdfcfcfcfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf7f7f7f6f6f6f6f6f6f8f8f8
+fcfcfcfffffffffffffffffffdfdfdfffffffffffffffffffffffffdfdfdfbfbfbfbfbfb
+fbfbfbf8f8f8f9f9f9fcfcfcfcfcfcf8f8f8f7f7f7fafafafffffffffffffefefefdfdfd
+fdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfbfbfbf8f8f8f6f6f6f7f7f7fafafafefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfefefeffffff
+fffffffffffffefefefefefefffffffffffffefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfafafafdfdfdfefefefbfbfb
+fcfcfcfffffffffffffdfdfdfbfbfbf9f9f9f9f9f9fafafafcfcfcfdfdfdfdfdfdfbfbfb
+fbfbfbf8f8f8fbfbfbfffffffffffffbfbfbf8f8f8fbfbfbfefefefefefefefefefdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfdfdfdfdfcfcfcfdfdfd
+fdfdfdfdfdfdfbfbfbfafafafefefefcfcfcfafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffdfdfdfdfdfd
+fefefefffffffefefefcfcfcfefefefffffffffffffefefefcfcfcfbfbfbfdfdfdfefefe
+fdfdfdfbfbfbfbfbfbfefefefefefefafafaf9f9f9fcfcfcfefefefefefefdfdfdfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffdfdfdfbfbfbfafafafafafafcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+fffffffefefefefefefdfdfdfffffffefefefdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfafafafdfdfdfefefefbfbfb
+fbfbfbfefefefffffffcfcfcf9f9f9f9f9f9f9f9f9fafafafdfdfdfefefefdfdfdfbfbfb
+fefefefbfbfbfcfcfcfffffffffffffcfcfcfbfbfbfefefefdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfefefefcfcfcfafafafbfbfb
+fefefefefefefbfbfbf8f8f8fefefefcfcfcfbfbfbfbfbfbfcfcfcfefefefdfdfdfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefcfcfc
+fcfcfcfafafaf8f8f8f6f6f6fdfdfdfdfdfdfcfcfcfbfbfbf9f9f9fbfbfbfefefeffffff
+fffffffdfdfdfefefefffffffffffffcfcfcfbfbfbfefefefcfcfcfcfcfcfdfdfdfdfdfd
+fdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+fffffffefefefdfdfdfdfdfdfefefefdfdfdfbfbfbfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfbfbfbfefefefdfdfdfafafa
+fafafafdfdfdfcfcfcf9f9f9fbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfafafaf7f7f7
+fffffffdfdfdfcfcfcfefefefefefefcfcfcfdfdfdfffffffbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffffdfdfdfafafafcfcfc
+fffffffffffffcfcfcf8f8f8fefefefcfcfcfbfbfbfbfbfbfdfdfdfefefefefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfb
+fcfcfcfbfbfbf9f9f9f7f7f7fafafafbfbfbfbfbfbfbfbfbfafafafbfbfbfefefeffffff
+fffffffefefefefefefffffffffffffcfcfcfbfbfbfefefefbfbfbfbfbfbfcfcfcfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfefefefefefefefefefefefefffffffffffffffffffefefefefefeffffffffffff
+fffffffefefefdfdfdfcfcfcfdfdfdfbfbfbf9f9f9fafafafcfcfcfefefefffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfbfbfbfefefefdfdfdfafafa
+f9f9f9fbfbfbfbfbfbf8f8f8fffffffefefefdfdfdfdfdfdfdfdfdfbfbfbf6f6f6f3f3f3
+fefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefef9f9f9f9f9f9f9f9f9fafafa
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffffefefefcfcfcfdfdfd
+fffffffffffffdfdfdfafafafefefefcfcfcfbfbfbfbfbfbfdfdfdfffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefcfcfcf6f6f6f9f9f9fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fffffffefefefefefefffffffffffffbfbfbfafafafcfcfcfafafafbfbfbfbfbfbfcfcfc
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefdfdfdfffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafa
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfcfcfcfafafaf8f8f8f8f8f8fbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfbfbfbfefefefdfdfdfafafa
+f9f9f9fbfbfbfbfbfbf8f8f8fdfdfdfcfcfcfbfbfbfcfcfcfdfdfdfcfcfcf9f9f9f6f6f6
+fafafafbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f9f9f9fafafa
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfdfefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbfefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefafafaf7f7f7f6f6f6fafafafefefefffffffffffffefefefdfdfdfefefe
+fffffffdfdfdfdfdfdfffffffffffffafafaf9f9f9fbfbfbfafafafbfbfbfcfcfcfcfcfc
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffefefefefefefdfdfdfcfcfcfffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafafafafafafafa
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfcfcfcfafafaf7f7f7f7f7f7fafafafdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfbfbfbfefefefdfdfdfafafa
+fafafafdfdfdfcfcfcf9f9f9f9f9f9f8f8f8f8f8f8f9f9f9fcfcfcfefefefefefefdfdfd
+f7f7f7fbfbfbfcfcfcfafafafafafafcfcfcfbfbfbf7f7f7fbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf8f8f8fcfcfcfffffffefefe
+fafafaf7f7f7f9f9f9fcfcfcfefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefbfbfbf7f7f7f3f3f3fafafafcfcfcfefefefefefefdfdfdfdfdfdfefefeffffff
+fffffffefefefefefefffffffffffffafafaf9f9f9fbfbfbfbfbfbfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfffffffffffffefefefefefe
+fdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafa
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfdfdfdfafafaf7f7f7f7f7f7fafafafefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfafafafdfdfdfefefefbfbfb
+fbfbfbfefefefffffffcfcfcfbfbfbf9f9f9f7f7f7f8f8f8fafafafdfdfdffffffffffff
+fafafafdfdfdfcfcfcf8f8f8f8f8f8fcfcfcfdfdfdfafafafdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf5f5f5fafafafffffffdfdfd
+f6f6f6f3f3f3f7f7f7fbfbfbfefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffcfcfcf8f8f8fefefefffffffefefefdfdfdfbfbfbfcfcfcffffffffffff
+fffffffffffffffffffffffffffffffbfbfbf9f9f9fbfbfbfcfcfcfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefefefefefefefefefefefffffffffffffefefefdfdfd
+fcfcfcfcfcfcfbfbfbfafafafefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfb
+fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfdfdfdfafafaf7f7f7f7f7f7fafafafefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfafafafdfdfdfefefefbfbfb
+fcfcfcfffffffffffffdfdfdfffffffefefef9f9f9f7f7f7f8f8f8fafafafbfbfbfbfbfb
+fdfdfdfffffffdfdfdf6f6f6f6f6f6fdfdfdfffffffdfdfdfefefefefefefefefefdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fbfbfbfffffffdfdfdfafafaf2f2f2f7f7f7fefefe
+fcfcfcfbfbfbfffffff0f0f0fdfdfdfffffff3f3f3fcfcfcfffffff0f0f0fefefeffffff
+fafafafffffffbfbfbfcfcfcfefefefefefefefefefffffffffffffcfcfcfbfbfbfafafa
+fffffff9f9f9e8e8e8ffffffffffffecececfafafaf9f9f9fbfbfbfffffff5f5f5fcfcfc
+f9f9f9e9e9e9fffffffefefeeeeeeefffffff3f3f3fafafafdfdfdffffffeaeaeaffffff
+f1f1f1fefefefafafafffffffffffff1f1f1fffffffcfcfcfcfcfcf3f3f3fefefeffffff
+fbfbfbf3f3f3fffffffffffffffffff0f0f0fffffff6f6f6fdfdfdffffffffffffefefef
+fffffff9f9f9edededffffffefefefffffffeeeeeef0f0f0fcfcfce6e6e6f8f8f8ffffff
+fdfdfdffffffefefeffcfcfcfffffff4f4f4fffffffbfbfbfcfcfceeeeeefffffff1f1f1
+ffffffe6e6e6fdfdfdfafafafcfcfcfffffffffffffefefef6f6f6fffffffffffff1f1f1
+fffffffffffffefefefcfcfcfffffffffffffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffefefef8f8f8f2f2f2f3f3f3fffffff0f0f0ffffff
+f7f7f7f0f0f0ffffffebebebf7f7f7fbfbfbdededefffffff4f4f4ebebebffffffffffff
+fcfcfcfcfcfcedededffffffe5e5e5fefefefefefefafafaf6f6f6f8f8f8f0f0f0ffffff
+f9f9f9f7f7f7f8f8f8fbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafffffffcfcfcf0f0f01010101d1d1d000000
+1010100b0b0b000000000000f6f6f6f0f0f0fefefeffffffeaeaeafffffffffffffafafa
+fffffffdfdfdfafafaf3f3f3fffffff6f6f6fefefefafafafcfcfcfefefeffffffffffff
+ddddddffffffffffff070707f1f1f1fffffff5f5f5ffffffecececfafafaffffffffffff
+fffffffdfdfdeaeaeaffffffffffff030303e7e7e7fffffffffffff7f7f7efefeffdfdfd
+fffffffffffffafafafffffffefefefffffffffffff6f6f6fefefefffffff5f5f5efefef
+fffffff4f4f4efefeffefefefafafaf7f7f7f6f6f6fffffff6f6f6f8f8f8f8f8f8ffffff
+f3f3f3f2f2f2fdfdfdffffff0101010000001515150303030c0c0c0a0a0affffffededed
+fffffff7f7f7f0f0f0ffffffeeeeeefefefefafafafffffffffffffffffffbfbfbebebeb
+f5f5f5fffffffffffff0f0f0f3f3f3e9e9e9eeeeee000000fffffffbfbfbfdfdfdffffff
+fefefefffffffffffffcfcfcfefefefffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffefefefcfcfcfbfbfbfbfbfbfffffff9f9f9fafafae7e7e7
+020202fefefeecececffffffffffffefefef0404040000000b0b0bfffffff9f9f9f7f7f7
+fffffff3f3f30000001515150f0f0ffffffff9f9f9f2f2f2fafafaffffff0000000a0a0a
+fffffff4f4f4f6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbfffffff2f2f2000000000000
+ffffffeaeaea131313000000010101f6f6f6ffffffdbdbdbfffffff2f2f2d5d5d5ffffff
+e7e7e7ffffffe6e6e6ffffffeeeeeef8f8f8ffffffedededfafafafdfdfdfcfcfce5e5e5
+ffffffffffff0000000c0c0cefefeff2f2f2f1f1f1fffffffcfcfce7e7e7ffffffeeeeee
+edededfdfdfdfffffff7f7f7010101000000ffffffeaeaead9d9d9fffffffcfcfcffffff
+f6f6f6e5e5e5f7f7f7fffffff7f7f7f5f5f5ffffffe0e0e0fffffff6f6f6efefefffffff
+f6f6f6ffffffebebebf2f2f2ffffffffffffedededfcfcfcfbfbfbffffffe8e8e8efefef
+ffffffffffffeaeaeafcfcfcffffff0a0a0a000000ffffff000000101010000000ffffff
+fdfdfde4e4e4fffffff6f6f6f6f6f6f2f2f2fefefeffffffffffffd9d9d9ffffffffffff
+edededf4f4f4edededfffffff2f2f2ffffff060606010101f9f9f9f7f7f7ffffffe9e9e9
+f9f9f9fdfdfdfffffffcfcfcfbfbfbfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffffffffffffffbfbfbfafafafefefeffffffefefeffffffffcfcfc242424
+000000fffffff5f5f5f5f5f5e6e6e6000000ffffffffffffffffff101010e9e9e9ffffff
+f9f9f9000000ffffffecececffffff000000fffffffffffff5f5f5000000ffffff000000
+fafafaffffffffffffe9e9e9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fafafafdfdfdfafafafcfcfcffffff010101171717
+f3f3f3ffffff111111070707000000ffffffe2e2e2f8f8f8fffffffffffffffffffefefe
+fcfcfcfbfbfbfcfcfcfcfcfcf6f6f6eaeaeafefefeffffffecececffffffecececfefefe
+e8e8e8ededed272727000000ffffffeaeaeafffffffefefefffffffdfdfdf5f5f5ffffff
+ffffffecececfffffff3f3f30c0c0c010101ffffffe7e7e7fbfbfbffffffebebebf3f3f3
+fffffffffffff5f5f5fdfdfdfffffff2f2f2f7f7f7f5f5f5fbfbfbfafafafffffffbfbfb
+f7f7f7e9e9e9ffffffffffffeeeeeeeeeeeef2f2f2fffffff9f9f9f7f7f7fdfdfde4e4e4
+fcfcfcf9f9f9e8e8e8fffffffdfdfd000000060606ffffffffffff000000090909000000
+fcfcfcffffffebebebdfdfdffffffff0f0f0fffffff4f4f4f3f3f3ffffffededede2e2e2
+fffffff2f2f2ffffffedededfcfcfcffffff000000181818efefeffafafaf4f4f4ffffff
+f5f5f5fbfbfbfefefefbfbfbfafafafdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfffffffffffffffffffdfdfdfbfbfbfcfcfcfefefef5f5f5f0f0f00b0b0befefef
+060606ecececfbfbfbebebeb080808ffffffedededfffffff3f3f3eaeaea000000f4f4f4
+000000fffffff3f3f3fefefee3e3e3ffffff080808fefefeffffffe0e0e0fcfcfc040404
+fdfdfdfffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fcfcfcf8f8f8f0f0f0fafafa020202050505
+f0f0f0f3f3f30b0b0b0909090d0d0df1f1f1f9f9f9f5f5f5000000040404000000050505
+010101111111f6f6f6e9e9e9fdfdfd171717000000040404111111000000030303dcdcdc
+ffffff000000070707000000000000080808f8f8f8e5e5e50b0b0b0404040000000c0c0c
+000000040404f2f2f2000000090909000000000000151515fdfdfd000000080808090909
+f3f3f30d0d0d010101fffffff9f9f90000000a0a0a101010000000000000ffffffe5e5e5
+fcfcfc1e1e1e0000000606061414140404040707070000000b0b0b070707f3f3f3ffffff
+fbfbfbfcfcfcfffffff2f2f2f6f6f6040404161616e6e6e6ffffff000000131313010101
+fbfbfbffffff111111131313040404010101181818020202f4f4f4ffffff000000141414
+000000fdfdfd0c0c0c020202ffffff0000000000000808080707070d0d0df2f2f2ebebeb
+f4f4f4fafafafefefefbfbfbf9f9f9fdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfffffffffffffefefef9f9f9f4f4f4ecececf7f7f7020202e8e8e8
+191919fffffff5f5f5f0f0f0000000ffffffe9e9e9ffffffeeeeeeffffff000000fafafa
+060606e8e8e8fffffffdfdfdfffffffbfbfb000000ffffffedededffffffffffff1a1a1a
+ebebebf5f5f5f8f8f8fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fbfbfbf6f6f6fffffff6f6f61a1a1a000000
+131313242424000000171717ffffffebebebf1f1f1ffffff090909141414ffffffffffff
+050505000000ffffffffffffe3e3e3111111141414fefefeffffff000000131313ffffff
+e8e8e8fbfbfb010101000000f8f8f8f8f8f8ffffff000000161616fbfbfbfffffff0f0f0
+ffffff040404e0e0e0fcfcfc0f0f0f121212fdfdfdfafafafffffff3f3f3191919000000
+1a1a1a0000001a1a1affffff111111000000f7f7f7ffffffffffff000000000000ffffff
+f5f5f5f9f9f9000000181818e9e9e9e5e5e5ffffff1010100a0a0a000000fffffffefefe
+f2f2f2f7f7f7fffffffefefeffffff000000111111fcfcfc030303151515000000fafafa
+ffffffefefef050505000000fcfcfcffffff0000001e1e1efffffffbfbfbffffff0b0b0b
+040404131313000000000000edededffffff0e0e0e000000fffffffffffff8f8f8ffffff
+f6f6f6fbfbfbfdfdfdfafafafbfbfbfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfcfcfcfffffffffffffffffff7f7f7f0f0f0ffffff050505fffffffafafa
+040404f7f7f7f8f8f8ffffff000000f2f2f2ffffffecececf4f4f4ffffff191919f8f8f8
+0c0c0cfffffffcfcfcffffffecececf3f3f31a1a1af6f6f6fcfcfccacacaeeeeee1a1a1a
+e4e4e4fffffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fafafaf3f3f30000001a1a1a
+fffffff5f5f5050505050505030303060606fcfcfc070707000000dfdfdffefefeffffff
+ffffff010101000000e9e9e91b1b1b000000ffffffe1e1e1fffffffefefe000000080808
+fbfbfbf8f8f8161616000000ffffffe8e8e8f2f2f2272727000000080808000000060606
+f3f3f3f7f7f7ffffffe8e8e80d0d0d000000ffffffffffffecececffffff000000020202
+efefeffdfdfd000000fbfbfbe6e6e6ffffff0000000000001818180f0f0f1c1c1cffffff
+fdfdfdf9f9f90a0a0a000000fefefeffffffecececdcdcdc0e0e0e060606f8f8f8ececec
+ffffffffffffecececfafafae8e8e80d0d0d050505080808000000000000fffffff4f4f4
+e8e8e8151515131313efefeff9f9f9ffffffffffff060606000000fbfbfbebebeb000000
+050505e1e1e1ffffff0d0d0dffffffdedede0303030a0a0ae3e3e3fbfbfbfffffff8f8f8
+f9f9f9fcfcfcfbfbfbfafafafcfcfcfffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffdfdfdfafafaf7f7f7020202e4e4e4fefefeffffff
+000000f7f7f7fffffff6f6f6111111fdfdfde6e6e6f6f6f6f7f7f7f2f2f2000000ffffff
+000000fdfdfdecececfffffffffffff4f4f40c0c0cfffffffffffffffffffefefe000000
+ffffffe4e4e4f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fefefefefefe060606222222
+edededf6f6f6ffffff000000000000020202ffffff030303000000ffffffd7d7d7fcfcfc
+f1f1f1040404171717ffffff000000101010fffffffafafafbfbfbf5f5f5181818000000
+ffffffffffff000000080808fcfcfcffffffffffffededed121212030303000000111111
+070707020202f8f8f8f7f7f7030303111111fffffff9f9f9fdfdfdf1f1f1131313060606
+fcfcfcfffffff8f8f8fcfcfc0000000a0a0a000000ffffffeaeaea010101000000f1f1f1
+fffffff2f2f2020202161616f2f2f2f1f1f1fdfdfdffffff070707000000efefefffffff
+f6f6f6fdfdfdfcfcfcf7f7f7ffffff000000010101f0f0f0fcfcfcfbfbfbfdfdfdf9f9f9
+ffffff000000040404ffffffe6e6e6fbfbfbeeeeee000000131313fffffff8f8f8020202
+080808ffffffe2e2e2fafafaedededffffff040404000000fffffff5f5f5dfdfdfffffff
+fcfcfcfcfcfcfbfbfbfafafafefefefffffffffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffffffffffffffcfcfcfbfbfbfdfdfdffffff000000131313010101000000
+020202141414040404f7f7f7000000fffffffdfdfdf7f7f7ffffffffffff020202ebebeb
+121212fdfdfdfcfcfcffffffeeeeeeffffff000000fffffff8f8f8e5e5e5ffffff000000
+e6e6e6fffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfafafaffffff000000020202
+ecececedededffffff000000131313090909f7f7f7070707020202fcfcfcfffffffefefe
+eaeaea1a1a1a000000f1f1f11212120b0b0bf7f7f7eeeeeef6f6f6ffffff000000010101
+e8e8e8f3f3f30f0f0f121212fcfcfcfefefeffffff000000f4f4f4ffffffd7d7d7080808
+0f0f0f090909fdfdfdf8f8f80c0c0c070707ecececf8f8f8f4f4f4ffffff0303030e0e0e
+fafafae0e0e0fffffffcfcfc0202021a1a1ae3e3e3f8f8f8f2f2f20c0c0c111111fbfbfb
+ffffffdddddd111111151515f2f2f2fbfbfbf6f6f6f4f4f4111111000000f4f4f4ffffff
+efefeff4f4f4fffffffefefefefefe0f0f0f000000f6f6f6f5f5f5fffffff5f5f5f8f8f8
+fbfbfb010101000000ffffffffffffe6e6e6ffffff000000000000f8f8f8ffffff000000
+050505fbfbfbfafafaf9f9f9fcfcfcfefefe010101000000fffffff8f8f8f5f5f5f8f8f8
+fcfcfcfafafaf9f9f9fafafafcfcfcfefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfefefefefefefffffff2f2f2fffffff8f8f8fefefe
+161616f7f7f7ffffffe6e6e6090909f6f6f6f2f2f2fffffffefefef2f2f2080808f7f7f7
+060606f4f4f4efefeffffffff2f2f2f9f9f9020202fffffff4f4f4ffffffebebeb060606
+fbfbfbf5f5f5fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfceeeeeeffffff101010050505
+fffffffafafa0000001c1c1c070707e8e8e8ffffffffffff060606000000ffffffe9e9e9
+1b1b1b000000fffffffefefeededed070707151515fffffff9f9f9070707000000ffffff
+ffffffffffff000000050505f1f1f1fffffff6f6f60a0a0affffffe5e5e5ffffffffffff
+080808000000ecececffffff000000000000fffffffafafaf9f9f9f9f9f9000000010101
+f9f9f9ffffffd9d9d9eeeeee0808080101011919191010100000000101010c0c0cf1f1f1
+eeeeeeffffff000000000000fefefeffffffffffff000000010101ffffffffffffd7d7d7
+fffffff0f0f0f2f2f2f3f3f3ffffff0101010a0a0afefefefffffff4f4f4fdfdfdffffff
+fafafaffffff000000000000f9f9f9ffffff0000001d1d1dfffffff4f4f4eeeeee000000
+080808fffffff8f8f8f3f3f3fffffff3f3f30f0f0f0d0d0dfbfbfbfffffff3f3f3fbfbfb
+fcfcfcfafafaf9f9f9fafafafdfdfdfefefefffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9fbfbfbfffffffffffff7f7f7
+000000fffffff4f4f4ffffffffffff000000ffffffe7e7e7f5f5f5080808f1f1f1ffffff
+f4f4f4000000ffffffeeeeeeffffff000000fcfcfcf8f8f8fafafae3e3e3ffffff000000
+fffffffefefefffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcebebeb141414000000030303
+0000001a1a1a0b0b0b060606eeeeeefffffffbfbfbf0f0f0070707040404040404060606
+0202020e0e0eeaeaeaffffffffffff0000001212120000000e0e0e000000020202f7f7f7
+fdfdfdfdfdfd0404041a1a1a080808000000ffffff191919000000161616121212000000
+000000ffffffffffffffffff0000001e1e1e0000000d0d0dffffff0000001d1d1d0f0f0f
+000000ecececfffffffefefe080808020202000000000000ffffff010101000000222222
+fffffff2f2f20e0e0e060606000000000000000000151515eeeeeeffffffdcdcdcffffff
+fefefee9e9e9fffffffcfcfc000000111111080808060606f1f1f1fffffff5f5f5f8f8f8
+fdfdfdeeeeee050505131313000000080808141414000000ffffffe9e9e9080808151515
+0a0a0a000000ffffffefefeff0f0f0ffffff010101000000101010000000eeeeeeffffff
+fcfcfcfbfbfbfafafafafafafdfdfdfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbf7f7f7f4f4f4fffffff8f8f8f9f9f9eaeaea
+212121f7f7f7f0f0f0fffffffcfcfcededed0404040f0f0f000000fffffff9f9f9f2f2f2
+fffffffbfbfb000000070707020202f1f1f1fffffff3f3f3ffffff0a0a0a0c0c0c010101
+000000fffffffcfcfcf8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcffffffd5d5d5ffffffffffff
+fdfdfdd4d4d4ffffffedededfffffffcfcfcf9f9f9ffffffe8e8e8ffffffe2e2e2ffffff
+f9f9f9f3f3f3ffffffdbdbdbffffffffffffe9e9e9fdfdfdf5f5f5ffffffcfcfcfffffff
+e0e0e0fffffffdfdfde1e1e1fffffff9f9f9efefefffffffffffffe2e2e2ffffffffffff
+fffffffbfbfbe4e4e4f9f9f9ffffffedededffffffeaeaeaf8f8f8ffffffe1e1e1fcfcfc
+f4f4f4fefefef6f6f6fffffff0f0f0fefefefffffffcfcfcefefeffafafafffffff4f4f4
+f7f7f7ededed0000000f0f0fe1e1e1fffffffdfdfdfafafaeeeeeeffffffffffffdedede
+fcfcfcffffffe9e9e9f6f6f6ecececf3f3f3fbfbfbfffffff3f3f3eeeeeef5f5f5ffffff
+ffffffffffffe0e0e0fffffff4f4f4dadadafffffff6f6f6f6f6f6f7f7f7f3f3f3f1f1f1
+f7f7f7e3e3e3f9f9f9ffffffffffffdededeffffffffffffe9e9e9fffffff5f5f5f0f0f0
+fdfdfdfbfbfbfafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf9f9f9f7f7f7f4f4f4f3f3f3ffffffffffff
+cfcfcff9f9f9f9f9f9ebebebfffffff7f7f7eaeaeaf9f9f9ffffffedededfefefeededed
+fffffff8f8f8eeeeeefffffffffffffbfbfbf7f7f7efefeff7f7f7e5e5e5edededffffff
+fffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfce5e5e5f8f8f8fffffff6f6f6
+f1f1f1fffffff5f5f5fffffff9f9f9f6f6f6f7f7f7e0e0e0fffffffffffff2f2f2ffffff
+fffffffcfcfcfefefeffffffebebebf3f3f3fffffffffffffefefefafafaf3f3f3dfdfdf
+fdfdfdfffffff0f0f0ffffffeaeaeafffffff2f2f2fbfbfbe6e6e6fffffff6f6f6f5f5f5
+ebebebfefefefdfdfdfcfcfcf5f5f5fdfdfdf6f6f6ffffffddddddfffffffbfbfbf9f9f9
+fffffff6f6f6dbdbdbfefefefcfcfcf2f2f2f0f0f0fffffff4f4f4ffffffedededffffff
+fffffffefefe000000121212fcfcfceeeeeeffffffeeeeeef0f0f0edededebebebffffff
+fdfdfde6e6e6f6f6f6ffffffffffffffffffeeeeeef8f8f8ebebebfffffffdfdfde8e8e8
+ffffffefefeffafafad8d8d8ffffffffffffefefeff3f3f3f6f6f6fffffffffffff5f5f5
+fcfcfcffffffdadadaf6f6f6e8e8e8f7f7f7fffffffbfbfbfffffffefefee8e8e8ffffff
+fdfdfdfcfcfcfafafafbfbfbfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefffffffffffffffffff1f1f1e0e0e0
+ffffffedededfefefeffffffebebebf6f6f6ffffffe0e0e0f4f4f4f4f4f4fffffffcfcfc
+e7e7e7f4f4f4ffffffeaeaeaf2f2f2fffffffffffffffffff6f6f6fffffffbfbfbe4e4e4
+eeeeeeffffffe2e2e2fbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffffdfdfdedededffffff
+e7e7e7ffffffedededfafafafffffffffffffffffffffffff1f1f1e4e4e4f7f7f7f2f2f2
+f4f4f4e4e4e4fafafafefefefafafaf8f8f8fefefef7f7f7fafafaf7f7f7ffffffe4e4e4
+fafafaffffffedededf1f1f1f7f7f7fafafafffffffafafafffffffefefef4f4f4fafafa
+edededf3f3f3fffffffffffffffffff9f9f9e8e8e8fffffffdfdfde4e4e4f9f9f9fdfdfd
+f2f2f2f0f0f0fffffff9f9f9fbfbfbfffffffefefee1e1e1fcfcfcdadadafbfbfbf4f4f4
+f3f3f30202020000000000000d0d0d0e0e0ee2e2e2ffffffffffffffffffd9d9d9f8f8f8
+f0f0f0fffffffbfbfbfffffff1f1f1f7f7f7ffffffe0e0e0ffffffdadadaf2f2f2ffffff
+e6e6e6fffffff1f1f1f6f6f6fffffff5f5f5fffffff5f5f5ffffffffffffddddddffffff
+eeeeeedededefdfdfdfffffffffffffffffff4f4f4edededfffffff3f3f3edededf4f4f4
+fefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfefefeffffffffffffffffffe1e1e1f5f5f5ffffffe5e5e5
+ffffffffffffe0e0e0f6f6f6fffffff9f9f9f4f4f4f5f5f5fffffffbfbfbdadadaf6f6f6
+ffffffffffffe5e5e5e9e9e9ffffffe7e7e7efefeff7f7f7f3f3f3ffffffffffffffffff
+fffffffafafafffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf2f2f2ffffffeeeeeeffffff
+ffffffecececeeeeeefffffffefefee3e3e3e9e9e9f9f9f9f6f6f6fffffff6f6f6f2f2f2
+fffffffffffffffffffffffff6f6f6f5f5f5fffffff6f6f6f3f3f3fbfbfbf1f1f1ffffff
+f7f7f7f0f0f0fefefefffffffffffff8f8f8fffffffdfdfdffffffecececfffffffcfcfc
+ffffffffffffe5e5e5edededfffffffffffffafafafffffff2f2f2fffffffcfcfcfefefe
+ffffffebebebf6f6f6f3f3f3ffffffe3e3e3fffffff8f8f8f5f5f5ffffffecececf9f9f9
+fefefefffffffdfdfdfffffff3f3f3fffffffefefeefefefedededefefeff9f9f9ffffff
+eeeeeeffffffd9d9d9f5f5f5f5f5f5fffffff4f4f4f0f0f0fdfdfdfffffff1f1f1fcfcfc
+f5f5f5f7f7f7f1f1f1fcfcfcffffffffffffedededfffffffffffff8f8f8fefefefefefe
+f8f8f8fffffffbfbfbd5d5d5fdfdfde8e8e8fffffffefefefffffff4f4f4fffffff6f6f6
+fefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffefefefefefefefefefdfdfdfbfbfbfffffffffffff4f4f4
+f0f0f0fffffff7f7f7fffffff1f1f1eeeeeefbfbfbffffffe9e9e9ffffffffffffffffff
+e2e2e2efefeff3f3f3fffffffefefef6f6f6fffffff3f3f3ffffffdfdfdffbfbfbffffff
+e9e9e9ffffffe8e8e8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffff5f5f5fffffffbfbfb
+e7e7e7fffffff5f5f5fdfdfddbdbdbfffffff8f8f8f6f6f6fbfbfbfafafaf3f3f3ffffff
+fefefeeeeeeef4f4f4f6f6f6ffffffe6e6e6fcfcfcfbfbfbfffffffafafafafafaffffff
+ecececefefeffffffff8f8f8fafafafefefef5f5f5f8f8f8fffffffefefefffffff5f5f5
+edededffffffedededfffffffbfbfbf4f4f4fffffff4f4f4fefefefefefefafafaffffff
+fbfbfbf4f4f4fdfdfdfdfdfdffffffeeeeeedbdbdbffffffffffffefefeffafafaf3f3f3
+fbfbfbfcfcfcfafafae7e7e7f9f9f9fffffff8f8f8fffffff7f7f7f6f6f6fffffff3f3f3
+fefefef6f6f6fffffffefefeffffffdfdfdffafafafffffff1f1f1efefefffffffececec
+ffffffebebebfffffffafafaf0f0f0fffffffffffff7f7f7fffffff6f6f6f9f9f9f4f4f4
+ffffffe9e9e9f1f1f1fffffffdfdfdfafafaf9f9f9e3e3e3ffffffeaeaeaf5f5f5f5f5f5
+fefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffffffffffffffdfdfdfafafaf8f8f8fffffff5f5f5e3e3e3ffffff
+f3f3f3e1e1e1ffffffe8e8e8fafafafffffffbfbfbf9f9f9ffffffefefeff1f1f1f9f9f9
+fffffffffffff8f8f8fbfbfbf9f9f9fbfbfbebebebfdfdfde7e7e7fffffff8f8f8fbfbfb
+f7f7f7fefefef9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf8f8f8fffffff1f1f1f7f7f7
+fffffffbfbfbe2e2e2ffffffffffffe4e4e4f7f7f7fffffff5f5f5f2f2f2f9f9f9f7f7f7
+f3f3f3fafafafafafafcfcfcfbfbfbfffffff9f9f9fffffffffffffcfcfcf9f9f9fcfcfc
+fffffffffffffdfdfdf9f9f9fafafafafafafafafafafafafafafafbfbfbfdfdfdfdfdfd
+f6f6f6f7f7f7fafafafdfdfdfefefefefefefcfcfcfbfbfbfafafaeeeeeeefefefffffff
+fffffffcfcfcffffffebebebfffffffffffffdfdfdfffffff1f1f1ffffffecececffffff
+ecececf5f5f5fbfbfbf8f8f8f7f7f7fbfbfbfcfcfcfafafafafafaf6f6f6fcfcfcffffff
+f9f9f9fafafafbfbfbf4f4f4fffffffbfbfbfefefefffffffbfbfbfbfbfbfbfbfbf3f3f3
+fffffff3f3f3fffffff6f6f6fafafafefefefefefefffffff2f2f2f5f5f5f8f8f8fcfcfc
+fefefefffffffffffffefefefbfbfbfafafafafafafafafafafafafbfbfbfcfcfcfdfdfd
+f8f8f8f8f8f8fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffffffffbfbfbfcfcfcfffffff9f9f9f3f3f3ffffffefefef
+fafafafffffff7f7f7f3f3f3fffffff7f7f7fffffffffffffdfdfdfdfdfdefefeffafafa
+fffffff7f7f7fbfbfbffffffe9e9e9fffffffefefefafafafffffffefefefdfdfddddddd
+fffffff7f7f7fefefefdfdfdfdfdfdfdfdfdfefefefffffffffffffffffffefefefefefe
+fffffffefefefcfcfcfdfdfdfffffffffffffefefefbfbfbffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff2f2f2f7f7f7fffffffdfdfdf5f5f5fffffffbfbfb
+fdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf5f5f5f6f6f6fefefef6f6f6
+efefeff9f9f9ffffffefefeff8f8f8fffffff8f8f8fdfdfdfefefefffffffefefeeaeaea
+ffffffe6e6e6fffffffafafaf4f4f4fafafaf5f5f5fffffffffffffcfcfcfafafafbfbfb
+fefefefffffffdfdfdfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fbfbfbfcfcfcfdfdfdfefefefdfdfdfcfcfcfbfbfbfafafaf4f4f4fffffff6f6f6e7e7e7
+f4f4f4fefefefefefefefefeffffffe6e6e6ebebebfafafaf2f2f2fffffffffffff5f5f5
+f9f9f9fffffffffffffffffffefefefffffffffffffefefefffffffcfcfcffffffffffff
+fdfdfdfdfdfdfffffff9f9f9fffffff9f9f9fdfdfdfffffffbfbfbfcfcfcfefefef6f6f6
+fcfcfcfffffff3f3f3f0f0f0fffffffdfdfdf4f4f4fbfbfbfdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefe
+fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffefefefafafafafafafffffffffffff8f8f8dededeffffff
+fffffff1f1f1fafafafffffff4f4f4fffffff2f2f2ffffffffffffecececffffffdddddd
+f9f9f9f3f3f3e0e0e0fffffff7f7f7fdfdfdfffffff6f6f6f0f0f0f9f9f9ffffffffffff
+efefefffffffedededfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffefefeffffffffffff
+fffffffffffffffffffffffffcfcfcf8f8f8ffffffedededfffffff8f8f8fffffffbfbfb
+fcfcfcfffffffffffffbfbfbfcfcfcfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfefefefafafafefefeffffffffffffefefef
+fffffff8f8f8fbfbfbfffffff9f9f9ffffffe5e5e5fffffffafafae8e8e8e9e9e9ffffff
+f1f1f1eaeaeafefefefffffff5f5f5eeeeeeffffffdadadafefefefdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefefafafafafafaf9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfc
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfde9e9e9fbfbfbffffff
+fffffffcfcfcfbfbfbf4f4f4f6f6f6fffffffcfcfcf9f9f9fffffff9f9f9f6f6f6ffffff
+fffffffffffffffffffdfdfdfdfdfdfffffffefefefafafafffffffbfbfbffffffffffff
+f9f9f9fbfbfbfefefef8f8f8fefefef8f8f8fcfcfcfffffffbfbfbfdfdfdfffffff8f8f8
+f8f8f8f5f5f5fbfbfbffffffebebebf2f2f2fffffffefefefbfbfbfcfcfcfdfdfdfefefe
+fefefefdfdfdfbfbfbfafafafdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf8f8f8f8f8f8fcfcfcf6f6f6fbfbfbffffffe2e2e2
+f2f2f2f9f9f9fffffff1f1f1f9f9f9fffffff5f5f5f0f0f0eaeaeafffffff0f0f0ffffff
+fbfbfbffffffffffffe0e0e0fffffffcfcfcf6f6f6fcfcfcfcfcfcfffffff6f6f6fcfcfc
+f1f1f1e6e6e6fffffff6f6f6fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafaf9f9f9
+fcfcfcfdfdfdfdfdfdfcfcfcf9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfefefeffffff
+fffffffffffffefefefefefef9f9f9ffffffdadadaffffffffffffecececf8f8f8fefefe
+fcfcfcfefefefefefefbfbfbfcfcfcfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9fffffff2f2f2fffffffafafa
+fafafaeeeeeefffffff7f7f7f6f6f6ecececedededfffffffffffffffffffefefef3f3f3
+fbfbfbdfdfdffefefee9e9e9ffffffffffffd9d9d9fffffffefefefefefefdfdfdfafafa
+f9f9f9fafafafdfdfdfffffff9f9f9f8f8f8f8f8f8f7f7f7f7f7f7f8f8f8f9f9f9f9f9f9
+fafafafafafafafafafafafafcfcfcfdfdfdffffffffffffe9e9e9ffffffefefefececec
+f5f5f5fffffff8f8f8fffffffffffff6f6f6f1f1f1fffffffefefef6f6f6fefefee9e9e9
+fffffffdfdfdfafafaf9f9f9fbfbfbfcfcfcfafafaf7f7f7fffffffafafafdfdfdfefefe
+f7f7f7f8f8f8fcfcfcf7f7f7fffffff8f8f8fbfbfbfefefefafafafdfdfdfffffff8f8f8
+ffffffedededf6f6f6fdfdfde0e0e0fffffff5f5f5f9f9f9f5f5f5f6f6f6f8f8f8f9f9f9
+f9f9f9f9f9f9f9f9f9f8f8f8fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffcfcfcf7f7f7f7f7f7fbfbfbf4f4f4ffffffe2e2e2ffffff
+f1f1f1fbfbfbfffffffffffffefefee9e9e9ffffffe8e8e8ffffffffffffe7e7e7fafafa
+ffffffebebebe9e9e9fbfbfbdcdcdcfefefeffffffecececf6f6f6f1f1f1fffffff0f0f0
+fffffffcfcfcfffffffafafaf9f9f9f9f9f9f9f9f9fafafaf9f9f9f9f9f9f8f8f8f7f7f7
+f8f8f8fbfbfbfcfcfcfbfbfbf7f7f7f5f5f5f7f7f7f9f9f9f8f8f8fafafafdfdfdfefefe
+fefefefdfdfdfdfdfdfdfdfde2e2e2f7f7f7ffffffd9d9d9f8f8f8f9f9f9f2f2f2ffffff
+fbfbfbfefefefdfdfdfbfbfbfbfbfbfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fcfcfcf8f8f8e0e0e0fffffff8f8f8f2f2f2
+ffffffffffffeaeaeaf8f8f8fffffff0f0f0fefefef2f2f2fefefef9f9f9f0f0f0ffffff
+fffffffffffff9f9f9fbfbfbf3f3f3030303181818f5f5f5fdfdfdfdfdfdfcfcfcfafafa
+f8f8f8f9f9f9fdfdfdfffffffdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfc
+f8f8f8f8f8f8f8f8f8f9f9f9fafafafbfbfbfdfdfdfefefeffffffdfdfdffffffff4f4f4
+ffffffebebebeaeaeaf2f2f2eeeeeefffffff9f9f9fffffffffffffafafaf7f7f7ffffff
+fffffffdfdfdfafafafbfbfbfefefefffffffdfdfdfbfbfbfffffffcfcfcffffffffffff
+f9f9f9fbfbfbfffffffafafafffffffafafafcfcfcfefefef9f9f9fbfbfbfefefef7f7f7
+f2f2f2fcfcfcfefefef4f4f4fffffff1f1f10a0a0a040404fafafafafafafbfbfbfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefdfdfdfdfdfdfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffcfcfcf7f7f7f7f7f7fbfbfbffffffefefeffffffff8f8f8
+f8f8f8ffffffe7e7e7fbfbfbfffffff7f7f7f0f0f0fffffff2f2f2f9f9f9fffffff1f1f1
+f1f1f1ffffffe1e1e1ffffffffffffdadadafffffffffffffcfcfcfdfdfdeaeaeaffffff
+e7e7e7f6f6f6ffffffeaeaeafefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfb
+f5f5f5f9f9f9fdfdfdfefefefdfdfdfefefefffffffffffff7f7f7fafafafdfdfdfefefe
+fcfcfcfbfbfbfcfcfcfdfdfdfffffff1f1f1000000f8f8f8ffffffffffffe3e3e3eaeaea
+fafafafdfdfdfdfdfdfafafafbfbfbfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fbfbfbf7f7f7fffffffdfdfdd9d9d9ffffff
+ecececffffffeaeaeafffffff8f8f8f1f1f1fffffff7f7f7e9e9e9ffffffffffffe2e2e2
+eaeaeaf8f8f8f8f8f8f6f6f6060606000000121212fefefefdfdfdfcfcfcfbfbfbfafafa
+fafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfafafafafafafafafafbfbfbfbfbfb
+fafafafafafafafafaf9f9f9f9f9f9f9f9f9f8f8f8f8f8f8f8f8f8ededede7e7e7ffffff
+fffffffffffffffffff1f1f1fffffff7f7f7fffffff4f4f4f9f9f9f6f6f6eeeeeef6f6f6
+fefefefbfbfbfafafafdfdfdfffffffdfdfdfcfcfcfefefefefefef8f8f8fcfcfcfefefe
+f8f8f8fafafafefefef8f8f8fffffffbfbfbfcfcfcfefefef8f8f8fbfbfbfefefef7f7f7
+fffffff5f5f5fafafae9e9e9ffffffffffff000000000000fffffffffffffefefefdfdfd
+fdfdfdfcfcfcfbfbfbfbfbfbfefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf8f8f8f8f8f8fcfcfcedededf3f3f3fffffff6f6f6
+e5e5e5f6f6f6edededfffffff8f8f8eeeeeefefefee6e6e6ffffffe8e8e8e1e1e1f8f8f8
+f1f1f1fbfbfbe9e9e9f3f3f3fefefeffffffedededf8f8f8fefefefffffffbfbfbe8e8e8
+fffffffffffff3f3f3f8f8f8fefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfafafa
+fdfdfdfefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfcfcfcf9f9f9fcfcfcfefefefdfdfd
+fafafaf8f8f8fbfbfbfefefef8f8f8f9f9f9000000f4f4f4f9f9f9ffffffffffffffffff
+f9f9f9fcfcfcfcfcfcfafafafbfbfbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000020202f8f8f8fbfbfbf7f7f7ebebebeeeeeeffffffffffff
+0000000000000000000000000a0a0afdfdfdf8f8f8edededffffffffffffd1d1d1ffffff
+fffffffffffff4f4f4e7e7e7ffffff020202000000f0f0f0fdfdfdfbfbfbf9f9f9fafafa
+fcfcfcfefefefcfcfcf9f9f9fbfbfbfbfbfbfafafaf9f9f9f8f8f8f8f8f8f9f9f9f9f9f9
+f9f9f9fafafafbfbfbfcfcfcfbfbfbfafafaf9f9f9f7f7f7ffffffd8d8d8ffffff000000
+1212120000000000000707070000000e0e0edcdcdcfffffffffffff0f0f0fffffff2f2f2
+fafafaf8f8f8fafafafefefefdfdfdf8f8f8f7f7f7fcfcfcf9f9f9f5f5f5fbfbfbfefefe
+f8f8f8fafafafdfdfdf7f7f7fffffff9f9f9fbfbfbfdfdfdf8f8f8fcfcfcfffffffafafa
+fefefee6e6e6ffffffffffffe8e8e8fafafa0e0e0e050505fdfdfdfdfdfdfcfcfcfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffefefefafafafafafaffffff030303252525000000f6f6f6
+fffffffafafafdfdfdfbfbfbffffff0101010404040a0a0afefefeffffffffffffffffff
+fffffff4f4f4fffffffdfdfd0000000000000c0c0c121212000000000000fffffff7f7f7
+edededf3f3f3fbfbfbfffffffbfbfbfbfbfbfbfbfbfbfbfbfafafaf9f9f9f8f8f8f7f7f7
+fffffffffffffcfcfcfafafaf9f9f9f7f7f7f5f5f5f3f3f3fdfdfdfffffffffffffcfcfc
+f7f7f7f6f6f6fafafaffffffedededfafafa151515fffffff1f1f1dcdcdcefefeff6f6f6
+f8f8f8fbfbfbfbfbfbf9f9f9fafafaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000020202f8f8f8fbfbfbf6f6f6fffffff8f8f8131313000000
+060606fffffff5f5f5ffffff000000030303000000efefeffbfbfbf7f7f7fffffff3f3f3
+fdfdfdedededffffffe0e0e0ffffff000000000000fffffffefefefafafaf7f7f7fafafa
+fefefefffffffbfbfbf7f7f7fffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfdfdfd
+f6f6f6f7f7f7fafafafdfdfdfefefefefefefcfcfcfbfbfbf9f9f9fffffff1f1f1ffffff
+000000000000ffffffffffff0f0f0f0404041a1a1a000000fcfcfcffffffd4d4d4ffffff
+fbfbfbfbfbfbfefefefffffffffffff7f7f7f7f7f7fcfcfcfcfcfcf8f8f8ffffffffffff
+fefefefffffffffffffcfcfcfefefef7f7f7f9f9f9fcfcfcf9f9f9fdfdfdfffffffdfdfd
+fdfdfdfbfbfbf8f8f8fffffff5f5f5fafafa060606010101fbfbfbfbfbfbfbfbfbfcfcfc
+fdfdfdfffffffffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffffffffbfbfbfcfcfcffffffeeeeee040404000000131313
+e7e7e7fcfcfcf5f5f5ffffffffffff000000161616ffffffeaeaeaeaeaeafffffffefefe
+fbfbfbfdfdfdeaeaeafdfdfdffffff161616f7f7f7fafafafffffff3f3f3080808000000
+f8f8f8fcfcfcfefefef0f0f0fefefefefefefefefefefefefdfdfdfbfbfbfafafaf9f9f9
+fafafaf8f8f8f7f7f7fafafafffffffffffffffffffefefefffffffffffffffffffbfbfb
+f6f6f6f5f5f5fafafafffffffafafaffffffedededeaeaeafffffff7f7f7fffffffbfbfb
+f8f8f8fbfbfbfbfbfbf9f9f9fafafaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fdfdfdf9f9f9fefefedfdfdf0a0a0a000000
+f9f9f9fdfdfdebebebfafafaffffff000000020202fffffff0f0f0f5f5f5fffffff7f7f7
+fffffff7f7f7fdfdfdf3f3f3f1f1f1050505121212efefeffbfbfbf8f8f8ebebebfdfdfd
+f9f9f9f6f6f6f6f6f6fffffffefefef5f5f5f7f7f7efefeffffffff5f5f5fefefeffffff
+ffffffe7e7e7ffffffe7e7e7fffffff1f1f1f2f2f2f6f6f6fdfdfdefefefd4d4d4ffffff
+000000010101fffffff9f9f9fcfcfc0000000c0c0c161616eeeeeef1f1f1ffffffdcdcdc
+f8f8f8ffffffeeeeeeffffffffffffe9e9e9ffffffd0d0d0fffffffffffff4f4f4fbfbfb
+fefefefafafaf2f2f2ffffffffffffe3e3e3fcfcfcfffffff5f5f5fffffff9f9f9f5f5f5
+ffffffe7e7e7fcfcfcf4f4f4f5f5f5dcdcdcffffffeaeaeaf7f7f7fafafaffffffffffff
+f1f1f1ffffffddddddfcfcfcffffffeaeaeaffffffebebebf0f0f0fffffffffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbffffff000000ffffff020202
+fffffffdfdfdecececffffff080808f6f6f6212121e5e5e5e0e0e0fffffffcfcfcf3f3f3
+f1f1f1f6f6f6f6f6f6f6f6f6f0f0f0050505ffffffedededfefefefefefee9e9e9040404
+010101fffffffafafafffffff8f8f8fefefefffffff8f8f8f2f2f2f9f9f9edededffffff
+f6f6f6fbfbfbffffffebebebfffffff6f6f6f9f9f9f7f7f7fcfcfcf7f7f7fffffffefefe
+fefefefffffffbfbfbedededfdfdfdeaeaeaf5f5f5fffffffdfdfdfafafaecececffffff
+ffffffffffffe0e0e0f8f8f8f7f7f7f3f3f3fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbdedede1a1a1a090909090909
+fafafafffffffbfbfbf5f5f5eaeaea111111050505000000ffffff0a0a0a010101000000
+f3f3f3070707010101fffffffdfdfd0f0f0f000000000000181818000000131313181818
+e4e4e4fefefedfdfdff7f7f70000000b0b0b0000000a0a0a010101f9f9f9ebebeb000000
+111111000000f5f5f5000000020202fffffffffffff6f6f6f1f1f1fffffffffffff8f8f8
+0e0e0e050505e9e9e9fffffff4f4f4f7f7f7000000090909121212fffffff1f1f1070707
+000000101010171717000000171717fefefefdfdfd1717170b0b0b000000141414020202
+0000000202021919190000000c0c0c070707fafafae2e2e2fbfbfb0000000404040e0e0e
+0202020d0d0dffffffe3e3e3fafafa0e0e0e000000131313ffffffececec000000030303
+040404070707080808151515040404000000ffffffd7d7d7fffffff5f5f5e8e8e8ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefefefefffffffffffffefefefefefef0f0f01d1d1dfafafa000000
+f3f3f3fffffffafafaf2f2f2010101f2f2f2000000fafafa1212120000000a0a0affffff
+f2f2f21d1d1d050505f4f4f4ffffff000000fbfbfbf1f1f1fefefef2f2f2fefefeffffff
+000000eaeaeafffffff2f2f2080808090909000000ebebebfffffff2f2f20b0b0b080808
+0909091212120e0e0e161616000000060606010101030303ffffffeeeeeee8e8e81e1e1e
+000000000000f4f4f4ffffffffffff000000101010f8f8f8e6e6e61515150c0c0c000000
+0000000000000a0a0afffffffcfcfcfffffff6f6f6fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fcfcfcf8f8f8ffffff0303030000000a0a0a
+eeeeeef9f9f9f5f5f5eeeeeefcfcfc0e0e0e000000161616eeeeeeededed0e0e0e0d0d0d
+0000000a0a0a000000eeeeeefafafa0101010e0e0efffffff4f4f4ffffff010101101010
+010101fffffff0f0f00a0a0a000000e8e8e8fffffff6f6f6000000080808fffffffbfbfb
+0000000606060707072e2e2e000000edededf9f9f9fafafaf5f5f5fefefed6d6d6fafafa
+090909070707f7f7f7ffffffffffffffffff010101030303040404f9f9f9f6f6f6000000
+010101fafafaf9f9f91111110b0b0bf3f3f3ebebebffffff030303000000f0f0f0fbfbfb
+191919050505f3f3f3ffffff000000131313e9e9e9ffffff0f0f0f040404ffffffe4e4e4
+fdfdfd000000030303f5f5f5ffffffffffff0e0e0e0e0e0efdfdfdf8f8f8ffffff030303
+000000f1f1f1fafafaf2f2f2000000272727eaeaeafffffffcfcfcffffffffffffebebeb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefefefefffffffefefefefefefdfdfde4e4e4080808ffffff030303
+1d1d1de5e5e5eeeeeeffffff000000ffffff000000fbfbfbffffff000000fbfbfbf8f8f8
+ffffff000000fffffff2f2f2e6e6e6131313f3f3f3fffffffcfcfcf7f7f7ffffffdddddd
+000000fcfcfcffffff000000f1f1f1f9f9f9ffffff000000ffffffedededeeeeee080808
+f7f7f7e8e8e8e5e5e5000000fffffffdfdfdf9f9f90b0b0bebebebffffff0b0b0b000000
+fffffff6f6f6121212fdfdfdfbfbfbf4f4f40c0c0cffffffd5d5d5ffffff000000ffffff
+fffffff5f5f5030303fffffff3f3f3fffffff7f7f7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101010101000000000000010101f6f6f6f8f8f8f4f4f4f6f6f6050505000000131313
+ffffffe8e8e8fbfbfbfffffffafafa040404121212020202fbfbfbffffff000000000000
+ebebebffffff040404f3f3f3f4f4f4101010010101f7f7f7fefefef2f2f2ffffff000000
+000000ffffff0000000e0e0effffffebebebdfdfdffdfdfd0b0b0b0a0a0aeaeaeaf9f9f9
+020202000000fffffff9f9f9060606fffffffefefeebebebfffffffffffff8f8f8fdfdfd
+040404010101f2f2f2ffffffe1e1e1f9f9f9000000000000080808e5e5e51a1a1a030303
+fffffff3f3f3f2f2f2ffffff000000000000fffffffefefe0000001a1a1affffffffffff
+000000040404e2e2e2f8f8f8121212000000fdfdfdf6f6f6f4f4f4e7e7e7000000191919
+0000000b0b0b101010e2e2e2efefefffffff000000010101fefefefdfdfde4e4e4020202
+080808ffffffe0e0e0ffffff000000080808fafafaf6f6f6f2f2f2fffffffffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbfafafaf9f9f9ffffff040404f2f2f2fdfdfd
+000000fdfdfde1e1e1111111efefefe7e7e7010101eaeaeaf4f4f40c0c0c101010e8e8e8
+ffffff000000fffffffcfcfcf1f1f1000000fffffff5f5f5f6f6f6fbfbfbd6d6d6ffffff
+000000efefef1a1a1af7f7f7ffffffe6e6e6ffffffffffff000000ffffffffffff000000
+fffffffefefeffffff121212f1f1f1fdfdfdffffff000000f7f7f7fefefef3f3f3f3f3f3
+ffffff000000131313e8e8e8fffffff5f5f5000000f6f6f6ffffffe9e9e9090909f3f3f3
+ddddddffffff000000e9e9e9fdfdfdf7f7f7fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fcfcfcf8f8f8fcfcfc0303031b1b1b000000
+f9f9f9fbfbfbffffffdededeffffff000000040404010101fafafafefefe111111111111
+ffffffddddddfcfcfcfffffffcfcfc0606061d1d1df8f8f8e4e4e4fefefef1f1f1000000
+101010ffffff000000080808000000161616020202010101131313000000fffffff6f6f6
+060606040404f8f8f8fffffff4f4f4f4f4f4f1f1f1ffffffdfdfdfe2e2e2ffffffd2d2d2
+070707151515f2f2f2f4f4f4fffffff8f8f80202020f0f0f1c1c1cf6f6f6000000080808
+f2f2f2fffffffcfcfcf2f2f2090909060606efefefededed070707000000fefefef8f8f8
+0a0a0a010101fffffff6f6f6020202040404ffffffffffff0000000a0a0a070707e9e9e9
+fafafa030303000000fffffff2f2f2f3f3f3151515030303dadadaffffffefefef0d0d0d
+010101f4f4f4f8f8f8fafafa141414000000fffffffffffffdfdfdf5f5f5efefefffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbf9f9f9f8f8f8fbfbfb000000fcfcfcf2f2f2
+0a0a0a040404ffffff060606f8f8f8ffffff030303ffffffe4e4e4ebebeb1b1b1bffffff
+000000fbfbfbfffffff4f4f4f5f5f5111111fdfdfdf4f4f4fefefef8f8f8ffffffe3e3e3
+0c0c0cffffff000000ffffffffffffeeeeeef5f5f5fbfbfb121212ebebebe1e1e1080808
+f2f2f2fcfcfce1e1e1111111ffffffffffffe2e2e21b1b1bfcfcfcf4f4f4ffffff020202
+000000fafafa000000ffffffefefeff5f5f5010101f9f9f9e3e3e3ebebeb151515f9f9f9
+fffffff3f3f3000000ffffffe4e4e4fffffff6f6f6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000070707fefefeffffffffffffffffffededed030303111111
+090909ffffffe9e9e9ffffffffffff0c0c0c060606fbfbfbfefefef5f5f5000000000000
+f2f2f2f9f9f9fffffffdfdfdf2f2f20b0b0b000000fefefefbfbfbfffffffcfcfc000000
+060606ececec0f0f0f000000fffffff0f0f0ffffffe4e4e4fdfdfdffffffe7e7e7f5f5f5
+0e0e0e121212e5e5e5edededffffffefefeffffffffffffffffffff3f3f3f4f4f4ffffff
+000000000000fffffff2f2f2f8f8f80000000c0c0c090909e3e3e3f4f4f4040404000000
+fffffffcfcfcf9f9f9fefefe070707000000ffffffffffff060606181818f7f7f7fcfcfc
+040404131313f3f3f3fdfdfd050505000000f3f3f3f3f3f3000000050505fffffff5f5f5
+eeeeee0f0f0f0d0d0de7e7e7eaeaeafefefe0b0b0b030303ffffffd4d4d4ffffff020202
+010101f4f4f4fffffff7f7f70303030a0a0aeaeaeaffffffecececfffffffffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfbfbfbf1f1f1181818f5f5f5fefefe
+ffffff000000171717edededfcfcfceeeeee151515f4f4f4fffffff8f8f8000000fbfbfb
+080808fffffff6f6f6f6f6f6f8f8f8000000ffffffe6e6e6e4e4e4f2f2f2ffffff030303
+000000ffffff000000f1f1f1f2f2f2fffffff2f2f2ededed000000ffffffededed0b0b0b
+f2f2f2ffffffffffff000000fffffffbfbfbf6f6f6040404ffffffeeeeee000000ffffff
+fffffffbfbfb0b0b0befefefffffffe2e2e21a1a1af7f7f7ffffffffffff000000f4f4f4
+fdfdfdf7f7f7000000f8f8f8ffffffe7e7e7fffffff4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffcfcfcdcdcdcffffff0202020c0c0c
+000000e2e2e2fffffff3f3f30000000c0c0cf9f9f9f7f7f7ffffffffffff000000202020
+fffffffcfcfcf4f4f4f6f6f6ffffff151515000000ffffffffffffe9e9e9000000181818
+e8e8e8ffffff131313000000000000fefefedededeffffffededed000000fefefeffffff
+020202000000fffffff8f8f8d9d9d9fffffffbfbfbe5e5e5f1f1f1f7f7f7edededf7f7f7
+030303020202fbfbfbf9f9f90d0d0d101010181818000000ffffffffffffeaeaea151515
+000000ffffffe6e6e6090909040404dcdcdcf3f3f3ffffff000000000000ffffffe7e7e7
+101010000000fffffff8f8f80c0c0c000000fffffff0f0f01616160000000000000e0e0e
+040404010101111111f7f7f7ffffffffffff0000001a1a1af3f3f3fffffff8f8f8030303
+000000ffffffdbdbdbfdfdfd050505040404edededfefefef9f9f9fffffff5f5f5fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaececec2b2b2bffffffeaeaea
+fefefe202020000000fffffffefefeededed040404ffffffd8d8d8ffffffffffff070707
+fafafaffffffe1e1e1fffffffefefe111111f2f2f2ffffffffffffffffff0000001b1b1b
+ffffffffffffffffff010101fefefee3e3e3ffffff000000fffffff5f5f5fefefe000000
+ffffffe7e7e7f6f6f6121212f1f1f1f4f4f4ffffff000000fffffffbfbfb000000fbfbfb
+f7f7f7060606010101ffffffe0e0e0ffffff000000f9f9f9dbdbdbe8e8e8191919fafafa
+e9e9e9ffffff0b0b0beeeeeee7e7e7ffffffe0e0e0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000010101f5f5f5f7f7f7f3f3f3f9f9f9fffffff4f4f4ffffff
+050505020202000000080808060606f8f8f8f5f5f5fcfcfcf6f6f6000000191919000000
+000000fffffff2f2f2f9f9f9ffffff0000000000000000000000000f0f0f191919f4f4f4
+fffffff1f1f1e5e5e50f0f0f0505050d0d0d0d0d0d0303030000000f0f0ff1f1f1000000
+0a0a0a0606060f0f0ff2f2f2fffffffbfbfbecececfffffffdfdfdefefeff8f8f8090909
+1010100000000b0b0b000000070707090909e2e2e2ffffffe8e8e8fbfbfbfbfbfb050505
+060606010101050505010101000000ffffffe0e0e00000000a0a0a030303000000fbfbfb
+050505080808020202f1f1f1010101060606000000f4f4f40707070e0e0e010101010101
+fefefe0909090000000c0c0cefefef0101011515150000000e0e0eefefef0101010b0b0b
+080808000000ffffff020202080808020202040404ffffffefefeffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefcfcfcf9f9f9f7f7f7f6f6f6151515000000040404eeeeee
+ffffff0000001a1a1ae1e1e1ffffff030303050505000000fffffffefefefdfdfd000000
+fefefef1f1f1fffffff7f7f7000000030303000000090909000000303030f7f7f7f3f3f3
+f9f9f9f3f3f3f2f2f2ffffff040404060606000000ffffffe0e0e0f9f9f9111111030303
+000000ffffff0101010000000a0a0affffff000000070707000000edededffffff010101
+020202f7f7f7191919000000ffffff030303000000000000ffffff121212000000080808
+fdfdfd0606060000000c0c0cfbfbfbfefefefefefef5f5f5ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefefafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffefefefdfdfdf8f8f8fbfbfbfcfcfcfafafa
+fbfbfbfffffffffffffdfdfdf7f7f7f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefeffffff
+f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfbfbfbfafafaf9f9f9f9f9f9fcfcfcfffffffefefefbfbfbf8f8f8f8f8f8f9f9f9
+fdfdfdfcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcfdfdfdfafafafafafafafafafafafa
+fafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f3f3f3fafafafffffffffffffefefefbfbfbfbfbfbfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfefefeffffffffffff
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffedededf7f7f7ffffffffffff
+f8f8f8f4f4f4fbfbfbfffffffafafafafafaf0f0f0fffffff2f2f2f9f9f9ffffff0a0a0a
+f0f0f0fcfcfcfffffffefefef8f8f8f9f9f9fdfdfdfdfdfdf6f6f6f3f3f3f5f5f5fcfcfc
+fffffffafafaf3f3f3f0f0f0fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefefefefefdfdfdfcfcfc
+fafafaf7f7f7f5f5f5f4f4f4fcfcfcfafafaf8f8f8f8f8f8fafafafbfbfbfafafaf9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafafafafbfbfbfbfbfbfbfbfbfafafaf9f9f9f8f8f8fbfbfbfefefefefefefbfbfb
+fcfcfcfffffffffffffdfdfdfafafafafafafbfbfbfcfcfcfdfdfdffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefdfdfd
+fdfdfdfbfbfbfafafaf9f9f9fafafafdfdfdfffffffffffffcfcfcfafafafbfbfbfcfcfc
+fffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfefefefffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f6f6f6fbfbfbfffffffffffffefefefbfbfbfcfcfcfefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfbfbfbfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fafafafefefefefefe
+fbfbfbf9f9f9fafafafcfcfcfffffffafafafafafaffffff020202ffffff000000eeeeee
+fafafafefefefdfdfdf9f9f9f8f8f8fcfcfcfdfdfdfafafafbfbfbf6f6f6f5f5f5fafafa
+fefefefbfbfbf8f8f8f7f7f7fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf7f7f7f8f8f8fafafafcfcfc
+fdfdfdfefefefffffffffffffefefefcfcfcfafafafafafafcfcfcfdfdfdfcfcfcfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfffffffffffffffffffcfcfc
+fcfcfcfffffffffffffcfcfcfefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfcfcfcfafafafafafafbfbfbfdfdfdfffffffffffffefefefdfdfdfefefeffffff
+fffffffffffffefefefdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafdfdfdfffffffffffffefefefcfcfcfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefbfbfbfdfdfd
+fffffffffffffafafaf5f5f5f8f8f8f5f5f5ffffffe5e5e5090909000000eaeaeaffffff
+fffffffffffff8f8f8f5f5f5fafafafffffffdfdfdf6f6f6fffffff9f9f9f5f5f5f9f9f9
+fdfdfdfdfdfdfdfdfdfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+fffffffffffffefefefefefefffffffefefefcfcfcfcfcfcfefefefffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffbfbfb
+fbfbfbfffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfcfcfcfbfbfbfafafafafafafbfbfbfdfdfdfefefefefefefefefeffffffffffff
+fffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffefefefcfcfcfbfbfb
+f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfdfdfdfefefefffffffdfdfdfefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfefefe
+fffffffffffffbfbfbf5f5f5fefefefffffffcfcfcfcfcfcf5f5f5fffffffefefed7d7d7
+fffffffdfdfdf8f8f8f7f7f7fcfcfcfffffffdfdfdf8f8f8fffffff9f9f9f5f5f5f9f9f9
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfbfbfbfafafafffffffefefefcfcfcfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfdfdfdfcfcfcf8f8f8
+f9f9f9fefefefffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffefefe
+fefefefcfcfcfbfbfbfafafafafafafafafafafafafbfbfbfdfdfdffffffffffffffffff
+fffffffffffffefefefefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffefefefcfcfcfbfbfb
+fefefefefefefdfdfdfbfbfbfafafaf8f8f8f7f7f7f7f7f7fcfcfcfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfafafafbfbfbeeeeeeffffffe9e9e9f9f9f9ffffffddddddffffff
+fbfbfbfafafafbfbfbfdfdfdfffffffefefefcfcfcfcfcfcfcfcfcf7f7f7f5f5f5fafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfcfcfcfdfdfdfefefe
+fffffffffffffefefefefefefefefefdfdfdfbfbfbfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfafafafcfcfcfafafaf7f7f7
+f8f8f8fefefefffffffffffffefefefefefefefefefefefefefefefefefefdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfbfbfbfbfbfbfcfcfcfafafaf9f9f9fafafafdfdfdffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefefefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafaf9f9f9fcfcfcfcfcfcfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfefefeffffffffffff
+fffffffefefefdfdfdfefefef2f2f2fffffffefefef1f1f1ffffffe6e6e6ecececffffff
+f7f7f7f9f9f9fefefefffffffffffffbfbfbfcfcfcfffffffbfbfbf6f6f6f6f6f6fcfcfc
+fffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefffffffefefe
+fdfdfdfcfcfcfbfbfbfafafafdfdfdfbfbfbfafafafbfbfbfdfdfdfffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfefefefcfcfcf8f8f8
+f9f9f9fefefefffffffffffffefefefefefefefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfffffffcfcfcfafafafbfbfbfefefeffffffffffffffffff
+fefefefefefefefefefffffffffffffefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefffffffefefefdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefefefefefefeffffffffffff
+f6f6f6f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefefffffffbfbfbfbfbfbfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffdfdfdfbfbfbf6f6f6fbfbfbfffffffefefef2f2f2ffffffffffffebebeb
+fcfcfcfbfbfbfdfdfdfffffffefefefafafafbfbfbfffffffdfdfdf8f8f8f6f6f6fbfbfb
+fffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fdfdfdfafafaf8f8f8f7f7f7fdfdfdfbfbfbfafafafbfbfbfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfffffffffffffffffff9f9f9
+f9f9f9fefefefffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfffffffefefefcfcfcfcfcfcffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffefefefdfdfdfbfbfbffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefeffffffffffff
+fefefefdfdfdfcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9fafafafbfbfbfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
+fffffffffffffbfbfbf7f7f7fffffff7f7f7fcfcfcf8f8f8ededede4e4e4fffffff2f2f2
+fffffffdfdfdfbfbfbfdfdfdfdfdfdf9f9f9fafafafffffffffffffafafaf7f7f7fbfbfb
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafbfbfbfcfcfcfefefe
+fffffffffffffffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffcfcfcfffffff7f7f7fffffff7f7f7
+fafafaffffffdededeffffffffffffefefeff6f6f6fffffff3f3f3ffffffffffffffffff
+fffffff2f2f2f9f9f9fffffffafafaf7f7f7ffffffedededf0f0f0fcfcfcffffffd3d3d3
+ffffffffffffeeeeeefffffffffffffffffffffffffafafafffffff5f5f5ffffffffffff
+ffffffefefeffdfdfdf8f8f8f4f4f4fffffffffffff7f7f7f8f8f8fcfcfcfffffffbfbfb
+fffffffffffffafafaf9f9f9fefefee8e8e8fffffff0f0f0f8f8f8fffffffffffffdfdfd
+fffffffffffff5f5f5fffffffffffffdfdfdfffffffafafafffffffdfdfdffffffffffff
+f0f0f0fffffffcfcfcffffffffffffedededfdfdfdfffffff5f5f5ebebebffffffededed
+fffffffdfdfdf9f9f9fffffffffffffbfbfbfffffffefefefffffffefefefdfdfdfefefe
+fffffffffffffffffffdfdfdfdfdfdfffffffdfdfdf5f5f5ffffffeeeeeef4f4f4ececec
+fdfdfdfdfdfdf6f6f6fdfdfdf5f5f5fcfcfcf7f7f7f8f8f8fffffff6f6f6efefeffdfdfd
+fffffffbfbfbfffffff9f9f9fffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffffffff9f9f9fafafaffffffffffff
+f1f1f1fffffffffffff1f1f1f1f1f1fffffff7f7f7fcfcfcffffffffffffecececfefefe
+e1e1e1ffffffe5e5e5fafafafffffff9f9f9fffffffbfbfbf1f1f1fffffff1f1f1f5f5f5
+f9f9f9fffffffefefef7f7f7f3f3f3fffffffdfdfdfbfbfbfefefefffffff8f8f8ffffff
+f0f0f0fffffffafafaeeeeeefffffff7f7f7f4f4f4fffffffffffff5f5f5f7f7f7ffffff
+f9f9f9f7f7f7fffffff2f2f2ffffffefefeffafafaffffffeaeaeaf6f6f6ffffffffffff
+f0f0f0ffffffecececfbfbfbfffffffbfbfbfffffff3f3f3f8f8f8fdfdfdffffffffffff
+fcfcfcf9f9f9fcfcfcffffffffffffefefeff4f4f4fffffff3f3f3fffffffffffffdfdfd
+fffffffffffff2f2f2fdfdfdfefefef7f7f7ffffffefefeffffffffffffff2f2f2ececec
+fafafaffffffedededfcfcfcfffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffff5f5f5e2e2e2ededed
+f1f1f1fbfbfbffffffffffffefefeffffffffffffff1f1f1fefefee6e6e6fffffff0f0f0
+fffffff0f0f0fffffff8f8f8f9f9f9f5f5f5fdfdfdf3f3f3ffffffe6e6e6f4f4f40f0f0f
+0b0b0bf5f5f5fffffffefefefefefeedededfffffff1f1f1fffffffffffff7f7f7f9f9f9
+fffffffffffffdfdfdfffffff8f8f8f3f3f3f0f0f0fdfdfdfffffffffffffafafaffffff
+ffffffe9e9e90000000f0f0fffffffd4d4d4f8f8f8fffffffffffffcfcfcfbfbfbf2f2f2
+fbfbfbf8f8f8fdfdfdf1f1f1fefefefbfbfbfdfdfdfffffff3f3f3fffffff4f4f4ebebeb
+fffffffefefefffffffdfdfdfffffffbfbfbfffffffffffffdfdfdfffffff6f6f6ffffff
+fffffffbfbfbefefeffffffff9f9f9fffffff1f1f1f9f9f9fcfcfcf6f6f6f7f7f7ffffff
+f5f5f5fffffffffffffcfcfcfbfbfbf6f6f6fffffff9f9f9fffffffffffffbfbfbfdfdfd
+ffffffefefefffffffe8e8e8090909030303ffffffffffffeeeeeefefefefbfbfbf8f8f8
+e4e4e4fffffff7f7f7fcfcfcfefefefefefefefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffefefefffffff6f6f6ffffffffffff
+eeeeeeefefeff9f9f9fffffff8f8f8fffffff4f4f4fffffffffffffffffff2f2f2ffffff
+fefefef5f5f5efefefffffffe7e7e7e5e5e5f4f4f4fbfbfbfffffff3f3f3212121f6f6f6
+ffffffe4e4e4fbfbfbfffffffffffff1f1f1fffffffdfdfdfffffff3f3f3ffffffefefef
+ffffffeaeaeafffffffffffff7f7f7f3f3f3fffffffdfdfdf0f0f0f8f8f8ffffffffffff
+fefefef0f0f0f5f5f5fafafae3e3e3191919000000fcfcfcfafafaffffffebebebfafafa
+fffffff0f0f0fffffffbfbfbefefefe2e2e2f4f4f4fffffffefefef9f9f9ebebebf8f8f8
+fffffffcfcfcf1f1f1fafafaf5f5f5ffffffffffffe5e5e5f2f2f2fafafafffffffefefe
+fdfdfdf3f3f3fcfcfcffffffe9e9e9fafafaf4f4f4fffffffbfbfbe0e0e0fcfcfcffffff
+f6f6f6ecececfcfcfcfffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbfffffff7f7f7ffffffffffff
+e3e3e3f2f2f2fffffff0f0f0ffffffdededeffffffecececffffffffffffe7e7e7ffffff
+f8f8f8f1f1f1eeeeeeffffffeeeeeeffffffefefefffffffececec151515121212000000
+000000f6f6f6edededf6f6f6fffffffffffffbfbfbf6f6f6ffffffe7e7e7fafafaffffff
+f5f5f5f3f3f3e9e9e9fefefeffffffffffffebebebfffffff1f1f1fafafafbfbfbf9f9f9
+f8f8f8ffffff0d0d0d070707eeeeeeffffffffffffeaeaeaf8f8f8fbfbfbfdfdfdffffff
+f5f5f5f1f1f1fffffff2f2f2fffffffcfcfcf1f1f1fafafaffffffffffffefefefffffff
+efefeff2f2f2fcfcfcf5f5f5f3f3f3fefefef3f3f3fafafafffffffefefef1f1f1ffffff
+edededffffffffffffeeeeeef1f1f1f8f8f8fffffffffffff2f2f2fffffffafafaf7f7f7
+fcfcfcf9f9f9e4e4e4ffffffffffffffffffedededfafafaf7f7f7f3f3f3fffffff0f0f0
+ffffffe9e9e9fffffff0f0f0070707000000f5f5f5ecececffffffefefeffffffffefefe
+fffffffbfbfbecececfffffffbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefee5e5e51d1d1d000000040404
+fffffff3f3f3fffffff0f0f0fcfcfcffffffffffffdcdcdcfdfdfdfefefeffffffd9d9d9
+f5f5f5eeeeeeffffffffffffebebebfffffffffffff8f8f8fefefeefefef0d0d0df5f5f5
+f2f2f2ffffffe7e7e7fefefefffffff5f5f5ffffffedededffffffffffffecececffffff
+eeeeee0000000000000909090606060c0c0cfefefeffffffffffffe9e9e9f4f4f4f1f1f1
+fbfbfbf2f2f2fffffffffffffcfcfcffffff0f0f0ffffffff7f7f7ecececfffffff9f9f9
+fffffff8f8f8f1f1f1ffffffffffffffffffe6e6e6fffffffffffffffffffffffff9f9f9
+e7e7e7f1f1f1fffffffffffffcfcfcebebebfffffffffffff6f6f6ffffffc9c9c9ffffff
+f9f9f9fffffff4f4f4fffffffdfdfdfafafaffffffe5e5e5fffffffdfdfd0c0c0c060606
+000000ffffffffffffe4e4e4fffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafaf7f7f7000000000000000000
+010101fffffff9f9f9f9f9f9020202000000101010fbfbfbe6e6e6fefefefffffffefefe
+fffffff6f6f6ffffffeaeaeaffffffe3e3e3f0f0f0efefeff1f1f1ffffffe3e3e3080808
+010101fffffffffffffafafafefefeffffffebebebf0f0f0fffffffcfcfcf6f6f6ffffff
+f5f5f5efefefffffffefefeffafafafffffff3f3f3f4f4f4ffffffe6e6e6f1f1f1ffffff
+eeeeeefcfcfc0f0f0f080808ffffffdbdbdbf7f7f7fffffff1f1f1fbfbfbf8f8f8e4e4e4
+fffffffdfdfdfdfdfdefefeff8f8f8fbfbfbf7f7f7ffffffededed0000000b0b0b000000
+0c0c0c0e0e0e0202021b1b1bffffffe7e7e7fffffffafafafffffffefefefcfcfcefefef
+ffffffedededf5f5f5efefeffefefeffffffe8e8e8ffffffffffffe5e5e5e7e7e7f0f0f0
+f9f9f9ffffffffffffe5e5e5fcfcfceaeaeafffffffffffffbfbfbfffffff3f3f3f8f8f8
+f4f4f4ffffffe5e5e5fdfdfd010101181818e7e7e7fffffff6f6f6fffffffffffff0f0f0
+efefefefefeff5f5f5fffffff9f9f9f9f9f9fafafafbfbfbfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdf8f8f8000000f6f6f6f3f3f3
+f7f7f7edededf1f1f1fffffff9f9f9f1f1f1f2f2f2fffffff5f5f5f4f4f4f6f6f6ffffff
+ffffffffffffe8e8e8f3f3f3f0f0f0ffffffe1e1e1fffffff4f4f4f9f9f9000000ffffff
+ffffffe3e3e3fbfbfbfefefef9f9f9f2f2f2e9e9e9ffffffeaeaeaf6f6f6f0f0f0ffffff
+101010ecececfffffffffffffffffff4f4f4000000f3f3f3fcfcfcf8f8f8f5f5f5ffffff
+f8f8f8ffffffeeeeeeddddddf4f4f4eaeaea1f1f1fe4e4e4fffffff2f2f2f9f9f9fcfcfc
+f6f6f6f8f8f8f7f7f7eeeeeef9f9f9edededfffffff7f7f7e3e3e3fbfbfbefefeff8f8f8
+fffffffefefefcfcfceeeeeefffffffffffff6f6f6e7e7e7ffffffeaeaeaf7f7f7efefef
+ffffffe3e3e3f2f2f2f1f1f1fffffff7f7f7fbfbfbfffffff6f6f6e0e0e0ffffffdedede
+050505ffffffebebebfffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f9f9f9fdfdfdf9f9f9f9f9f9fefefe191919090909
+080808f5f5f5f2f2f2fbfbfbf2f2f2080808f3f3f3f5f5f5fffffff2f2f2eeeeeeeeeeee
+e7e7e7fffffff2f2f2ffffffedededffffffffffffffffffffffffd1d1d1ffffff000000
+030303e8e8e8f8f8f8fafafaf6f6f6e8e8e8fffffff9f9f9d9d9d9f8f8f8e6e6e6eaeaea
+ffffffeaeaeafefefefbfbfbffffffe4e4e4fffffffefefefbfbfbfffffffffffffdfdfd
+f4f4f4ffffff0a0a0a000000ebebebffffffecececedededfffffffbfbfbf9f9f9ffffff
+f3f3f3f3f3f3f1f1f1fffffffafafafffffffefefef4f4f4fffffff3f3f3060606161616
+ffffffececec2b2b2b000000000000161616e8e8e8ebebebf4f4f4dfdfdfffffffd6d6d6
+e7e7e7fffffffafafaffffffe7e7e7fffffff5f5f5f4f4f4fffffff7f7f7fffffff7f7f7
+ffffffefefeffffffff8f8f8fafafafffffff3f3f3f9f9f9ededede0e0e0ffffffffffff
+fdfdfdf5f5f5ffffffffffff000000000000fcfcfcfcfcfcf5f5f5ffffffe0e0e0ffffff
+fbfbfbfffffff7f7f7f0f0f0f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefdfdfdfcfcfcfcfcfcffffff030303ffffffffffff
+edededfdfdfdffffffe9e9e9ffffffeeeeeef0f0f0f3f3f3fffffff5f5f5f9f9f9efefef
+f9f9f9f2f2f2fefefefffffffffffff5f5f5ffffffe8e8e8ffffffe4e4e4fffffff8f8f8
+eeeeeeffffffffffffeeeeeeffffffffffffebebebf6f6f6eaeaeaffffffffffff000000
+fffffffffffffdfdfdefefefe5e5e5f3f3f3ffffff030303efefeff0f0f0ffffffececec
+f9f9f9d4d4d4fbfbfbfffffff1f1f1fcfcfc000000fffffff1f1f1fefefeedededfafafa
+ffffffecececfffffff5f5f5fcfcfcf7f7f7ffffffd6d6d6ffffffebebebf6f6f6f6f6f6
+fbfbfbf8f8f8e3e3e3ffffffffffffd7d7d7f9f9f9fffffffffffffffffff0f0f0ffffff
+f7f7f7ffffffffffffefefefffffffececec000000f2f2f2fbfbfbfdfdfdf7f7f7ffffff
+0c0c0cf5f5f5f4f4f4efefeffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f8f8f8fcfcfcf8f8f8ebebebffffff0000000e0e0e
+0000000c0c0cffffffebebebffffff030303fffffff4f4f4fffffff9f9f9fffffff9f9f9
+f1f1f1f8f8f8f0f0f0f5f5f5fefefefefefefafafaddddddf4f4f4ffffffededed0c0c0c
+070707fffffffefefefafafaf7f7f7fdfdfdf2f2f2fafafafffffffbfbfbfffffff5f5f5
+fafafaebebebf8f8f8f3f3f3ffffffeeeeeeffffffe0e0e0e5e5e5fffffffdfdfdebebeb
+ffffffe6e6e6fffffffffffffcfcfce3e3e3f8f8f8fffffff4f4f4ffffffebebebe7e7e7
+ffffffedededffffffffffffe5e5e5f3f3f3fffffffcfcfcf3f3f3f6f6f60a0a0a0b0b0b
+e7e7e7efefefffffff070707141414000000fffffffffffffffffffffffff6f6f6ffffff
+ffffffe2e2e2fafafaf2f2f2fefefefffffffcfcfcfdfdfdf8f8f8f1f1f1ffffffededed
+ffffffedededfcfcfcf5f5f5eeeeeeffffffffffffecececfffffffffffffffffff6f6f6
+e6e6e6fffffff7f7f7f1f1f1fffffffffffff5f5f5ebebebf7f7f7f6f6f6fbfbfbf4f4f4
+f6f6f6efefeffffffff3f3f3f8f8f8f9f9f9fafafafbfbfbfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefdfdfdfbfbfbfbfbfbf8f8f8000000f2f2f2dfdfdf
+ffffffe9e9e9fdfdfdfdfdfdfafafaf5f5f5ffffffeaeaeafffffff3f3f3fefefef3f3f3
+f7f7f7fffffff1f1f1fffffffcfcfcf7f7f7efefeff2f2f2f6f6f6fffffff5f5f5ffffff
+f9f9f9ededede9e9e9ffffffe8e8e8f2f2f2ffffffe9e9e9f5f5f5ffffff000000ffffff
+fbfbfbffffff000000060606111111000000dbdbdbf6f6f6090909fffffffbfbfbe8e8e8
+fefefeffffffe8e8e8fcfcfcffffffffffff191919efefeffffffff9f9f9efefeffefefe
+f9f9f9f6f6f6fbfbfbe5e5e5ffffffffffffe8e8e8fffffffffffff6f6f6ffffffffffff
+f6f6f6fefefefffffff1f1f1c8c8c8ffffffffffffeaeaeaffffffefefefe5e5e5f6f6f6
+fafafaffffffefefeff5f5f5f7f7f7fcfcfc141414fffffffefefef6f6f6ffffffe4e4e4
+1b1b1bf2f2f2fffffffefefefffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f8f8f8fbfbfbf7f7f7ffffffe6e6e6080808fbfbfb
+1a1a1a020202101010fdfdfdf5f5f5171717fbfbfbf6f6f6f7f7f7050505010101000000
+1818180000001a1a1af3f3f3ebebebf2f2f22323230000000606060000000d0d0d030303
+000000f3f3f3fafafafffffff2f2f2161616070707090909000000000000edededffffff
+eeeeee2121210808080000000606060404040b0b0bfffffffffffff3f3f3fafafaffffff
+e3e3e3151515090909000000ffffffeaeaea0e0e0e0000000a0a0a0000002a2a2a0a0a0a
+050505121212d8d8d8fafafafcfcfcfffffffafafaeeeeeeffffffffffff121212000000
+f8f8f8ffffffdadadaffffff0000001010100d0d0de2e2e2efefef080808070707000000
+0d0d0d000000141414fffffff0f0f00000001414140000000606060303030606060a0a0a
+000000030303070707030303fffffff8f8f8eaeaea1e1e1e0000000303030000000c0c0c
+ffffffe1e1e1ffffff101010050505000000f4f4f4ffffff242424000000202020050505
+0000000e0e0e0d0d0d000000fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafaefefef0f0f0ffffffff5f5f5
+fffffff6f6f60a0a0a0202020000000b0b0b0909090000000b0b0b090909070707101010
+f7f7f7fafafaffffff000000000000242424f2f2f2fffffff2f2f2141414000000eeeeee
+ffffff0000000e0e0e0d0d0d080808000000000000fffffff0f0f0000000ffffffffffff
+f4f4f4000000f2f2f2ffffff040404000000ffffffffffff000000f8f8f8f4f4f4ffffff
+000000000000000000030303fcfcfcffffff000000000000090909050505f2f2f2ffffff
+f1f1f1ffffff0000000e0e0e080808ffffffffffffe8e8e8ffffff0000001e1e1e000000
+0c0c0cf3f3f3fffffffcfcfc090909181818cecece0404040a0a0af1f1f1ffffff000000
+000000090909fffffffcfcfcffffff0000000000000d0d0d000000ffffffedededececec
+000000fffffff4f4f4fffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000010101f7f7f7fbfbfbf7f7f7f4f4f4fdfdfd181818f2f2f2
+0000000a0a0a000000fffffffdfdfd000000fffffff8f8f8ffffff000000101010ffffff
+f1f1f11c1c1c000000fefefeffffffffffff0000000a0a0afafafaf6f6f6ffffff070707
+000000ffffffeaeaeaffffff141414000000fffffff6f6f6ffffff121212000000fdfdfd
+0f0f0f000000fffffffcfcfcf0f0f0ffffff010101f0f0f0f6f6f6fffffffbfbfbf4f4f4
+ffffffffffff0000000a0a0aedededfffffff7f7f70a0a0a040404fffffff0f0f0f2f2f2
+030303000000fffffff9f9f9f9f9f9fdfdfdfafafafffffffcfcfcececec0000000e0e0e
+ffffffe6e6e6ffffffeeeeee161616000000000000fffffffbfbfb141414000000ffffff
+fdfdfd0a0a0a040404f8f8f8ffffffffffff000000010101fbfbfbfcfcfc000000000000
+ffffffffffff020202030303ffffffefefef090909050505e5e5e5ffffffffffff000000
+000000ffffffecececececec1212120a0a0af8f8f8ecececeeeeee080808000000f5f5f5
+fffffff5f5f50707070b0b0bfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafafefefe090909e8e8e8fafafa
+edededfafafaffffff070707ffffffecececf7f7f7090909fcfcfcf2f2f2fcfcfc000000
+fefefefefefe000000050505ffffffececec0a0a0af4f4f4fffffff9f9f9000000f1f1f1
+f5f5f5fbfbfb000000fcfcfcfffffff9f9f9090909f6f6f6ffffff030303fefefeececec
+000000ffffffdededef5f5f5000000070707e9e9e9f3f3f3010101ffffffe1e1e1050505
+f5f5f5ffffffffffff0f0f0ff9f9f9ffffff0e0e0effffffefefefeaeaea161616f3f3f3
+efefef141414060606dfdfdfffffff000000edededffffff040404ffffffffffffffffff
+fafafa0c0c0c000000fdfdfdfefefe0000001a1a1af0f0f0fffffff8f8f8000000050505
+ffffffeeeeee0d0d0dfffffff9f9f9fefefe0e0e0ef7f7f7fcfcfcf6f6f6fffffff9f9f9
+090909f8f8f8fdfdfdfbfbfbfffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f2f2f2ffffff121212f9f9f9
+f3f3f31515150000000e0e0ef3f3f3141414fffffff2f2f2000000050505f8f8f8ffffff
+eaeaeaffffff000000111111f1f1f10c0c0c000000fdfdfdfffffff5f5f5f2f2f20f0f0f
+000000efefefffffff010101050505eeeeeefafafaf1f1f1ffffff000000141414f9f9f9
+0101010202020c0c0c000000090909fdfdfdf8f8f8fffffffefefef7f7f7fffffffafafa
+fbfbfbffffff000000121212f9f9f9fffffff8f8f80c0c0c070707eeeeeefbfbfbfafafa
+0b0b0b040404fffffff3f3f3ffffffffffffeaeaeafdfdfdf8f8f8ffffff0a0a0a000000
+fffffff7f7f7efefefffffff000000030303000000f9f9f9010101050505fafafafefefe
+ffffffebebeb090909292929e1e1e1fefefe050505000000fbfbfbfafafa000000050505
+fefefeffffff090909111111f9f9f9ecececeeeeeeffffff0505050000001b1b1b010101
+020202f2f2f2ffffffffffff020202000000fffffff9f9f9fbfbfb0000000c0c0cfbfbfb
+f9f9f9ffffff000000080808fffffffffffff9f9f9efefeffafafafffffff8f8f8fdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdededed0e0e0ef8f8f8fdfdfd
+f1f1f1ffffffefefef0c0c0cfbfbfbfefefeffffff1a1a1af6f6f6f6f6f6f6f6f6060606
+fffffffffffff2f2f2fffffff0f0f0000000040404f9f9f9fcfcfcfefefe000000f0f0f0
+fffffff8f8f8000000fffffff9f9f9fbfbfb000000fdfdfdf1f1f1000000fcfcfcfcfcfc
+010101f2f2f2ffffffffffff000000fcfcfcfffffff2f2f2060606fefefeffffff000000
+0c0c0cffffffebebebfafafaf2f2f2ffffff070707f7f7f7f2f2f2ffffff090909f7f7f7
+f9f9f9fffffff0f0f0ffffff000000000000ffffffe4e4e4000000fffffff3f3f3f1f1f1
+ffffff000000ffffffefefeff0f0f0000000f5f5f5ffffffecececffffffefefeffdfdfd
+ffffff080808040404e0e0e0f9f9f9fefefe000000f5f5f5fdfdfdf4f4f4f0f0f0fefefe
+050505ecececfffffff4f4f4fffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffffffff000000e9e9e9
+ffffffededed000000060606060606000000e8e8e8ffffff090909000000f6f6f6f9f9f9
+fffffffcfcfc000000141414fefefe000000040404fcfcfce0e0e0ffffffe8e8e8060606
+0b0b0bf4f4f4ffffff0000001d1d1d0101010f0f0f010101000000161616000000ffffff
+ffffff0e0e0e0000000303030a0a0a0000000b0b0bfafafaebebebf8f8f8ebebebfdfdfd
+fafafaffffff090909000000fafafafafafaffffff000000000000fefefef4f4f4fbfbfb
+000000090909fbfbfbfefefee9e9e9f6f6f6fefefefdfdfdffffffe6e6e60000001a1a1a
+e9e9e9f4f4f4fffffff9f9f90b0b0b010101151515e3e3e3131313000000fffffff2f2f2
+f4f4f4f7f7f70e0e0e000000fffffffafafa090909000000f4f4f4ffffff050505000000
+fefefef7f7f7000000101010ffffffffffff000000000000030303ffffffededed000000
+050505fffffff7f7f7ffffff040404030303fafafae8e8e8ffffff1a1a1a040404f2f2f2
+fbfbfbf7f7f7000000030303ebebebf2f2f2ffffffffffffffffffffffffecececffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdf1f1f10c0c0cffffffdddddd
+ffffffebebebffffff000000f6f6f6fbfbfbf7f7f7000000ffffffffffffffffff000000
+f9f9f9ffffffffffff060606000000ffffff000000fffffffffffffcfcfc020202ffffff
+e8e8e8ffffff0a0a0af0f0f0ecececfbfbfb040404f9f9f9ffffff000000ffffffd4d4d4
+000000ffffffecececf8f8f8080808fefefef5f5f5090909eaeaeaf3f3f3fffffff6f6f6
+040404000000000000ffffffffffffffffff070707f5f5f5ffffffffffff030303f9f9f9
+fffffff8f8f8060606000000f1f1f11b1b1be9e9e9ffffffeeeeee0000000505051c1c1c
+040404e6e6e6f3f3f3fefefefcfcfc0a0a0ae3e3e3fffffff1f1f1fcfcfcffffff000000
+000000f1f1f1090909fffffff9f9f9d8d8d80a0a0afcfcfcfefefeffffffe9e9e9ffffff
+000000fffffff2f2f2fffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9d5d5d5f8f8f8212121ffffff
+eeeeeefefefe0b0b0b050505101010060606ffffffffffff0000000e0e0effffffe8e8e8
+efefefffffff212121000000ffffff000000131313fffffffffffffcfcfcfbfbfb010101
+0f0f0ffcfcfcf9f9f9010101000000fefefef8f8f8f1f1f1f3f3f3fffffffffffff0f0f0
+000000f4f4f4fffffffdfdfd0a0a0a000000121212fffffffffffffffffff2f2f2ffffff
+f3f3f3e4e4e4080808060606fcfcfcefefefffffff090909050505fafafaeaeaeafdfdfd
+070707070707e4e4e4fffffff6f6f6fdfdfdfffffff7f7f7ffffffefefef0b0b0b171717
+f0f0f0f4f4f4ffffff0f0f0f000000000000fefefef1f1f1121212090909eeeeeeffffff
+f8f8f8ffffff0505050b0b0bfafafaffffff000000101010ffffffe0e0e0000000000000
+fffffff8f8f81b1b1b020202efefeff5f5f5030303101010ecececffffffffffff020202
+030303f7f7f7f0f0f0f0f0f00b0b0b000000fffffffffffffcfcfc0000000d0d0dfefefe
+ffffffe3e3e3202020030303f1f1f1ffffffe2e2e2edededfefefeedededffffffededed
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdffffff000000f0f0f0ffffff
+f4f4f4fffffffdfdfd000000fafafaf7f7f7ffffff000000ffffffdfdfdff5f5f50d0d0d
+fafafafcfcfc000000f0f0f0ffffffe2e2e2050505f9f9f9f1f1f1fafafa0e0e0eececec
+fffffff3f3f30a0a0afffffff3f3f3ffffff101010e7e7e7ffffff000000f1f1f1ffffff
+000000ffffffffffff000000121212fffffff4f4f4000000f1f1f1fdfdfde7e7e7ffffff
+e2e2e2ffffffffffff000000f6f6f6fbfbfb000000fffffff5f5f5ffffff000000ffffff
+f2f2f2000000f9f9f9ffffffffffff000000fafafaf8f8f8ffffff090909fffffff5f5f5
+f4f4f4fffffffffffff4f4f4ffffff000000fcfcfcfbfbfbf3f3f3ededed121212fbfbfb
+fbfbfbfafafa070707e4e4e4f6f6f6ffffff030303f9f9f9ffffffeeeeeef2f2f2ffffff
+0f0f0ffffffff2f2f2fefefefffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fffffffafafa000000ffffff
+eaeaeafefefeffffff0000000c0c0c000000fffffffdfdfdf6f6f6151515000000ffffff
+ffffff000000040404fffffff7f7f70e0e0e0000000000000000000606060000000e0e0e
+000000ffffffffffff000000202020080808fffffff2f2f2f0f0f0f4f4f4101010ebebeb
+0c0c0cffffffffffffecececffffff101010000000fbfbfbececece6e6e6ffffffffffff
+e8e8e8ffffff070707010101fffffff8f8f8f9f9f90d0d0d0a0a0af4f4f4f5f5f5ffffff
+060606010101ffffffe9e9e9fdfdfdfffffff6f6f6f5f5f5f9f9f9ffffff0a0a0a000000
+fffffffafafa0000000000000d0d0d141414f9f9f9edededffffff070707111111f8f8f8
+fdfdfd040404000000f4f4f4edededf2f2f2050505060606e9e9e9ffffff0000001c1c1c
+f9f9f9ffffff000000313131f7f7f7eeeeee1111110000000303030a0a0a000000080808
+040404e7e7e7fffffffdfdfd0000001c1c1cf4f4f4ccccccfafafa1e1e1e050505eeeeee
+f8f8f8ffffff000000080808fbfbfbe1e1e1f7f7f7fffffff0f0f0f3f3f3fffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdf3f3f3010101fffffff9f9f9
+f9f9f9f0f0f0eaeaea090909fffffffbfbfbefefef1b1b1bf0f0f0fffffff5f5f50e0e0e
+ecececffffff151515eaeaeaffffff050505000000ffffffffffffececec050505f9f9f9
+fffffffbfbfb151515f8f8f8fefefef9f9f9000000fbfbfbfefefe000000020202e5e5e5
+ffffff0000000b0b0bffffff0000000f0f0f000000fffffffefefeffffffffffff000000
+fffffff6f6f6f1f1f1000000ffffffe0e0e0020202fffffff2f2f2fafafa1c1c1cececec
+ffffff070707fffffff3f3f30000001f1f1ffffffff5f5f5fcfcfc000000050505121212
+040404000000e8e8e8f9f9f9ececec020202ffffffffffffffffffededed000000ffffff
+f3f3f3101010191919efefefffffffeeeeee000000fffffff0f0f0ffffffffffffffffff
+000000f1f1f1fffffff1f1f1fffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fefefe000000161616010101
+f9f9f9ffffffe9e9e9ffffff070707090909e4e4e4fffffff1f1f10a0a0a0e0e0e000000
+000000090909000000ffffffedededf2f2f20b0b0b181818101010060606f9f9f90e0e0e
+010101000000ffffffffffff0000000d0d0d000000040404191919181818000000ffffff
+040404191919000000030303000000000000ffffffedededf6f6f6f5f5f5f6f6f6ffffff
+ffffff0000000d0d0d0c0c0c000000ffffff000000000000000000000000ffffff000000
+0e0e0e141414000000f2f2f2fffffff7f7f7f8f8f8fffffff7f7f70000000909090b0b0b
+0909090c0c0c272727080808f4f4f4f3f3f3eaeaeaffffffffffff000000161616000000
+111111000000151515ffffffe8e8e81919190000000b0b0b060606fafafa131313000000
+000000fcfcfc151515000000121212ffffff0000000101010e0e0e010101f9f9f9141414
+0b0b0b040404d8d8d8080808131313000000080808ffffff0000000b0b0b020202000000
+ffffff0000000a0a0a111111030303ffffffffffffe3e3e3fffffff6f6f6fffffffafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdf8f8f8121212ffffffe3e3e3
+ffffffffffff000000060606000000ffffff0909090000000a0a0affffff030303000000
+191919dbdbdbf6f6f60e0e0e000000ffffff030303030303ffffff0707070000000f0f0f
+eeeeee030303000000000000fcfcfc171717040404010101ffffffdddddd0d0d0df6f6f6
+f6f6f6ffffffeeeeeeddddddf9f9f9fffffffbfbfbfffffffffffffcfcfcebebeb080808
+0202020b0b0b070707fffffff4f4f4141414040404090909f6f6f60505050000000a0a0a
+fafafaf0f0f0000000161616ffffff000000141414ededed111111fffffffefefef5f5f5
+ffffff090909232323fafafa010101141414000000fdfdfdf7f7f7ffffffe4e4e40b0b0b
+060606e4e4e4000000121212f3f3f3ffffff0a0a0a0a0a0a0f0f0fe0e0e0e9e9e9ffffff
+000000fdfdfdfffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fffffff2f2f2fffffff4f4f4
+f9f9f9ebebebfffffff7f7f7ffffffe5e5e5ffffffd4d4d4fffffff7f7f7fffffff3f3f3
+fffffff2f2f2ffffffdadadafafafaf8f8f8efefeffffffff9f9f9f5f5f5eeeeeefbfbfb
+eeeeeef5f5f5ffffffe7e7e7fffffffffffff7f7f7fafafafdfdfdfffffff5f5f5f0f0f0
+edededfafafafffffffdfdfdfffffff1f1f1ebebebfffffff5f5f5ffffffecececffffff
+fafafafafafaecececf8f8f8fbfbfbe9e9e9fefefefffffffffffffefefee9e9e9fafafa
+f4f4f4fffffff4f4f4fffffffffffff7f7f7ecececf1f1f1f5f5f5ffffffd7d7d7ffffff
+fbfbfbe7e7e7e5e5e5f5f5f5fffffff5f5f5fcfcfcf0f0f0fefefefefefeeeeeeeffffff
+fcfcfcfffffff9f9f9e5e5e5ffffffe4e4e4f8f8f8f5f5f5ffffffe3e3e3f5f5f5ffffff
+fffffff3f3f3fffffffffffffafafafafafaefefefffffffeaeaeafcfcfcffffffdbdbdb
+f8f8f8ffffffe4e4e4f4f4f4fffffffbfbfbf8f8f8e5e5e5ffffffeeeeeef6f6f6ffffff
+fffffffdfdfdffffffdededef6f6f6fffffff0f0f0e0e0e0fbfbfbffffffedededffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdf1f1f10000000000000a0a0a
+fffffffffffff0f0f0f9f9f9ffffffd6d6d6f9f9f9ffffffefefefebebebfffffff2f2f2
+e2e2e2fffffff7f7f7e6e6e6fffffff7f7f7f4f4f4fcfcfcf4f4f4f8f8f8ffffffe1e1e1
+fffffffafafaffffffefefefe0e0e0fefefefdfdfdfafafae7e7e7ffffffffffff010101
+111111cacacaf4f4f4ffffffffffffffffff000000f9f9f9fefefefbfbfbfffffff4f4f4
+f4f4f4f3f3f3f2f2f2edededf0f0f0fcfcfcfffffff4f4f4fffffffbfbfbfefefeffffff
+ffffffffffffffffffe0e0e0f6f6f6ffffffeeeeeeffffff000000f2f2f2e8e8e8ececec
+fafafaffffff000000ffffffe9e9e9fdfdfdf9f9f9f0f0f0ffffffe6e6e6ffffffe5e5e5
+fffffffcfcfceeeeeeffffffecececffffffefefeff3f3f3ffffffffffff1010100d0d0d
+040404fdfdfdfdfdfdf9f9f9fffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9e8e8e8ffffffefefeffbfbfb
+ecececf8f8f8f8f8f8fefefeeeeeeefffffffdfdfdf6f6f6f6f6f6fbfbfbfffffff9f9f9
+f5f5f5f4f4f4fffffffafafafffffffffffff3f3f3f3f3f3fffffffffffffffffff8f8f8
+f7f7f7ffffffe6e6e6ffffffececececececffffffe4e4e4fefefefafafaffffffffffff
+f3f3f3fffffff6f6f6f8f8f8e8e8e8fdfdfdf6f6f6fffffff2f2f2fffffff6f6f6ffffff
+f0f0f0fffffff1f1f1fffffffefefeffffffefefeff7f7f7f8f8f8f1f1f1fffffffdfdfd
+fffffffbfbfbfafafaf2f2f2f3f3f3ffffffffffffffffffffffffdbdbdbfdfdfdfafafa
+fffffffffffffffffffbfbfbe5e5e5ffffffe5e5e5ecececfffffffafafaf7f7f7e8e8e8
+f3f3f3f2f2f2fdfdfdfffffff7f7f7fffffffffffff5f5f5f8f8f8fffffffffffff3f3f3
+f6f6f6f7f7f7f8f8f8f0f0f0ffffffd7d7d7ffffffffffffdededeffffffe1e1e1ffffff
+fbfbfbe0e0e0fffffffcfcfce9e9e9ffffffdfdfdfffffffe5e5e5ffffffffffffeeeeee
+dfdfdffbfbfbf6f6f6fffffff4f4f4fffffffdfdfdfffffffdfdfdecececffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfffffffcfcfcffffffececec
+f9f9f9ecececffffffedededf4f4f4ffffffedededebebebffffffffffffedededfdfdfd
+f0f0f0f3f3f3f3f3f3fffffffffffff2f2f2fffffffffffffefefeffffffebebebf6f6f6
+fffffffafafae0e0e0fefefeffffffe9e9e9fffffffffffff7f7f7efefeff1f1f1f7f7f7
+ffffff0a0a0a0808080101010000000b0b0bebebebffffffe7e7e7fefefef7f7f7f7f7f7
+fffffffffffff4f4f4f9f9f9ffffffe5e5e5fbfbfbefefefffffffe1e1e1f7f7f7fefefe
+ebebebf2f2f2ffffffffffffebebebefefefffffffefefef090909fefefefffffffcfcfc
+fafafa000000ffffffe8e8e8fffffffffffffbfbfbf1f1f1ffffffffffffebebebffffff
+e9e9e9fffffff6f6f6efefeff6f6f6e9e9e9fffffff2f2f2e3e3e3ffffffdfdfdfefefef
+ffffffffffffeeeeeefffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffffffffebebebffffff
+fdfdfdf9f9f9fffffff1f1f1fffffff2f2f2f1f1f1fffffff5f5f5f4f4f4fdfdfdf9f9f9
+fffffff8f8f8fbfbfbfffffff3f3f3e1e1e1fffffffafafafefefef8f8f8ffffffe8e8e8
+fffffff4f4f4ffffffe6e6e6ffffffffffffedededffffffeeeeeeffffffefefeff5f5f5
+fefefee5e5e5fcfcfcfafafafdfdfdf8f8f8fffffff5f5f5fffffff9f9f9fefefef9f9f9
+f3f3f3eeeeeeeeeeeefbfbfbfdfdfdfafafafafafafcfcfcfdfdfdfdfdfdfbfbfbfcfcfc
+ffffffeaeaeafafafafffffff9f9f9fbfbfbfcfcfcf1f1f1eaeaeafffffff2f2f2f1f1f1
+f5f5f5fbfbfbfafafaffffffffffffc4c4c4fffffffdfdfdfafafaecececfffffff7f7f7
+fdfdfdfffffffffffffffffffbfbfbe9e9e9fcfcfcfffffff6f6f6edededf9f9f9fafafa
+fffffffffffffffffffffffff7f7f7ffffffffffffedededfdfdfdfffffffffffff3f3f3
+f4f4f4f1f1f1fffffff7f7f7f7f7f7eeeeeefffffffffffffffffff5f5f5fffffffbfbfb
+fffffffafafafcfcfcf3f3f3fdfdfdefefeffbfbfbf5f5f5f7f7f7fffffffffffff6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdf4f4f4f4f4f4f5f5f5f9f9f9
+fefefef0f0f0f3f3f3fffffffefefefcfcfcffffffefefeffffffff0f0f0fbfbfbffffff
+ffffffe9e9e9f4f4f4ffffffedededfffffff8f8f8ffffffeeeeeefffffffefefeffffff
+e8e8e8fffffffafafafafafafcfcfcfdfdfdf7f7f7ffffffebebebfffffffafafaffffff
+f6f6f6fffffff8f8f8fefefeffffffefefefffffffdadadaffffffffffffe6e6e6f9f9f9
+fffffffafafaf0f0f0fdfdfddbdbdbffffffffffffe9e9e9edededfffffffffffffbfbfb
+f9f9f9ffffffdbdbdbfefefefdfdfdfefefefffffffbfbfbf9f9f9171717000000040404
+1a1a1af9f9f9fefefefdfdfdedededf9f9f9fffffffffffffcfcfcfcfcfcfffffff7f7f7
+f1f1f1fffffffefefef7f7f7fffffffdfdfddcdcdcfffffffffffff4f4f4fdfdfdffffff
+f5f5f5fefefefdfdfdfffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfdfdfdf7f7f7fffffff9f9f9f6f6f6f8f8f8
+f9f9f9f8f8f8fcfcfcfffffff7f7f7fefefefffffffefefefbfbfbfcfcfcfbfbfbf9f9f9
+fefefefefefeecececfffffff9f9f9fefefef9f9f9e9e9e9f2f2f2ffffffffffffffffff
+f6f6f6fdfdfdefefeffdfdfdfdfdfdf6f6f6f1f1f1f4f4f4fbfbfbfefefef9f9f9f2f2f2
+f1f1f1fffffff1f1f1fffffff4f4f4ffffffe4e4e4fefefef1f1f1eeeeeefffffff0f0f0
+f0f0f0fffffff9f9f9fffffffffffffbfbfbf9f9f9fefefefdfdfdf5f5f5f5f5f5fcfcfc
+f9f9f9fafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcf6f6f6fbfbfbffffffffffff
+fafafaf7f7f7f9f9f9fcfcfcf4f4f4f6f6f6f8f8f8fbfbfbfcfcfcfdfdfdfdfdfdfcfcfc
+fffffffcfcfcf9f9f9fbfbfbfffffffffffffefefefafafafefefefcfcfcfbfbfbfcfcfc
+fefefefffffffefefefcfcfcf2f2f2f9f9f9fffffffffffffafafaf8f8f8fcfcfcffffff
+f7f7f7f8f8f8fafafafbfbfbfcfcfcfbfbfbfafafaf9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdffffffffffffffffffffffff
+fdfdfdfffffffffffffffffffffffffffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdf6f6f6fffffff0f0f0fbfbfb
+fcfcfcf2f2f2fffffff3f3f3fefefefdfdfdfcfcfcfafafafafafafbfbfbfcfcfcfdfdfd
+fbfbfbfffffffffffffafafaf7f7f7f9f9f9fdfdfdfffffff8f8f8ffffffebebebececec
+f0f0f0f1f1f1fffffff7f7f7fbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfafafaf9f9f9f7f7f7
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf8f8f8fafafafcfcfcfdfdfd
+fdfdfdfcfcfcfafafaf8f8f8fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbf8f8f8f5f5f5f3f3f3fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafefefefdfdfdfbfbfbf9f9f9
+f9f9f9fbfbfbfdfdfdfefefefffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fafafafdfdfdf8f8f8fffffffafafafafafafefefe
+fffffffcfcfcfdfdfdfffffff6f6f6fdfdfdfffffffefefefcfcfcfcfcfcfcfcfcfafafa
+fbfbfbffffffefefeffafafafafafafcfcfcf3f3f3fffffffffffff9f9f9f3f3f3f4f4f4
+f1f1f1fffffffffffffbfbfbfffffffbfbfbf8f8f8fafafafffffffffffffdfdfdf8f8f8
+f6f6f6fcfcfcffffffcdcdcdfffffff6f6f6efefeffffffffffffff5f5f5ffffffffffff
+f8f8f8e8e8e8f0f0f0fffffffafafaf8f8f8f9f9f9fdfdfdfefefefdfdfdfefefeffffff
+fdfdfdfcfcfcfbfbfbfafafafafafafcfcfcfefefefffffff9f9f9fcfcfcfefefefefefe
+fbfbfbf9f9f9fafafafdfdfdfefefefefefefffffffefefefdfdfdfbfbfbf9f9f9f7f7f7
+fffffffcfcfcf9f9f9fbfbfbfffffffffffffefefefafafafefefefdfdfdfcfcfcfcfcfc
+fdfdfdfefefefdfdfdfbfbfbfbfbfbfbfbfbfcfcfcfbfbfbf9f9f9f7f7f7f5f5f5f5f5f5
+fcfcfcfdfdfdfdfdfdfefefefefefefffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffff
+fdfdfdfefefefffffff7f7f7f7f7f7fffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdfffffff6f6f6eeeeeeffffff
+fffffff1f1f1f7f7f7fffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fafafafcfcfcfbfbfbf7f7f7f7f7f7f9f9f9f7f7f7f3f3f3fdfdfdefefeff5f5f5ffffff
+fffffffbfbfbf2f2f2fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefefcfcfcfbfbfbfafafa
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfdfdfdfefefe
+fefefefdfdfdfbfbfbfafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+fefefefbfbfbf9f9f9f7f7f7fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffefefefcfcfcfafafa
+fafafafcfcfcfefefefffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fafafafafafafdfdfdffffff
+fffffffefefefbfbfbfcfcfcf6f6f6fbfbfbfefefefdfdfdfcfcfcfefefefefefefcfcfc
+fcfcfcf9f9f9f2f2f2f8f8f8fefefeffffffededede6e6e6fffffff8f8f8ffffffffffff
+fffffffafafafcfcfcf4f4f4fffffffefefefdfdfdfefefefffffffffffffffffffdfdfd
+fffffff9f9f9f6f6f6ffffffffffffe6e6e6ffffffeeeeeefcfcfcf4f4f4fbfbfbf8f8f8
+fffffffefefeffffffefefeffcfcfcfffffffffffffefefefdfdfdfefefefcfcfcf8f8f8
+fffffffdfdfdfbfbfbf9f9f9fafafafcfcfcfffffffffffffcfcfcfcfcfcfcfcfcfbfbfb
+fbfbfbfcfcfcfcfcfcfdfdfdf9f9f9fafafafcfcfcfdfdfdfefefefefefefdfdfdfcfcfc
+fffffffcfcfcfafafafbfbfbfefefefffffffdfdfdfafafafffffffdfdfdfcfcfcfcfcfc
+fdfdfdfdfdfdfbfbfbf9f9f9fffffffcfcfcf8f8f8f9f9f9fcfcfcfbfbfbf6f6f6efefef
+fffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffff2f2f2fafafafffffffffffffafafaf2f2f2ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdefefeff9f9f9fffffffbfbfb
+fcfcfcfffffffafafaedededf8f8f8f9f9f9fafafafcfcfcfdfdfdfefefefefefefefefe
+f6f6f6f7f7f7f7f7f7f9f9f9fefefefffffffefefef6f6f6f0f0f0fffffff5f5f5f5f5f5
+f7f7f7f9f9f9fffffff0f0f0fcfcfcfdfdfdfefefefefefefffffffefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefeffffff
+fffffffefefefdfdfdfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfc
+fcfcfcfdfdfdfffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f8f8f8fdfdfdfafafaf7f7f7f9f9f9fcfcfcffffff
+fffffffcfcfcf9f9f9f8f8f8f6f6f6fafafafdfdfdfbfbfbfcfcfcfffffffffffffdfdfd
+fafafaf3f3f3ffffffffffffe3e3e3fcfcfcfffffffffffffcfcfcfffffffafafafafafa
+fffffff5f5f5fffffffffffffdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfdfdfdfefefe
+fffffffdfdfdf7f7f7fffffff3f3f3f6f6f6edededfffffff9f9f9f9f9f9ffffffeaeaea
+e9e9e9e2e2e2f8f8f8f3f3f3fcfcfcfffffffffffffdfdfdfbfbfbfefefefbfbfbf2f2f2
+fdfdfdfcfcfcfbfbfbfafafafafafafcfcfcfdfdfdfffffffefefefcfcfcfafafafafafa
+fcfcfcfdfdfdfefefefefefef4f4f4f6f6f6f8f8f8fbfbfbfcfcfcfdfdfdfdfdfdfcfcfc
+fefefefcfcfcfafafafbfbfbfdfdfdfefefefdfdfdfbfbfbfffffffdfdfdfcfcfcfbfbfb
+fcfcfcfbfbfbf9f9f9f8f8f8fffffffbfbfbf7f7f7fafafafffffffffffffcfcfcf7f7f7
+fffffffdfdfdfbfbfbfafafafafafafcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fbfbfbfffffffefefef4f4f4f4f4f4fffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdfffffffdfdfdf7f7f7fbfbfb
+fcfcfcfafafafdfdfdfffffff6f6f6f8f8f8fafafafbfbfbfcfcfcfcfcfcfbfbfbfbfbfb
+f9f9f9fbfbfbfbfbfbfbfbfbfefefefffffffffffffafafaf9f9f9fbfbfbf6f6f6ffffff
+fffffff7f7f7fcfcfcf9f9f9fbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefefffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101010101000000010101f7f7f7fdfdfdfbfbfbf9f9f9fbfbfbfcfcfcfcfcfc
+fcfcfcfcfcfcfafafaf9f9f9f6f6f6fafafafbfbfbfafafafcfcfcfffffffffffffefefe
+fffffff7f7f7fffffffffffff9f9f9f0f0f0f2f2f2f9f9f9e4e4e4fffffff3f3f3efefef
+fffffffafafaf2f2f2e8e8e8fbfbfbfdfdfdfffffffefefefcfcfcfbfbfbfcfcfcfefefe
+f5f5f5fefefefffffffffffff4f4f4ecececffffffeaeaeaffffffe7e7e7f5f5f5f8f8f8
+fffffffbfbfbeeeeeefffffff3f3f3fbfbfbfefefefafafafbfbfbfffffffffffff8f8f8
+f7f7f7f9f9f9fafafafcfcfcfcfcfcfbfbfbfafafaf9f9f9fdfdfdfbfbfbf9f9f9f9f9f9
+fbfbfbfdfdfdfefefefefefefcfcfcfdfdfdfdfdfdfcfcfcfbfbfbf8f8f8f6f6f6f4f4f4
+fdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfcfcfcfbfbfbfefefefdfdfdfbfbfbfafafa
+fbfbfbfafafaf9f9f9f7f7f7fbfbfbfbfbfbfafafafbfbfbfdfdfdfefefefefefefefefe
+fefefefcfcfcf9f9f9f7f7f7f8f8f8fafafafefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfc
+fffffff6f6f6edededfefefefefefeefefeff9f9f9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdebebebf9f9f9f4f4f4ffffff
+fffffff7f7f7f9f9f9e9e9e9fafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfafafa
+fdfdfdfffffffffffff9f9f9f5f5f5f6f6f6f7f7f7f6f6f6ffffffeaeaeaffffffe7e7e7
+e6e6e6ffffffeaeaeafffffffafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101020202000000000000f6f6f6fdfdfdfdfdfdfdfdfdfffffffffffffcfcfc
+fcfcfcfefefefefefefbfbfbf8f8f8fafafafafafaf9f9f9fcfcfcfffffffffffffdfdfd
+fafafaffffffecececf6f6f6ffffffededede5e5e5ffffffeaeaeafffffff1f1f1ffffff
+fdfdfdfffffffffffffffffffefefefffffffffffffffffffefefefdfdfdfefefeffffff
+fffffffbfbfbf2f2f2fffffffdfdfdffffffedededefefeff7f7f7fffffff6f6f6dedede
+efefeff8f8f8efefeffffffff8f8f8fcfcfcfdfdfdfbfbfbfbfbfbfdfdfdfbfbfbf8f8f8
+f5f5f5f7f7f7fafafafcfcfcfdfdfdfbfbfbf9f9f9f7f7f7f9f9f9fafafafafafafafafa
+fafafafbfbfbfdfdfdfefefefcfcfcfdfdfdfefefefefefefdfdfdfcfcfcfafafaf9f9f9
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfbfbfbf9f9f9f9f9f9
+fafafafafafaf9f9f9f7f7f7fafafafcfcfcfdfdfdfbfbfbf8f8f8f7f7f7fafafafdfdfd
+fefefefcfcfcfafafaf8f8f8f9f9f9fbfbfbfefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+f6f6f6f2f2f2fffffff7f7f7f8f8f8fffffff5f5f5f9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdfffffffefefef9f9f9f9f9f9
+fbfbfbfbfbfbfefefefffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfd
+f9f9f9fefefefffffff9f9f9f5f5f5f7f7f7fcfcfcfffffff8f8f8fffffff9f9f9ffffff
+fffffff6f6f6fefefef9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101030303000000000000f5f5f5fdfdfdfefefefbfbfbfffffffffffffcfcfc
+fcfcfcfffffffefefef9f9f9fafafafbfbfbfafafaf8f8f8fcfcfcfffffffffffffcfcfc
+eeeeeefffffffcfcfcf7f7f7fdfdfde9e9e9fffffff0f0f0121212000000242424ebebeb
+f8f8f8f7f7f7fdfdfdeeeeeeffffffffffffffffffffffffffffffffffffffffffffffff
+ecececf0f0f0ffffffeeeeeefffffff1f1f1000000111111000000ddddddffffffffffff
+f5f5f5f6f6f6fffffff8f8f8fffffffffffffefefefefefefcfcfcf7f7f7f6f6f6f8f8f8
+f7f7f7f8f8f8fafafafcfcfcfcfcfcfbfbfbfafafaf9f9f9f5f5f5f8f8f8fbfbfbfbfbfb
+f9f9f9f9f9f9fbfbfbfdfdfdf7f7f7f9f9f9fbfbfbfdfdfdfefefefffffffefefefefefe
+fbfbfbfbfbfbfcfcfcfbfbfbfbfbfbfafafafbfbfbfcfcfcfbfbfbf9f9f9f8f8f8f9f9f9
+fafafafafafaf9f9f9f8f8f8fdfdfdfefefefdfdfdfbfbfbf8f8f8f7f7f7f9f9f9fbfbfb
+fdfdfdfcfcfcfafafaf9f9f9f9f9f9fbfbfbfdfdfdfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefefefefefefefefefefefefefefefefefdfdfd
+fcfcfcffffffe9e9e9000000000000ecececffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdffffffe4e4e4ffffffeeeeee
+f0f0f0ffffffe5e5e5fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+f6f6f6fafafafbfbfbf9f9f9f9f9f9fdfdfdfffffffefefefdfdfdfcfcfcf0f0f0f7f7f7
+f4f4f4ebebebfafafafefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefefffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101030303000000000000f5f5f5fdfdfdfefefef7f7f7fdfdfdfffffffcfcfc
+fbfbfbfdfdfdfbfbfbf4f4f4fbfbfbfcfcfcfafafaf8f8f8fbfbfbfffffffffffffbfbfb
+fffffff6f6f6f6f6f6fffffff7f7f7fffffff2f2f2020202fbfbfb191919000000ffffff
+fffffff2f2f2fffffffefefefffffffefefefcfcfcfdfdfdfffffffffffffefefefcfcfc
+fffffffffffff6f6f6fffffffafafaedededffffff050505020202fefefeebebebffffff
+f3f3f3e8e8e8ffffffe8e8e8fffffff9f9f9f9f9f9fffffffffffffafafafbfbfbffffff
+fafafafafafafafafafafafafbfbfbfbfbfbfcfcfcfdfdfdf1f1f1f7f7f7fcfcfcfcfcfc
+f9f9f9f7f7f7f9f9f9fdfdfdfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbf8f8f8f6f6f6f4f4f4
+fafafafbfbfbfcfcfcfcfcfcfafafafafafafbfbfbfcfcfcfafafaf8f8f8f7f7f7f8f8f8
+fafafafbfbfbfafafaf8f8f8fffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefe
+fafafaf9f9f9f9f9f9f8f8f8f8f8f8fafafafbfbfbfcfcfcffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fbfbfbebebebffffff000000000000ffffffefefefffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffcfcfcfafafafdfdfdf3f3f3fffffff1f1f1060606
+080808f3f3f3fffffff0f0f0f9f9f9f8f8f8f8f8f8f8f8f8f9f9f9fbfbfbfdfdfdfefefe
+fdfdfdfdfdfdfafafaf6f6f6f6f6f6f6f6f6f0f0f0e7e7e7fcfcfcf6f6f6ffffff000000
+000000fafafaf2f2f2fdfdfdfffffffffffffefefefdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+fffffffefefefefefefdfdfdfffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefefefefe0606060202020b0b0b
+0000000707070b0b0b040404fffffff9f9f9eeeeeefffffff0f0f0fffffff3f3f3ffffff
+fdfdfdf5f5f5fafafafdfdfdf8f8f8ffffff0e0e0e000000f6f6f6171717050505fafafa
+fffffffbfbfbfffffff8f8f8fefefef4f4f4fffffffefefef8f8f8f6f6f6fcfcfcffffff
+ffffffe4e4e4ffffffe7e7e7ffffffffffffebebeb0b0b0b0d0d0df3f3f3f5f5f5e5e5e5
+ffffff2a2a2ad9d9d9fffffff9f9f9f1f1f1f5f5f5f9f9f9f9f9f9ffffffffffffececec
+ffffff0000000f0f0f0606060000000a0a0a000000ffffffffffff000000040404020202
+111111f5f5f5ecececfffffff3f3f3050505080808000000030303080808f6f6f6ededed
+f7f7f7fbfbfb0000000a0a0a0505050000003e3e3e000000f3f3f3f7f7f7fdfdfdffffff
+e6e6e6f9f9f9f6f6f60c0c0c151515000000000000080808fffffff7f7f7e8e8e80b0b0b
+030303040404fffffff2f2f2fafafaf7f7f7fcfcfcffffffe8e8e8fffffffefefeffffff
+fffffff9f9f9fcfcfcfffffffffffffffffff8f8f8fffffffefefeeeeeeefffffff4f4f4
+fcfcfcefefefffffff020202070707fffffff9f9f9f6f6f6fffffffffffff5f5f5ffffff
+fffffff8f8f8ffffffffffffffffffefefeffffffffbfbfbfafafafafafafffffffefefe
+fcfcfcfffffffffffffdfdfdfafafafcfcfcfdfdfdfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbecececffffff000000ffffff
+e1e1e1fefefefafafafbfbfbf9f9f90c0c0c000000fbfbfbffffffffffffffffffe9e9e9
+f2f2f2efefefffffffffffffe6e6e6000000010101ffffffeaeaeafffffff5f5f5e2e2e2
+ffffff1d1d1de1e1e1fffffffbfbfbf9f9f9f6f6f6f7f7f7fafafafdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdf5f5f5f8f8f8080808010101
+fafafaffffff000000131313010101000000fffffff5f5f5f9f9f9f3f3f3f7f7f7ffffff
+fffffffcfcfcfffffffffffffffffff4f4f4000000050505fdfdfdebebebedededffffff
+dadadafefefefcfcfcfbfbfbf8f8f8fffffff4f4f4fffffff3f3f3fffffffcfcfcfcfcfc
+e4e4e4ffffffecececfffffffffffffcfcfcf5f5f5000000000000fffffffffffffefefe
+020202000000fffffff4f4f4f7f7f7ffffffffffffd3d3d3ffffffededede4e4e4111111
+000000131313010101eeeeeeffffffffffff000000fbfbfbe6e6e6ffffff1c1c1c070707
+efefeffffffff8f8f80d0d0d181818000000f9f9f9ffffffffffff000000010101121212
+ffffffe2e2e2ffffff040404080808ffffff000000000000050505edededfffffff9f9f9
+f9f9f9f7f7f7fffffff3f3f30505050101010d0d0df5f5f5ecececffffffdfdfdfffffff
+000000fffffff3f3f3eaeaeafffffffffffffffffff4f4f4fffffffcfcfce3e3e3f7f7f7
+f8f8f8f4f4f4f9f9f9fffffff1f1f1f1f1f1fffffff2f2f2fdfdfdffffffeaeaeaffffff
+f5f5f5ffffffefefef161616080808fcfcfcf0f0f0fffffff4f4f4fcfcfcffffffefefef
+f9f9f9fffffffcfcfcf1f1f1f1f1f1fcfcfcffffffedededfffffff9f9f9fffffffbfbfb
+fffffffffffffffffffdfdfdfdfdfdfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfdfdfdffffff000000f2f2f2
+fffffffcfcfcebebebf7f7f7050505ffffff010101fffffff7f7f7e4e4e4fffffff3f3f3
+ffffffefefeffafafae9e9e9000000ffffff000000f8f8f8ffffffd8d8d8ffffffffffff
+eaeaea050505fffffffbfbfbfdfdfdfbfbfbf9f9f9fafafafdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafafdfdfdfefefe0e0e0e000000
+ffffffedededf0f0f0080808050505000000fcfcfcf6f6f6ffffffe8e8e8fffffff0f0f0
+f6f6f6fffffffefefef4f4f4ebebebfcfcfc2020200c0c0cf4f4f4f3f3f3fffffff1f1f1
+fefefeffffffebebebffffffebebebffffffeeeeeeebebebfffffff1f1f1f0f0f0ffffff
+fafafaffffffecececefefefffffffeaeaeaf4f4f40f0f0f0b0b0bffffffe8e8e8ffffff
+0000000f0f0fd8d8d8fdfdfdf4f4f4fafafaf5f5f5fcfcfcfffffffefefef4f4f40d0d0d
+000000000000edededf5f5f5ffffffe0e0e0171717f2f2f2fbfbfbf8f8f8000000030303
+eeeeeeffffffe9e9e9000000050505f7f7f7fffffffffffffafafaffffff0d0d0d000000
+efefeffffffff1f1f1000000000000f7f7f7ffffff050505181818000000f1f1f1f5f5f5
+f3f3f3ffffffe0e0e0fffffff5f5f50b0b0b000000030303f7f7f7ffffffffffff000000
+000000fffffff0f0f0fffffff7f7f7ffffffecececffffffefefeffffffff5f5f5ffffff
+fffffffffffff4f4f4f2f2f2fffffff8f8f8fafafaffffffe9e9e9f0f0f0fcfcfcfbfbfb
+f3f3f3ffffffddddddf2f2f2fffffff8f8f8ebebebfefefefefefef5f5f5fffffff3f3f3
+ffffffe9e9e9f3f3f3fffffff0f0f0fcfcfcf7f7f7efefeffffffff0f0f0f8f8f8ffffff
+fefefefdfdfdf9f9f9f6f6f6f9f9f9fffffffffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf6f6f6f2f2f2000000fdfdfd
+e3e3e3fffffffffffff0f0f0ffffffeeeeee080808ffffffd7d7d7fffffff0f0f0f9f9f9
+ddddddffffffefefefffffffedededfdfdfd0c0c0cebebebedededffffffe5e5e5fefefe
+ededed000000ffffffeaeaeafefefefcfcfcfafafafafafafdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f9f9f9fcfcfcf9f9f9fafafaffffff000000000000
+ffffffefefefffffffebebeb0d0d0d000000000000f4f4f4f4f4f4fefefe000000000000
+010101050505000000ffffffffffff0000000f0f0f0000000f0f0f000000fffffffdfdfd
+0404040000000000000000001e1e1eeeeeeefffffff4f4f40000000a0a0a0e0e0ef7f7f7
+fefefe0000001414140c0c0cfffffffdfdfdffffff0c0c0c040404fdfdfdffffff030303
+0909090b0b0b000000151515fbfbfbfffffffffffff1f1f1f2f2f2ececec0d0d0d000000
+000000fffffffefefefefefee7e7e7f2f2f2fffffffcfcfcf8f8f8fbfbfb0a0a0a000000
+ffffffefefef020202010101050505fffffff3f3f3e0e0e0fffffff4f4f4000000272727
+020202e4e4e4ffffff000000111111fefefef4f4f4000000000000333333fafafafcfcfc
+ffffffefefeffffffff8f8f8ffffff050505020202181818fffffff1f1f1dadada111111
+f8f8f8fbfbfbf2f2f2ffffff070707010101000000000000000000fffffff5f5f5000000
+0a0a0a000000fafafa080808000000ffffffe8e8e80000001212120606060000002a2a2a
+0e0e0ef5f5f51e1e1e151515000000fffffff9f9f9e3e3e30000001b1b1b000000000000
+000000222222f9f9f9e5e5e5161616070707070707040404000000131313000000030303
+fcfcfcf9f9f9f4f4f4f2f2f2f7f7f7fffffffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfffffff8f8f80f0f0ff5f5f5
+ffffffdededefbfbfbffffffd5d5d5ffffff0b0b0becececfffffffcfcfcfffffffafafa
+ffffffedededfbfbfbfffffffafafafcfcfc000000fffffffcfcfcebebebeeeeeef3f3f3
+ffffff111111f2f2f2fffffffcfcfcfafafaf8f8f8f9f9f9fcfcfcfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f9f9f9fcfcfcf9f9f9f9f9f9f2f2f20000001c1c1c
+e0e0e0fdfdfdeeeeeef2f2f20404041111110e0e0ef7f7f7ffffff0202020f0f0ff1f1f1
+fcfcfcf5f5f5141414000000ffffffffffff020202000000f1f1f1ffffffe1e1e1070707
+080808fffffff6f6f6ffffff000000171717e3e3e3fffffff2f2f2131313000000f5f5f5
+f8f8f8ffffff000000000000fbfbfbf7f7f7f5f5f5000000000000fefefef5f5f5f1f1f1
+010101060606eaeaeaf1f1f1fefefefbfbfbf9f9f9f8f8f8fffffffdfdfd0808080c0c0c
+090909f9f9f9fffffffffffffffffffefefed3d3d3f2f2f2fefefef9f9f9060606000000
+efefefe7e7e72121210b0b0b0b0b0bf0f0f0f0f0f0fdfdfdddddddffffff0000000c0c0c
+101010fffffff6f6f60e0e0e020202ffffff0000001111110c0c0cf1f1f1e7e7e7f6f6f6
+fcfcfce4e4e4fdfdfdfffffffafafaf8f8f8121212000000f7f7f7fbfbfbededed1c1c1c
+e3e3e3fffffff5f5f5000000010101f8f8f8fffffff9f9f9000000101010ebebebebebeb
+1f1f1f141414010101080808121212f3f3f3161616000000f2f2f2ffffffeaeaeaf4f4f4
+000000f9f9f9e3e3e3060606131313f9f9f9f7f7f7ffffff171717000000ffffffffffff
+000000050505edededf0f0f0f3f3f3000000080808ecececfffffff0f0f0131313070707
+fffffffcfcfcf7f7f7f5f5f5fafafafffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfb060606161616f6f6f6ffffff
+efefeffcfcfcfcfcfcffffffffffffefefef000000fffffff7f7f7f1f1f1e7e7e7fbfbfb
+ffffffeeeeeefcfcfcffffffebebebffffff1a1a1adcdcdcfdfdfdffffffffffffe8e8e8
+ffffffdcdcdc1b1b1b000000fcfcfcfbfbfbf9f9f9fafafafdfdfdfefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafafafafaffffff151515000000
+f2f2f2edededffffffebebeb000000191919000000fafafa0b0b0b000000f3f3f3ffffff
+f1f1f1ffffff000000020202ececece7e7e70000000a0a0afdfdfde9e9e9fffffff2f2f2
+f5f5f50000000000000b0b0b000000000000ffffffe3e3e3fefefe080808030303ffffff
+fbfbfbededed060606090909ffffffeaeaeaffffff1414141a1a1afafafafffffffcfcfc
+010101030303fffffffffffffffffffdfdfde8e8e8ffffffe2e2e2f1f1f1060606000000
+111111dededefdfdfdf1f1f10f0f0f0202020000000f0f0ff7f7f7f3f3f30808080d0d0d
+ffffffffffff000000000000000000fffffff1f1f1fffffff1f1f1e7e7e7101010000000
+000000ffffffffffff000000000000000000060606080808fbfbfbedededf7f7f7ffffff
+fbfbfbfffffffdfdfdf7f7f7fffffff5f5f51717170d0d0d080808fdfdfd202020000000
+ffffffe4e4e40f0f0f0d0d0dfafafafcfcfcf2f2f2f6f6f60f0f0f050505fafafaffffff
+000000000000eaeaeafdfdfd010101f5f5f50a0a0a040404090909000000090909ffffff
+fdfdfdfffffff4f4f4131313000000fffffff7f7f7000000040404f8f8f8eeeeeef9f9f9
+ffffff0000000b0b0bffffffffffff0000000b0b0bf5f5f5eaeaeaffffff060606000000
+fcfcfcfbfbfbf8f8f8f6f6f6f9f9f9fffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcf9f9f9000000ffffff
+f6f6f6e9e9e9ffffffdbdbdbe2e2e2ffffff060606fffffffdfdfdfffffffffffffefefe
+fefefeffffffebebebf5f5f5fdfdfdffffff000000ffffffedededeeeeeefafafafcfcfc
+eaeaea060606f2f2f2fffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdf8f8f8f0f0f0060606000000
+ffffffffffffe1e1e1fcfcfc0a0a0a0606060f0f0fffffff0000001919190e0e0e000000
+060606000000010101000000ffffffffffff060606020202ffffffeaeaeae3e3e3151515
+010101000000fffffffcfcfc1313130d0d0df8f8f8fafafaf9f9f90f0f0f000000ffffff
+f5f5f5ffffff040404101010efefeffcfcfcfafafa000000000000f2f2f2e5e5e5ffffff
+000000050505f8f8f8edededebebebf1f1f1fffffff4f4f4efefefffffff000000040404
+000000ffffffe4e4e4fafafaf5f5f5000000171717eeeeeeffffffe5e5e5080808060606
+f4f4f4ffffff1313130f0f0f101010f6f6f6efefeff1f1f1fffffffbfbfb212121000000
+0e0e0efcfcfcffffff0c0c0c202020ecececfffffff7f7f7ffffffe4e4e4ffffffeaeaea
+ecececdadadafffffff8f8f8fafafaf7f7f7000000070707020202ffffff000000ffffff
+f4f4f4f6f6f60303030d0d0d0000000e0e0e050505000000090909000000ffffffebebeb
+1b1b1b0f0f0ffffffff0f0f0f9f9f9fffffff5f5f50909091b1b1b0f0f0f0000000e0e0e
+000000fffffff4f4f4020202000000f4f4f4ffffff292929000000ffffffe8e8e8e5e5e5
+ffffff040404000000eeeeeefefefe0000000a0a0afffffff5f5f5fdfdfd0000000b0b0b
+f8f8f8fafafaf9f9f9f7f7f7f8f8f8fcfcfcfdfdfdfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbffffffd7d7d71e1e1effffff
+fcfcfcfffffff4f4f4fffffffefefef7f7f7050505f4f4f4fefefefcfcfcfffffff1f1f1
+e6e6e6e9e9e9fffffffcfcfcfcfcfcefefef010101f1f1f1fffffff1f1f1fffffff3f3f3
+ffffff070707f6f6f6fdfdfdfffffffefefefdfdfdfffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefeffffffffffff1313130a0a0a
+f9f9f9f6f6f6fbfbfb0707070000000d0d0df8f8f8ececec191919000000fffffffbfbfb
+ffffffebebebfffffffffffff4f4f4fefefe030303000000fffffffdfdfdfefefe000000
+0c0c0cffffffe4e4e4fafafa0000000b0b0bfdfdfdf3f3f3f8f8f8030303080808ffffff
+fafafaf6f6f60606060c0c0cefefefffffffe5e5e50f0f0f090909eaeaeaf7f7f7f1f1f1
+070707000000fcfcfcfefefeffffffe7e7e7f7f7f7fffffff2f2f2ecececf9f9f9010101
+080808000000ffffffedededfefefe080808000000fbfbfbeeeeeeffffff080808000000
+f9f9f9f1f1f1fdfdfd000000121212040404f8f8f8fffffffefefefbfbfb000000151515
+fdfdfdfcfcfcf1f1f1000000050505f4f4f4fffffff3f3f3fbfbfbfafafaf4f4f4f3f3f3
+fffffff6f6f6f8f8f8f8f8f8fffffff2f2f2ffffff0f0f0f000000000000181818f6f6f6
+fffffffcfcfc050505000000fffffffbfbfbfdfdfdfffffff5f5f5fffffff1f1f1ffffff
+0000000c0c0ce8e8e8ffffffedededf6f6f6000000ffffffe5e5e5fafafa000000000000
+0b0b0be1e1e1ffffff060606191919f5f5f5f2f2f2000000090909eeeeeef9f9f9ffffff
+e1e1e1020202111111fafafae3e3e3060606080808f5f5f5fffffff8f8f8020202080808
+fafafafefefefffffffcfcfcfbfbfbfefefefffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbeeeeeeffffff000000ebebeb
+ffffffffffffdfdfdffffffffdfdfdf4f4f4000000ffffffefefeffafafafffffffefefe
+fdfdfdfbfbfbf7f7f7ffffffeaeaeaffffff040404f9f9f9fafafaffffffedededffffff
+ffffff000000ffffffe9e9e9fdfdfdfcfcfcfbfbfbfdfdfdfffffffffffffdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fbfbfbf3f3f3272727000000
+ffffffededed0000001c1c1c101010000000f7f7f7ffffff000000000000151515f9f9f9
+f4f4f4fefefeffffff090909efefeff7f7f7111111020202f4f4f4fffffff0f0f0000000
+0a0a0a131313070707000000030303090909f7f7f7efefefffffff020202000000181818
+000000141414030303060606f9f9f9ffffffffffff030303000000f1f1f1f6f6f6ffffff
+0202020d0d0df8f8f8fffffff2f2f2fffffff2f2f2fefefefbfbfbf1f1f1ececec080808
+171717000000050505e6e6e6fdfdfd040404131313e9e9e9fefefeededed0c0c0c060606
+fffffff8f8f8e7e7e7010101080808000000ffffffeaeaeaf6f6f60a0a0a000000ffffff
+f0f0f0fafafafefefe080808080808fefefefafafaf0f0f0f7f7f7f9f9f9fbfbfbfcfcfc
+fcfcfcfbfbfbf9f9f9f7f7f7fefefefffffff5f5f5111111000000121212000000f5f5f5
+f1f1f1ffffff0101010c0c0c060606fdfdfdffffffebebebffffff000000efefefffffff
+000000050505ffffffedededfcfcfcfdfdfd000000fffffffefefef2f2f2ffffff000000
+030303eeeeeeffffff0000000b0b0bf0f0f0ffffffdcdcdc020202000000fffffff9f9f9
+0c0c0c030303fffffffcfcfcffffff0000000e0e0effffffebebebffffff000000060606
+e5e5e5fffffff7f7f7f8f8f8fffffff3f3f3fafafaffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f3f3f3ffffff000000ffffff
+fafafaf7f7f7f4f4f4fffffffffffff7f7f7101010efefeffbfbfbf3f3f3ffffff000000
+050505fafafafffffffcfcfcf3f3f3ffffff000000fffffffbfbfbfffffffdfdfdf5f5f5
+ffffff000000fffffff8f8f8f8f8f8f8f8f8fafafafbfbfbfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fafafa0a0a0a000000202020
+000000060606191919000000eeeeeefffffffafafaeaeaeaebebeb000000191919000000
+060606000000000000161616ffffff0000000d0d0d0000000f0f0ff1f1f1efefef0c0c0c
+1414140000000b0b0bf7f7f7030303000000060606f9f9f9e0e0e0ffffff151515000000
+020202fdfdfd000000070707040404dddddd0808080000000909090a0a0affffffffffff
+000000000000040404020202fffffff6f6f6eeeeeefefefeffffffecececffffffebebeb
+f8f8f80c0c0c151515000000070707111111000000fffffff3f3f32222220000000c0c0c
+000000fffffffffffffefefee6e6e60909090000000a0a0a000000070707f3f3f3ffffff
+ffffffffffff000000060606060606000000fffffffffffffafafafbfbfbfdfdfdfefefe
+fefefefdfdfdfbfbfbfafafaf6f6f6fffffffefefeeeeeee121212000000fefefeffffff
+ffffffe9e9e9fefefe0f0f0f1a1a1a000000020202000000000000000000ffffff010101
+0f0f0f000000020202f5f5f5eaeaeaffffff0000000000000e0e0e000000000000090909
+fffffffefefe1010100303030b0b0b030303dfdfdfffffff0909090c0c0c000000121212
+000000000000fefefef6f6f60000000e0e0e000000040404f6f6f6050505040404070707
+0d0d0dd1d1d1ffffffe9e9e9f8f8f8fffffffbfbfbfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9fdfdfdeeeeee111111dbdbdb
+fffffff4f4f4ffffffdedede0000000000000606060f0f0fffffffffffffe9e9e9000000
+000000fbfbfbffffffe3e3e3070707000000151515101010ddddddfbfbfbf0f0f0ffffff
+f4f4f40f0f0ffbfbfbf9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafafffffff8f8f8ffffffffffff
+fbfbfbfffffff3f3f3fefefefffffffcfcfcffffffeeeeeeffffffffffffdbdbdbffffff
+fbfbfbfffffff3f3f3eeeeeee7e7e7ffffffd8d8d8ffffffeeeeeefdfdfdfffffff5f5f5
+eaeaeafffffffffffffffffffffffff1f1f1fcfcfcfffffff6f6f6fbfbfbe7e7e7ffffff
+f6f6f6f2f2f2fffffffffffffffffffffffffffffffffffff0f0f0ffffffdfdfdff2f2f2
+fffffff7f7f7fffffff9f9f9f8f8f8f7f7f7fffffff8f8f8fffffff7f7f7efefefffffff
+fffffff4f4f4fcfcfcfffffffcfcfcfffffffffffff6f6f6fcfcfcffffffe9e9e9fefefe
+fffffff5f5f5fbfbfbf4f4f4f7f7f7fffffffafafaffffffffffffe2e2e2fffffffdfdfd
+fefefefefefef7f7f7fbfbfbfbfbfbf7f7f7fefefefefefefdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfffffffffffffffffffafafaf0f0f0ffffffe6e6e6ffffff
+ecececffffffffffffeaeaeafafafafffffffbfbfbfffffffffffffbfbfbfffffff0f0f0
+fdfdfdfffffff9f9f9fcfcfcfffffffefefefffffffdfdfdfdfdfdfffffff2f2f2ffffff
+fffffffbfbfbfdfdfdf8f8f8f4f4f4ffffffffffffe8e8e8fffffff5f5f5fcfcfce5e5e5
+fffffffffffff3f3f3fdfdfdfffffffffffffefefefffffffefefef7f7f7f9f9f9ffffff
+fffffffffffff5f5f5fbfbfbfffffffffffffffffff7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafafcfcfcffffffffffff000000
+000000f9f9f9f7f7f7ffffffedededfffffff9f9f9fcfcfcfcfcfcf4f4f4ffffffffffff
+111111fffffffcfcfcfffffffffffff6f6f6ffffffe3e3e3fffffffafafaf7f7f7121212
+000000f7f7f7fffffffcfcfcfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbedededfcfcfcffffffeaeaea
+f3f3f3fffffff3f3f3fffffff0f0f0f6f6f6fafafaffffffecececf9f9f9ffffffe6e6e6
+fafafaf4f4f4fcfcfcfffffffffffff0f0f0fffffff2f2f2fffffffdfdfdefefefffffff
+fffffffffffff7f7f7eeeeeefafafaf6f6f6fffffff9f9f9fefefefffffffefefefefefe
+f8f8f8fffffffffffff8f8f8f1f1f1ffffffebebebfbfbfbfefefef9f9f9fffffff7f7f7
+e8e8e8f7f7f7ffffffefefeffefefeffffffffffffe9e9e9fefefefffffff3f3f3f6f6f6
+fdfdfdecececfffffff9f9f9e7e7e7fdfdfdfffffffffffffcfcfce7e7e7fffffffcfcfc
+fbfbfbfdfdfdfcfcfcf5f5f5ffffffe8e8e8fffffffafafaeaeaeafffffffdfdfdffffff
+fcfcfcf0f0f0fffffffdfdfdfdfdfdfffffff0f0f0fcfcfcfefefeffffffffffffffffff
+fffffffffffffffffffefefef0f0f0ffffffefefeffffffffffffffdfdfdfffffff3f3f3
+fbfbfbffffffe0e0e0efefefffffffe0e0e0ffffffecececfffffff0f0f0ffffffffffff
+fffffffcfcfceeeeeefffffffafafadfdfdffffffff6f6f6fdfdfdfafafafffffff2f2f2
+fefefefbfbfbf4f4f4fffffff7f7f7edededfffffffafafafdfdfdfffffffffffffcfcfc
+fdfdfdf9f9f9f8f8f8fffffffbfbfbfffffffbfbfbf6f6f6fafafaffffffe8e8e8f9f9f9
+f8f8f8e5e5e5fbfbfbfffffff4f4f4ebebebffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfbefefefeaeaeaffffffe0e0e0
+f3f3f3fffffffcfcfce4e4e4ffffffebebebfbfbfbfffffffffffffdfdfdffffff000000
+fdfdfdf5f5f5fffffff6f6f6f4f4f4fcfcfcffffffffffffeeeeeee1e1e1ffffffe2e2e2
+ffffffffffffffffffe0e0e0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffffefefefafafaffffff
+ffffffffffffe9e9e9f9f9f9fffffff2f2f2f6f6f6e6e6e6f4f4f4ffffffffffffffffff
+fffffffefefefffffffcfcfcf4f4f4fffffffffffff3f3f3fffffff0f0f0f5f5f5ffffff
+ececece8e8e8fffffffdfdfdfffffffcfcfcfffffff6f6f6fefefefcfcfcf7f7f7efefef
+ffffffeaeaeaebebebfbfbfbfefefef5f5f5fffffffffffffffffffafafae1e1e1f2f2f2
+fffffffefefefdfdfdf8f8f8fffffffafafaf5f5f5fffffffcfcfcfbfbfbffffffffffff
+fafafafffffff6f6f6fffffffffffff7f7f7fcfcfcf1f1f1fdfdfdfffffff0f0f0ebebeb
+fafafafffffffcfcfcfffffff1f1f1fffffffefefef8f8f8fafafae9e9e9e5e5e5fafafa
+fffffff8f8f8f6f6f6f3f3f3f3f3f3f6f6f6f8f8f8fffffffefefeffffffffffffffffff
+fffffffffffffffffffefefefffffff3f3f3f8f8f8efefefeeeeeeefefeffffffff6f6f6
+fbfbfbfffffff9f9f9ffffffeeeeeeffffffedededfffffff7f7f7ecececffffffe5e5e5
+ffffffebebebfffffff3f3f3fffffffffffffffffff7f7f7fffffff5f5f5ffffffffffff
+fffffffffffffffffff3f3f3f7f7f7fffffff3f3f3efefeff5f5f5ffffffe9e9e9ffffff
+f4f4f4e3e3e3ffffffeeeeeef4f4f4f7f7f7efefeffffffffefefef2f2f2fffffff5f5f5
+fffffffffffff9f9f9eaeaeafafafafffffff8f8f8f8f8f8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfcfcfcfffffff5f5f5f6f6f6ffffff
+f4f4f4efefeffcfcfcfffffff8f8f8fffffff8f8f8eeeeeefffffff9f9f9f5f5f5fcfcfc
+f4f4f4f8f8f8fffffffffffffffffff6f6f6f9f9f9fdfdfdfffffff9f9f9fffffff4f4f4
+ffffffd9d9d9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfffffffbfbfbfffffff9f9f9
+efefeffdfdfdfffffffefefef6f6f6fffffffafafafffffff6f6f6fafafaecececffffff
+f0f0f0eeeeeef4f4f4fffffffffffff6f6f6fcfcfcfffffffafafafffffffffffffdfdfd
+fffffff4f4f4fefefef6f6f6f7f7f7fbfbfbf7f7f7fffffff9f9f9fffffffefefeffffff
+e4e4e4fffffffffffff1f1f1fffffff4f4f4fffffff6f6f6f8f8f8fffffff9f9f9ffffff
+ffffffffffffefefeffffffffffffff7f7f7efefeffffffffafafaefefeff8f8f8ebebeb
+eeeeeefffffffbfbfbdfdfdfefefeffffffffffffff8f8f8ffffffebebebfffffff1f1f1
+fffffff6f6f6f7f7f7f6f6f6fefefefffffff6f6f6f2f2f2ffffffffffffffffffffffff
+e8e8e8fffffff3f3f3fffffffffffff3f3f3ffffffe8e8e8fffffffefefefefefefefefe
+fefefefefefefefefefffffff1f1f1fcfcfcffffffffffffffffffe8e8e8fffffffcfcfc
+ffffffe7e7e7ffffffe9e9e9fdfdfdfffffff4f4f4f6f6f6fffffffffffffffffffdfdfd
+eeeeeefffffff1f1f1fbfbfbffffffedededffffffffffffefefeffbfbfbfffffffcfcfc
+fffffffafafaecececf1f1f1fffffff4f4f4f0f0f0ffffffffffffecececfdfdfdf6f6f6
+f9f9f9fffffff6f6f6fdfdfdfffffff5f5f5ffffffe7e7e7f9f9f9f1f1f1fffffffefefe
+f8f8f8f1f1f1fffffffffffffffffff7f7f7f1f1f1ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfffffffefefefdfdfdf7f7f7
+dededeffffffebebebeeeeeefdfdfdf2f2f2fffffff6f6f6fffffff6f6f6ffffffffffff
+fffffff0f0f0fafafaf6f6f6ecececffffffffffffefefeff8f8f8ffffffefefefececec
+dbdbdbfffffff8f8f8f3f3f3ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefefbfbfbfefefefdfdfdffffff
+ffffffececece8e8e8f8f8f8ffffffeeeeeefefefefafafafffffff6f6f6fffffffcfcfc
+fffffffffffffefefef4f4f4e2e2e2f8f8f8f4f4f4fcfcfcfffffff9f9f9f7f7f7ececec
+fffffffffffffffffffffffffffffffbfbfbfffffff4f4f4ffffffecececf9f9f9f0f0f0
+f1f1f1fffffff5f5f5f7f7f7f2f2f2f5f5f5f8f8f8ffffffe8e8e8fffffffefefef7f7f7
+f7f7f7fefefef5f5f5fafafafffffffffffff0f0f0f9f9f9f0f0f0fffffffffffffbfbfb
+fdfdfdfdfdfdfdfdfdffffffffffffefefefeeeeeefffffffffffff6f6f6f8f8f8ffffff
+ecececfefefefffffffffffffffffff3f3f3ffffffeeeeeef7f7f7f7f7f7f3f3f3fbfbfb
+fffffff2f2f2f2f2f2fffffffffffff2f2f2f2f2f2ffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5ffffffebebebe4e4e4fffffffcfcfcf3f3f3ffffff
+fffffffefefefffffff4f4f4fefefeeeeeeefffffff5f5f5fafafae9e9e9fafafaffffff
+fafafaefefeffffffffffffffafafafffffffffffff5f5f5ffffffffffffe5e5e5f5f5f5
+f2f2f2fffffffffffffffffffffffffffffff6f6f6f6f6f6fcfcfcfffffffffffff4f4f4
+fffffffdfdfdf4f4f4ffffffefefefffffffe8e8e8ffffffffffffffffffffffffefefef
+fffffff0f0f0fffffffbfbfbe5e5e5fffffffffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdf1f1f1e1e1e1fffffffcfcfc
+f9f9f9ffffffe9e9e9fffffff4f4f4fffffff1f1f1fafafaffffffe8e8e8fffffff2f2f2
+fdfdfde9e9e9fffffffbfbfbf3f3f3fffffff4f4f4fffffff1f1f1e3e3e3ffffffececec
+fffffff9f9f9f2f2f2fffffffefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefefffffffffffffafafafafafa
+f8f8f8fffffffffffff7f7f7fcfcfcfcfcfcfefefefdfdfdfffffffcfcfcf5f5f5ffffff
+ffffffefefeff8f8f8fffffffffffffafafafcfcfcfffffffffffff8f8f8ffffffffffff
+f6f6f6fffffffbfbfbfffffffcfcfcfffffff7f7f7fffffff9f9f9fefefeffffffffffff
+fffffff6f6f6f8f8f8fffffffdfdfdfffffff7f7f7f2f2f2fffffff7f7f7fdfdfdffffff
+fbfbfbfdfdfdfffffff8f8f8f1f1f1fffffffefefefffffff9f9f9ffffffeaeaeaffffff
+fffffff6f6f6fcfcfcfdfdfdf5f5f5fdfdfdfffffffafafafffffff8f8f8fffffffcfcfc
+f1f1f1ffffffffffffebebebfffffff5f5f5f7f7f7fffffffffffff8f8f8fefefeffffff
+f8f8f8fffffff8f8f8fffffffffffff8f8f8fffffff8f8f8ffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff6f6f6fffffff4f4f4fffffffffffffafafa
+fffffffbfbfbfffffffffffffefefef7f7f7fffffff8f8f8fbfbfbfffffff8f8f8f1f1f1
+fffffff3f3f3fbfbfbfcfcfcfffffffffffffdfdfdf8f8f8fbfbfbf8f8f8ffffffffffff
+fffffff6f6f6f6f6f6fcfcfcf8f8f8fffffffffffffbfbfbfbfbfbfdfdfdfffffff3f3f3
+fefefef5f5f5fdfdfdfffffffffffffdfdfdf3f3f3fffffffafafaf8f8f8f6f6f6ffffff
+fbfbfbfbfbfbfefefef7f7f7ffffffffffffe3e3e3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffffdfdfdf7f7f7e6e6e6
+fffffff1f1f1fffffff7f7f7fffffff7f7f7f6f6f6fffffffffffff3f3f3fffffff7f7f7
+f5f5f5fffffff9f9f9f9f9f9fffffff2f2f2fffffff9f9f9ffffffffffffedededeeeeee
+fdfdfde8e8e8fffffffefefefdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fbfbfbfffffffdfdfdfdfdfdebebebfffffffdfdfd
+fffffff3f3f3fafafafdfdfdfffffff4f4f4fbfbfbfffffffdfdfdf9f9f9fafafaffffff
+fcfcfcfdfdfdfffffffffffffffffffffffffdfdfdfcfcfcfefefefcfcfcfffffffefefe
+fbfbfbfffffff7f7f7fefefefffffffefefefcfcfcfdfdfdfffffffffffffefefefcfcfc
+fffffffcfcfcefefefffffffffffffeaeaeafffffffbfbfbf9f9f9fffffff7f7f7fcfcfc
+fffffff3f3f3fffffff9f9f9fffffffffffffffffffffffffefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfefefefefefefffffffffffffdfdfdfdfdfdfffffffffffffcfcfcfcfcfcffffff
+f2f2f2fffffffafafaffffffffffffffffffedededf6f6f6fdfdfdfffffffdfdfde8e8e8
+fffffffffffffcfcfcfefefefefefefffffffcfcfcfbfbfbfdfdfdfefefefcfcfcffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefbfbfbfcfcfcfffffffffffffdfdfdfdfdfdfffffffffffffbfbfbfffffff9f9f9
+f9f9f9fffffff0f0f0ffffffedededfffffffffffffffffffafafafbfbfbf9f9f9fcfcfc
+f7f7f7ffffffefefeffefefefcfcfcf1f1f1fffffff5f5f5fafafaf7f7f7fffffff0f0f0
+fffffff1f1f1fffffffefefefdfdfdf3f3f3fffffffbfbfbf6f6f6fefefefcfcfcfdfdfd
+fffffffffffffefefefcfcfcfbfbfbfdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbfffffffffffff3f3f3f5f5f5
+f0f0f0fffffffffffffffffff7f7f7fffffffdfdfdfffffffbfbfbfffffffffffff0f0f0
+fdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfdefefefffffffe9e9e9ffffff
+ffffffebebebfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfdfdfdffffffe9e9e9f7f7f7ffffffe3e3e3fffffffffffff5f5f5f4f4f4ffffff
+fdfdfdfefefef9f9f9fffffffbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffefefefefefefefefefdfdfd
+fefefefefefefffffffffffffffffffdfdfdfdfdfdfffffffffffffcfcfcfbfbfbfefefe
+ffffffffffffeaeaeaf4f4f4ffffffedededfefefefffffff6f6f6f7f7f7f7f7f7ffffff
+f5f5f5f8f8f8fafafaffffffeaeaeafffffffafafafbfbfbfffffffcfcfcf8f8f8fafafa
+fffffffefefefefefefdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfdfdfdfffffffffffffdfdfdfcfcfcfefefef6f6f6fefefeefefeffefefe
+eeeeeeffffffefefeffffffffffffff2f2f2fffffff1f1f1f5f5f5fffffff8f8f8f4f4f4
+f6f6f6fbfbfbfffffff1f1f1ffffffffffffe2e2e2fffffffffffffffffffcfcfcfcfcfc
+f5f5f5fafafafbfbfbfdfdfdfffffff8f8f8f9f9f9fdfdfdfefefefffffffffffffdfdfd
+f8f8f8fafafafdfdfdfffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fbfbfbf7f7f7f8f8f8eeeeeeffffffffffff
+ffffffdbdbdbfffffff1f1f1fffffff4f4f4f5f5f5fcfcfceeeeeeecececfefefeffffff
+fefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefeeaeaeaffffffececec
+f4f4f4fcfcfcf5f5f5fffffff9f9f9fdfdfdfffffffefefefafafaf9f9f9fcfcfcffffff
+fdfdfdfdfdfde2e2e2fffffffcfcfcf3f3f3f0f0f0f2f2f2f9f9f9fffffff9f9f9efefef
+fffffffffffffdfdfdfafafafafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+fcfcfcfcfcfcfbfbfbfafafafafafafbfbfbfbfbfbfcfcfcfafafafafafafbfbfbfbfbfb
+fcfcfcfcfcfcfdfdfdfdfdfdfffffffdfdfdfcfcfcfffffffefefefbfbfbfbfbfbfefefe
+fafafaf6f6f6fffffff8f8f8fcfcfcf8f8f8f8f8f8eaeaeafefefef4f4f4ffffffffffff
+f8f8f8fafafafffffff6f6f6fffffff1f1f1f2f2f2f8f8f8e4e4e4fffffff3f3f3ffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffffffffbfbfbfafafafcfcfcf5f5f5fffffffffffffcfcfc
+fdfdfdfffffffdfdfdebebebf2f2f2e7e7e7f2f2f2fffffff8f8f8fdfdfdeaeaeafcfcfc
+ffffffefefeffffffff8f8f8f7f7f7fdfdfdf1f1f1ffffffe8e8e8fcfcfcfffffff3f3f3
+fefefefffffffffffffcfcfcf1f1f1efefefffffffe3e3e3f0f0f0fffffffdfdfdf8f8f8
+f5f5f5f7f7f7fafafafdfdfdfefefefefefefdfdfdfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf4f4f4fffffffdfdfdfefefeefefef
+f8f8f8fdfdfdfffffff6f6f6f2f2f2fffffff5f5f5f4f4f4ffffffffffff0f0f0f000000
+fefefefdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefe060606121212fffffff9f9f9
+ffffffffffffedededfffffff9f9f9fafafafbfbfbfafafaf9f9f9f8f8f8f9f9f9fafafa
+ffffffe4e4e4fcfcfcffffffedededf9f9f9fdfdfdfffffffefefefdfdfdf0f0f0f8f8f8
+101010000000fdfdfdfffffffdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfafafa
+fdfdfdfcfcfcfbfbfbf9f9f9f8f8f8f7f7f7f7f7f7f7f7f7f6f6f6f7f7f7f8f8f8f9f9f9
+f9f9f9fafafafafafafafafafffffffcfcfcfbfbfbfefefefefefefafafafafafafdfdfd
+fafafae4e4e4ffffffe7e7e7f8f8f8fffffffffffffffffffcfcfcf6f6f6f7f7f7ffffff
+fdfdfdf3f3f3f1f1f1fcfcfce4e4e4fafafaffffffe9e9e9fffffffcfcfcd8d8d8fbfbfb
+f9f9f9fafafafafafafbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffafafaf9f9f9fbfbfbffffff000000fcfcfcffffff
+f0f0f0f5f5f5f7f7f7fffffffffffffafafafffffff2f2f2f1f1f1fffffff2f2f2000000
+0e0e0effffff000000fffffffffffff5f5f5f7f7f7fafafafdfdfdf3f3f3f4f4f4eaeaea
+ffffffffffff000000fffffffefefeffffffcececefffffffffffffffffffffffffafafa
+fefefefcfcfcf9f9f9f6f6f6f6f6f6f9f9f9fcfcfcfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf4f4f4fafafaedededfffffffbfbfb
+fafafaf2f2f2eaeaeafffffff9f9f9ffffffdcdcdcffffffeaeaea000000030303101010
+fdfdfdfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfdfdfd090909000000fdfdfdededed
+ebebebdfdfdffdfdfdf6f6f6fffffffbfbfbf8f8f8fafafafefefefffffffdfdfdf9f9f9
+f6f6f6fffffffffffff7f7f7fffffff9f9f9fbfbfbf7f7f7eeeeeef5f5f5ffffff020202
+080808232323e7e7e7fffffffdfdfdfbfbfbf9f9f9fafafafbfbfbfcfcfcfafafaf8f8f8
+fafafaf9f9f9f8f8f8f8f8f8f7f7f7f8f8f8f8f8f8f8f8f8f7f7f7f7f7f7f9f9f9fafafa
+fafafafafafafafafaf9f9f9fefefefbfbfbfbfbfbfdfdfdfdfdfdfafafaf9f9f9fcfcfc
+fcfcfcffffffe7e7e7ffffffffffffe3e3e3f5f5f5ffffffe7e7e7ffffffefefeff0f0f0
+fefefeffffffe9e9e9fbfbfbfffffff8f8f8d9d9d9ffffffe9e9e9dbdbdbffffffffffff
+f9f9f9f9f9f9f9f9f9fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffefefef9f9f9f8f8f8fafafaefefef010101fafafaf1f1f1
+ffffffefefefffffffefefefe1e1e1f7f7f7f9f9f9e4e4e4ffffffe7e7e70d0d0df9f9f9
+000000ffffff010101e2e2e2f3f3f3f9f9f9fffffffbfbfbf5f5f5f7f7f7ffffffeaeaea
+fffffff8f8f8090909f7f7f7eeeeeef4f4f4ffffffe0e0e0f4f4f4fcfcfcf5f5f5fafafa
+fffffffdfdfdf9f9f9f7f7f7f8f8f8fafafafdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fbfbfbf7f7f7ffffffe5e5e5ffffffffffff
+000000070707141414000000090909fffffff3f3f3fdfdfdf3f3f3fafafa050505000000
+fcfcfcfbfbfbfbfbfbfafafafafafafbfbfbfbfbfbfcfcfc000000000000fffffffefefe
+fffffffffffffffffff4f4f4fffffff9f9f9f4f4f4f7f7f7fefefefffffffcfcfcf5f5f5
+ebebebfffffffffffff6f6f6d5d5d5fffffff9f9f9151515fffffffafafafffffffcfcfc
+000000000000fffffff8f8f8fafafaf7f7f7f6f6f6f8f8f8fcfcfcfffffffdfdfdfbfbfb
+f6f6f6f6f6f6f6f6f6f7f7f7f9f9f9fbfbfbfdfdfdfefefefafafafbfbfbfcfcfcfdfdfd
+fdfdfdfcfcfcfbfbfbfafafafdfdfdfafafafafafafdfdfdfcfcfcf9f9f9f8f8f8fbfbfb
+e5e5e5fbfbfbfefefeedededfffffff9f9f90000000b0b0b1414140000001a1a1a1c1c1c
+f9f9f9e4e4e4fffffff7f7f7ffffff070707030303000000000000181818262626d7d7d7
+f9f9f9f9f9f9fafafafafafafcfcfcfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfffffffefefef9f9f9f8f8f8fafafafbfbfb1b1b1be1e1e1fafafa
+f4f4f4f2f2f2edededffffffffffffffffffdbdbdbfffffffcfcfc030303fefefeffffff
+fffffffafafa050505ffffffe6e6e6ebebebf0f0f0d8d8d8fffffffcfcfce9e9e9ffffff
+eaeaeaf5f5f50c0c0cfffffff9f9f9fffffffdfdfde1e1e1fbfbfbffffffffffffffffff
+f5f5f5f7f7f7fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbefefefffffff000000000000
+141414ffffffe4e4e4fdfdfd000000010101010101dcdcdcffffffffffff0000000d0d0d
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa0909091b1b1bfcfcfceeeeee
+e4e4e4f4f4f4d6d6d6fffffffcfcfcf8f8f8f4f4f4f6f6f6fbfbfbfdfdfdf9f9f9f5f5f5
+fefefef1f1f1e1e1e1ecececfffffff2f2f2020202000000fbfbfbf9f9f9d6d6d6ffffff
+111111202020f7f7f7edededfbfbfbf8f8f8f6f6f6f8f8f8fdfdfdfffffffefefefbfbfb
+f9f9f9f9f9f9f9f9f9f9f9f9fafafafbfbfbfdfdfdfdfdfdfbfbfbfcfcfcfdfdfdfefefe
+fdfdfdfbfbfbf9f9f9f7f7f7fdfdfdfafafaf9f9f9fcfcfcfcfcfcf8f8f8f8f8f8fbfbfb
+fafafafffffff0f0f0ffffff0000000000000f0f0f020202f5f5f5f6f6f6ffffff000000
+fbfbfbfbfbfbffffff0000000000000f0f0f050505ffffffffffffebebeb000000fefefe
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfcfcfcfffffffefefef9f9f9f8f8f8fafafafdfdfdf1f1f1fcfcfcf4f4f4
+fffffffefefef1f1f1f2f2f2f0f0f0d9d9d9ffffffebebebe8e8e8141414fafafae8e8e8
+edededfffffff4f4f4e4e4e4f4f4f4fffffff5f5f5fffffff1f1f1fbfbfbfafafafcfcfc
+f6f6f6fafafaefefeff7f7f7ffffffffffff000000fffffffefefee3e3e3f0f0f0e0e0e0
+f4f4f4f6f6f6fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fbfbfbfffffffdfdfdf6f6f6ebebeb1a1a1a030303
+fcfcfcf3f3f3fffffff7f7f7ffffff000000060606fffffff9f9f9e1e1e11c1c1c010101
+f8f8f8f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8f0f0f0fcfcfcfafafafcfcfc
+fffffffffffff9f9f9fffffffdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfc
+dbdbdbfffffffefefeffffffe5e5e5e2e2e2111111141414fdfdfdfcfcfcffffffffffff
+0000000d0d0df4f4f4fdfdfdfffffffbfbfbf8f8f8f9f9f9fdfdfdfefefefbfbfbf7f7f7
+fffffffffffffdfdfdfbfbfbfafafaf9f9f9f8f8f8f8f8f8f9f9f9f9f9f9fbfbfbfbfbfb
+fafafaf7f7f7f4f4f4f2f2f2fcfcfcf9f9f9f9f9f9fcfcfcfbfbfbf8f8f8f8f8f8fafafa
+fffffffdfdfdf7f7f7fefefe0000000303030a0a0af0f0f0fffffff3f3f3f5f5f51c1c1c
+e8e8e8fdfdfdfefefe020202030303080808efefefffffffffffffe8e8e8080808fcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfcfcfcfffffffefefefafafaf8f8f8fbfbfbf7f7f7f4f4f4fffffff6f6f6
+f7f7f7fffffff4f4f4fffffffcfcfcfffffff0f0f0fafafaffffff020202d3d3d3ffffff
+fbfbfbf7f7f7fffffff9f9f9fefefef2f2f2fffffffbfbfbfffffffdfdfdfffffff3f3f3
+fffffffffffffffffff4f4f4f7f7f7f2f2f2121212e7e7e7fefefefbfbfbfffffff8f8f8
+fdfdfdfbfbfbf9f9f9f7f7f7f7f7f7fafafafefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f8f8f81212120000001d1d1d
+ebebebf6f6f6fffffffdfdfdffffff0000001b1b1b060606f5f5f5ffffff000000181818
+0303030a0a0a010101070707000000fcfcfcffffff0000000000000c0c0cfefefeebebeb
+f6f6f6eeeeee1212120000000000000e0e0e060606e3e3e3ffffffefefefffffff0a0a0a
+131313000000171717f3f3f3fdfdfd0808080c0c0c030303010101040404fcfcfcf9f9f9
+161616020202f3f3f3ffffff000000080808040404dededefffffffcfcfc000000080808
+0b0b0b000000060606ffffff0000000505050e0e0e060606000000ffffff000000151515
+000000ffffffe2e2e20c0c0c0000000303030909090b0b0b000000f7f7f7fffffff9f9f9
+e6e6e6fdfdfdfdfdfd0d0d0d0000000e0e0efffffffffffff2f2f2fffffff5f5f5fdfdfd
+ecececfbfbfb050505080808000000fafafafffffffefefefffffffffffff3f3f3ffffff
+fafafaf8f8f8f8f8f8fbfbfbfffffffffffffffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe000000000000f7f7f7ffffff
+0000000000002121210404040a0a0a000000ffffffffffff0000000c0c0c0e0e0e0e0e0e
+f6f6f6000000060606eeeeeefbfbfb0e0e0e0000000a0a0a010101121212000000ffffff
+eaeaea080808010101fdfdfdffffff0606060202021515150404040b0b0b0b0b0b040404
+edededffffff0b0b0b000000fffffff3f3f3fffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f7f7f7050505000000000000
+fffffffffffffbfbfbfffffff5f5f50b0b0b090909070707fffffffcfcfc0a0a0a000000
+ecececffffffe0e0e01e1e1e0e0e0e000000eaeaeaffffff1616160c0c0ce9e9e9ffffff
+fdfdfd1c1c1c060606fffffffffffff2f2f20a0a0a191919fcfcfcfafafa000000050505
+e6e6e61b1b1b000000151515f3f3f3fdfdfd030303000000fffffffefefee4e4e4fefefe
+000000080808fefefeffffff151515fafafaf6f6f6fffffff4f4f4000000000000ffffff
+edededffffff060606030303f9f9f90b0b0b000000000000ededededededfefefe000000
+ffffffd9d9d9202020050505fffffff7f7f7f0f0f0fafafa181818fafafaf9f9f9e5e5e5
+fffffffbfbfbfcfcfc0a0a0a020202080808f1f1f1ebebebfefefeffffffecececffffff
+ffffffffffff000000060606212121eaeaeafffffff3f3f3edededfcfcfcfffffff3f3f3
+f7f7f7f9f9f9fcfcfcfdfdfdfefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef6f6f6000000ffffffebebeb
+ffffff050505f6f6f6f5f5f5fdfdfd000000ffffffd9d9d9ffffff000000fffffffdfdfd
+e3e3e3ffffff000000ffffffd8d8d8ffffff060606fdfdfdedededffffff030303ececec
+ffffffe6e6e60a0a0afefefeedededffffff090909eeeeeeeaeaeaf8f8f8060606ffffff
+ffffffffffff000000ffffffe9e9e9fffffffafafafdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fcfcfc080808030303010101
+f6f6f6fbfbfbeeeeeeffffffffffff000000030303000000fcfcfcededed1111110c0c0c
+fffffff4f4f4ffffffeeeeee000000111111ffffffeaeaea000000020202fffffff4f4f4
+111111000000f6f6f6fffffffdfdfdfcfcfc161616000000ebebeb0606060e0e0ef6f6f6
+ffffff0a0a0a000000000000ffffffffffff0000000d0d0dfdfdfdf7f7f7ffffffffffff
+1e1e1e000000f8f8f8151515000000f8f8f8f7f7f7fafafa0000001a1a1afdfdfdffffff
+fffffff9f9f9000000111111ffffffffffff0e0e0e070707ffffffdbdbdb0c0c0c0a0a0a
+f8f8f8ffffff0000000000000000000e0e0e000000f8f8f8f1f1f1f7f7f7fffffff6f6f6
+fcfcfcffffffdcdcdc000000060606030303fffffffffffff3f3f30000000d0d0d000000
+060606ffffff080808070707030303e9e9e9f9f9f9ffffffffffffe3e3e3f3f3f3ffffff
+f5f5f5fafafafefefefefefefbfbfbfbfbfbfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefeffffff131313f0f0f0ffffff
+ffffff000000fbfbfbfbfbfbf6f6f6151515e6e6e6ffffffffffff000000fafafafdfdfd
+fffffff2f2f2000000f1f1f1fffffffdfdfd000000fffffffafafae5e5e5000000ffffff
+e2e2e2ffffff040404eeeeeefdfdfdffffff080808f7f7f7ffffffffffff020202000000
+fdfdfdf8f8f80d0d0df8f8f8e8e8e8f8f8f8fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f2f2f20c0c0c000000161616
+fdfdfdfefefef5f5f5f3f3f3f1f1f1040404131313151515ffffffffffff0303030f0f0f
+fdfdfdf8f8f8e6e6e6ffffff000000060606e7e7e7f7f7f70303030b0b0bfcfcfcffffff
+1010100000000202020b0b0b1b1b1b000000121212000000ffffff060606070707ffffff
+fbfbfbeeeeeeebebebffffffefefefdedede0707070a0a0aedededf5f5f5fafafafdfdfd
+000000232323101010000000030303fffffff5f5f5efefef090909141414000000000000
+0000002727270e0e0e0c0c0cfffffffefefe0000000a0a0a000000fefefe141414ffffff
+f7f7f7ffffffebebeb0a0a0a0d0d0d0909090000000000000a0a0afbfbfbf7f7f7ffffff
+ddddddfffffff3f3f3070707090909020202f4f4f4f8f8f8ffffffffffff0000002d2d2d
+f1f1f1dfdfdf1e1e1e000000040404ffffffeaeaeae1e1e1fffffffffffffffffff3f3f3
+f7f7f7fafafafcfcfcfdfdfdfcfcfcfcfcfcfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef4f4f40b0b0bf6f6f6f8f8f8
+fefefe000000fffffff2f2f2ededed010101fbfbfbfffffffafafa111111fcfcfcfafafa
+f2f2f2fbfbfb161616f1f1f1f3f3f3fcfcfc0a0a0afcfcfcffffffe4e4e40e0e0ef6f6f6
+fffffff9f9f9070707f9f9f9f1f1f1ffffff000000fafafaf9f9f9f0f0f0ffffff040404
+f9f9f90f0f0fe9e9e9fffffffffffff6f6f6e9e9e9fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffe3e3e30d0d0d282828
+000000fffffff1f1f1ffffffffffff000000010101f5f5f5fffffff9f9f9090909000000
+f9f9f9f1f1f1fbfbfbf5f5f5070707050505fcfcfcfbfbfb070707000000f5f5f5ffffff
+000000000000fffffff7f7f7efefefffffffddddddfffffffbfbfb040404000000ffffff
+fdfdfdf9f9f9ffffffe1e1e1fefefefafafa000000050505fbfbfbffffffebebebfafafa
+181818040404eaeaea191919141414000000ffffffebebeb010101060606fbfbfbfefefe
+fdfdfdf0f0f0fafafafffffff1f1f1fafafa0b0b0b1313130a0a0a090909000000f4f4f4
+f8f8f8e8e8e8141414f7f7f7f0f0f0fdfdfd0c0c0c0c0c0c080808ffffffebebebf6f6f6
+fafafae9e9e9fffffff9f9f90000000000000b0b0bf5f5f5ebebebf8f8f8080808000000
+ffffffe6e6e6ffffff020202090909000000fffffff5f5f5efefefe3e3e30f0f0ff9f9f9
+fbfbfbf9f9f9f8f8f8fafafafdfdfdfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef9f9f90e0e0ef5f5f5ffffff
+e4e4e4020202fafafaefefefffffff010101ffffffebebebe5e5e5010101f0f0f0fdfdfd
+ffffffebebeb000000ffffffe8e8e8efefef141414ebebebe4e4e4ffffff0c0c0cffffff
+d7d7d7f9f9f90c0c0cfffffffcfcfcfefefe0c0c0cffffffe6e6e6ffffffececec060606
+f1f1f1050505fffffff5f5f5e6e6e6fffffff8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9e2e2e2ffffff050505000000
+0d0d0dffffffeeeeeee7e7e70a0a0a000000fffffffefefee0e0e0fcfcfc121212070707
+fcfcfcffffffffffff000000121212ffffffecececf6f6f60c0c0c000000ffffffd8d8d8
+030303121212030303fdfdfdffffffe1e1e1ffffff000000fbfbfb0a0a0a0101011e1e1e
+f7f7f7f6f6f6f0f0f00b0b0bfffffffdfdfd0d0d0d0c0c0cf3f3f3ffffffdfdfdff8f8f8
+1e1e1e000000f9f9f9fafafa0000001a1a1ae5e5e5fafafa0b0b0b010101090909f7f7f7
+ffffffefefeffbfbfb000000e8e8e8fffffffefefe000000000000121212fdfdfde6e6e6
+ffffffffffff000000ffffffefefeffffffff0f0f0000000000000ffffffe6e6e6ffffff
+fffffff6f6f6f2f2f2ffffff0606060000000d0d0d000000fbfbfbffffff050505030303
+f2f2f2f4f4f4f3f3f3ffffff000000111111040404efefeffffffff3f3f3000000fefefe
+fdfdfdf9f9f9f6f6f6f8f8f8fefefefffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef5f5f5070707f1f1f1f2f2f2
+ffffff0c0c0ce7e7e7fcfcfcf4f4f40e0e0eededededededffffff000000e4e4e4fefefe
+ddddddfbfbfb010101fffffffffffffefefe0b0b0bffffffeeeeeeffffff000000ffffff
+fffffff3f3f3000000fdfdfdffffffe3e3e3010101ffffffebebebfafafafffffff3f3f3
+111111e8e8e8f3f3f3ffffffdededef5f5f5fffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fdfdfdf9f9f9ffffffffffff
+0a0a0a0000000808080d0d0d040404fcfcfcf2f2f2fafafafffffff5f5f5000000000000
+000000151515000000141414f1f1f1f9f9f9e2e2e2ffffff1919190d0d0de9e9e9ffffff
+ffffff0000000606060000000000001a1a1a000000000000ffffffffffff000000040404
+0e0e0e090909000000040404fdfdfdf2f2f20a0a0a0000000e0e0e000000ffffff000000
+000000090909181818fbfbfb1e1e1e000000000000ffffffdedede0c0c0c090909000000
+020202111111080808000000ffffffddddddfcfcfc010101050505010101edededffffff
+dfdfdff9f9f9070707030303000000000000000000000000fffffff1f1f1f3f3f3f2f2f2
+e6e6e6fdfdfdfefefeefefefffffffffffff000000000000020202000000050505000000
+ffffffffffffe1e1e1fcfcfcffffff0000000000000909090303031414141b1b1bf2f2f2
+fbfbfbfafafaf9f9f9fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefe0f0f0f000000101010efefef
+000000000000212121ffffff010101060606070707ffffff000000000000131313ffffff
+ffffff000000010101000000f2f2f20000000000000b0b0bffffff1515150000000d0d0d
+ededed1414141616160a0a0af6f6f6f4f4f40606060000001a1a1affffffd0d0d0ffffff
+000000ffffffe8e8e8fffffff8f8f8fffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9e9e9e9fffffffcfcfceeeeee
+e1e1e1fffffffefefefefefeffffffe7e7e7ffffffdcdcdcfcfcfcfffffff2f2f2ffffff
+ffffffffffffe3e3e3fafafafffffffffffff5f5f5fcfcfc000000121212f5f5f5ebebeb
+fffffff4f4f4fffffff0f0f0fefefef9f9f9fffffffffffffcfcfceaeaeaffffffffffff
+f7f7f7f9f9f9fefefef1f1f1f1f1f1fffffff1f1f1ffffffebebebfdfdfde7e7e7fafafa
+ffffffffffffe9e9e9fdfdfdf6f6f6f6f6f6fbfbfbfafafafefefef9f9f9fffffffbfbfb
+ffffffeeeeeef3f3f3fffffff6f6f6ffffffe3e3e3ffffff010101fffffffefefeeeeeee
+f4f4f4fffffff3f3f3f0f0f0fafafafffffffffffffffffff8f8f8f3f3f3f9f9f9fafafa
+fffffffcfcfce8e8e8fffffff3f3f3f5f5f5f1f1f1fffffffffffffffffff7f7f7fdfdfd
+f2f2f2fbfbfbf5f5f5fbfbfbf0f0f0f5f5f5fffffffcfcfcf9f9f9dfdfdffffffffdfdfd
+f8f8f8fbfbfbfdfdfdfcfcfcf9f9f9fafafaffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffdfdfdf9f9f9f9f9f9fefefef1f1f1ffffffdfdfdfffffff
+efefeffffffff8f8f8f1f1f1f6f6f6fafafaf5f5f5f9f9f9f4f4f4ffffffe9e9e9fbfbfb
+fefefed9d9d9ffffffecececf6f6f6fffffff9f9f9fffffffbfbfbf0f0f0ffffffffffff
+efefeff7f7f7fbfbfbf8f8f8fbfbfbfffffffffffffbfbfbecececfffffff9f9f9efefef
+0d0d0dfafafaf7f7f7fafafafffffff3f3f3fefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000010101f7f7f7fafafaf6f6f6fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+ffffffe1e1e1ffffffedededffffff090909000000ffffff090909eaeaeaffffffebebeb
+ecececfefefeffffffedededfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffdfdfdfbfbfbf9f9f9f6f6f6f5f5f5f4f4f4fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9f9f9f9fafafafbfbfbfbfbfbfafafaf9f9f9f9f9f9
+fafafafffffffbfbfbffffff080808000000ffffff000000040404d7d7d7fffffff2f2f2
+fffffff8f8f8fffffff8f8f8f3f3f3f0f0f0f2f2f2f9f9f9fdfdfdfbfbfbfdfdfdffffff
+f7f7f7f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f7f7f7fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf7f7f7f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f7f7f7
+f7f7f7f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf3f3f3f9f9f9fbfbfbf9f9f9
+f9f9f9fdfdfdfbfbfbf5f5f5fcfcfcfefefefdfdfdfafafafbfbfbfffffffbfbfbf2f2f2
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf4f4f4fffffffafafae8e8e8ffffff000000ffffff050505
+f5f5f5f7f7f7fbfbfbfdfdfdfffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000020202f8f8f8fcfcfcf8f8f8fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+eeeeeefffffff3f3f3fffffff5f5f5f9f9f9020202090909ecececfffffff3f3f3f7f7f7
+fcfcfcefefeff7f7f7fffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfafafafafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+f7f7f7ffffffe8e8e8fbfbfb0000000f0f0f0d0d0d080808eaeaeafffffff4f4f4fafafa
+ffffffedededf9f9f9fffffffcfcfcf9f9f9f9f9f9fdfdfdfdfdfdf9f9f9fafafafdfdfd
+fafafafbfbfbfdfdfdfefefefefefefdfdfdfbfbfbfafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfafafafbfbfbfdfdfdfefefefefefefdfdfdfbfbfbfafafa
+fafafafafafafbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf9f9f9fefefefffffffcfcfc
+fcfcfcfffffffefefef9f9f9fcfcfcfffffffefefefbfbfbfcfcfcfffffffcfcfcf5f5f5
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafafafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffedededf7f7f7fffffff5f5f50b0b0b000000fdfdfd
+f8f8f8f9f9f9fcfcfcfefefefffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffefefefefefefafafafdfdfdfffffff8f8f8ffffffffffffeaeaeaf1f1f1ffffff
+fffffffafafafffffff6f6f6fefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefffffffffffffffffffffffffefefefefefe
+fffffffffffffffffffbfbfbffffffffffffe7e7e7fafafafffffff1f1f1f3f3f3ffffff
+fdfdfdfcfcfcfffffff7f7f7fffffffffffffefefefffffffefefefbfbfbfafafafcfcfc
+fdfdfdfefefefffffffffffffffffffffffffefefefdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcfffffffffffffcfcfc
+fcfcfcfefefefefefefbfbfbfcfcfcfefefefdfdfdfcfcfcfdfdfdfffffffefefef9f9f9
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbfffffffefefefefefef0f0f0fcfcfcfffffffdfdfd
+fbfbfbfcfcfcfefefefffffffffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefbfbfbf0f0f0fefefeffffffe3e3e3fffffff0f0f0f2f2f2e6e6e6fffffff1f1f1
+f1f1f1fefefefffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+eaeaeafffffff2f2f2e8e8e8fffffff8f8f8fffffff0f0f0f6f6f6f0f0f0fffffff9f9f9
+e9e9e9fffffffffffff9f9f9fefefefefefefefefefffffffffffffefefefefefeffffff
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafafafafafafafaf9f9f9
+fafafafbfbfbfdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfdfdfdfbfbfb
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafaffffffffffffedededfffffff1f1f1f1f1f1f8f8f8
+fefefefffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000060606fdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafdfdfdfffffffefefeedededf9f9f9eeeeeefffffffffffff0f0f0ffffffeaeaea
+fcfcfcfefefef4f4f4fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+fefefef4f4f4fefefeffffffdededef8f8f8eeeeeefffffffffffff5f5f5fffffff8f8f8
+fcfcfcffffffecececfffffffbfbfbfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf7f7f7f6f6f6f6f6f6f8f8f8
+f9f9f9fbfbfbfcfcfcfefefefafafaf9f9f9fafafafafafafafafaf9f9f9fafafafcfcfc
+f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffefefeffefefef1f1f1efefefffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff6f6f6f2f2f2ecececfffffff6f6f6f4f4f4fdfdfdecececeeeeeefcfcfceeeeee
+ffffffffffffedededfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffffffffefefefefefe
+ffffffe9e9e9fafafafcfcfcfffffffffffff9f9f9ffffffefefefedededfafafafcfcfc
+ffffffffffffe7e7e7fffffffcfcfcfffffffffffffcfcfcfcfcfcfffffffffffffcfcfc
+fffffffefefefefefefefefefefefefefefefefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefefefefefefefefefefefefefefefefeffffff
+fefefefefefefefefefefefefefefefefefefdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf8f8f8f6f6f6f7f7f7fcfcfc
+fdfdfdfcfcfcfdfdfdfffffffbfbfbf9f9f9f9f9f9fafafaf9f9f9f6f6f6f8f8f8fcfcfc
+f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffeeeeeefffffffffffffffffff0f0f0e3e3e3fffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+e3e3e3ffffffedededfafafafafafafffffffffffffafafafbfbfbfffffffffffff3f3f3
+ecececfdfdfdfbfbfbfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefe
+e9e9e9fffffff5f5f5fffffff4f4f4f5f5f5fefefef5f5f5fcfcfcfffffffffffff8f8f8
+f4f4f4fdfdfdfdfdfdfffffffdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffbfbfb
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbf9f9f9fafafaffffff
+fffffffbfbfbfafafafdfdfdfdfdfdfafafafafafafcfcfcf9f9f9f4f4f4f7f7f7fdfdfd
+fdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbe3e3e3fffffffbfbfbfffffffefefef7f7f7ffffff
+fefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcebebebfffffffdfdfdfafafaffffffe4e4e4fafafaffffffededede8e8e8ffffff
+f7f7f7fefefefafafafbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff3f3f3fffffffffffffffffff1f1f1fffffff8f8f8fefefef2f2f2f8f8f8ffffff
+fcfcfcfefefefffffff7f7f7fbfbfbfffffffffffffcfcfcfdfdfdfffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfdfdfdfafafafbfbfbffffff
+fffffff8f8f8f6f6f6f8f8f8fffffffcfcfcfcfcfcfefefefafafaf4f4f4f7f7f7fefefe
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefeffffffffffffedededfffffff1f1f1ffffff
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffff8f8f8fefefef3f3f3
+fffffff4f4f4f6f6f6fffffffffffffdfdfdfdfdfdfdfdfdfffffffcfcfcf0f0f0ffffff
+fffffff8f8f8fefefeffffffeeeeee000000232323e8e8e8fdfdfde3e3e3ffffffededed
+f2f2f2fffffff2f2f2fefefefdfdfdfffffffefefefbfbfbfffffff3f3f3fffffff3f3f3
+ffffffedededf3f3f3fffffff2f2f2fdfdfdffffffffffffffffffeeeeeefffffff6f6f6
+fffffffffffffffffffffffffffffffffffffffffffbfbfbffffffe8e8e8fffffffefefe
+fefefef9f9f9fffffffcfcfcfffffffffffffffffff1f1f1fffffff7f7f7f4f4f4ffffff
+fffffff6f6f6fffffff1f1f1fefefefefefefcfcfcfffffff6f6f6fffffff9f9f9f8f8f8
+fffffff7f7f7f8f8f8f5f5f5ffffffffffffebebebffffffffffffeeeeeefcfcfcffffff
+fffffffffffffffffff8f8f8fdfdfdf0f0f0fffffff6f6f6f7f7f7fffffff4f4f4ffffff
+fffffff1f1f1fdfdfdfffffffffffffffffffcfcfcf0f0f0f3f3f3fdfdfdfffffff7f7f7
+f6f6f6fffffff5f5f5f7f7f7fffffffdfdfdf5f5f5fffffffffffff6f6f6fffffff8f8f8
+fefefefffffffffffffbfbfbfcfcfcffffffefefeffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdeeeeeefffffff8f8f8000000
+070707fffffff5f5f5ffffffffffffe8e8e8f8f8f8f6f6f6050505121212f5f5f5fafafa
+fffffff3f3f3fffffff7f7f7f8f8f8fffffff0f0f0fffffffffffff2f2f2ffffffffffff
+fdfdfde3e3e3fffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcecececffffffffffffffffff
+f7f7f7f7f7f7fffffff6f6f6efefefffffffe2e2e2fefefefffffff2f2f2fffffff9f9f9
+fffffff1f1f1f6f6f6fefefeffffff090909000000fffffffefefeffffffe7e7e7f2f2f2
+fffffff5f5f5f3f3f3fefefeffffffebebebfffffff1f1f1f7f7f7fafafaf4f4f4ffffff
+f9f9f9fdfdfdffffffe5e5e5ffffffffffffedededfffffff2f2f2fffffff7f7f7f7f7f7
+ffffffe2e2e2ffffffe9e9e9f5f5f5f6f6f6f4f4f4fffffffdfdfdfffffffafafaefefef
+fffffff9f9f9f4f4f4fcfcfcedededf7f7f7f9f9f9fffffff4f4f4ffffffffffffeeeeee
+fafafafffffff9f9f9fffffffefefefffffffdfdfdf9f9f9ffffffffffffffffffffffff
+ffffffe9e9e9fffffff3f3f3ffffffe6e6e6fffffffcfcfcecececfffffff6f6f6f5f5f5
+fffffff3f3f3fffffffffffffffffffcfcfcf5f5f5fbfbfbfffffff4f4f4fffffffdfdfd
+e1e1e1ffffffeeeeeeefefeff4f4f4e4e4e4fcfcfcffffffffffffefefefffffffe5e5e5
+ffffffffffffe3e3e3fffffffffffff3f3f3fffffffcfcfcf6f6f6fcfcfcfafafaffffff
+ffffffebebebf5f5f5ffffffe6e6e6f6f6f6fffffff0f0f0fefefefefefefefefefdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcffffffdfdfdf040404ffffff
+000000f9f9f9f6f6f6fffffff7f7f7fffffffcfcfceaeaeafafafa121212efefefffffff
+dfdfdffefefef5f5f5edededf3f3f3ecececfffffff5f5f5f9f9f9fffffffdfdfdf9f9f9
+f8f8f8ffffffecececffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcffffff000000131313131313
+000000ffffffffffff0000000f0f0f000000020202fbfbfbfffffff0f0f0fbfbfbffffff
+f1f1f1fcfcfcf8f8f8eaeaeaf0f0f01212120d0d0dffffffe1e1e1fffffffcfcfcffffff
+f6f6f6f1f1f1fffffffffffff3f3f3f3f3f3fffffff8f8f8f9f9f9fffffffffffff9f9f9
+fcfcfcf7f7f7f4f4f4ffffffececececececfffffff5f5f5ffffff0000000000001c1c1c
+0d0d0df6f6f6fffffffdfdfdfffffffefefefffffff8f8f8f4f4f4fdfdfdfcfcfcffffff
+fffffffefefe000000fbfbfbffffffe7e7e7ffffffe2e2e2fdfdfde6e6e6fffffff4f4f4
+ecececffffffddddddfefefefffffffffffffafafaf2f2f2fffffffafafaf9f9f9f8f8f8
+f7f7f7fffffff9f9f9f2f2f2f9f9f9e9e9e9fffffff8f8f8f5f5f5ddddddfffffff2f2f2
+eaeaeaffffffdcdcdcffffffe7e7e7f9f9f9fafafaeaeaeaffffffffffffffffffe1e1e1
+fffffffafafaffffff030303fffffffffffff0f0f0f9f9f9fefefee4e4e4ffffffffffff
+e5e5e5edededffffffeeeeeefffffffbfbfbfffffffefefef3f3f3fffffffffffff3f3f3
+fefefef7f7f7fffffffcfcfcf5f5f5ffffffedededfffffffdfdfdfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcffffff000000fffffff7f7f7
+fdfdfdfffffff6f6f6fbfbfbecececfffffff8f8f8f2f2f2ffffff000000edededf5f5f5
+ffffffefefeffffffffefefef6f6f6fafafaf6f6f6fefefefffffffffffffcfcfce7e7e7
+e8e8e8fbfbfbfbfbfbfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcecececffffff0000000a0a0a
+eeeeeefcfcfcffffffe8e8e8030303000000fffffff3f3f3f5f5f5fffffff0f0f0f9f9f9
+f1f1f1fffffffffffffffffff9f9f9000000000000f3f3f3ffffffeaeaeaffffffffffff
+e6e6e6fefefefcfcfcf6f6f6fffffffffffff9f9f9fbfbfbf1f1f1e2e2e2f4f4f4ededed
+f4f4f4fffffff3f3f3f7f7f7ffffffffffffffffffebebebf5f5f5ffffff181818000000
+f0f0f0ffffffecececf0f0f0ffffffe5e5e5f7f7f7e9e9e9fffffff4f4f4f6f6f6ededed
+ececec0707070c0c0cfdfdfdfdfdfdf1f1f1fffffffffffffffffff5f5f5e3e3e3ffffff
+fffffffbfbfbfdfdfdf0f0f0fafafae9e9e9eeeeeefffffffffffff8f8f8efefeffdfdfd
+f3f3f3fffffff0f0f0e8e8e8f5f5f5fffffff6f6f6f9f9f9ffffffe5e5e5edededffffff
+fcfcfcfffffff3f3f3f7f7f7fefefeffffffffffffffffffe9e9e9f5f5f5ebebebffffff
+fcfcfcfcfcfc030303000000e7e7e7e2e2e2ffffffe0e0e0fefefeffffffe0e0e0fefefe
+fafafafffffffafafae1e1e1ecececffffffefefefffffffffffffebebebe9e9e9ffffff
+fcfcfcfdfdfdf0f0f0fffffff5f5f5e7e7e7ffffffe3e3e3fbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbe0e0e0303030f9f9f9ffffff
+f1f1f1e7e7e7fffffffafafafdfdfdf6f6f6f4f4f4fffffffdfdfd000000fffffff5f5f5
+f4f4f4fefefef2f2f2dcdcdcfffffffffffff9f9f9dededef4f4f4f3f3f3ffffffffffff
+fffffff0f0f0fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcefefefffffff0505050d0d0d
+ffffffe4e4e4ecececffffff0a0a0a101010fffffff5f5f5f2f2f2e8e8e8fffffff5f5f5
+fefefef7f7f7e2e2e2f7f7f7fafafaf1f1f1fffffffefefefefefefffffff0f0f0fcfcfc
+fffffffdfdfdfcfcfcf8f8f8fefefed9d9d9f7f7f7e6e6e6fffffffffffff6f6f6ffffff
+ffffffecececfffffff1f1f1e7e7e7f3f3f3fcfcfcf2f2f2f4f4f4fdfdfd0808080b0b0b
+ffffffe5e5e5f1f1f1fffffff7f7f7fefefeefefefffffffefefeff1f1f1fffffffcfcfc
+ffffff030303131313f5f5f5f5f5f5f2f2f2ffffffd9d9d9e9e9e9f8f8f8fbfbfbf5f5f5
+f1f1f1ffffffe8e8e8fffffff6f6f6fefefefffffff0f0f0eaeaead5d5d5fffffff6f6f6
+f7f7f7e6e6e6f1f1f1fffffff4f4f4e9e9e9f9f9f9f6f6f6e7e7e7fffffff4f4f4fbfbfb
+f4f4f4f6f6f6eeeeeefffffff5f5f5f5f5f5f3f3f3f2f2f2fefefefffffffefefeededed
+efefefffffff0707070f0f0ff9f9f9ffffffddddddfffffffffffff7f7f7fcfcfce3e3e3
+fffffff9f9f9dfdfdffffffffffffffffffffcfcfcd8d8d8fffffff4f4f4ebebebfbfbfb
+e6e6e6fffffff9f9f9f1f1f1ffffffecececfffffffffffffafafafafafafafafafafafa
+fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfbfbfbffffff000000edededf2f2f2
+ffffffffffffd0d0d0ffffffeeeeeeffffffe3e3e3fffffff4f4f4000000e5e5e5f4f4f4
+f4f4f4ffffffe1e1e1ffffffedededeaeaeae8e8e8fffffffcfcfcffffffffffffd4d4d4
+edededffffffe2e2e2fafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcffffffffffff131313000000
+fdfdfdfffffffffffff8f8f8070707000000f5f5f5efefefffffff000000000000060606
+0000000000000c0c0cffffff000000151515000000fffffff4f4f4000000000000000000
+0000000c0c0c000000060606000000fffffff8f8f8eeeeee000000000000000000111111
+050505f6f6f6f3f3f3fffffff6f6f6fffffff0f0f0ffffffffffffe8e8e8040404050505
+f0f0f0f5f5f50101010303030000000a0a0a0c0c0c000000101010161616fdfdfdfcfcfc
+0000000b0b0b0000000000001a1a1affffffbfbfbfffffff0c0c0c050505151515000000
+0c0c0cffffffffffff000000292929010101f3f3f3070707030303ffffffeaeaeaf6f6f6
+0d0d0d000000030303020202f8f8f8ffffffddddddf2f2f2080808060606131313020202
+0d0d0dffffffffffff0000000404041717170101012626260707070000000101010b0b0b
+ffffff0707070000000d0d0d020202000000fffffff5f5f50101010a0a0a050505030303
+0909090a0a0affffffe9e9e90000000000000b0b0bfafafa0c0c0c000000ffffffe9e9e9
+111111080808030303000000000000070707f3f3f3fefefefafafafafafafafafafbfbfb
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefcfcfcfafafa0404040000000e0e0e000000
+e5e5e5fafafa242424000000161616fffffff8f8f8fefefefefefe0b0b0bfafafafbfbfb
+ffffff0303030101010000000e0e0ef4f4f4ffffffe2e2e2000000030303000000ffffff
+fbfbfbfffffffffffff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf4f4f4ededed000000000000
+fffffff2f2f2eaeaeaf9f9f90909090d0d0dfafafafdfdfd020202000000fffffffefefe
+fffffffbfbfb000000edededffffff000000060606fffffff3f3f3ffffff0e0e0e090909
+f2f2f2ffffffebebeb0606060e0e0ed0d0d0f9f9f90b0b0b0c0c0cfffffffefefef7f7f7
+0000001e1e1e020202d6d6d6edededffffffeeeeeefcfcfcdfdfdfffffff000000000000
+fefefeffffffffffff000000010101eeeeeef8f8f8ffffff050505000000ddddddffffff
+fcfcfc161616020202f7f7f7eeeeeefffffff0f0f0000000010101f0f0f0f4f4f4f7f7f7
+151515000000fbfbfbffffff0000000606061c1c1c060606000000fbfbfbf8f8f8080808
+040404f7f7f7010101191919000000ffffffffffff121212000000dcdcdcfefefef0f0f0
+101010000000f1f1f1ffffff0b0b0b040404eaeaead7d7d7f5f5f50d0d0d0000000f0f0f
+ebebebffffff000000050505edededffffffeaeaeaffffff010101000000fffffff8f8f8
+020202000000f8f8f8ffffffefefef1c1c1c000000000000181818000000e7e7e71a1a1a
+070707f0f0f0fffffffffffff2f2f21a1a1af9f9f9fffffffafafafafafafafafafbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefbfbfbfafafaf9f9f9080808fefefeffffff
+ffffff000000000000f4f4f4ffffff000000f7f7f7ffffffffffff0f0f0ffcfcfcf7f7f7
+000000fffffffbfbfbfbfbfb000000fffffff4f4f4030303ffffffedededf4f4f4060606
+fbfbfbffffffe6e6e6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfcfcfcf6f6f6080808030303
+e6e6e6fcfcfcfcfcfcf4f4f4101010000000fbfbfbf8f8f80b0b0b000000000000010101
+000000e8e8e8ffffffffffffe5e5e5060606010101fefefeeeeeeef3f3f3040404040404
+f0f0f0ffffffffffff000000040404fffffffefefe070707000000fafafaffffffeaeaea
+020202111111ecececffffffe6e6e6ffffffeeeeeeffffffffffffdddddd0c0c0c1a1a1a
+e2e2e2eaeaeaffffff010101070707fffffffffffff6f6f6101010000000ffffffe1e1e1
+ffffff000000020202edededffffffd9d9d9191919020202fffffff7f7f7f2f2f2ffffff
+0505050d0d0dfffffff9f9f9242424000000ffffffffffff020202fcfcfc0101010f0f0f
+fffffffdfdfd000000000000171717e4e4e4080808000000ffffffffffffecececffffff
+040404000000ffffffeeeeee000000121212fafafafffffffcfcfcf6f6f6101010030303
+f1f1f1f3f3f31a1a1a000000fcfcfcfbfbfbe7e7e7000000101010ffffffe0e0e0fafafa
+ffffff0b0b0b000000ffffffffffff0000001c1c1cf6f6f6ffffff000000ffffff000000
+000000121212040404000000ffffffebebebf3f3f3fcfcfcfafafafafafafbfbfbfcfcfc
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefbfbfbfafafaffffff050505f3f3f3e2e2e2
+fbfbfbe5e5e5fffffffafafa040404070707ffffffeeeeeef5f5f5000000ffffffdedede
+040404060606fafafaf4f4f4ffffffffffff020202f9f9f9fafafafefefef8f8f80a0a0a
+f2f2f2fcfcfcfffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffffffff000000030303
+ffffffffffffdcdcdcffffff000000040404f9f9f9fffffff8f8f80303030202020b0b0b
+0000001717170b0b0bf2f2f2ffffff090909000000fdfdfdfffffff8f8f80303030d0d0d
+fafafaf5f5f5f0f0f0010101000000ffffffededed000000050505f9f9f9ffffffeaeaea
+292929080808f8f8f8f3f3f3fffffff9f9f9ffffffe6e6e6fffffff1f1f1020202101010
+f3f3f3fcfcfceeeeee000000060606fcfcfcfafafaf0f0f00606060f0f0ff7f7f7fefefe
+fdfdfd0303030a0a0afffffffdfdfdf1f1f1060606090909000000010101101010000000
+0101010b0b0bf1f1f1fbfbfb0d0d0d000000fcfcfcffffffeaeaeafdfdfd040404020202
+ffffffdededefffffffafafaebebebffffff0000001010100d0d0d060606040404010101
+000000202020d3d3d3ffffff000000080808ffffffeeeeeef7f7f7fafafa080808000000
+fffffffbfbfb0000000c0c0cf4f4f4f8f8f8ffffff000000000000fffffffcfcfcf0f0f0
+ffffff0c0c0c000000f5f5f5fbfbfb070707000000ffffffeeeeeefffffff9f9f9ffffff
+0d0d0d0000002d2d2d000000050505080808fbfbfbfffffffffffffdfdfdfbfbfbfbfbfb
+fdfdfdfefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffdfdfdfafafaececec050505f6f6f6fbfbfb
+fffffff1f1f1000000020202f5f5f5141414fafafaecececffffff000000fffffff7f7f7
+ffffff000000070707090909f5f5f5ffffff0909090000001010100000000c0c0c030303
+fefefefffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f1f1f1eeeeee070707020202
+fafafadbdbdbffffffd9d9d9040404040404fffffffafafa000000fffffffafafafbfbfb
+1111110c0c0c000000f3f3f3fafafa060606040404efefeffbfbfbf2f2f20b0b0b070707
+f7f7f7fffffff7f7f7030303000000ebebebf0f0f0ffffff0707070000000a0a0a080808
+000000ffffffffffffffffffefefeff7f7f7fffffffffffff4f4f4ffffff000000000000
+ffffffeeeeeeffffff000000000000ffffffefefefffffff0000000b0b0bfffffffefefe
+f7f7f7020202000000eeeeeeffffffffffff0000000c0c0cfffffffffffff1f1f1ffffff
+f1f1f1e6e6e6fffffff2f2f2000000171717f5f5f5f2f2f2fffffff8f8f8000000080808
+fefefeffffffedededfafafaffffffebebeb0b0b0b010101fafafaf8f8f8fefefeffffff
+f4f4f4fcfcfcffffffd4d4d4181818000000fffffff0f0f0ecececffffff000000050505
+f3f3f3ffffff000000000000f8f8f8fefefedcdcdc000000090909fffffffffffff7f7f7
+ffffff0303031f1f1ffcfcfcfcfcfc000000191919e5e5e5f6f6f6f4f4f4f2f2f2000000
+f6f6f6f7f7f7fcfcfc040404000000060606e5e5e5fffffffbfbfbfafafaf9f9f9fbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffcfcfcf9f9f9ffffff000000ffffffe9e9e9
+f4f4f4080808fffffff6f6f6ffffff000000fffffffcfcfce2e2e2212121ebebebffffff
+fffffffffffff0f0f0f9f9f9000000ffffff000000ffffffe8e8e8ffffffecececffffff
+f2f2f2fffffffffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffffffff0c0c0c000000
+0d0d0dfefefeebebebffffff000000fbfbfbffffffdedede0f0f0ffcfcfcecececffffff
+ffffff000000181818ffffffeaeaea131313000000fffffffffffff8f8f8080808000000
+fcfcfce4e4e4fafafa0e0e0e000000fbfbfbffffffefefef040404fffffff9f9f9f5f5f5
+ffffffffffffe2e2e2f7f7f7ffffffe1e1e1fffffff0f0f0efefefffffff000000111111
+ffffffeaeaeaebebeb020202090909e9e9e9ecececffffff080808000000f7f7f7f3f3f3
+ffffff0303031d1d1df5f5f5f6f6f6f4f4f4000000030303000000fffffff9f9f9e1e1e1
+ffffff060606f0f0f0ffffff0b0b0b060606f7f7f7d7d7d7ffffffdfdfdf0d0d0d040404
+000000f3f3f3fffffff9f9f9050505f3f3f30000000000000d0d0dfcfcfcedededeaeaea
+ffffff000000ffffffffffff000000040404ffffffffffffffffff000000000000ffffff
+edededffffff000000191919fdfdfde5e5e5fffffffdfdfd090909000000f6f6f6ffffff
+000000000000fffffff7f7f7f5f5f50a0a0a010101eeeeeeffffffffffffffffff000000
+ffffffffffffe5e5e5f7f7f70a0a0a141414fbfbfbf2f2f2fbfbfbfafafaf9f9f9fbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffefefefcfcfcf9f9f9f0f0f0070707f3f3f3ffffff
+f4f4f4010101fffffff4f4f4151515000000fffffffffffff6f6f6000000fffffff1f1f1
+000000edededffffffffffff121212ffffff0c0c0c0e0e0effffffd5d5d5ffffff161616
+f6f6f6fffffffafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f0f0f0dededeffffff131313
+0101011d1d1d020202000000fffffffdfdfdfcfcfcffffff090909000000202020000000
+000000000000f5f5f5e5e5e50000000f0f0f1d1d1d000000f1f1f1090909070707080808
+040404ffffff181818000000111111000000edededffffff0707070000000d0d0d0b0b0b
+000000000000f4f4f4ffffffe7e7e7ffffffebebebfffffff8f8f80e0e0e0d0d0d000000
+030303ffffff0707070f0f0f040404010101fafafa020202000000111111161616ffffff
+f5f5f50000000000000000000e0e0efdfdfde3e3e30d0d0d0909090404040a0a0a1a1a1a
+000000020202ffffff0000000505050000000f0f0ffffffff7f7f7fffffffafafa080808
+1212120707070000000f0f0f000000ffffffebebeb0d0d0d0303030303031d1d1d0f0f0f
+030303141414f4f4f4eaeaea0909091010100000000101010a0a0a040404f5f5f5eeeeee
+ffffffffffff000000000000111111141414f5f5f5f0f0f0010101121212040404000000
+050505303030eaeaeae5e5e5181818040404060606020202f6f6f6e1e1e1efefef000000
+0000000000001212120000000d0d0dededede9e9e9fffffffffffffdfdfdfbfbfbfbfbfb
+fdfdfdfefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefcfcfcfbfbfbf9f9f90e0e0e000000000000d3d3d3
+fbfbfbf9f9f90a0a0a000000eaeaea060606040404eaeaea0e0e0e0d0d0d171717f0f0f0
+1c1c1c090909080808000000f9f9f9fffffffdfdfd000000040404080808000000fdfdfd
+eeeeeefffffff9f9f9f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9fffffff7f7f7ffffffe3e3e3
+fbfbfbf9f9f9f5f5f5f4f4f4fbfbfbfefefefbfbfbf3f3f3e2e2e2fffffff3f3f3ffffff
+fffffffbfbfbf9f9f9fffffffefefefffffff7f7f7f6f6f6fffffff1f1f1ffffffffffff
+f2f2f2e7e7e7f3f3f3fffffffffffffefefeffffff0d0d0d000000fffffff1f1f1f4f4f4
+161616000000fffffffffffffdfdfdf9f9f9ffffffecececf5f5f5f7f7f7f8f8f8ffffff
+ffffffeeeeeee3e3e3f3f3f3ffffffffffffe8e8e8ffffffffffffebebebf4f4f4d6d6d6
+f4f4f4f1f1f1fffffff8f8f8e6e6e6fffffffffffffdfdfdfbfbfbfafafaedededffffff
+fffffffcfcfcfbfbfbf1f1f1fffffff4f4f4f6f6f6f6f6f6fbfbfbf3f3f3ffffffebebeb
+e8e8e8fffffffcfcfcfcfcfcfffffffbfbfbf9f9f9fffffff3f3f3fbfbfbefefefffffff
+f4f4f4fbfbfbe9e9e9ffffff080808000000fffffff0f0f0efefefffffffffffffffffff
+f6f6f6fffffffffffff0f0f0f6f6f6ffffffe6e6e6ffffffffffffe9e9e9fbfbfbfefefe
+f6f6f6fbfbfbf5f5f5fdfdfdfefefeffffffebebebffffffd7d7d7fbfbfbfffffff4f4f4
+ffffffe9e9e9fffffffdfdfdefefeffdfdfdfffffff3f3f3fffffffdfdfdfbfbfbfbfbfb
+fdfdfdfefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbf9f9f9f9f9f9f5f5f5fcfcfcffffffffffff
+e9e9e9f6f6f6f6f6f6fffffffbfbfbfffffff2f2f2f7f7f7f6f6f6f7f7f7fafafafafafa
+fdfdfdf4f4f4e5e5e5ffffffffffffdfdfdffafafafffffff0f0f0fffffffffffffefefe
+fffffff1f1f1fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9f0f0f0ffffffdfdfdfffffff
+f4f4f4eeeeeef4f4f4fffffffffffff7f7f7f0f0f0fffffffffffffefefefffffff1f1f1
+e0e0e0eaeaeaeaeaeafdfdfdfffffff8f8f8f1f1f1fefefefafafaf0f0f0fdfdfdffffff
+ffffffecececfffffff7f7f7ddddddeeeeeeffffff080808090909ffffffedededfbfbfb
+040404000000ffffffd8d8d8ffffffececece0e0e0ffffffffffffffffffe9e9e9ffffff
+e6e6e6fffffff4f4f4fffffff1f1f1fefefeedededeaeaeaffffffeeeeeeffffffececec
+fffffffafafaddddddfffffff3f3f3fcfcfcf8f8f8fbfbfbeeeeeefffffff6f6f6e0e0e0
+fcfcfce8e8e8fffffffffffffffffff7f7f7ffffffffffffe0e0e0eeeeeefefefeffffff
+fdfdfdecececfafafae5e5e5ffffffffffffe7e7e7fcfcfcffffffdfdfdff8f8f8e8e8e8
+fffffff0f0f0ffffffd9d9d90a0a0a121212f3f3f3fffffffbfbfbeaeaeae4e4e4f1f1f1
+ffffffededede7e7e7fffffffefefef1f1f1fffffffffffff4f4f4ffffffe1e1e1fefefe
+fffffff7f7f7fdfdfdffffffefefefffffffe7e7e7fffffffdfdfdffffffd4d4d4f2f2f2
+f0f0f0ffffffe6e6e6ffffffebebebf1f1f1f4f4f4f9f9f9fbfbfbfafafaf9f9f9fbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffcfcfcf9f9f9f8f8f8f9f9f9fcfcfcf0f0f0e8e8e8eeeeee
+f8f8f8fffffff5f5f5f4f4f4fafafaf6f6f6ddddddfffffff2f2f2fffffff3f3f3f9f9f9
+f7f7f7fffffffafafafffffff2f2f2fdfdfdf4f4f4f5f5f5fffffffcfcfcffffffe7e7e7
+f1f1f1fffffff8f8f8eeeeeeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffebebebffffffe8e8e8
+fffffffdfdfdffffffe4e4e4e2e2e2ffffffffffffd4d4d4f7f7f7ffffffefefefffffff
+ffffffffffffffffffe9e9e9f7f7f7ffffffebebebfffffff1f1f1ffffffe5e5e5e2e2e2
+ffffffffffffe7e7e7fcfcfcefefeffffffff5f5f5efefef1616160000000909090d0d0d
+000000fffffff9f9f9f2f2f2fffffff6f6f6ffffffecececf3f3f3fffffff7f7f7e7e7e7
+ffffffffffffdbdbdbfbfbfbf6f6f6ddddddffffffffffffe2e2e2fefefefcfcfce2e2e2
+e8e8e8fffffff7f7f7fffffff4f4f4f7f7f7ecececfefefefffffffffffff6f6f6fcfcfc
+ffffffffffffe6e6e6fffffffbfbfbfffffff0f0f0e7e7e7ffffffdcdcdcffffffe4e4e4
+eaeaeaffffffdfdfdffffffff9f9f9edededf7f7f7fffffffbfbfbfffffffffffffcfcfc
+f2f2f2ffffffe5e5e50808080000000000000c0c0c000000eaeaeafbfbfbfffffff7f7f7
+e3e3e3fffffff8f8f8dbdbdbf9f9f9fffffff2f2f2efefeff5f5f5fcfcfcffffffececec
+edededffffffedededfffffffefefef6f6f6fcfcfceeeeeefffffff5f5f5f6f6f6ffffff
+efefeffffffff7f7f7f3f3f3fffffffbfbfbfffffffffffffbfbfbfafafaf9f9f9fbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffbfbfbf8f8f8f8f8f8f9f9f9ffffffe7e7e7fffffffefefe
+f8f8f8fffffff4f4f4fffffffbfbfbfffffffffffff8f8f8fffffff6f6f6ddddddffffff
+fafafaffffffebebebf2f2f2fffffffbfbfbfffffff9f9f9f7f7f7eeeeeeebebebffffff
+f0f0f0fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fdfdfdf9f9f9ffffffedededf9f9f9ffffff
+dfdfdffcfcfcfffffffafafaffffffecececeaeaeafffffff7f7f7fafafafffffff0f0f0
+fefefef3f3f3eeeeeefffffff8f8f8f2f2f2ffffffddddddffffffd5d5d5ffffffeaeaea
+fffffffffffffbfbfbf6f6f6f5f5f5fcfcfcf4f4f4ffffffedededf7f7f7fffffff6f6f6
+fefefef5f5f5fefefef5f5f5fdfdfdf8f8f8f6f6f6fcfcfcf6f6f6ffffffecececffffff
+f0f0f0e3e3e3ffffffeeeeeefffffffffffff4f4f4f6f6f6fffffffcfcfcecececffffff
+fcfcfcf3f3f3ffffffefefeff3f3f3fdfdfdfffffff8f8f8ecececf3f3f3fdfdfdffffff
+f0f0f0fdfdfdfdfdfdfcfcfcf5f5f5f9f9f9fdfdfdffffffebebebffffffe6e6e6fcfcfc
+fdfdfdecececf8f8f8fffffff4f4f4fefefef1f1f1f8f8f8e2e2e2fffffff8f8f8f2f2f2
+fdfdfdffffffe9e9e9fefefefffffffcfcfce8e8e8fffffff5f5f5ffffffe1e1e1eeeeee
+ffffffe5e5e5fffffffffffffffffffffffffffffffbfbfbffffffefefeffdfdfdfdfdfd
+fffffff3f3f3f3f3f3fcfcfcf3f3f3fffffff1f1f1fdfdfdf8f8f8ffffffefefeff9f9f9
+ffffffe6e6e6fffffffffffff6f6f6ecececffffffedededfffffffdfdfdfbfbfbfbfbfb
+fdfdfdfefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffbfbfbf7f7f7f7f7f7f9f9f9e3e3e3ffffffeaeaeaf9f9f9
+fffffffffffff2f2f2f8f8f8f6f6f6fafafaf8f8f8fdfdfdf7f7f7fcfcfcffffffededed
+f2f2f2fcfcfcffffffefefeffffffffffffff5f5f5fefefef8f8f8ffffffe8e8e8ffffff
+fffffff0f0f0fffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000020202fafafafffffffefefefffffffafafaf5f5f5ffffff
+fffffffcfcfcfffffff2f2f2fefefefcfcfcfafafaf9f9f9fbfbfbfbfbfbfbfbfbf9f9f9
+f5f5f5fffffff8f8f8f6f6f6fffffff5f5f5fffffff7f7f7fffffffdfdfdfbfbfbfafafa
+fafafafafafaf9f9f9f8f8f8fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbffffffdfdfdffbfbfbffffff
+fefefeffffffeaeaeafcfcfcf1f1f1f1f1f1f1f1f1ffffffe9e9e9f1f1f1fffffffdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefefbfbfbf8f8f8f6f6f6
+f6f6f6f8f8f8fbfbfbfefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+f3f3f3fbfbfbfffffff6f6f6fbfbfbfffffff2f2f2ecececfffffffdfdfdfbfbfbf9f9f9
+f9f9f9fafafafcfcfcfefefefbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafa
+fafafafafafafafafafafafaf9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefe
+fefefefbfbfbf8f8f8f6f6f6f6f6f6f8f8f8fbfbfbfefefef8f8f8f8f8f8fafafafbfbfb
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfcfcfcfefefef3f3f3fffffff9f9f9fcfcfc
+f5f5f5ffffffebebebfffffff5f5f5fcfcfcfffffffcfcfcf9f9f9f1f1f1f8f8f8f9f9f9
+fcfcfcfbfbfbfafafaf9f9f9f9f9f9fafafafcfcfcfefefef7f7f7f7f7f7f8f8f8fafafa
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202000000000000000000020202fafafafffffffdfdfdf4f4f4ffffffffffffe5e5e5
+f7f7f7f9f9f9f2f2f2f6f6f6fffffffefefefcfcfcfcfcfcfefefefffffffffffffefefe
+ffffffecececfffffffcfcfcfefefeecececeeeeeefcfcfcfcfcfcfbfbfbf9f9f9f9f9f9
+fbfbfbfdfdfdfcfcfcfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf3f3f3fffffffdfdfdf1f1f1
+fbfbfbfefefefdfdfdffffffffffffefefeff3f3f3fafafaf6f6f6ecececffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffdfdfdfbfbfbf9f9f9
+f9f9f9fbfbfbfdfdfdfffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fffffff0f0f0ebebebfffffffffffff8f8f8fdfdfdfffffffefefefdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+fffffffdfdfdfbfbfbf9f9f9f9f9f9fbfbfbfdfdfdfffffffafafafafafafbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffcfcfcfbfbfbfefefefffffffdfdfdf5f5f5ffffff
+f3f3f3fdfdfdfffffff1f1f1fefefef6f6f6fbfbfbf3f3f3fefefef6f6f6ffffffffffff
+fafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafbfbfbfcfcfc
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202000000000000000000030303fafafafffffffcfcfcecececfcfcfcffffffffffff
+f1f1f1fffffff4f4f4fffffffcfcfcfafafaf9f9f9fafafafcfcfcfefefefefefefdfdfd
+fbfbfbf1f1f1ffffffecececfffffff9f9f9fffffffcfcfcf9f9f9f8f8f8f7f7f7f9f9f9
+fcfcfcfffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffe8e8e8fdfdfd
+fffffff7f7f7f9f9f9e3e3e3edededfafafafffffffffffffcfcfcfffffffafafaf9f9f9
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfefefefffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+ddddddffffffe9e9e9fbfbfbf5f5f5fffffff3f3f3fdfdfdfcfcfcfcfcfcfcfcfcfdfdfd
+fefefefefefefffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfefefefffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffcfcfcfbfbfbfdfdfdfffffff6f6f6e0e0e0f7f7f7
+f5f5f5fffffffffffff3f3f3fefefefffffff5f5f5ffffffeaeaeafffffffdfdfdffffff
+f9f9f9fafafafdfdfdfffffffffffffefefefdfdfdfbfbfbfefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fefefefafafaffffffefefeff8f8f8ffffff
+e9e9e9eeeeeef0f0f0e0e0e0f9f9f9f7f7f7f7f7f7f8f8f8fbfbfbfdfdfdfefefefdfdfd
+fffffffafafaf8f8f8fffffff9f9f9efefeff1f1f1fafafaf9f9f9f8f8f8f7f7f7f9f9f9
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefef9f9f9f8f8f8ffffff
+efefefe7e7e7ffffffffffffecececf9f9f9f4f4f4f7f7f7ebebebfffffff5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+ffffffe3e3e3e8e8e8fffffff4f4f4e5e5e5fefefefffffffbfbfbfcfcfcfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffbfbfbfafafafcfcfcefefefffffffffffffffffff
+fffffff8f8f8eeeeeefafafaf2f2f2f5f5f5ffffffe8e8e8fefefefafafaffffffe7e7e7
+fafafafbfbfbfdfdfdfefefefffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9f7f7f7f4f4f4ffffffededed
+ffffffe4e4e4fffffffdfdfdfcfcfcfafafafafafafbfbfbffffffffffffffffffffffff
+fcfcfcfffffffffffff9f9f9fffffffffffffffffff8f8f8fbfbfbfafafaf9f9f9fafafa
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffff8f8f8
+f1f1f1f6f6f6fafafaf2f2f2fffffffbfbfbecececfdfdfdffffffffffffebebebf8f8f8
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+f6f6f6ffffffffffffe0e0e0ffffffe8e8e8eeeeeef7f7f7fbfbfbfcfcfcfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffafafaf9f9f9fbfbfbfefefeedededf7f7f7ebebeb
+f5f5f5fffffff9f9f9fffffff4f4f4fbfbfbfffffff7f7f7e8e8e8e0e0e0f7f7f7ffffff
+fcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fbfbfbf7f7f7e4e4e4fffffffcfcfcf8f8f8
+fffffff6f6f6e1e1e1f1f1f1fbfbfbf9f9f9f9f9f9fafafafdfdfdffffffffffffffffff
+ffffffe7e7e7f9f9f9fcfcfce6e6e6f1f1f10b0b0b000000fdfdfdfbfbfbfafafafbfbfb
+fdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefafafafffffff1f1f1f4f4f4
+fffffffafafae3e3e3fffffff2f2f2f8f8f8fdfdfdf2f2f2ffffffeeeeeefffffff9f9f9
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefeffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+ffffffffffffefefef0000001d1d1d171717e5e5e5fffffffcfcfcfcfcfcfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffefefefafafaf8f8f8fafafafdfdfde6e6e6ffffffffffff
+f5f5f5fbfbfbfffffffafafaffffffebebebe7e7e7fffffffffffffafafae7e7e7e2e2e2
+fcfcfcfbfbfbfafafaf9f9f9fbfbfbfdfdfdfffffffffffffefefefefefefefefefefefe
+fefefefefefefdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fbfbfbf6f6f6ffffffe3e3e3d4d4d4f9f9f9
+e5e5e5ffffffe1e1e1fffffff9f9f9f8f8f8f7f7f7f8f8f8fafafafcfcfcfdfdfdfcfcfc
+edededffffffffffffffffffffffff000000000000131313fdfdfdfbfbfbfafafafbfbfb
+fdfdfdfffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefef4f4f4fffffff9f9f9ffffff
+f8f8f8ebebebfffffffefefefafafaffffffefefeffffffff1f1f1eaeaeafffffff8f8f8
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fefefef4f4f4ffffffffffff0000001b1b1bf5f5f5efefeffefefefdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffefefef9f9f9f7f7f7fafafae6e6e6ffffffececece9e9e9
+ffffffe1e1e1eeeeeeebebebeeeeeef8f8f8ffffffe7e7e7f8f8f8f4f4f4fffffffcfcfc
+f9f9f9f9f9f9f9f9f9fafafafcfcfcfdfdfdfffffffffffffefefefefefefefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fafafaf5f5f5f3f3f30a0a0a2222220c0c0c
+000000000000000000010101fdfdfdfcfcfcfafafafbfbfbfefefeffffffffffffffffff
+ffffffffffffebebebfffffffbfbfbfafafa030303070707fbfbfbfafafaf9f9f9fbfbfb
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff9f9f9ffffff
+e4e4e4fffffff3f3f3020202000000010101000000f3f3f3f9f9f9fffffff5f5f5fefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+eeeeeef2f2f2f8f8f8e7e7e71b1b1b000000fffffffdfdfdfffffffdfdfdfbfbfbf9f9f9
+f9f9f9fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffefefef9f9f9f7f7f7f9f9f9ffffffececec0606060b0b0b
+efefeffffffffffffff7f7f7ffffffe6e6e6000000151515000000fffffff4f4f4f1f1f1
+f5f5f5f7f7f7fafafafcfcfcfefefefefefefdfdfdfcfcfcfefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfdfdfdfdfdfd000000000000
+ffffffffffff000000030303000000050505f0f0f0f9f9f9fffffffefefef3f3f3ffffff
+fffffffafafafffffff6f6f6f1f1f1fdfdfd0b0b0b141414fbfbfbf7f7f7fffffff4f4f4
+fdfdfdf3f3f3fffffff8f8f8fafafafffffff1f1f1f6f6f6fffffffffffffdfdfdffffff
+fffffffcfcfcf7f7f7fffffff3f3f3f7f7f7fffffff2f2f2fcfcfcfffffff7f7f7fefefe
+fffffffbfbfbffffffffffff030303000000fcfcfcfffffffffffff7f7f7ffffffffffff
+ebebebfffffffbfbfbffffffffffffffffffeaeaeaffffffffffffe8e8e8fffffffafafa
+fefefefbfbfbfffffff6f6f6f8f8f8ffffffebebebfffffff8f8f8ffffffe5e5e5fefefe
+f2f2f2ffffffe7e7e7fcfcfc0d0d0d0c0c0cf9f9f9f4f4f4fcfcfcfcfcfcfdfdfdfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf8f8f8f6f6f6ffffff010101f5f5f5080808
+f3f3f3f0f0f0f3f3f3fdfdfdf6f6f6121212fcfcfcfffffffcfcfc000000fffffffbfbfb
+fffffffefefefcfcfcfcfcfcfefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbeeeeeeffffff090909000000
+f4f4f4f4f4f4fdfdfd040404000000060606fffffffbfbfbeaeaeafdfdfdfafafaffffff
+fffffffefefef9f9f9ffffffffffffffffff000000000000fffffff8f8f8ffffffffffff
+f7f7f7fffffffdfdfdfafafafffffff2f2f2f9f9f9fffffff7f7f7ffffffffffffebebeb
+f4f4f4fffffffffffff7f7f7fffffffffffff8f8f8fbfbfbffffffedededf4f4f4ffffff
+f6f6f6efefeffffffff5f5f50000000c0c0cfffffff9f9f9f9f9f9f4f4f4fcfcfcfdfdfd
+fffffff7f7f7fdfdfdf4f4f4f8f8f8f5f5f5fbfbfbf6f6f6f0f0f0fffffffbfbfbffffff
+fffffffffffffffffffffffffffffffcfcfcffffffe3e3e3fefefeffffffffffffffffff
+fafafaf7f7f7ffffffececec171717000000e5e5e5fffffffbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffefefefdfdfdfbfbfbfafafafcfcfcdfdfdfffffff000000
+ffffffffffffedededf6f6f6040404f3f3f3fefefefffffff5f5f5ffffff040404ececec
+fefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfffffffafafa0000001a1a1a
+fcfcfcfcfcfcfffffff7f7f7000000000000000000f0f0f0fffffff4f4f4202020000000
+0000000505050b0b0be7e7e7ffffffdadada2323230d0d0d090909000000000000060606
+000000f9f9f9fbfbfb0707070a0a0a000000f4f4f4e8e8e80c0c0c0000001c1c1cfbfbfb
+fbfbfbededed121212030303212121000000000000fffffff3f3f3fdfdfdf8f8f8fdfdfd
+f4f4f4ebebebfcfcfcffffff0c0c0c0b0b0befefeff4f4f4fffffffffffff6f6f6fdfdfd
+e5e5e5ffffff0000000a0a0a040404121212101010ffffff0000000505051b1b1b000000
+f1f1f1030303080808000000080808f7f7f7dfdfdfffffff010101000000121212000000
+000000ececece8e8e8ffffff0d0d0d0a0a0ae5e5e5fafafafafafafbfbfbfdfdfdffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffefefefdfdfdfbfbfbfafafae6e6e6ffffffededed000000
+f1f1f1fbfbfbfcfcfcfafafa0d0d0dfefefee3e3e3fffffffdfdfdececec000000fdfdfd
+fcfcfcfafafaf9f9f9fafafafdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfdfdfdfdfdfd090909000000
+ffffffffffffeaeaeaf8f8f80d0d0d1212121b1b1bffffffeaeaea131313000000ffffff
+ffffffe9e9e90a0a0a0b0b0bedededffffff020202000000fffffffafafaffffff040404
+0d0d0d0a0a0af4f4f4ffffff090909090909fffffffafafaf7f7f70a0a0a020202fbfbfb
+ffffff000000050505f0f0f0efefefffffff050505000000080808f0f0f0ffffffd4d4d4
+ffffffffffffdededefdfdfd0000000d0d0dfffffff9f9f9efefeffcfcfcffffffffffff
+ffffff000000040404f5f5f5f3f3f3ececec040404060606ffffff060606000000ffffff
+eaeaeaffffff191919080808e5e5e5fffffffdfdfd0d0d0d000000f7f7f7f3f3f3ffffff
+0505051b1b1beaeaeafcfcfc000000000000fffffff2f2f2f9f9f9fbfbfbfdfdfdffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf8f8f8f6f6f6ffffffe4e4e4f8f8f8101010
+f4f4f4e9e9e9fffffff6f6f6000000fffffffdfdfdf1f1f1f0f0f0ffffff000000f7f7f7
+fafafaf9f9f9f8f8f8fafafafdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfafafafcfcfc090909000000
+ffffffffffffe8e8e8f7f7f7000000050505000000f8f8f8000000131313fffffff2f2f2
+f7f7f7fefefe000000131313ffffffececec101010000000ffffffdcdcdcffffffffffff
+070707000000fffffffafafa000000000000fefefefffffffcfcfc000000111111ffffff
+f2f2f2020202050505fffffffffffff8f8f8000000141414fbfbfbeaeaeaedededffffff
+f4f4f4ecececfffffff4f4f4141414010101f2f2f2fcfcfcfdfdfdf9f9f9f8f8f8efefef
+000000232323dededeffffffffffffffffff000000080808f7f7f7141414131313000000
+fefefefefefe000000f8f8f8f6f6f6ffffff000000070707fffffffdfdfdffffffd6d6d6
+000000060606f6f6f6ffffff0000000e0e0effffffdcdcdcf9f9f9fafafafcfcfcfefefe
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf8f8f8f6f6f6fdfdfdf4f4f4ffffff000000
+fffffff8f8f8f7f7f7fafafa000000fffffffbfbfbeeeeeeecececffffff000000fbfbfb
+fafafaf9f9f9f8f8f8fafafafdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfefefef9f9f9000000191919
+f8f8f8f7f7f7fffffff7f7f7060606000000010101ffffff0b0b0b000000000000000000
+0404040b0b0b0d0d0d010101fefefef3f3f3151515010101fdfdfdfffffffffffff9f9f9
+000000282828c8c8c8ffffff050505050505e4e4e4eaeaeaffffff1d1d1d000000ffffff
+ffffff0000000e0e0ed9d9d9ffffffffffff000000010101fefefefffffffffffffcfcfc
+e8e8e8ebebebfffffff5f5f50000000d0d0dffffffebebebfffffffcfcfcffffffffffff
+121212010101050505131313000000000000090909000000f2f2f2ffffff040404060606
+f7f7f7070707000000ffffffe6e6e6fafafa0000000e0e0e0b0b0b000000000000202020
+0b0b0b080808f4f4f4fbfbfb0c0c0c000000f1f1f1fffffffbfbfbfbfbfbfbfbfbfcfcfc
+fdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffefefefdfdfdfbfbfbfafafaf2f2f2fdfdfde9e9e9000000
+fffffff8f8f8fdfdfdffffff141414ffffffe1e1e1fffffff6f6f6e9e9e9010101ffffff
+fcfcfcfafafaf9f9f9fafafafdfdfdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbeaeaeaffffff0d0d0d000000
+f2f2f2efefeffcfcfc070707020202050505ffffffe6e6e60000000d0d0dfffffffbfbfb
+fbfbfbededede7e7e7fffffff4f4f4f2f2f20000000c0c0cf4f4f4fdfdfde5e5e5fefefe
+111111000000ffffffffffff000000212121fefefefffffffefefe000000323232f0f0f0
+e8e8e8ffffff0000000000000606060101010f0f0ff8f8f8f2f2f2eaeaeaecececffffff
+fffffff9f9f9fefefeeeeeee1e1e1e000000f4f4f4ffffffededed000000080808ebebeb
+151515000000ffffffeeeeeef4f4f4ffffffe9e9e9ffffffffffffffffff0707070b0b0b
+0c0c0c1f1f1fe6e6e6efefeffffffffafafa0808080b0b0bf1f1f1ffffffe2e2e2ebebeb
+f6f6f6fffffffbfbfbf4f4f4000000151515f6f6f6f5f5f5fcfcfcfbfbfbfafafafafafa
+fafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffefefefdfdfdfbfbfbfafafafffffff7f7f7f1f1f1171717
+fbfbfbf1f1f1fdfdfdfbfbfb080808f5f5f5fcfcfcfbfbfbf1f1f1ffffff050505f0f0f0
+fefefefcfcfcfbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfbfbfbffffff010101010101
+fffffffefefe000000090909090909040404f8f8f8ffffff111111020202000000f3f3f3
+f1f1f1fffffff8f8f8000000ffffffffffff000000000000fffffff6f6f6ffffff040404
+010101ffffffeeeeeee4e4e40101010000000404040000000000000d0d0d010101fcfcfc
+fffffffafafa030303f8f8f8fafafaffffffe4e4e4ffffffefefeffffffff9f9f9f1f1f1
+fffffff8f8f8f7f7f7ffffff0202020c0c0cf4f4f4eaeaeafefefe080808070707ffffff
+000000000000000000fffffffdfdfdf8f8f8ffffff000000f8f8f8fdfdfd000000191919
+000000000000fffffff0f0f0f5f5f5ffffff0000000f0f0f050505efefeffffffff5f5f5
+ffffff000000fffffffdfdfd040404020202ffffffe5e5e5fdfdfdfcfcfcf9f9f9f8f8f8
+f9f9f9fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf8f8f8f6f6f6ececece2e2e2ffffff000000
+fafafafffffff7f7f7fbfbfbf4f4f4111111fcfcfcfffffffdfdfd000000fffffffafafa
+fffffffefefefcfcfcfcfcfcfefefefffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9efefef090909010101161616
+000000111111131313000000fffffff0f0f0edededffffffebebeb0606061b1b1b000000
+000000080808000000111111efefeffbfbfb0707070808080303030707070b0b0b040404
+f5f5f5f5f5f5f9f9f9f8f8f8fdfdfd0808080000000c0c0cfafafa161616060606060606
+f6f6f6ffffff0f0f0f030303000000010101000000010101f7f7f7fffffff2f2f2f9f9f9
+fbfbfbffffffd0d0d01b1b1b131313000000070707000000101010000000151515efefef
+f2f2f2101010020202090909000000131313000000111111f7f7f7f7f7f7ffffff0a0a0a
+0a0a0afffffff7f7f7f7f7f7fffffffafafaffffff000000080808030303000000030303
+040404000000fcfcfc0e0e0e0000000f0f0f000000fcfcfcf8f8f8f9f9f9f9f9f9fafafa
+fbfbfbfcfcfcfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff1717170000000d0d0d
+080808f2f2f2f8f8f8eaeaeaffffffeeeeee0c0c0c1d1d1d000000fffffff4f4f4fdfdfd
+f8f8f8f8f8f8fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fffffff1f1f1f9f9f9f0f0f0
+ffffffffffffdcdcdcfffffff4f4f4fffffffffffff5f5f5ffffffdcdcdcffffffffffff
+fffffff4f4f4fffffff3f3f3f0f0f0ffffffebebebfdfdfdfffffffdfdfdfbfbfbefefef
+fffffffefefefefefeedededf0f0f0ffffffffffffe8e8e8fffffff8f8f8f3f3f3fdfdfd
+ffffff000000070707f8f8f8f0f0f0ffffff1f1f1f020202fffffffefefef0f0f0f9f9f9
+e9e9e9f1f1f1ffffffd8d8d8fdfdfdf9f9f9fffffff4f4f4ffffffffffffe0e0e0ffffff
+ffffffe2e2e2fffffffdfdfdf4f4f4fffffffefefefafafaffffffecececfffffff0f0f0
+f0f0f0ffffffecececffffffe9e9e9efefefffffffe4e4e4ffffffffffffeaeaeaffffff
+edededfffffff5f5f5ebebebffffffeeeeeef5f5f5fefefefbfbfbfbfbfbfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff1f1f1f5f5f5ffffff
+e5e5e5ffffffffffffffffffffffffeeeeeef6f6f6eaeaeafffffffffffffffffff2f2f2
+fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefafafaeaeaeaffffffffffffe4e4e4
+f3f3f3fafafae5e5e5fefefefffffffefefefffffff9f9f9f5f5f5fcfcfcefefeff0f0f0
+fffffffafafafafafafffffff8f8f8f9f9f9fffffff8f8f8f7f7f7ecececf7f7f7ffffff
+e0e0e0fcfcfcfffffff8f8f8f8f8f8fffffff9f9f9fefefef9f9f9fffffff5f5f5fbfbfb
+f8f8f80a0a0a000000ffffffffffffededed000000070707fefefefffffff9f9f9ffffff
+ffffffecececffffffffffffffffffebebebf4f4f4f2f2f2f1f1f1fffffffafafaf0f0f0
+e9e9e9fffffff6f6f6f2f2f2f6f6f6f0f0f0f9f9f9fffffffdfdfdfffffffafafaffffff
+fffffffafafafffffffdfdfdffffffffffffebebebfffffffefefefffffff6f6f6fcfcfc
+fdfdfdfffffff8f8f8fffffffefefeffffffeaeaeaf3f3f3fdfdfdfefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffebebebfffffff2f2f2f5f5f5
+ffffffe8e8e8fbfbfbedededfffffffcfcfcfbfbfbf9f9f9f4f4f4f0f0f0f5f5f5fdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fafafafffffffbfbfbfffffff4f4f4fbfbfbffffff
+f5f5f5fdfdfdfffffff2f2f2ffffffecececf3f3f3fffffffffffffffffff3f3f3ffffff
+ecececffffffebebebf4f4f4fffffffbfbfbf5f5f5f4f4f4fffffffffffffcfcfcf3f3f3
+fffffffdfdfdfcfcfcf5f5f5fffffff1f1f1fcfcfcf0f0f0fffffff6f6f6fffffff2f2f2
+ebebebffffff030303000000060606000000191919fafafaf8f8f8fefefeedededf7f7f7
+fffffff9f9f9fffffffafafaffffffefefeff7f7f7fffffffffffff4f4f4ffffffffffff
+ffffffffffffedededfffffffffffff4f4f4f6f6f6fffffffffffff3f3f3fdfdfdf0f0f0
+f0f0f0fdfdfdf3f3f3ffffffebebebfffffffcfcfcf5f5f5f9f9f9f9f9f9fffffff2f2f2
+f7f7f7f5f5f5fffffff9f9f9f5f5f5f3f3f3fdfdfdfffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffedededfffffff3f3f3
+fdfdfdf5f5f5fffffffcfcfcf9f9f9fffffffffffff4f4f4fcfcfcfffffffffffff7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcefefeff6f6f6f4f4f4ffffff
+fffffff8f8f8fffffffffffffffffffffffffcfcfcf1f1f1f6f6f6f8f8f8fdfdfdf6f6f6
+ffffffffffffffffffffffffecececedededfcfcfcfffffff2f2f2ffffffffffffe8e8e8
+fffffff7f7f7fafafafffffff4f4f4fafafafffffffffffff5f5f5f5f5f5ffffffffffff
+fffffffafafae5e5e5fffffff9f9f9f6f6f6ffffffefefeff8f8f8fffffff8f8f8f2f2f2
+f8f8f8f9f9f9fffffffffffff6f6f6fffffffafafafcfcfcfffffffbfbfbfbfbfbeaeaea
+edededf6f6f6fffffffefefefafafafefefefffffff9f9f9ffffffeeeeeefffffffdfdfd
+fdfdfdffffffeeeeeefffffffdfdfdf0f0f0fffffffffffffffffff0f0f0fefefef6f6f6
+fffffffcfcfcfbfbfbfdfdfdfffffff6f6f6ffffffefefeffefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffe4e4e4ffffffffffff
+f2f2f2fdfdfdfffffff5f5f5fffffff7f7f7fffffff1f1f1fefefee9e9e9fdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfffffffffffffdfdfdf2f2f2
+f8f8f8f9f9f9fbfbfbfafafaeeeeeefefefefffffffcfcfcfffffff7f7f7fffffff4f4f4
+fcfcfce3e3e3f9f9f9fcfcfcf8f8f8fffffffefefef3f3f3fffffffffffffffffffefefe
+f7f7f7fbfbfbfefefef9f9f9ffffffefefeff2f2f2fcfcfcfffffff0f0f0f2f2f2f0f0f0
+fefefed3d3d3fffffff2f2f2fcfcfcfffffff8f8f8fdfdfdfefefefefefefcfcfcffffff
+fffffff6f6f6eeeeeef6f6f6f3f3f3fffffff7f7f7ebebebf9f9f9fefefeffffffffffff
+fffffff6f6f6fffffff7f7f7e8e8e8fdfdfdfdfdfdf8f8f8f7f7f7fffffffdfdfdf0f0f0
+f0f0f0fdfdfdfffffff7f7f7ffffffefefeff9f9f9f9f9f9f8f8f8fffffffafafaffffff
+fefefeedededfffffffafafaf0f0f0fffffff0f0f0fdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfceaeaeaefefef
+fbfbfbfffffffffffffffffff7f7f7fdfdfdf5f5f5fffffffafafaffffffeeeeeef9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefefafafaf3f3f3fefefeffffff
+fefefeffffffffffffeaeaeafffffffafafaf5f5f5fafafaffffffecececffffffffffff
+fffffffffffffffffff7f7f7fffffffffffff4f4f4fffffffffffff9f9f9f9f9f9ffffff
+f6f6f6fffffffffffff9f9f9f2f2f2f6f6f6ffffffeaeaeafffffffbfbfbfffffff8f8f8
+fffffff2f2f2ffffffefefeff8f8f8fbfbfbf2f2f2f7f7f7ffffffededede8e8e8efefef
+f9f9f9fefefefefefefffffff4f4f4f9f9f9fffffffffffffffffff3f3f3edededfefefe
+fefefeeaeaeaf5f5f5fffffffffffffffffff6f6f6f9f9f9fffffffdfdfdf1f1f1ffffff
+fffffff1f1f1fdfdfdfffffff7f7f7fffffffffffffdfdfdfafafafffffff7f7f7ededed
+ffffffffffffecececfbfbfbfafafafbfbfbfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffeeeeeefffffffffffffbfbfb
+fffffff0f0f0f3f3f3fffffffffffffcfcfcf8f8f8e4e4e4f6f6f6fffffffffffff7f7f7
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefefffffffafafafffffffbfbfb
+fdfdfdfafafaefefeffffffffffffffefefefffffffffffffefefefffffff6f6f6fbfbfb
+fdfdfdfffffffdfdfdfffffffcfcfcf7f7f7fefefefbfbfbf6f6f6fffffffffffff4f4f4
+fefefef3f3f3fbfbfbfffffffffffffffffff9f9f9fffffffefefef6f6f6eeeeeefdfdfd
+fdfdfdfefefeefefeffffffff9f9f9ffffffe1e1e1efefeff4f4f4f7f7f7fffffffefefe
+f6f6f6fffffffffffffafafafffffff1f1f1fefefef8f8f8f2f2f2fffffffffffffefefe
+f9f9f9fffffffbfbfbf8f8f8fdfdfdf4f4f4f8f8f8fffffffffffffffffffffffff5f5f5
+f5f5f5fffffffffffffffffffafafafffffffffffff6f6f6fffffff0f0f0ffffffffffff
+f3f3f3fffffffffffffbfbfbffffffefefeffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffecececfefefeeeeeee
+fffffffffffffdfdfdf9f9f9fbfbfbfdfdfdfffffffffffffffffffdfdfdfffffffbfbfb
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffdfdfdf7f7f7fffffff3f3f3ffffff
+fffffffffffff3f3f3fffffffffffff1f1f1fefefeffffffedededf5f5f5fffffffefefe
+fefefefdfdfdf5f5f5fffffffcfcfcfbfbfbfafafaffffffffffffeeeeeeffffffeaeaea
+ffffffffffffe9e9e9fffffffffffffffffffffffff5f5f5fffffff8f8f8fbfbfbf9f9f9
+eaeaeaffffffecececf3f3f3fffffff9f9f9ffffffedededffffffebebebfdfdfdffffff
+ecececf0f0f0ffffffe7e7e7fcfcfcfffffff7f7f7f9f9f9fffffff3f3f3fffffff6f6f6
+ffffffeeeeeefffffffbfbfbf7f7f7ffffffedededfffffff8f8f8fafafafffffff6f6f6
+fffffffbfbfbfffffffefefefdfdfdeaeaeaffffffddddddfffffffffffff7f7f7ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefffffffffffffefefefdfdfdfcfcfcfbfbfb
+fdfdfdfdfdfdfcfcfcfbfbfbfffffffffffff7f7f7eeeeeefdfdfdfffffff6f6f6ffffff
+fdfdfdf1f1f1fffffff1f1f1f7f7f7ffffffecececfbfbfbfffffff6f6f6fefefefcfcfc
+fdfdfdfffffffffffffafafaf8f8f8fffffff8f8f8f7f7f7fffffff2f2f2fcfcfcffffff
+ffffffffffffffffffefefeffffffffcfcfcf8f8f8fffffffdfdfdffffffffffffffffff
+fffffffcfcfcfcfcfcf9f9f9ffffffeeeeeef3f3f3fffffffbfbfbf7f7f7fffffffafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fefefefcfcfcf5f5f5fffffff7f7f7ffffff
+f2f2f2f3f3f3fffffffffffff6f6f6ffffffecececf6f6f6ffffffffffffe9e9e9f8f8f8
+fefefefffffffffffff9f9f9fffffffffffff6f6f6f3f3f3fafafafffffff4f4f4fefefe
+fffffff4f4f4ffffffe9e9e9fffffffafafaf5f5f5fdfdfdfbfbfbf1f1f1fffffff8f8f8
+ffffffdededefffffffdfdfdebebebfcfcfce9e9e9fffffffffffffbfbfbfffffff4f4f4
+fcfcfce8e8e8eeeeeefffffff6f6f6fffffffffffff0f0f0fdfdfdf0f0f0f8f8f8ffffff
+f9f9f9fffffff7f7f7fffffffffffffcfcfcfffffff4f4f4fffffffafafaf9f9f9ffffff
+f6f6f6f8f8f8f9f9f9f8f8f8f8f8f8fffffffffffffffffffffffff1f1f1ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefffffff4f4f4fffffffffffffcfcfc
+fffffffcfcfcf8f8f8fffffff0f0f0fffffff9f9f9fffffff9f9f9fffffffdfdfdfbfbfb
+fffffffffffff8f8f8ffffffffffffefefefffffffebebebf7f7f7fffffffbfbfbffffff
+f3f3f3fffffffefefefdfdfdfffffffffffffffffff4f4f4e6e6e6fffffffffffffefefe
+f4f4f4fafafafffffffffffffdfdfdf4f4f4fffffffffffff6f6f6ffffffffffffffffff
+f6f6f6fffffffffffffefefef2f2f2fffffffbfbfbf4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000010101f7f7f7fcfcfcfafafafffffff1f1f1fafafaffffff
+e6e6e6fffffff1f1f1fbfbfbffffffeaeaeafafafafcfcfcfffffff1f1f1fffffff7f7f7
+fffffff4f4f4fcfcfcffffffedededfcfcfce2e2e2ffffffffffffeaeaeaedededf6f6f6
+fffffff3f3f3d6d6d6fffffffafafafefefeffffffffffffffffffffffffe8e8e8ffffff
+f3f3f3edededfafafafbfbfbfbfbfbfffffffcfcfcfcfcfcfbfbfbfdfdfd181818010101
+f3f3f3fffffffcfcfcf6f6f6ffffffe8e8e8eeeeeefffffff5f5f5fffffff8f8f8e7e7e7
+f6f6f6fcfcfcfbfbfbf9f9f9efefeffffffff0f0f0fafafaf4f4f4fffffff7f7f7eaeaea
+fcfcfcffffffffffffffffffffffffebebebe7e7e70000000c0c0c010101fdfdfdf1f1f1
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefdfdfdffffffefefeffbfbfbffffff
+f2f2f2fafafaffffffe7e7e7fffffffefefeecececffffffebebebf6f6f6fffffffafafa
+f4f4f4fffffff9f9f9ffffff000000000000fffffffbfbfbf6f6f6fcfcfceeeeeef7f7f7
+fffffff3f3f3fefefef9f9f9f4f4f4f1f1f10202021d1d1deaeaea000000f3f3f3eaeaea
+fffffffefefef2f2f2fefefeefefefecececfefefee8e8e8fafafaf1f1f1fffffff1f1f1
+fcfcfce5e5e5f9f9f9fffffff0f0f0fffffff8f8f8000000000000f7f7f7fffffff8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101010101000000000000f6f6f6fafafaf8f8f8e7e7e7ffffffffffffefefef
+fdfdfde0e0e0f2f2f2ffffffededede9e9e9ffffffeeeeeee4e4e4ffffffeaeaeaffffff
+edededfffffffefefed4d4d4fdfdfdfffffff4f4f4eeeeeeffffffffffffffffffffffff
+fffffffffffff8f8f8eaeaeae7e7e7ffffffcfcfcffefefef7f7f7e9e9e9fffffff4f4f4
+f1f1f1ffffffecececf1f1f1fffffff3f3f3f7f7f7f2f2f2f3f3f3fefefe000000000000
+f3f3f3f2f2f2fffffffafafaf9f9f9fffffffffffff2f2f2fcfcfcf2f2f2fffffff7f7f7
+ffffffeaeaeafffffff8f8f8fcfcfcf2f2f2fffffffefefefefefeffffffffffffe8e8e8
+fffffff5f5f5fffffffafafaf8f8f8fafafa000000ffffff000000111111fffffff7f7f7
+fafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfce2e2e2f9f9f9fafafaf7f7f7
+fffffffbfbfbf6f6f6fffffffcfcfcf9f9f9fffffffcfcfcfffffffbfbfbfffffffefefe
+fffffff7f7f7f7f7f7e9e9e9ffffff0d0d0dfffffff1f1f1fafafafffffffafafae8e8e8
+eaeaeaedededf9f9f9ffffffffffff000000fefefe000000ffffff121212f9f9f9ffffff
+f0f0f0f3f3f3f6f6f6fffffffffffffffffffffffff8f8f8fffffff7f7f7fffffff4f4f4
+fffffff5f5f5fffffffefefeffffffffffffffffffe7e7e7101010fffffff7f7f7fdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101010101000000000000f6f6f6fafafaf8f8f8fcfcfcf7f7f7ffffffffffff
+1b1b1b1919190000000c0c0c000000fdfdfdfffffffefefef7f7f7000000020202000000
+000000020202000000222222f0f0f0ecececffffffececec0000000202021a1a1a000000
+0909090000000b0b0bffffffffffffe7e7e7000000151515000000101010fdfdfdededed
+fefefef6f6f6fbfbfbf7f7f7f8f8f8f9f9f9f4f4f4fffffffffffffafafa101010161616
+ffffffeaeaeaf2f2f2f8f8f8010101ebebebf7f7f7ffffff0c0c0c040404080808111111
+0000000404040c0c0cfffffffffffff9f9f9fdfdfde5e5e5ffffffe3e3e3fafafaffffff
+fbfbfbe9e9e9f7f7f7f3f3f3ffffff000000090909f6f6f6090909000000e2e2e2f4f4f4
+fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfafafafffffffffffff9f9f9f9f9f9
+fffffffefefef0f0f0eaeaeaf1f1f1fffffffffffff6f6f6f2f2f2f5f5f5e0e0e0ffffff
+fffffffefefef6f6f6ffffffe2e2e2000000f1f1f1fefefef2f2f2fcfcfcfafafaffffff
+f3f3f3ffffffe3e3e3e3e3e3000000ffffffecececf4f4f4f5f5f5000000eaeaeaf1f1f1
+ffffffffffffffffffebebebeeeeeef1f1f1e3e3e3ffffffebebebf9f9f9eeeeeef5f5f5
+f1f1f1fffffff6f6f6e0e0e0fefefee2e2e2eeeeeeffffff000000fefefeffffffececec
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000010101f7f7f7fcfcfcfafafafbfbfbf2f2f2111111000000
+000000fffffffffffff3f3f30d0d0d030303000000f8f8f8ffffffeeeeee191919111111
+fbfbfb070707111111000000080808f0f0f0f0f0f0fffffff5f5f5121212000000fbfbfb
+fcfcfc1010100e0e0e040404eaeaeaffffffffffff000000040404f4f4f4e9e9e9ffffff
+f5f5f5ebebebfafafafcfcfce8e8e8fdfdfdffffffd3d3d3ffffffececec000000000000
+e8e8e8fffffffdfdfd0a0a0a000000ffffffefefefedededfdfdfd0c0c0c111111ffffff
+010101252525000000000000fffffffffffffafafaf0f0f0fafafafffffff1f1f1f2f2f2
+efefeffdfdfdf0f0f0ffffffececec040404000000f0f0f0fffffffefefef1f1f1ffffff
+fbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfafafaf9f9f9ebebebf4f4f4fcfcfcfdfdfd
+f8f8f8f6f6f6fafafaffffffe9e9e9f8f8f8eaeaeafffffff5f5f5fffffff0f0f0ffffff
+f0f0f0e9e9e9fffffff2f2f2fbfbfb090909ffffffefefefffffffe2e2e2f6f6f6fbfbfb
+f9f9f9e4e4e4f1f1f1ffffff000000ffffffebebebfffffff3f3f3f3f3f3fffffff2f2f2
+fdfdfdf8f8f8fefefee9e9e9fffffffdfdfdf7f7f7fffffffffffffffffffffffff8f8f8
+f4f4f4e7e7e7f8f8f8ffffffffffffe7e7e7ffffffececec000000fffffff0f0f0fdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fefefefcfcfcffffffffffff000000000000
+ffffffdededee8e8e8f8f8f8f2f2f2000000222222f6f6f6f7f7f7ffffff070707000000
+f7f7f7ffffff0b0b0b000000000000fffffffdfdfdf7f7f7ffffff0000000d0d0dfdfdfd
+e9e9e9000000111111000000eeeeeefffffff8f8f80101011d1d1dfcfcfcedededf7f7f7
+fffffffffffffffffff8f8f8f1f1f1f2f2f2fdfdfdfffffffcfcfcfffffffffffff1f1f1
+fefefef8f8f8f4f4f4000000000000fbfbfbebebebffffffffffff000000000000f9f9f9
+fefefe000000171717101010fcfcfcf8f8f8f5f5f5fffffff0f0f0eaeaeaf8f8f8fcfcfc
+fffffff8f8f8f3f3f3eaeaeafcfcfc121212000000ffffffdbdbdbf9f9f9f7f7f7f8f8f8
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffcfcfcf9f9f9f8f8f8fdfdfdfffffffffffffcfcfc
+fdfdfdf6f6f6f1f1f1f8f8f8fffffffffffff5f5f5ffffffedededdfdfdfffffffe3e3e3
+fffffffffffffffffff9f9f9ffffff000000e7e7e7fffffffafafafdfdfdfdfdfdffffff
+f7f7f7efefefffffffdfdfdf0c0c0ceeeeeeffffffd9d9d9fefefeffffffe2e2e2fafafa
+f4f4f4eeeeeefbfbfbf8f8f8ffffffdadadaffffffe9e9e9e7e7e7efefeff4f4f4ffffff
+fffffffffffff6f6f6ebebebe4e4e4ffffffddddddffffff090909fffffff5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffdfdfdf2f2f20707070c0c0c040404
+e9e9e9ffffffe5e5e5f0f0f0fcfcfc000000070707000000f7f7f7ffffff0000000c0c0c
+fdfdfdefefef0000000a0a0a232323f4f4f4f1f1f1e9e9e9f0f0f00202020e0e0eefefef
+ffffff0404040303030e0e0effffffe8e8e8fafafa101010000000fffffff8f8f8080808
+0e0e0e0000001c1c1c0000001a1a1a0e0e0e000000fafafaf4f4f4000000000000020202
+fbfbfbffffff000000080808060606000000070707ffffffeaeaea0d0d0d0d0d0df6f6f6
+fcfcfc060606000000010101e1e1e1ffffffefefefebebebffffff0000000c0c0c030303
+0000000a0a0aefefefffffff000000000000121212000000191919f3f3f3ffffffe4e4e4
+fffffffffffffefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffcfcfcf9f9f9f7f7f7000000000000e6e6e6ffffff
+000000151515fcfcfcfcfcfc0404040000000c0c0c0202020d0d0d0a0a0af8f8f8f5f5f5
+fdfdfdf5f5f50808080000001313130d0d0df7f7f7edededfdfdfdf5f5f5010101000000
+070707fafafaececec0a0a0a0000001a1a1a000000ffffff0d0d0d0d0d0dfffffffefefe
+040404000000050505050505000000070707eeeeeef6f6f6ffffffe8e8e8141414101010
+000000ffffffffffffffffffefefef090909050505000000000000f2f2f2fefefefafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcfdfdfd080808181818000000
+fefefeeeeeeefffffff6f6f6f2f2f20404040101010c0c0cfffffffcfcfc0000000b0b0b
+f7f7f7ffffff000000000000fffffff3f3f3fafafafcfcfcefefef080808000000050505
+0000000808080b0b0bf0f0f0fefefefcfcfcf0f0f0191919060606f2f2f2f4f4f4fbfbfb
+040404111111f6f6f6f9f9f9fbfbfb0b0b0b0b0b0bffffffebebebffffff0c0c0c090909
+f7f7f7f8f8f8f4f4f40303030b0b0beaeaeaffffffecececf5f5f5010101060606fcfcfc
+ffffff000000121212f1f1f1fffffff9f9f9fcfcfcffffff090909020202e4e4e4ffffff
+f0f0f0000000060606ffffffeeeeee060606101010fcfcfceeeeeef7f7f7ffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefdfdfdfafafaf7f7f7f8f8f8fcfcfcffffffffffff000000fffffff4f4f4
+ebebeb000000ffffffebebebffffff000000fefefefafafafafafa020202fffffff5f5f5
+ececec000000ffffffe1e1e1ffffff070707fffffffcfcfcffffff000000f2f2f2efefef
+ffffff000000fdfdfdfafafa060606eaeaeaf3f3f3fffffff5f5f5000000fffffff4f4f4
+fefefe030303fffffffdfdfdfafafa040404fffffff6f6f6fbfbfb0c0c0ce3e3e3ffffff
+fafafa000000fffffff9f9f9000000fffffffcfcfcfafafa070707f4f4f4fafafaffffff
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcffffff0a0a0a111111000000
+ffffffffffffe4e4e4fffffff5f5f52a2a2a111111000000f2f2f2f5f5f51414140a0a0a
+131313000000fffffff6f6f6fffffffdfdfdfffffffffffffefefe0000000d0d0dffffff
+f5f5f50e0e0e000000121212040404f5f5f5ffffff000000000000ffffffedededffffff
+060606000000e4e4e4fffffffefefe0d0d0d000000fafafafffffff3f3f3000000070707
+fbfbfbffffffffffff070707010101fffffffbfbfbf1f1f1ffffff131313000000111111
+0b0b0bf3f3f3ecececfafafafafafafafafaf5f5f5030303000000f9f9f9ffffffe5e5e5
+ffffff0e0e0e030303e6e6e6ffffff080808080808fffffffcfcfcf9f9f9f9f9f9f4f4f4
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffcfcfcfafafafbfbfbfdfdfdf1f1f1080808f6f6f6f8f8f8
+ffffff020202f1f1f1ffffffe7e7e70d0d0dfffffff3f3f3f9f9f9050505f6f6f6ffffff
+151515f6f6f6fafafafffffffefefe000000ffffffe7e7e7000000ffffffe9e9e9ffffff
+f1f1f1000000fefefef6f6f6000000ffffffffffffebebebffffff050505edededfdfdfd
+f4f4f4080808edededf0f0f0ffffff0b0b0bf0f0f0ffffff000000e9e9e9fffffff2f2f2
+ffffff000000ffffff050505ffffffd0d0d0e8e8e8f1f1f1050505e7e7e7fffffff5f5f5
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcffffff0000000c0c0c030303
+fffffff2f2f2ffffffe5e5e5f7f7f70000000b0b0b000000fffffff1f1f1000000000000
+f9f9f90d0d0d1010100d0d0debebebffffffffffffececece0e0e02a2a2a000000f5f5f5
+ffffffffffff0000000404040d0d0dfffffff6f6f6141414000000f1f1f1fcfcfcf8f8f8
+050505080808ffffffffffffeeeeee0000000a0a0afffffffefefeececec0c0c0c161616
+f8f8f8eeeeeef2f2f2030303050505f8f8f8f2f2f2eaeaeaffffff000000101010ffffff
+0000001f1f1f121212fffffff9f9f9ffffffe5e5e50c0c0c111111000000040404060606
+000000080808181818fffffff0f0f00a0a0a111111f3f3f3ffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfffffffffffffffffffefefefbfbfbfafafaf9f9f9ffffff000000fbfbfbfefefe
+f7f7f7050505ffffffeeeeeeffffff070707f5f5f5ffffffffffff010101ecececfcfcfc
+000000fffffffffffff2f2f2f8f8f8080808fbfbfbffffff000000131313030303000000
+131313131313f8f8f8ffffff030303fffffffffffffafafafefefe070707f9f9f9ffffff
+f4f4f4191919fffffff8f8f8fdfdfd020202edededffffff1010100000000404040e0e0e
+000000151515ffffff000000eeeeeef2f2f2fffffffefefe000000fffffff8f8f8ffffff
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcffffffffffff020202000000
+040404f6f6f6e0e0e0ffffffffffff0b0b0b000000fefefeefefefffffff000000000000
+fafafae7e7e7121212000000181818ededede4e4e4ffffffffffff000000151515fdfdfd
+efefefffffff0a0a0a1b1b1b000000f9f9f9f6f6f6000000090909fffffffffffff6f6f6
+090909000000f8f8f8f2f2f2ffffff090909020202f7f7f7f7f7f7ffffff010101000000
+fffffffffffff3f3f31010101a1a1af0f0f0fbfbfbfffffffafafa000000000000fefefe
+ffffff000000000000000000fbfbfbf1f1f1ffffff000000080808f6f6f6f6f6f6ffffff
+f4f4f4ffffffd9d9d9f3f3f3eaeaea0101010e0e0ef1f1f1fafafafbfbfbfffffffafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfdfdfdfefefefffffffefefefcfcfcfafafaf9f9f9f6f6f6010101f9f9f9f8f8f8
+ffffff050505f5f5f5f6f6f6f4f4f4000000fffffffcfcfcededed030303ffffffebebeb
+121212fffffff7f7f7e9e9e9ffffff040404fffffffdfdfd060606efefeffdfdfdffffff
+ffffffdfdfdff0f0f0f7f7f7070707f0f0f0dededefffffffafafa000000ffffffebebeb
+ffffff000000f1f1f1fcfcfcffffff020202fdfdfdfafafa000000fffffff6f6f6e1e1e1
+ffffffeaeaeaffffff141414fffffff9f9f9e9e9e9ffffff000000fcfcfcf7f7f7f2f2f2
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfce5e5e5fdfdfd060606141414
+000000ffffffffffffe6e6e6000000161616fffffffffffff8f8f8ededed000000141414
+fbfbfbffffff000000010101040404ffffffffffffebebebe9e9e91d1d1d000000ffffff
+f1f1f1000000020202000000fafafafefefef0f0f0121212191919f5f5f5fbfbfbfdfdfd
+050505000000fffffffbfbfbfdfdfd0e0e0e000000fffffff4f4f4fdfdfd060606080808
+ebebebfffffff8f8f8000000000000fffffff6f6f6ffffffffffff0202021a1a1afdfdfd
+e8e8e80101010e0e0e1c1c1cf2f2f2fbfbfbfafafa0505050000000d0d0df5f5f5fdfdfd
+e6e6e6fefefe242424fdfdfdffffff030303000000fffffffffffffffffff0f0f0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefe0b0b0bedededffffff
+eaeaea0c0c0cf9f9f9fffffffdfdfd010101f4f4f4fdfdfdffffff000000ebebebfdfdfd
+000000000000fcfcfcffffff020202040404ebebebf1f1f1101010000000ffffffe8e8e8
+f1f1f1161616fffffff6f6f6030303f3f3f3fffffff2f2f2eeeeee050505fafafaffffff
+fafafa121212f7f7f7eaeaeaffffff0d0d0df4f4f4f7f7f7111111000000fffffff1f1f1
+ffffff000000e1e1e1000000000000fffffff4f4f4020202040404f1f1f1ffffffffffff
+fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcfffffff7f7f7ffffffffffff
+0000000d0d0d0303031515150a0a0ae6e6e6fcfcfcffffffffffff000000070707010101
+0d0d0df1f1f1ffffff000000000000000000060606fbfbfb0b0b0b010101060606090909
+1414140b0b0b1e1e1effffffeeeeeeffffff020202101010000000000000ffffff030303
+020202060606000000e0e0e0111111000000262626060606ffffff000000090909000000
+1f1f1ffffffff7f7f70b0b0b080808000000151515efefef0000000303030b0b0b090909
+fdfdfdffffff202020000000151515000000fefefef9f9f91818180000000e0e0e171717
+141414000000000000ffffff000000050505141414000000fffffff9f9f9fffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffffffff0f0f0efefef191919000000
+050505060606000000fafafa060606040404030303fbfbfb0404041111110d0d0df2f2f2
+ffffff121212000000070707fefefe020202000000fffffffcfcfc000000161616020202
+070707f2f2f2e4e4e40c0c0c101010060606e1e1e1ffffff050505000000080808ffffff
+0a0a0a000000010101ffffff010101000000040404fffffffdfdfd0b0b0b101010000000
+000000ecececfffffffcfcfc0707070000000d0d0dffffff050505111111e7e7e7ffffff
+f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcecececefefefffffffffffff
+dededef5f5f5e7e7e7fdfdfdffffffdfdfdffffffffefefef6f6f6fafafaf9f9f9fcfcfc
+fbfbfbdededee9e9e9fffffffffffff3f3f3fffffff6f6f6e9e9e9fffffffbfbfbd3d3d3
+f8f8f8f9f9f9e4e4e4f6f6f6ffffffddddddefefeffefefefffffffffffff5f5f5fefefe
+fdfdfdffffffffffffffffffedededffffffe8e8e8e1e1e1fffffffbfbfbfcfcfcffffff
+e7e7e7fdfdfdffffffcbcbcbffffffeaeaeafdfdfdf8f8f8fdfdfdffffffecececf2f2f2
+f1f1f1d7d7d7ffffffffffffefefefffffffffffffeaeaeaf2f2f2ffffffe5e5e5e5e5e5
+fffffff7f7f7fffffffafafafffffffbfbfbefefeffcfcfcfbfbfbfffffffbfbfbf6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfbf7f7f7fffffffffffff2f2f2ededed
+fafafafffffffffffff9f9f9fafafafffffffcfcfcfbfbfbfffffff9f9f9eeeeeeffffff
+f7f7f7fbfbfbffffffd5d5d5fffffffffffff8f8f8e0e0e0ffffffffffffefefefffffff
+fdfdfdf3f3f3ffffffeeeeeee6e6e6eeeeeeffffffddddddffffffffffffd8d8d8ffffff
+fffffffffffff3f3f3f0f0f0f5f5f5fffffffcfcfcecececf7f7f7fffffff1f1f1f9f9f9
+ffffffffffffe5e5e5f3f3f3fffffff7f7f7fafafaf4f4f4fbfbfbf7f7f7e8e8e8fdfdfd
+f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000030303000000030303000000fcfcfcfafafafcfcfcfafafafffffff7f7f7efefef
+fffffff4f4f4fffffff9f9f9f1f1f1ffffffecececfefefefffffff6f6f6fffffffbfbfb
+f3f3f3fffffff1f1f1eaeaeaf2f2f2fffffff6f6f6efefeff4f4f4fcfcfceaeaeaffffff
+f8f8f8ecececfffffff1f1f1f7f7f7f2f2f2ffffffffffffe3e3e3fffffffcfcfcf7f7f7
+fafafaf5f5f5f8f8f8fdfdfdfffffffdfdfdfffffffdfdfdf8f8f8f5f5f5e4e4e4fefefe
+fcfcfcfdfdfddfdfdfffffffe5e5e5fffffffffffff4f4f4ffffffefefeffcfcfcffffff
+fffffff6f6f6edededfffffff9f9f9f3f3f3f1f1f1fefefef9f9f9f6f6f6fffffffafafa
+fcfcfcf6f6f6fffffff0f0f0f7f7f7fffffffefefef6f6f6fffffff4f4f4f4f4f4ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfefefefefefefafafaf2f2f2ecececffffffefefeffefefeffffff
+f5f5f5f3f3f3fffffff7f7f7f9f9f9fffffff8f8f8fbfbfbfbfbfbfffffff1f1f1ffffff
+f6f6f6f4f4f4fffffff5f5f5f7f7f7f5f5f5fbfbfbfffffff0f0f0f1f1f1f8f8f8eaeaea
+fffffffafafae6e6e6fffffffffffff9f9f9fcfcfcfbfbfbeaeaeafffffff6f6f6ffffff
+fffffff8f8f8f9f9f9ffffffecececf6f6f6fafafafcfcfcf0f0f0fafafaf8f8f8f7f7f7
+fffffffafafafffffff5f5f5fbfbfbfafafaf7f7f7fffffff7f7f7edededffffffebebeb
+f7f7f7f8f8f8f9f9f9fafafafcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdf5f5f5f6f6f6f6f6f6f6f6f6
+f7f7f7f7f7f7f7f7f7f8f8f8f5f5f5f6f6f6f8f8f8fcfcfcfffffffffffffefefefbfbfb
+f1f1f1f8f8f8fffffffffffffffffffbfbfbf9f9f9f9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfdfdfdf9f9f9f8f8f8fcfcfcfdfdfdfbfbfbfafafafbfbfb
+fefefefcfcfcfafafafafafafafafaf9f9f9f7f7f7f5f5f5fcfcfcfbfbfbfcfcfcffffff
+fafafaf2f2f2f1f1f1f6f6f6f7f7f7fefefefbfbfbf8f8f8e9e9e9fffffff9f9f9ffffff
+fafafafafafafafafafafafafafafafafafafafafafafafaedededfffffff1f1f1f1f1f1
+fffffff4f4f4efefefffffffedededffffffe5e5e5f0f0f0ffffffffffffeeeeeeffffff
+fffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffafafafffffffcfcfcfdfdfdfffffffbfbfbfdfdfd
+fffffffefefefefefefefefefffffffffffffffffffffffffdfdfdfffffffffffffcfcfc
+fcfcfcfffffffffffffefefefffffffffffffefefefefefefffffffffffffffffffdfdfd
+fffffffffffff2f2f2fffffff9f9f9fffffff7f7f7fafafafffffffefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffefefefcfcfcf9f9f9f5f5f5f3f3f3fefefefafafafafafafefefe
+fefefefafafafafafafefefefdfdfdfcfcfcfbfbfbf9f9f9f9f9f9fafafafbfbfbfbfbfb
+fffffff8f8f8fdfdfdf2f2f2edededfffffffffffff0f0f0f0f0f0f3f3f3f8f8f8fdfdfd
+ffffffffffffffffffffffffefefefffffffeeeeeefffffff5f5f5fefefefffffff7f7f7
+fafafaf9f9f9f9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfcf0f0f0f6f6f6fdfdfdffffff
+fefefefbfbfbf9f9f9f8f8f8eaeaeafffffffafafafcfcfcf7f7f7f0f0f0fdfdfde7e7e7
+fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fefefefffffffffffffffffff9f9f9f9f9f9fafafafcfcfcfefefefffffffdfdfdfbfbfb
+fffffffdfdfdfafafaf9f9f9fafafafdfdfdfffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffcfcfcfbfbfbfffffffffffffefefefdfdfdfefefe
+fffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfafafaf9f9f9fafafaf9f9f9fbfbfbfefefe
+fcfcfcf6f6f6f7f7f7fcfcfcf8f8f8f4f4f4fffffffffffffffffff0f0f0f0f0f0fdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdf2f2f2ffffffffffff
+e4e4e4f5f5f5fffffffafafaffffffe9e9e9ffffffffffffe6e6e6f6f6f6fffffff6f6f6
+fffffffffffffefefefdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff3f3f3fffffffffffffdfdfdfefefef1f1f1f4f4f4fdfdfd
+fffffffefefefefefefffffffffffffffffffffffffffffffcfcfcfffffffffffffbfbfb
+fcfcfcfffffffffffffefefefffffffffffffefefefffffffffffffffffffefefefdfdfd
+f7f7f7ffffffffffffeeeeeeebebebf1f1f1fffffffffffffffffffefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffdfdfdfafafaf7f7f7f5f5f5fffffffbfbfbfbfbfbffffff
+fffffffbfbfbfbfbfbfffffffefefefdfdfdfcfcfcfbfbfbfafafafbfbfbfbfbfbfcfcfc
+e5e5e5fffffffffffffdfdfdfffffffffffff2f2f2fffffffafafafbfbfbfdfdfdfefefe
+fefefefdfdfdfcfcfcfbfbfbfffffff0f0f0f8f8f8e8e8e8fffffff8f8f8f0f0f0ffffff
+fcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefef7f7f7fbfbfbfefefeffffff
+fdfdfdfbfbfbfbfbfbfdfdfdfffffff2f2f2f5f5f5fffffffffffff3f3f3f1f1f1ffffff
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdfcfcfcfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefcfcfcfbfbfbfcfcfcfdfdfdfefefefcfcfcfbfbfb
+fffffffefefef6f6f6f3f3f3f8f8f8fefefefffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefafafaf9f9f9fcfcfcfefefefbfbfbfafafafcfcfc
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcfefefe
+fdfdfdfafafafbfbfbfffffffffffffffffff0f0f0fdfdfdf4f4f4ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffebebebf3f3f3ffffff
+ffffffffffffeeeeeee1e1e1fafafae8e8e8fefefefbfbfbf9f9f9fffffff8f8f8f4f4f4
+fefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffcfcfcf6f6f6fffffff5f5f5f4f4f4fffffffcfcfc
+fefefefefefefefefefffffffffffffffffffffffffffffffcfcfcfefefefefefefbfbfb
+fcfcfcfffffffffffffefefefffffffffffffefefefffffffffffffffffffdfdfdfbfbfb
+fffffff6f6f6e6e6e6ffffffffffffffffffeaeaeae5e5e5fefefefefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfbfbfbfafafafffffffdfdfdfdfdfdffffff
+fffffffdfdfdfdfdfdfffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfd
+fffffff0f0f0eeeeeef2f2f2ecececf2f2f2fbfbfbf2f2f2fffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfafafaf2f2f2fffffffffffffffffff3f3f3f7f7f7fffffff0f0f0
+fefefefefefefdfdfdfdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffdfdfd
+fcfcfcfcfcfcfefefefffffff2f2f2fffffff2f2f2fffffffffffff8f8f8fffffff6f6f6
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdf9f9f9f9f9f9f9f9f9fafafa
+fafafafbfbfbfbfbfbfbfbfbfffffffdfdfdfbfbfbfbfbfbfdfdfdfefefefefefefdfdfd
+fcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcfbfbfbf9f9f9fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf8f8f8f7f7f7fbfbfbfdfdfdfafafaf9f9f9fbfbfb
+fefefefdfdfdfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfbfbfbfbfbfbfcfcfcf1f1f1fffffffdfdfdfffffff8f8f8f4f4f4fafafaf5f5f5
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffff9f9f9
+fffffffdfdfdecececfffffffffffffffffff4f4f4f0f0f0fafafafffffff1f1f1ffffff
+fcfcfcfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf1f1f1f4f4f4fffffffffffff0f0f0e9e9e9ececece6e6e6
+fbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffbfbfbfefefefdfdfdfbfbfb
+fbfbfbfffffffffffffefefefffffffffffffefefefffffffffffffffffffcfcfcfafafa
+eaeaeaf1f1f1f8f8f8fdfdfdeaeaeae3e3e3f0f0f0fffffffefefefefefefdfdfdfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+ebebebfffffff9f9f9f6f6f6fffffffffffffefefefffffffefefefdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfefefefffffffffffff7f7f7fffffff1f1f1dededefffffff5f5f5ffffff
+fefefefefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fcfcfcfcfcfcfdfdfdfefefefffffff5f5f5e6e6e6f0f0f0f5f5f5efefeffdfdfdffffff
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdfbfbfbfbfbfbfcfcfcfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfafafafbfbfbfdfdfdffffffffffffffffff
+f6f6f6f9f9f9fdfdfdfdfdfdfafafaf8f8f8f8f8f8f9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfffffffcfcfcfbfbfbfefefefffffffefefefdfdfdfefefe
+fcfcfcfbfbfbfafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfafafaffffffecececf6f6f6eaeaeafffffff5f5f5fffffffdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8
+f3f3f3fffffffcfcfcececece0e0e0f7f7f7ebebebfffffff0f0f0f6f6f6fdfdfdfafafa
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff6f6f6e6e6e6fffffffffffff0f0f0ffffff
+f8f8f8fafafafcfcfcfcfcfcfafafaf9f9f9fbfbfbfdfdfdfafafafdfdfdfdfdfdfafafa
+fbfbfbfffffffffffffefefefffffffffffffffffffffffffffffffffffffbfbfbf8f8f8
+fdfdfdf9f9f9ffffffe7e7e7fffffff8f8f8ffffffe6e6e6fefefefdfdfdfdfdfdfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fafafafcfcfcf1f1f1f3f3f3f1f1f1f8f8f8ffffffe0e0e0fbfbfbfafafaf9f9f9f9f9f9
+fafafafcfcfcfefefefffffffbfbfbffffffdededef5f5f5ffffffeeeeeef0f0f0f2f2f2
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfbfbfbf9f9f9f9f9f9edededfffffff6f6f6f9f9f9fffffff1f1f1f8f8f8
+fdfdfdfefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdfbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfcfcfcfdfdfdfdfdfdfbfbfbfafafafafafafbfbfbfefefefffffffffffffefefe
+fbfbfbfefefefffffffcfcfcf7f7f7f7f7f7fbfbfbfffffffbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfffffffbfbfbfafafafdfdfdfffffffcfcfcfbfbfbfdfdfd
+fbfbfbfafafafafafafbfbfbfefefefffffffffffffffffffdfdfdfffffffffffffefefe
+fffffffffffffdfdfdf8f8f8f7f7f7ffffffffffffededede2e2e2fafafaf4f4f4f4f4f4
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffecececfafafa
+fffffff8f8f8f7f7f7f4f4f4ffffffffffffeeeeeefefefefdfdfdfffffff8f8f8f6f6f6
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf6f6f6eaeaeaffffffffffffeeeeeef7f7f7fdfdfdfbfbfb
+f7f7f7fafafafcfcfcfbfbfbf9f9f9f8f8f8fafafafdfdfdf9f9f9fcfcfcfcfcfcfafafa
+fbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffefefefafafaf7f7f7
+fffffff9f9f9f5f5f5fefefefafafaf7f7f7f5f5f5fdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffefefe
+fefefefffffffffffffefefefefefefffffffffffffffffffffffffefefefdfdfdfcfcfc
+edededffffffffffffffffffeeeeeee5e5e5fffffff0f0f0fdfdfdfcfcfcfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcf7f7f7ffffffdcdcdcffffffe3e3e3ecececfffffff5f5f5
+fdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefffffffdfdfdfdfdfdfefefeffffff
+fffffffefefefafafaf6f6f6f5f5f5ffffffeeeeeeedededeeeeeef1f1f1fffffff4f4f4
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdf8f8f8f8f8f8f9f9f9f9f9f9
+fafafafafafafafafafafafafbfbfbfafafafbfbfbfcfcfcfefefefefefefbfbfbf9f9f9
+fffffffefefefcfcfcf9f9f9f8f8f8f9f9f9fbfbfbfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdf8f8f8f7f7f7fbfbfbfcfcfcfafafaf9f9f9fafafa
+fcfcfcfafafafafafafcfcfcfffffffffffffffffffffffffbfbfbfffffffffffffdfdfd
+fefefefffffffafafaf2f2f2fdfdfdedededfffffff0f0f0f1f1f1fffffff3f3f3ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff2f2f2ffffffefefefffffff
+fefefee7e7e7fffffff9f9f9f9f9f9e4e4e4fefefee2e2e2fafafafffffff4f4f4ffffff
+fcfcfcfbfbfbfafafafafafafafafafafafafbfbfbfcfcfcf9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9ecececfffffff7f7f7fffffffbfbfbe4e4e4fefefef4f4f4
+f8f8f8fbfbfbfefefefdfdfdfafafaf9f9f9fcfcfcfffffff8f8f8fbfbfbfbfbfbf9f9f9
+fafafafffffffffffffffffffffffffefefefffffffffffffffffffefefef9f9f9f6f6f6
+f0f0f0f3f3f3f8f8f8fefefefffffffefefefffffffffffffdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffdfdfd
+fdfdfdfffffffffffffdfdfdfdfdfdfefefefffffffffffffffffffdfdfdfcfcfcfbfbfb
+f8f8f8ffffffddddddeeeeeefffffff7f7f7f8f8f8fffffffdfdfdfdfdfdfcfcfcfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf8f8f8f5f5f5fafafafffffffffffffafafafcfcfcffffff
+fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffefefefdfdfdfdfdfdffffff
+fffffffffffffbfbfbf7f7f7fdfdfdfffffffdfdfdfffffffffffffcfcfcffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdfafafafafafafafafafbfbfb
+fbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefefcfcfcf8f8f8f5f5f5
+fbfbfbf9f9f9f7f7f7f9f9f9fcfcfcfcfcfcf7f7f7f3f3f3fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffbfbfbfafafafefefefffffffdfdfdfcfcfcfefefe
+fdfdfdfcfcfcfbfbfbfdfdfdfffffffffffffffffffffffffefefefffffffffffffefefe
+fdfdfdfdfdfdf5f5f5e9e9e9ffffff040404000000040404fcfcfcf6f6f6fffffffdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfdfdfdf3f3f3ffffff
+efefefffffffe8e8e8040404141414070707f1f1f1fffffff6f6f6f9f9f9ffffffe6e6e6
+fcfcfcfbfbfbfbfbfbfafafafafafafbfbfbfbfbfbfcfcfcffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7f4f4f40000000b0b0beeeeeefffffff7f7f7ffffff
+f9f9f9fdfdfdfffffffffffffbfbfbfafafafdfdfdfffffff8f8f8fbfbfbfbfbfbf9f9f9
+fafafafffffffffffffffffffefefefefefefffffffffffffffffffefefef9f9f9f5f5f5
+f4f4f4ffffffffffff030303000000010101d1d1d1fffffffdfdfdfcfcfcfcfcfcfcfcfc
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefffffffffffffffffffcfcfcfffffffffffffcfcfc
+fcfcfcfffffffffffffcfcfcfcfcfcfdfdfdfefefefffffffefefefdfdfdfbfbfbfafafa
+ffffffc9c9c9fffffff3f3f30a0a0a000000dadadafffffffcfcfcfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefefefef9f9f9ffffff090909000000f6f6f6000000dfdfdfffffff
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffffffffefefefdfdfdfefefe
+fffffffffffffdfdfdfafafaf9f9f9f1f1f1ffffff040404020202fcfcfcf5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fdfdfdfafafafcfcfcffffff
+f1f1f1fffffffffffffbfbfbf3f3f3f3f3f3fffffff9f9f9f3f3f3fefefefefefef8f8f8
+f1f1f1fffffff4f4f4edededffffffe7e7e7f0f0f0ffffffe8e8e8fcfcfcffffffe9e9e9
+fdfdfdffffffefefeff6f6f6fcfcfcf0f0f0f9f9f9fffffff3f3f3fdfdfdfffffff0f0f0
+edededfffffff0f0f0f5f5f5f0f0f0fffffffbfbfbfffffffffffff4f4f4fbfbfbffffff
+ffffffe7e7e7f9f9f9fefefe070707f3f3f3070707000000f5f5f5fffffffffffffcfcfc
+f6f6f6ffffffe2e2e2efefefffffffedededfdfdfdfffffffffffffffffff5f5f5ffffff
+fffffff6f6f6f9f9f9ffffff0c0c0c000000fffffff8f8f8f6f6f6f5f5f5f7f7f7ffffff
+fdfdfdfefefef5f5f5f7f7f7f7f7f7f5f5f5fefefefdfdfdfffffffcfcfcedededeeeeee
+fdfdfdfffffff7f7f7eaeaeaffffffeaeaea0b0b0b030303f9f9f9f9f9f9f2f2f2ffffff
+f2f2f2fffffff7f7f7e5e5e5fffffff4f4f4e9e9e9fffffff8f8f8ffffffeeeeeeffffff
+e9e9e9fcfcfcf5f5f5fffffffcfcfcfefefefbfbfbfffffffffffffffffff6f6f6f7f7f7
+ffffffe7e7e70d0d0df5f5f50000001c1c1cfafafafffffff8f8f8f8f8f8fafafafbfbfb
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfffffffffffffffffffdfdfdfefefefffffffefefef7f7f7fffffff2f2f2
+ffffffffffffffffffeeeeeeecececfffffffafafafcfcfcffffffeaeaeafbfbfbfdfdfd
+fcfcfcf7f7f7fffffff4f4f4f5f5f50a0a0afffffff4f4f4f1f1f1ffffffeeeeeeffffff
+f3f3f3fcfcfce8e8e8f7f7f7ffffff000000ffffff030303ffffff0b0b0bf4f4f4ffffff
+eaeaeafffffffefefefefefefcfcfcfffffffbfbfbfffffffdfdfdf6f6f6fbfbfbfbfbfb
+fbfbfbffffffe0e0e0fdfdfdf7f7f7fffffff5f5f5eeeeee0d0d0dffffffe9e9e9ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fffffffefefef5f5f5fcfcfc
+0000000404040505050707070c0c0cfcfcfcfefefef7f7f7ffffff0000000000001a1a1a
+101010000000070707080808e6e6e6ffffffdadadaffffff1d1d1d0303030000001b1b1b
+0000000000001e1e1efcfcfcedededffffff000000030303010101080808050505060606
+040404fffffffbfbfbfffffffdfdfdf8f8f8fffffff9f9f9edededffffffffffffefefef
+f0f0f0fbfbfbffffff000000000000ffffff0202020f0f0ffffffff7f7f7ffffffffffff
+f3f3f3efefefffffffffffffd8d8d8fffffffafafafcfcfcffffffefefeffffffff2f2f2
+ffffffffffffe8e8e8f3f3f3040404000000fffffff8f8f8ecececffffff010101ececec
+ebebebf1f1f1060606080808090909090909f6f6f6f0f0f0fdfdfdffffffe6e6e6ffffff
+e8e8e8e7e7e7eeeeeefffffff7f7f7ffffff000000070707fffffffffffffefefef7f7f7
+000000fcfcfcffffffffffff0303030c0c0c0505050000000909090000000f0f0fffffff
+f5f5f5fffffffffffff4f4f4f6f6f6fffffffffffff7f7f7fbfbfbe0e0e0fffffff5f5f5
+e9e9e9161616000000ffffff000000000000ffffffe8e8e8fafafafafafafbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfffffffffffffffffffcfcfcfcfcfcffffffffffffffffffffffffffffff
+fffffffefefefcfcfcffffffffffffe6e6e6fbfbfbffffffe6e6e6ffffffe7e7e7ffffff
+ffffffefefeff7f7f7f4f4f4ffffff000000fefefeffffffffffffe3e3e3f6f6f6ffffff
+ffffffffffffe9e9e9ffffff000000fffffff9f9f9f5f5f5fcfcfc050505ffffffe6e6e6
+ffffffe6e6e6f0f0f0fcfcfcfffffffffffffffffff1f1f1fffffff0f0f0ffffffffffff
+fbfbfbe1e1e1fdfdfdf2f2f2ffffffdededeffffffffffff000000d6d6d6ffffffebebeb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fbfbfbf6f6f6e6e6e6f3f3f3121212020202
+191919f7f7f7f8f8f8fbfbfb0000001e1e1e000000fffffffbfbfbffffff080808000000
+fcfcfc0f0f0f000000111111000000fcfcfcf3f3f3fcfcfcf6f6f60404040c0c0cfbfbfb
+ffffff020202202020000000fbfbfbf2f2f2ffffff1111110d0d0dfcfcfcf0f0f00b0b0b
+0f0f0f000000000000ffffffcbcbcbf1f1f1f7f7f7f4f4f4fffffffdfdfdf1f1f1f4f4f4
+fffffffdfdfde9e9e90808080e0e0eeeeeeeffffffe3e3e3ecececfffffffdfdfdf6f6f6
+fffffffffffffafafaf7f7f7fffffff7f7f7f8f8f8f7f7f7fffffff6f6f6ecececf5f5f5
+fcfcfcfffffff6f6f6ffffff0d0d0d030303f1f1f1fafafaffffff000000000000f2f2f2
+fffffff4f4f4f6f6f60f0f0f0f0f0ff7f7f7f5f5f5fffffff1f1f1fcfcfcf9f9f9f2f2f2
+fffffff4f4f4ffffffeaeaeaecececffffff090909000000fcfcfceeeeeef8f8f8111111
+000000fffffffffffff7f7f7f8f8f80000000d0d0dffffff0000000a0a0a0000000d0d0d
+ffffffebebebf8f8f8ffffffffffffececece9e9e9fefefef9f9f9fffffff1f1f1f9f9f9
+ffffff1b1b1b000000fafafafffffff5f5f5f9f9f9fffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffefefef9f9f9f9f9f9fdfdfdf6f6f6f6f6f6eeeeeef5f5f5
+fffffffffffff8f8f8fbfbfbfdfdfdf9f9f9fefefefcfcfcffffffdcdcdcfffffff8f8f8
+fbfbfbffffffffffffe7e7e7f5f5f5020202fffffff3f3f3efefeffffffff2f2f2eeeeee
+e2e2e2fdfdfdeeeeeef8f8f8010101fffffff8f8f8e7e7e7fffffff0f0f0eeeeeeffffff
+fcfcfcfffffffafafafffffff6f6f6eaeaeaffffffffffffe8e8e8fffffff2f2f2fdfdfd
+fdfdfde7e7e7fffffffafafaedededfffffff2f2f2ffffff101010f8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fcfcfcf8f8f8fcfcfcffffff0000000f0f0f
+ecececfffffff8f8f8f9f9f9ffffff161616000000fffffff8f8f8ffffff0000000e0e0e
+f1f1f1ffffff0e0e0e000000111111fffffffafafafcfcfcffffff0000000f0f0fffffff
+f8f8f80000000000001c1c1cfffffff4f4f4ffffff000000000000fffffffdfdfdffffff
+0101010f0f0f000000f9f9f9fffffff2f2f2fffffff0f0f0fefefefffffff3f3f3ffffff
+e4e4e4fafafaffffff000000000000fffffff6f6f6fcfcfcffffffe0e0e0fbfbfbffffff
+f4f4f4ffffffefefefe2e2e2fffffff8f8f8ffffffffffffe9e9e9fffffff5f5f5fcfcfc
+fbfbfbe4e4e4f8f8f8eaeaea020202101010fffffff3f3f3ffffff0c0c0c0f0f0fffffff
+fbfbfbfdfdfdf3f3f3090909080808eeeeeef6f6f6f2f2f2f8f8f8ffffffffffffd9d9d9
+fffffffefefef8f8f8fbfbfbf5f5f5f8f8f8e6e6e6f3f3f3f8f8f8ffffffe4e4e4121212
+0d0d0decececf8f8f8f5f5f5ffffff030303010101f8f8f8f4f4f41515151414140a0a0a
+eeeeeeffffffffffffeaeaeaffffffe6e6e6fffffff0f0f0f3f3f3fffffffafafaebebeb
+d3d3d30d0d0d1e1e1efefefee6e6e6ffffffe2e2e2fdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffdfdfdf8f8f8f7f7f7fbfbfbf2f2f2fffffffffffff7f7f7
+fffffffffffffbfbfbfffffff4f4f4ffffffe6e6e6fffffffffffffffffffdfdfde6e6e6
+f6f6f6f6f6f6fffffffdfdfdffffff000000fffffffffffff7f7f7fffffffefefeffffff
+f4f4f4f4f4f4fffffff7f7f7000000ebebebf3f3f3fffffffafafafafafafffffff7f7f7
+fdfdfdf8f8f8fbfbfbf9f9f9f9f9f9fffffffbfbfbf9f9f9f8f8f8f6f6f6ffffffffffff
+fcfcfcffffffffffffdadadafefefee5e5e5f4f4f4fcfcfc000000f4f4f4fffffffcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fafafafdfdfdfafafaf3f3f3000000000000050505
+fdfdfdfefefee3e3e3fffffff6f6f60404040f0f0f020202f1f1f1f8f8f8000000000000
+f4f4f4dfdfdf000000333333000000fffffffbfbfbf8f8f8ffffff090909000000f0f0f0
+ffffff050505090909070707fcfcfcf7f7f7e0e0e0252525151515fffffff0f0f0ffffff
+f7f7f70c0c0c0b0b0b000000fefefefbfbfbe1e1e1050505111111000000000000131313
+f1f1f1f2f2f21818180505050f0f0f030303030303fdfdfde9e9e9000000030303000000
+080808000000ffffffffffffeaeaea181818000000050505fefefee6e6e60f0f0f101010
+000000fbfbfbfafafaffffff040404030303fffffff9f9f91313130000000d0d0d000000
+111111fffffffefefe090909070707f8f8f8fefefe080808000000040404000000161616
+0000000a0a0a000000fffffffbfbfb0d0d0d0e0e0e000000ffffffececec111111000000
+212121000000000000ffffffe4e4e4000000070707fdfdfdffffff070707000000080808
+ebebebeaeaeadededefffffffdfdfd0000000e0e0e0a0a0a161616000000fffffff6f6f6
+1d1d1d0c0c0c000000171717000000e3e3e3ffffffecececffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffcfcfcf7f7f7f6f6f6fafafa020202131313f2f2f2fbfbfb
+0000000f0f0fefefeff6f6f60404040b0b0b101010070707000000000000ffffffffffff
+fffffff6f6f60000001616160000000d0d0df5f5f5fafafafffffff6f6f6060606000000
+010101ffffffececec0000000f0f0f101010080808fafafa0000000d0d0df2f2f2ffffff
+0404040d0d0d000000050505060606000000fffffff0f0f0f6f6f6ffffff050505000000
+141414f2f2f2dfdfdfffffffeeeeee0303030f0f0f0101010b0b0bfffffffbfbfbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbf8f8f81010101313130e0e0e
+f6f6f6e0e0e0ffffffeaeaeafdfdfd1f1f1f000000030303fffffff1f1f10a0a0a0a0a0a
+ffffffececec141414000000ecececfdfdfde2e2e2ffffffffffff151515131313262626
+000000090909000000e9e9e9fffffffffffffafafa000000111111f6f6f6f0f0f0f5f5f5
+ffffff0000001a1a1a000000f6f6f6ffffff121212000000ebebebffffffffffff020202
+121212f2f2f2fafafa0a0a0a020202efefeffffffff4f4f4000000040404fffffff0f0f0
+f5f5f5212121000000e0e0e0fffffff8f8f80e0e0e000000f8f8f8fefefedfdfdf080808
+131313fcfcfcfafafaf1f1f1090909020202f3f3f3f2f2f2f2f2f20f0f0f020202ffffff
+ffffffebebebffffff000000000000ffffffeaeaeaffffff000000080808ffffffe6e6e6
+ffffff0b0b0b000000f6f6f6fafafaf4f4f4000000050505ddddddfffffff6f6f62a2a2a
+000000fffffff8f8f8f6f6f6ffffff0000001c1c1ceaeaeaf5f5f5040404040404f9f9f9
+fffffff9f9f9fffffff7f7f7000000131313ececece3e3e3ffffff0b0b0b000000ffffff
+fefefe000000000000f5f5f5fafafafffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffdfdfdf7f7f7f7f7f7fafafaffffff000000f8f8f8ffffff
+fefefe000000ffffffffffffffffff000000f7f7f7ffffffffffff1b1b1beeeeeeffffff
+eeeeee010101fffffffefefeffffff000000f1f1f1fffffffbfbfb121212f4f4f4ededed
+ffffff000000ecececfefefe000000f3f3f3fcfcfcfefefeffffff030303ffffffffffff
+ffffff000000e1e1e1ffffffffffff2a2a2aeaeaeafbfbfbf6f6f60a0a0aeeeeeefcfcfc
+ffffff030303ffffffededed000000ffffffe0e0e0ffffff010101f5f5f5fffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafffffffcfcfcfcfcfc181818000000000000
+fffffffbfbfbf0f0f0fbfbfbffffff000000272727080808d9d9d9ffffff010101000000
+000000090909fefefefcfcfcfffffff0f0f0fefefeeeeeeef6f6f6000000000000ffffff
+ececec0101010d0d0d020202050505ebebebffffff0e0e0e000000f6f6f6fffffff7f7f7
+ffffff0000000404040b0b0bffffff0000000a0a0af3f3f3ffffffeeeeeeeaeaea000000
+000000fffffff2f2f20000000c0c0cfffffff3f3f3fffffff9f9f9f2f2f2000000020202
+0c0c0c010101040404fffffff3f3f3f9f9f9141414121212f5f5f5f4f4f4ffffff000000
+010101fbfbfbf2f2f2fcfcfc080808000000f7f7f7ecececffffff000000000000f2f2f2
+fffffffcfcfcfbfbfb000000000000fbfbfbfcfcfcffffff121212161616f5f5f5f9f9f9
+e7e7e7010101000000fffffff5f5f5ffffff181818010101fffffff0f0f0f0f0f0000000
+121212d9d9d9fffffffffffff1f1f1000000050505121212070707e5e5e5fffffffafafa
+f1f1f1f7f7f7f7f7f7000000050505f2f2f2fffffffafafafbfbfb191919000000f4f4f4
+fbfbfb0303030f0f0ffffffffffffff0f0f0f8f8f8f2f2f2fefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffefefef9f9f9f8f8f8fcfcfcfafafa141414ffffffffffff
+dadada0e0e0efbfbfbeeeeeef3f3f3040404fbfbfbffffffdcdcdc0e0e0effffffeaeaea
+252525dadadafffffffdfdfdfefefe121212fefefef1f1f1050505eeeeeeffffffffffff
+f8f8f8000000fffffffcfcfc111111e0e0e0fffffff2f2f2f4f4f4000000ffffffe1e1e1
+ffffff000000ffffffeeeeeedbdbdb0a0a0affffffffffff131313ddddddf5f5f5ffffff
+f4f4f4000000ffffff030303fffffff5f5f5ffffffe2e2e2000000fffffff8f8f8f2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fbfbfbfffffffdfdfdfafafa060606101010181818
+f1f1f1efefeff3f3f3ffffffe5e5e50b0b0b0d0d0d000000ffffffe8e8e80000000c0c0c
+ffffff131313000000080808eeeeeefcfcfcf8f8f8fffffffafafa0e0e0e171717e7e7e7
+fffffff6f6f60c0c0c0505050c0c0cfefefefafafa000000050505ffffffecececf6f6f6
+fafafa101010000000000000f8f8f80202020a0a0a0303030000000202020909090d0d0d
+000000fbfbfbf1f1f1070707131313f2f2f2fafafaffffff0909090e0e0e060606fefefe
+ececec0b0b0b0c0c0ce6e6e6f9f9f9fafafa0c0c0c000000fffffff0f0f0fafafa000000
+0d0d0dfffffff2f2f2ffffff000000060606fffffffbfbfbf0f0f0010101131313fbfbfb
+fafafaf3f3f3ffffff010101000000ffffffefefeff4f4f40a0a0a000000e5e5e5ffffff
+f5f5f50303030f0f0ffefefef1f1f1f2f2f20000000c0c0cf8f8f8f3f3f3ffffff000000
+1a1a1af7f7f7fefefeeaeaeaf2f2f2111111000000fbfbfb090909000000010101ffffff
+ffffffefefeff7f7f7151515080808030303090909000000101010000000131313fefefe
+f5f5f5070707000000f9f9f9f8f8f8fffffffefefefffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfefefefffffffefefef9f9f9f9f9f9fdfdfdffffff000000fdfdfdf5f5f5
+ffffff000000fffffffdfdfdf4f4f40a0a0aedededf1f1f1ffffff000000f0f0f0ffffff
+000000fffffff3f3f3edededf8f8f8020202f5f5f5ffffff0000001212120000000b0b0b
+000000040404f7f7f7f2f2f2000000fffffff8f8f8ffffffffffff000000ffffffffffff
+f5f5f50f0f0fd8d8d8f4f4f4ffffff000000f5f5f5ffffff000000050505000000020202
+0606060c0c0cffffff000000fcfcfcfcfcfcf8f8f8f0f0f0141414f5f5f5f1f1f1ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fffffff5f5f50c0c0c050505
+000000fffffff1f1f1eeeeeefcfcfc0d0d0d000000fffffff3f3f3f3f3f3101010000000
+ffffffffffff000000242424000000fcfcfcfdfdfdf8f8f8ffffff000000030303f8f8f8
+fefefeffffff000000151515101010f4f4f4fafafa1a1a1a010101fafafaf8f8f8f9f9f9
+0707070000000b0b0bf9f9f9f5f5f5060606040404fdfdfdfcfcfcfcfcfcfafafaffffff
+fafafafffffff2f2f2050505000000fffffff6f6f6dcdcdc171717050505f9f9f9fefefe
+f6f6f60202020d0d0dfdfdfdfafafaffffff010101010101fefefef8f8f8f3f3f30d0d0d
+000000eeeeeefffffff5f5f5050505000000ffffffebebebfcfcfc080808101010f7f7f7
+fffffffffffffbfbfb000000000000fafafaffffffffffff0c0c0c030303f3f3f3ffffff
+fdfdfd000000121212f8f8f8fcfcfce6e6e6040404111111f6f6f6efefefffffff000000
+000000fffffffbfbfbefefefffffff0000000e0e0ef8f8f8fcfcfc0000000d0d0d000000
+fefefeffffffe9e9e9000000000000fffffffbfbfbfefefefbfbfbfbfbfbffffffededed
+f4f4f4050505080808f0f0f0fffffffbfbfbffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfb000000fffffff6f6f6
+fcfcfc060606f5f5f5fefefeffffff000000fbfbfbffffffeeeeee040404fffffff8f8f8
+0a0a0af6f6f6edededebebebf9f9f9161616fbfbfbf2f2f2020202fefefeffffffffffff
+e9e9e9fffffff9f9f9ffffff070707fffffff1f1f1fefefef7f7f7000000fffffff7f7f7
+fbfbfb000000fafafafffffff0f0f0040404fffffffdfdfd0c0c0cfffffffafafadfdfdf
+fcfcfcffffffffffff0f0f0fedededf4f4f4fafafaffffff000000ffffffe6e6e6ffffff
+fffffffffffffdfdfdfdfdfdfefefefffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f8f8f8fafafaf5f5f5fffffff4f4f4101010000000
+151515f2f2f2e1e1e1ffffff080808040404f2f2f2e2e2e2ffffffffffff030303040404
+f8f8f8f9f9f92929290000001b1b1bfafafaf9f9f9f8f8f8ffffff060606050505ffffff
+ffffff0000001c1c1c000000f4f4f4fffffffcfcfc000000191919ffffffffffff050505
+000000000000000000fffffff6f6f6000000121212000000f1f1f1ffffffedededf1f1f1
+070707ffffffffffff040404101010efefeffffffffdfdfd0000000202020c0c0c000000
+161616121212000000fefefef1f1f1fcfcfc0f0f0f010101000000050505070707050505
+171717fffffffafafaeeeeee0c0c0c161616efefefffffffe0e0e0000000141414ededed
+eaeaeafffffff1f1f10d0d0d0d0d0df0f0f0fefefee7e7e7090909000000fffffff5f5f5
+ffffff000000010101f3f3f3e9e9e9ffffff030303080808fcfcfcfefefee3e3e30e0e0e
+111111eeeeeef6f6f6fffffff0f0f0000000111111fffffff0f0f0131313000000070707
+fffffffefefef2f2f2060606070707070707fffffff2f2f2fffffffafafa000000ffffff
+ffffff000000000000fffffffefefefffffffffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbffffff000000f4f4f4fefefe
+fcfcfc000000fffffffefefeeaeaea242424ffffffe3e3e3fafafa0f0f0ff2f2f2ffffff
+000000000000fffffff7f7f70f0f0f000000fffffffdfdfd030303010101f3f3f3ffffff
+fbfbfb000000ffffffe7e7e7000000fffffff7f7f7fafafaffffff030303f0f0f0f0f0f0
+ededed111111fffffff2f2f2eeeeee0b0b0bfffffff8f8f8000000000000ffffffffffff
+f4f4f4000000fefefe000000000000fffffff7f7f7000000070707fffffffbfbfbf5f5f5
+fffffffdfdfdfcfcfcfcfcfcfefefefffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fbfbfbf6f6f6f5f5f5fbfbfbffffffebebeb
+0000000505050c0c0c000000010101ffffffffffffffffffe5e5e5020202000000040404
+030303ffffffe8e8e80a0a0a0000000000000b0b0bfefefe000000000000000000000000
+101010010101131313fefefef7f7f7ffffff000000000000131313000000000000080808
+181818fffffffafafaffffffffffffe6e6e60b0b0b040404111111000000131313060606
+020202ededed000000000000010101090909fbfbfbffffff0000000303030000000b0b0b
+f6f6f60707070000001c1c1cffffffe7e7e7ffffff000000080808000000ffffff000000
+101010000000f7f7f7131313000000060606000000edededffffff0000001111110b0b0b
+000000ffffff000000000000000000000000ffffff0000000606060f0f0f000000f4f4f4
+000000030303010101080808ffffff000000000000111111080808ebebebfafafa080808
+1212120505050a0a0adcdcdc101010141414000000050505ffffffeeeeee090909010101
+020202000000fffffff2f2f2131313000000000000030303171717171717070707ffffff
+0000000e0e0e1c1c1c000000fcfcfceeeeeefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf9f9f9f8f8f80101011e1e1e
+030303090909000000fbfbfb0f0f0f000000000000ffffff0c0c0c000000020202ffffff
+ffffff000000000000050505f7f7f70b0b0b1a1a1af7f7f7fafafa101010000000060606
+000000ffffffe4e4e41010100d0d0d000000f6f6f6ffffff000000000000000000ffffff
+0d0d0d000000000000ffffff0b0b0b000000030303ffffffffffff121212000000000000
+000000fdfdfdefefefffffff0f0f0f000000000000ffffff0000000c0c0cf2f2f2ffffff
+fdfdfdfbfbfbfafafafbfbfbfdfdfdfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404f9f9f9fcfcfcf8f8f8fffffffffffff4f4f4ffffff
+fbfbfbffffffefefeffffffff1f1f1f8f8f8eeeeeefffffffdfdfdfffffff7f7f7f4f4f4
+eeeeeeedededffffffdcdcdcfffffffffffffafafafdfdfdfafafafffffffffffff1f1f1
+ecececfffffff3f3f3fcfcfcfefefefbfbfbfffffff6f6f6dbdbdbfffffff1f1f1ffffff
+e2e2e2fffffff6f6f6f7f7f7fafafafefefee4e4e4fffffffafafafffffffafafaf6f6f6
+fffffffbfbfbffffffffffffeeeeeef5f5f5fafafadadadaffffffefefefffffffffffff
+fffffffffffff5f5f5f1f1f1fffffffffffff4f4f4fffffffafafaffffffffffffe7e7e7
+f8f8f8f6f6f6fdfdfde8e8e8eeeeeefffffffffffff4f4f4efefefffffffffffffe6e6e6
+fffffffafafaeaeaeaffffffffffffecececfcfcfcfffffffdfdfdfbfbfbffffffffffff
+e9e9e9ffffffe3e3e3efefeff1f1f1fffffff6f6f6fffffffdfdfdf4f4f4f5f5f5ededed
+f2f2f2e6e6e6fbfbfbfffffffafafaddddddf6f6f6f6f6f6f6f6f6ffffffefefefffffff
+eaeaeafdfdfdf1f1f1f2f2f2f0f0f0ffffffffffffffffffebebebfafafaecececfcfcfc
+f5f5f5ffffffeaeaeaedededffffffffffffebebebffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbffffffffffffeaeaeaf5f5f5
+f7f7f7fbfbfbfffffff7f7f7f6f6f6fdfdfdfefefefffffffcfcfcf7f7f7f1f1f1f6f6f6
+fffffff8f8f8fdfdfdfffffff0f0f0ffffffeeeeeefbfbfbf6f6f6ffffffedededf5f5f5
+fffffff4f4f4fffffff1f1f1f9f9f9f5f5f5f1f1f1d6d6d6fdfdfdfffffff1f1f1f8f8f8
+f6f6f6fffffffefefef9f9f9fefefef7f7f7eeeeeefffffff3f3f3f8f8f8fffffffdfdfd
+f7f7f7fffffffbfbfbfefefeffffffe5e5e5f8f8f8f8f8f8f5f5f5fffffff1f1f1f5f5f5
+fbfbfbfafafaf9f9f9fafafafcfcfcfefefefffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fafafafdfdfdfafafaffffffe9e9e9f0f0f0fcfcfc
+fffffffffffffffffff4f4f4fffffffcfcfcffffffeaeaeafdfdfdfafafafffffff9f9f9
+fffffff0f0f0f3f3f3f5f5f5fffffff8f8f8f6f6f6f6f6f6fafafadcdcdcfffffff4f4f4
+fffffffbfbfbe7e7e7fffffffefefef5f5f5fffffff1f1f1fdfdfdebebebfffffff9f9f9
+fffffffcfcfce2e2e2fbfbfbffffffe3e3e3ffffffedededecececf3f3f3fffffffcfcfc
+fffffff4f4f4f5f5f5f7f7f7fffffffbfbfbfffffff9f9f9ffffffffffffefefeff0f0f0
+fefefee4e4e4ffffffffffffe1e1e1f4f4f4eeeeeefdfdfdfafafae2e2e2fcfcfcf5f5f5
+fffffff9f9f9fffffffffffffffffffdfdfdf4f4f4fffffff4f4f4f2f2f2ffffffffffff
+f2f2f2f1f1f1fffffff0f0f0f2f2f2fffffff8f8f8fafafaf6f6f6f9f9f9f3f3f3f9f9f9
+fffffff1f1f1fffffffdfdfdecececebebebf5f5f5f5f5f5fcfcfcf4f4f4f3f3f3ffffff
+fffffffffffff2f2f2ecececf0f0f0fffffffffffffffffffefefefcfcfcfbfbfbf0f0f0
+fffffff8f8f8fffffffefefefdfdfdf4f4f4f0f0f0fffffff6f6f6fffffffffffff6f6f6
+fefefefefefeffffffeeeeeef9f9f9fcfcfcfffffff2f2f2ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfce9e9e9fffffffefefe
+f4f4f4fcfcfcfffffff4f4f4f5f5f5fefefeefefeffffffffbfbfbfffffff6f6f6fefefe
+f4f4f4eaeaeaffffffe5e5e5f6f6f6ffffffebebebffffffffffffdbdbdbfefefeffffff
+f9f9f9f9f9f9fefefef8f8f8f9f9f9ffffffe5e5e5fffffff3f3f3efefeffffffff9f9f9
+fefefef1f1f1f3f3f3ffffffedededfffffffffffff9f9f9f5f5f5fbfbfbf0f0f0fafafa
+ffffffecececffffffe7e7e7fdfdfdfefefefffffff5f5f5ffffffefefefebebebffffff
+fbfbfbfafafaf9f9f9fafafafcfcfcfefefefffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafefefefbfbfbebebebf9f9f9fffffff9f9f9
+fffffff2f2f2f8f8f8fffffff3f3f3e4e4e4ecececfffffffafafad6d6d6ffffffe7e7e7
+f8f8f8fffffff5f5f5ffffffe8e8e8edededfffffffffffffbfbfbf6f6f6eeeeeeffffff
+edededfffffffdfdfdfffffff7f7f7ffffffdfdfdffffffff2f2f2f6f6f6f5f5f5ffffff
+ffffffe8e8e8ffffffffffffe9e9e9ffffffebebebffffffffffffe4e4e4efefefffffff
+e4e4e4ecececfffffffcfcfcfffffff3f3f3d9d9d9fffffff3f3f3e3e3e3fefefeffffff
+fefefeecececfffffff0f0f0fffffff4f4f4fffffff1f1f1fcfcfcedededffffffffffff
+e6e6e6f0f0f0f1f1f1ffffffeaeaeaf1f1f1fefefefffffffcfcfcecececfbfbfbf9f9f9
+f1f1f1f5f5f5fafafaf0f0f0f2f2f2fffffffdfdfdfafafaf9f9f9ffffffe0e0e0f8f8f8
+ffffffffffffd6d6d6f4f4f4f2f2f2fffffffefefefefefeffffffecececffffffe6e6e6
+e1e1e1e9e9e9fffffffffffff1f1f1f2f2f2f1f1f1efefeffffffffffffffffffff2f2f2
+ffffffedededf3f3f3f2f2f2fdfdfdfafafaf8f8f8f3f3f3ffffffffffffe5e5e5ffffff
+fffffff0f0f0eaeaeaffffffe4e4e4fffffffdfdfdf6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbefefeffffffff2f2f2ebebeb
+f5f5f5ffffffd3d3d3fffffffffffff7f7f7f6f6f6f0f0f0fefefef4f4f4fafafaf8f8f8
+fdfdfdf5f5f5fffffff7f7f7f4f4f4fffffff8f8f8eeeeeefefefeffffffecececf3f3f3
+dcdcdcf2f2f2f4f4f4fffffffbfbfbf1f1f1ffffffeaeaeafcfcfcfefefeefefeffbfbfb
+ffffffeeeeeef9f9f9f9f9f9fbfbfbf1f1f1fbfbfbedededefefeffffffff9f9f9f2f2f2
+edededfffffffffffffbfbfbfcfcfcfdfdfdfbfbfbefefeffffffff0f0f0f4f4f4ffffff
+fdfdfdfbfbfbfafafafbfbfbfdfdfdfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafffffffcfcfcf8f8f8fffffffafafaececec
+fffffffdfdfdf2f2f2ffffffefefeffffffffbfbfbececece7e7e7ffffffe1e1e1ffffff
+fffffff1f1f1e6e6e6fffffff5f5f5fffffffefefecbcbcbfcfcfcfafafaffffffffffff
+ffffffecececf4f4f4f9f9f9f5f5f5ffffffe7e7e7eaeaeaf3f3f3fffffffffffff5f5f5
+fffffffbfbfbffffffd8d8d8fffffffbfbfbffffffe7e7e7fefefef8f8f8fefefef6f6f6
+f2f2f2ffffffffffffe6e6e6f9f9f9f4f4f4ffffffe8e8e8f6f6f6fffffff3f3f3f1f1f1
+efefeffffffff4f4f4f2f2f2f3f3f3f7f7f7f8f8f8f7f7f7f6f6f6fcfcfcfafafae2e2e2
+f7f7f7fffffffffffff9f9f9fffffffcfcfcf7f7f7ecececf7f7f7fffffffffffff8f8f8
+fdfdfdfefefef4f4f4fffffffffffff6f6f6ffffffffffffeeeeeeffffffffffffefefef
+fefefeffffffedededffffffecececfffffff8f8f8fafafafafafae8e8e8ffffffe8e8e8
+fffffff8f8f8fcfcfcfffffff4f4f4f8f8f8fffffffffffffcfcfcfdfdfdf8f8f8fbfbfb
+fcfcfcfffffffafafafffffff0f0f0fffffff9f9f9edededfafafaf9f9f9ffffffffffff
+f7f7f7fffffff8f8f8ffffffeaeaeafffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf4f4f4f4f4f4fbfbfbebebeb
+f7f7f7fffffffefefeedededfafafafdfdfdf8f8f8fafafafcfcfcfefefefdfdfdffffff
+ffffffffffffecececfbfbfbffffffe8e8e8fffffffefefeebebebfbfbfbf5f5f5ffffff
+fffffff6f6f6ffffffedededf7f7f7fffffff3f3f3e3e3e3fffffff1f1f1fcfcfcfdfdfd
+f0f0f0fffffff9f9f9f6f6f6fffffffefefeefefefffffffffffffd2d2d2ffffffffffff
+ecececedededf1f1f1fafafafffffff4f4f4f1f1f1fffffffafafafffffffffffff0f0f0
+fffffffdfdfdfcfcfcfcfcfcfefefefffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fbfbfbfffffffdfdfdfffffff7f7f7f8f8f8fefefe
+f2f2f2fbfbfbfffffffcfcfcf7f7f7fdfdfdecececfffffffcfcfcf8f8f8f0f0f0fafafa
+f9f9f9f6f6f6fffffffffffff7f7f7f2f2f2fffffffefefef7f7f7fffffff5f5f5ffffff
+f3f3f3f9f9f9fffffff0f0f0fffffff3f3f3f5f5f5fffffff5f5f5f5f5f5fcfcfcfbfbfb
+f7f7f7fefefee4e4e4fffffff8f8f8fffffff9f9f9fffffff0f0f0f7f7f7fefefefdfdfd
+fffffffcfcfce0e0e0ffffffffffffefefefe8e8e8f2f2f2fffffff3f3f3f6f6f6fcfcfc
+fdfdfdf4f4f4fcfcfcfcfcfcefefeffffffff7f7f7fcfcfcfbfbfbfffffff0f0f0f6f6f6
+fffffff2f2f2eeeeeeedededf4f4f4fffffff7f7f7fdfdfdf9f9f9f7f7f7f6f6f6ffffff
+fffffff9f9f9ffffffeeeeeeeeeeeefefefef8f8f8fffffffbfbfbf8f8f8e2e2e2ffffff
+e6e6e6ebebebffffffe1e1e1fefefeeeeeeefffffffcfcfcfbfbfbffffffe6e6e6fefefe
+ecececffffffe3e3e3eeeeeefdfdfdffffffe8e8e8fbfbfbfdfdfdf9f9f9ffffffe9e9e9
+ffffffe2e2e2fffffffafafafefefed7d7d7fcfcfcfffffffafafafdfdfdf3f3f3f7f7f7
+fffffff4f4f4fafafaedededfffffff1f1f1fdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf2f2f2ffffffffffffffffff
+ffffffe7e7e7fcfcfcffffffe4e4e4fffffffffffff4f4f4fcfcfcfffffff6f6f6f1f1f1
+f0f0f0fbfbfbffffffebebebeeeeeef9f9f9fffffffcfcfcefefeffefefeffffffd6d6d6
+fbfbfbf3f3f3f0f0f0fffffff9f9f9f2f2f2f2f2f2ffffffe9e9e9fffffffdfdfdfdfdfd
+f2f2f2fefefefffffffbfbfbefefeffffffffffffff2f2f2f0f0f0fffffff2f2f2d6d6d6
+fffffff4f4f4f7f7f7fffffff4f4f4fffffff4f4f4f8f8f8fcfcfcebebebfefefef3f3f3
+fffffffffffffdfdfdfdfdfdfefefefffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf6f6f6f8f8f8fbfbfbfefefe
+fefefefbfbfbf8f8f8f6f6f6fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffefefefcfcfcfafafaf7f7f7f6f6f6f5f5f5fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f4f4f4fbfbfbfffffffdfdfdf6f6f6f3f3f3f8f8f8fffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafaf8f8f8f9f9f9f9f9f9f9f9f9fafafafbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf2f2f2f6f6f6fbfbfbffffff
+fffffffbfbfbf6f6f6f2f2f2fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfdfdfdfffffffffffffffffffcfcfcf6f6f6f2f2f2fffffffdfdfdf9f9f9fafafa
+fcfcfcfcfcfcf8f8f8f4f4f4fafafafafafafafafafafafafafafafafafafafafafafafa
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefef7f7f7f2f2f2f5f5f5fcfcfcfffffffafafaf3f3f3
+fafafafafafafafafafafafafafafafafafafafafafafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf9f9f9fbfbfbfdfdfdffffff
+fffffffdfdfdfbfbfbf9f9f9fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f8f8f8fdfdfdfffffffffffff9f9f9f7f7f7fbfbfbfffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfcfcfcfefefeffffff
+fffffffefefefcfcfcfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafaf9f9f9f8f8f8f8f8f8f9f9f9fafafafbfbfbfffffffcfcfcf9f9f9fbfbfb
+fffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffcfcfcf8f8f8fafafafffffffffffffefefef9f9f9
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfffffffffffffffffffefefefdfdfdfefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfbfbfbfafafafafafafcfcfcfffffffffffffdfdfdfafafaf9f9f9fbfbfb
+fffffffffffffffffffefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffefefefefefefffffffffffffffffffefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfc
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfcfbfbfbfcfcfcfafafaf9f9f9fafafa
+fcfcfcfdfdfdfcfcfcfafafafefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfefefefefefefefefefdfdfdfdfdfdfdfdfdfefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefefefefdfdfdfbfbfbf8f8f8f6f6f6fbfbfbfafafaf9f9f9fafafa
+fcfcfcfcfcfcfcfcfcfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbfdfdfdfefefefefefefcfcfcfbfbfbfcfcfcfefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefbfbfbf9f9f9f9f9f9fbfbfbfdfdfdfffffff9f9f9f9f9f9fbfbfbfcfcfc
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefcfcfcfcfcfcfcfcfcfdfdfdfdfdfdf9f9f9fafafafcfcfcfdfdfd
+fdfdfdfefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefffffffffffffefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000030303fafafafffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfdfdfdfffffffffffffefefef8f8f8f1f1f1edededfbfbfbfcfcfcfcfcfcfcfcfc
+fafafaf9f9f9fafafafbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfcfcfcfefefefffffffdfdfdfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffffffff5f5f5fcfcfcfefefeffffff
+f4f4f4fffffff7f7f7fdfdfdfffffffefefefdfdfdfffffffffffffcfcfcfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff8f8f8f5f5f5fffffff5f5f5fffffffcfcfcfcfcfc
+fffffffffffffdfdfdfdfdfdfffffffffffffdfdfdfbfbfbffffff7070706e6e6e727272
+6b6b6b6262627171715d5d5d686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+6464646b6b6b6e6e6e6565656a6a6a6f6f6f6868687070706d6d6d7171716c6c6c666666
+6d6d6de4e4e4fefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+020202010101000000000000040404fcfcfcfffffffffffffffffffffffff4f4f4ffffff
+fbfbfbfefefeeeeeeef9f9f9fffffffafafaf8f8f8fbfbfbfcfcfcfafafafafafafefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffffffffffffffbfbfbfffffff1f1f1ffffff
+fffffffffffffdfdfdfdfdfdfffffffffffffdfdfdfcfcfcf8f8f87a7a7ae2e2e2f8f8f8
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffffffffafafafffffffffffffafafafefefefefefefdfdfdf7f7f7f3f3f3
+dadadafffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffefefe8787879898989393939e9e9e
+989898a0a0a09494949b9b9ba1a1a19b9b9b9898989b9b9b9e9e9e9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9d9d9d9d9d9d9d9d9d9d9d9d9292929393938888888d8d8d959595a6a6a6a8a8a8e5e5e5
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefcfcfcf6f6f65f5f5fffffffffffff
+fffffffdfdfdebebebf8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fffffffdfdfdfafafafbfbfbfdfdfdfbfbfbfafafafbfbfbfffffffdfdfdf6f6f6ffffff
+e2e2e2fefefeedededf4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfca5a5a5f2f2f2fffffffafafa
+edededfffffffefefef7f7f7fffffffbfbfbf7f7f7f9f9f9fdfdfdfffffffefefefcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffffffffffeeeeeec5c5c5ffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff4e4e4efffffff6f6f6
+fffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefef9f9f9fffffffcfcfcf8f8f8fffffffefefef9f9f9fffffff7f7f7ffffff
+e4e4e4fdfdfdf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000040404fafafafefefefbfbfb989898f9f9f9fffffffefefe
+f1f1f1fffffffffffff7f7f7fffffffdfdfdfafafafafafafdfdfdfffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffedededf5f5f5f6f6f6fcfcfcfffffffafafac2c2c2ffffff
+fffffffdfdfdfcfcfcfdfdfdfffffffffffffffffffdfdfdffffff5b5b5bfffffff9f9f9
+fcfcfcd1d1d1c9c9c9c3c3c3c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c8c8c8c8c8c8c2c2c2cbcbcbc3c3c3c0c0c0d3d3d3c3c3c3cfcfcffdfdfdfcfcfcffffff
+e4e4e4fcfcfcf5f5f5f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9a2a2a2f3f3f3f0f0f0fbfbfb
+fbfbfbfcfcfcfdfdfdfffffffafafafcfcfcfbfbfbf8f8f8f9f9f9fdfdfdfffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffff6f6f6eeeeeefafafaf7f7f7c2c2c2ffffff
+fefefefdfdfdfcfcfcfdfdfdfffffffffffffffffffefefeeeeeee585858fafafaffffff
+ffffffc4c4c4ccccccd4d4d4cececececececececececececececececececececececece
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+d2d2d2d6d6d6cececed8d8d8cfcfcfcececeddddddb5b5b5a7a7a7f7f7f7fcfcfcfdfdfd
+e2e2e2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fafafafdfdfdf8f8f89c9c9cf2f2f2ecececfafafa
+fefefefafafafefefefffffff6f6f6fcfcfcfefefef9f9f9f6f6f6fafafaffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafaf7f7f7ffffffffffffffffffffffffc6c6c6fbfbfb
+fefefefdfdfdfcfcfcfdfdfdfffffffffffffffffffefefeffffff6b6b6bffffffffffff
+ffffffcececed1d1d1f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f8f8f8fefefef1f1f1fefefef8f8f8f7f7f7f9f9f9b0b0b09c9c9cfdfdfdfefefef7f7f7
+d8d8d8fbfbfbfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000010101000000040404fafafafcfcfcf7f7f78c8c8cffffffffffffffffff
+f9f9f9f8f8f8fefefefbfbfbf1f1f1fbfbfbfefefef7f7f7f3f3f3f7f7f7fdfdfdffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffff8f8f8fffffff5f5f5f5f5f5ffffffcbcbcbffffff
+fefefefdfdfdfcfcfcfdfdfdfffffffffffffffffffefefeffffff636363f8f8f8f5f5f5
+fbfbfbd7d7d7c4c4c4fafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff4f4f4fffffffffffffffffff5f5f59494948a8a8af8f8f8ffffffffffff
+e7e7e7fffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd929292f9f9f9fefefe010101
+0202020606060303030e0e0ee8e8e8fbfbfbf5f5f5f5f5f5fffffff6f6f6fcfcfcfdfdfd
+f2f2f2fffffffffffffffffffefefef3f3f3fffffffbfbfbfefefefffffff0f0f0fdfdfd
+fffffffffffff9f9f9fefefef3f3f3fffffffffffff0f0f0fffffffdfdfdf8f8f8fbfbfb
+f7f7f7fffffff7f7f7f9f9f9f7f7f7fffffffffffffffffffffffff4f4f4f0f0f0f7f7f7
+fffffffefefef5f5f5fafafaffffffffffffffffffffffffffffffffffffffffffffffff
+fafafaf2f2f2fffffffffffffcfcfcf0f0f0fffffff4f4f4fffffff5f5f5ffffffffffff
+f9f9f9eeeeeefffffff9f9f9fbfbfbfffffffbfbfbfbfbfbfdfdfdfffffffefefefefefe
+f4f4f4f6f6f6fffffff9f9f9f3f3f3fffffff8f8f8fdfdfdfffffffefefeeaeaeaffffff
+fcfcfcf1f1f1fffffff9f9f9fffffff7f7f7fffffff4f4f4f6f6f6fafafafafafaffffff
+f5f5f5fffffffffffffcfcfcf0f0f0e6e6e6fffffff0f0f0ffffffecececfffffff8f8f8
+fbfbfbfffffff4f4f4fffffffcfcfcfbfbfbfbfbfbfcfcfcfefefefefefefcfcfcfafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfffffff7f7f7fcfcfcfbfbfbc5c5c5fcfcfc
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff676767fcfcfcfcfcfc
+ffffffcbcbcbd5d5d5fffffffffffff1f1f1ffffffeeeeeefffffff6f6f6fffffff3f3f3
+ffffffe9e9e9f9f9f9ffffffebebebffffffffffffe9e9e9fffffff2f2f2ffffffeaeaea
+fefefefffffffffffffffffffefefef5f5f5fffffffffffff5f5f5fffffffffffffbfbfb
+fffffff8f8f8fffffffffffff1f1f1f0f0f0fffffffafafafffffffdfdfdffffffededed
+f3f3f3fffffffffffff9f9f9fffffff0f0f0fffffffffffffffffff1f1f1fdfdfdfefefe
+fdfdfdfcfcfcfffffffcfcfcffffffe9e9e9ffffff9292929b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfda1a1a1fffffffdfdfdf9f9f9
+f7f7f7121212dbdbdbfffffff5f5f5f6f6f6f2f2f2ffffffedededfdfdfdfffffff2f2f2
+fffffff9f9f9e6e6e6fdfdfdfefefefffffff0f0f0fffffff9f9f9f9f9f9fffffff0f0f0
+ffffffe9e9e9fcfcfcfdfdfdf7f7f7f1f1f1fbfbfbefefefffffffe5e5e5f6f6f6ffffff
+fcfcfcebebebefefeffffffff5f5f5f9f9f9f3f3f3f3f3f3fffffff7f7f7fffffff8f8f8
+e0e0e0f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7f7f7f1f1f1fcfcfcf1f1f1fffffff7f7f7ffffffedededffffffefefeff4f4f4
+fffffffffffffdfdfdf7f7f7f7f7f7f5f5f5f0f0f0fcfcfcfffffffbfbfbf3f3f3fbfbfb
+fffffffffffff4f4f4fffffff6f6f6fffffffbfbfbfffffffbfbfbebebebfffffff2f2f2
+fffffff8f8f8fffffffefefefefefeedededfffffff2f2f2fffffffffffffffffff4f4f4
+ffffffffffffe1e1e1fefefefffffffefefee1e1e1fffffffffffff0f0f0ffffffffffff
+f4f4f4fcfcfcfafafaecececfdfdfdfcfcfcfcfcfcfefefefffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfffffff8f8f8fdfdfdfcfcfcc6c6c6fdfdfd
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff676767fefefefdfdfd
+ffffffc7c7c7d1d1d1fafafaf9f9f9fffffffefefeeeeeeeffffffe8e8e8fefefeffffff
+fdfdfdffffffecececffffffffffffe9e9e9e5e5e5fffffffffffffbfbfbfefefeffffff
+fffffffafafaefefeff7f7f7fffffffffffffafafaf7f7f7fffffffffffffffffff7f7f7
+fefefef3f3f3f0f0f0f9f9f9fffffffffffffbfbfbf4f4f4f4f4f4ecececfffffffcfcfc
+ffffffecececf7f7f7fffffff6f6f6fffffffbfbfbeeeeeeedededfffffffefefef6f6f6
+fffffff8f8f8fcfcfcffffffe5e5e5fdfdfdffffff9c9c9c9b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd898989f3f3f3f6f6f6ffffff
+ffffff000000fffffffbfbfbfffffff5f5f5fffffffbfbfbffffffe9e9e9e6e6e6ffffff
+ffffffe1e1e1fffffff7f7f7ebebebfbfbfbf6f6f6edededf0f0f0ffffffd6d6d6fbfbfb
+fffffffefefefffffffefefef8f8f8fffffff6f6f6fdfdfdf7f7f7fffffff6f6f6f2f2f2
+f4f4f4fffffff4f4f4eaeaeaf3f3f3fffffffbfbfbffffffeaeaeaffffffd6d6d6fbfbfb
+fffffffffffff7f7f7f0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9ffffffeeeeeef5f5f5ffffffe9e9e9e7e7e7f2f2f2fffffffafafaffffffffffff
+dfdfdff6f6f6ddddddfffffff5f5f5ffffffffffffeeeeeeedededf3f3f3fbfbfbffffff
+eaeaeafffffff3f3f3fdfdfdf8f8f8fffffffbfbfbefefeffffffffefefef0f0f0ffffff
+fcfcfcf1f1f1f7f7f7ffffffffffffebebebf2f2f2ffffffe2e2e2eaeaeaeaeaeaffffff
+fefefef3f3f3ffffffe7e7e7f3f3f3fdfdfdf6f6f6ffffffedededffffffe6e6e6e9e9e9
+fffffff4f4f4fcfcfcfffffffcfcfcfcfcfcfbfbfbfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffff9f9f9fefefefdfdfdc7c7c7fefefe
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdfefefe676767fffffffefefe
+ffffffc4c4c4cdcdcdf7f7f7f7f7f7fffffff8f8f8f3f3f3fffffffffffff7f7f7f4f4f4
+f9f9f9e6e6e6ffffff000000000000fffffff5f5f5fffffffcfcfcfafafaf4f4f4e5e5e5
+fcfcfcfefefefffffff8f8f8f4f4f4fffffff7f7f7e8e8e8ffffffecececffffffffffff
+fefefefffffffffffffafafafefefef3f3f3f1f1f1fffffffffffffffffff6f6f6f1f1f1
+fefefef8f8f8fffffffbfbfbf9f9f9f9f9f9f2f2f2ffffffefefefededed030303fefefe
+f6f6f6fffffffffffffffffffffffff9f9f9e9e9e99696969b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdaaaaaaedededfffffff1f1f1
+f8f8f8090909fbfbfbf2f2f2f6f6f60505050505050f0f0fdcdcdcfffffffbfbfbfefefe
+e9e9e9eaeaeae7e7e7ffffff101010fefefee9e9e9fefefeffffffdfdfdfffffffffffff
+edededf3f3f3f6f6f6f9f9f9fafafafafafaffffffefefefe5e5e5f1f1f1fefefeffffff
+ffffffe0e0e0ffffffecececfdfdfdf3f3f3efefefe5e5e5ffffffe6e6e6ffffffeaeaea
+ffffffecececfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafffffff5f5f5fffffff6f6f6fefefeedededfffffff8f8f8ecececfefefefafafa
+fcfcfcffffffffffffe1e1e1f2f2f2eeeeeee3e3e3ffffffdfdfdff7f7f7e1e1e1ffffff
+fffffff8f8f8ffffffe5e5e5ffffffefefefecececffffffefefeff4f4f4f1f1f1f1f1f1
+fffffff4f4f4fffffff7f7f7fcfcfcf4f4f4fffffff9f9f9f5f5f5ffffffffffffe6e6e6
+fffffff8f8f8f0f0f0ffffff000000fffffffffffffafafaf0f0f0f4f4f4fffffff0f0f0
+ffffff060606030303000000fafafaf9f9f9f8f8f8fafafafdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffafafafffffffefefec8c8c8ffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdfefefe686868fffffffdfdfd
+ffffffc3c3c3cececefafafae6e6e6eeeeeef8f8f8fffffff1f1f1e9e9e9fefefeffffff
+fbfbfbfffffffafafaffffff0e0e0efffffffcfcfcebebebeeeeeefffffffffffffbfbfb
+f4f4f4e7e7e7f3f3f3e9e9e9f6f6f6fbfbfbfffffff6f6f6fffffff7f7f7fffffffafafa
+eeeeeefdfdfdeaeaeafcfcfcfffffff5f5f5fbfbfbf2f2f2e9e9e9fbfbfbeeeeeeffffff
+f9f9f9fffffffffffffefefefffffff5f5f5ffffffe1e1e1f5f5f5ffffff212121ffffff
+eeeeeefafafae7e7e7efefefdededeffffffe4e4e49b9b9b9b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd8d8d8df9f9f9fbfbfbfdfdfd
+ffffff030303f8f8f8fefefefdfdfd0e0e0efcfcfcfafafafffffff1f1f1eaeaeaeaeaea
+fffffff0f0f0ffffff010101e7e7e7fffffffffffff6f6f60000001e1e1e000000f5f5f5
+0b0b0b040404050505eeeeeeffffffecececfafafafffffffffffffffffff6f6f6f1f1f1
+edededffffffedededfffffffafafaf9f9f9f0f0f0fffffff2f2f2ffffffeeeeeef8f8f8
+fcfcfcfbfbfbfefefef9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffffffffffffff1f1f1000000000000070707fffffffcfcfcf8f8f8000000
+000000000000fffffffcfcfcfffffffffffffcfcfce3e3e3fefefefffffff5f5f5fdfdfd
+e1e1e11b1b1b010101090909ffffffffffffdadadaf2f2f2fffffff5f5f5f2f2f2ffffff
+f9f9f9ffffffd4d4d4f9f9f9fefefeefefeffffffff8f8f8f1f1f1fafafafcfcfcfafafa
+f6f6f6f1f1f1f0f0f0f8f8f8fcfcfc000000ffffffefefeff1f1f1ffffffe1e1e1ffffff
+e9e9e9fefefef4f4f4262626fbfbfbf9f9f9f8f8f8f9f9f9fcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffc9c9c9ffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff686868fefefefbfbfb
+fefefec5c5c5d1d1d1fefefeffffffe2e2e2fffffff5f5f5fcfcfc0f0f0f0f0f0f090909
+080808eeeeeeefefeff9f9f9000000dfdfdffffffff7f7f7fffffffafafae0e0e0ffffff
+fafafafffffff4f4f4ffffffffffffe1e1e1f5f5f5e5e5e5ecececfffffffffffffcfcfc
+fbfbfbffffffedededfffffffbfbfbe9e9e9fffffff9f9f9fffffffbfbfbebebebffffff
+fffffffdfdfdf6f6f6fafafaffffffe2e2e2fafafaffffffffffffffffff000000fbfbfb
+fffffffafafafffffff9f9f9ffffffe9e9e9ffffff8c8c8c9b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd898989fffffffffffff3f3f3
+f9f9f90d0d0df3f3f3f6f6f6fbfbfb000000fcfcfceeeeeee1e1e1fffffff8f8f8ffffff
+e7e7e7ebebebffffff000000fffffffafafaeaeaeaf2f2f2ffffff050505ffffffe6e6e6
+ffffff000000fcfcfcfffffff7f7f7f9f9f9ffffffdfdfdfdededef8f8f8f4f4f4fbfbfb
+fbfbfbf1f1f1fbfbfbf8f8f8f1f1f1fdfdfde9e9e9fcfcfcfffffff4f4f4e0e0e0ffffff
+f3f3f3ffffffecececffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafefefef3f3f3e6e6e6f0f0f0ffffff000000fdfdfdf2f2f2fafafaedededffffff
+0b0b0bfdfdfdfffffffffffffcfcfcfafafafffffff6f6f6dbdbdbfefefefcfcfcf7f7f7
+ffffffeaeaeaffffff090909d7d7d7ffffffffffffecececf6f6f6ffffffffffffe8e8e8
+ecececf5f5f5f3f3f3fffffffffffff2f2f2f8f8f8f4f4f4fffffffffffff5f5f5f6f6f6
+fffffff6f6f6fffffffafafaefefef000000fffffffbfbfbfffffff0f0f0ffffffededed
+ffffffe4e4e4ffffff040404fefefefcfcfcfafafafbfbfbfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffafafaffffffffffffc8c8c8ffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff676767fbfbfbfafafa
+ffffffc8c8c8d2d2d2fcfcfcd0d0d0fafafafafafa151515000000fffffff9f9f9eaeaea
+ffffff000000ffffffe1e1e1101010fffffff0f0f0f0f0f0fefefefafafafffffff5f5f5
+f0f0f0f2f2f2efefeffbfbfbfffffffafafafffffffefefeeaeaeaf5f5f5f3f3f3f0f0f0
+f1f1f1fafafaf7f7f7fffffffffffff9f9f9fbfbfbfbfbfbe1e1e1f0f0f0ffffffededed
+e6e6e6eeeeeefafafafffffffdfdfdf9f9f9fffffff3f3f3f8f8f8ffffffffffffffffff
+f2f2f2ffffff000000f0f0f0f5f5f5fffffffbfbfb8f8f8f9b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfda5a5a5f3f3f3f5f5f5f6f6f6
+ffffff0f0f0feeeeeeffffffe4e4e4101010fffffffcfcfcffffffffffffdfdfdff7f7f7
+fffffffffffff8f8f8060606fcfcfcffffffe5e5e5fffffff0f0f0000000ffffffffffff
+000000fdfdfdf9f9f9e9e9e9f2f2f2ffffffedededffffff232323000000050505fdfdfd
+f4f4f4ffffff000000040404000000edededffffff000000101010030303fffffffcfcfc
+fbfbfbfdfdfdf5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff9f9f9f9f9f9ffffffffffffdcdcdc000000fffffff4f4f4f8f8f8fffffffbfbfb
+000000fefefee5e5e5f3f3f3111111000000020202000000ffffffffffffedededfefefe
+ffffffe9e9e9f7f7f7000000fffffffffffffdfdfdeeeeee0d0d0d000000fdfdfdffffff
+ffffff080808151515eeeeeee0e0e0ffffffedededf4f4f41212120000000d0d0df7f7f7
+e4e4e4f8f8f8ecececfffffff5f5f50d0d0df4f4f4f3f3f3f1f1f1fffffffdfdfde0e0e0
+fffffffffffffafafa000000fffffffefefefbfbfbfbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffafafafffffffefefec8c8c8fefefe
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff656565fafafafcfcfc
+ffffffcacacacececef2f2f2fbfbfbffffff020202111111fffffff3f3f3edededffffff
+ffffff000000fffffff9f9f9000000ffffffe9e9e9ffffffffffffe6e6e6fbfbfbf1f1f1
+f9f9f9ffffffecececfcfcfcdededeffffffdbdbdbf8f8f8fffffffffffffefefefefefe
+fdfdfdfbfbfbffffffdcdcdcf7f7f7ffffffc6c6c6fffffffffffff2f2f2fbfbfbffffff
+e8e8e8ffffffdfdfdffdfdfdedededfffffff0f0f0ebebebfffffff5f5f5d9d9d9f7f7f7
+f8f8f8f8f8f81b1b1bfffffffafafafdfdfdf3f3f39c9c9c9b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd8c8c8cfffffffcfcfcffffff
+ffffff000000ffffffe4e4e4ffffff000000f8f8f8f6f6f6ffffffe9e9e9fffffffbfbfb
+f8f8f8ebebebfefefe0a0a0af6f6f6f5f5f5fefefef4f4f4f6f6f6151515f4f4f4000000
+fffffffcfcfcfffffffdfdfdfefefee8e8e8ffffff000000e8e8e8fffffff9f9f9030303
+fffffff4f4f4fefefe040404e7e7e7ffffffe8e8e8f7f7f7000000ffffffe3e3e3e2e2e2
+fffffffdfdfdfbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffff0f0f0fafafafffffff1f1f1030303fffffff8f8f8f3f3f3000000
+fffffff5f5f5ffffff000000f2f2f2fffffff3f3f3f6f6f60a0a0af6f6f6ffffffececec
+f1f1f1ffffffffffff000000fdfdfde3e3e3fafafaffffffeaeaea181818fffffff2f2f2
+fcfcfcfafafa000000fffffffffffff0f0f0f8f8f8020202f7f7f7fffffff8f8f8000000
+fefefefefefef6f6f6fffffffefefe000000fffffffefefefafafaf5f5f5ffffffffffff
+e7e7e7f8f8f8fbfbfb0b0b0bfffffffcfcfcf9f9f9f9f9f9fafafafdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffff9f9f9fefefefdfdfdc7c7c7fefefe
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffff646464fafafafdfdfd
+ffffffcbcbcbc9c9c9e9e9e9fcfcfce9e9e9000000fdfdfdfffffff8f8f8fffffff7f7f7
+fffffff2f2f2f3f3f3fcfcfc0a0a0a030303000000000000f6f6f6fffffff8f8f8fefefe
+040404000000030303fffffffffffff6f6f61414140000000a0a0a030303050505020202
+f6f6f6fcfcfcf5f5f52f2f2f0000000f0f0f090909fafafafffffff8f8f8f2f2f2f8f8f8
+121212000000040404fffffffcfcfcf8f8f8f5f5f5ffffffececec070707111111ffffff
+fafafa080808050505000000000000f5f5f5ffffff8b8b8b9b9b9bfdfdfdfbfbfbffffff
+e4e4e4fbfbfbfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101000000000000040404fffffffffffff7f7f79d9d9dfafafafffffffefefe
+f7f7f7000000fffffff3f3f3f4f4f4000000fffffffefefefbfbfbf1f1f1f4f4f4f2f2f2
+fffffff7f7f7000000edededfffffffdfdfdeeeeeefffffffbfbfb0d0d0d000000060606
+fdfdfdfffffff5f5f5fafafaf4f4f4ffffff000000f6f6f6fffffff7f7f7fbfbfbf0f0f0
+010101fffffff4f4f4000000fffffff5f5f5fffffff4f4f4000000fffffffffffff0f0f0
+fffffff1f1f1fffffff0f0f0fefefefffffffffffffffffffffffffffffffefefefdfdfd
+fefefefffffff4f4f4fffffff2f2f2ffffffe4e4e40e0e0ef3f3f3ffffffe7e7e7000000
+ffffffe7e7e7fbfbfbf6f6f6f5f5f5fdfdfdffffffffffff000000f3f3f3e9e9e9fcfcfc
+f8f8f8ffffffececec141414f7f7f7edededfdfdfdf7f7f7f6f6f6020202dfdfdffafafa
+fcfcfcf3f3f31b1b1bedededfffffff0f0f00f0f0ffbfbfbfcfcfcfcfcfcf7f7f7f4f4f4
+000000fdfdfdffffffecececf7f7f7ffffff000000fffffff3f3f3fffffff5f5f5ffffff
+fffffff0f0f0fdfdfd0b0b0bfcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff666666fcfcfcfbfbfb
+ffffffc7c7c7d4d4d4ffffffd4d4d4ffffff000000ffffffeeeeeeffffffedededffffff
+fafafafbfbfbf2f2f2ffffff0e0e0efffffff0f0f0f4f4f40a0a0af1f1f1ededed121212
+101010fffffffefefe030303fffffff1f1f1efefef212121e5e5e5fffffffdfdfd010101
+f8f8f8ffffff010101f3f3f3ffffffffffffefefef070707000000fefefef0f0f0090909
+fbfbfbf0f0f0ffffff000000f1f1f1fffffffffffff7f7f7fffffffcfcfc000000ffffff
+e4e4e4ffffff000000fffffffafafaecececffffff9595959a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101000000000000040404fffffffffffff7f7f7979797fbfbfbeaeaeaffffff
+ffffff000000f4f4f4fffffff8f8f81a1a1af3f3f3e8e8e8f6f6f6fffffff7f7f7ffffff
+fcfcfcf9f9f9ffffff020202fffffff2f2f2e1e1e1ffffffeeeeee131313fafafaf3f3f3
+030303efefeffbfbfbf2f2f2fffffffcfcfc0303030e0e0e0000000000001919190f0f0f
+070707e0e0e0f4f4f4ffffff020202f4f4f4f4f4f4080808fffffff6f6f6eeeeeeefefef
+f7f7f7ffffffeaeaeafffffffefefefefefefffffffffffffffffffffffffefefefdfdfd
+fdfdfdf5f5f5f1f1f1fffffffffffff9f9f9ffffffe2e2e2050505fefefe131313f1f1f1
+ebebebf2f2f2ffffffebebeb111111000000000000010101060606f9f9f9ffffffe4e4e4
+fafafaf5f5f5f5f5f5030303fbfbfbffffffecececffffffffffff000000fffffff0f0f0
+f6f6f6ffffff030303fdfdfdf6f6f6fcfcfc0000000000000a0a0a141414000000161616
+040404f6f6f6f7f7f7fafafaffffff000000fafafaf9f9f9fffffffafafaf0f0f0fefefe
+f1f1f1fcfcfcf7f7f7000000fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff676767fefefefefefe
+ffffffc7c7c7d1d1d1fbfbfbffffffdbdbdb070707fbfbfbf1f1f1fffffffffffff4f4f4
+fffffffefefeffffffe9e9e9000000f5f5f5fbfbfbffffff040404ffffffffffffe7e7e7
+edededf5f5f5000000030303f0f0f0fffffff7f7f7000000fffffffffffff5f5f5070707
+fafafaf5f5f5000000fffffffffffff9f9f9ffffff050505fffffffefefe070707fcfcfc
+fafafae5e5e5f7f7f70c0c0ceeeeeeeaeaeaf9f9f9fffffff4f4f4ffffff090909f4f4f4
+fefefefafafa040404fffffffffffffdfdfdf0f0f09393939a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000010101000000000000040404fdfdfdfffffff8f8f89c9c9cf6f6f6ffffffdedede
+f7f7f7121212ecececf2f2f2ffffff000000f2f2f2f0f0f0fffffff4f4f4ffffffffffff
+e9e9e9fffffff9f9f9060606ffffffebebebfffffff3f3f3f8f8f8000000ffffffffffff
+f9f9f90f0f0fe6e6e6ffffffe8e8e8fefefe060606f9f9f9fffffff4f4f4fdfdfdfcfcfc
+f2f2f2ffffffffffffeeeeee000000ffffffffffff000000e6e6e6fafafaffffffffffff
+f4f4f4f6f6f6eeeeeef9f9f9fefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfefefefefefe
+fdfdfdfffffffafafaf6f6f6fafafaf1f1f1f0f0f0ffffff0a0a0aeaeaea040404ffffff
+ffffffffffffeeeeee0d0d0dedededffffffe2e2e2ffffff000000f5f5f5e2e2e2ffffff
+fffffffffffff5f5f5040404fffffff5f5f5ffffffedededeeeeee000000e2e2e2ffffff
+f1f1f1ffffff000000fdfdfdffffffebebeb191919ffffffe3e3e3e9e9e9fffffff2f2f2
+fcfcfcfffffff0f0f0f8f8f8f9f9f9030303edededfffffffefefeecececfffffffdfdfd
+fffffffefefeffffff000000fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff686868ffffffffffff
+ffffffc6c6c6cececef7f7f7fffffffafafa000000fdfdfdfafafae2e2e2ffffffeeeeee
+eeeeeef8f8f8ebebebf0f0f00f0f0ffffffffafafaf4f4f4000000e0e0e0eeeeeeffffff
+0000000e0e0ef6f6f6000000f9f9f9ffffffffffff000000ffffffefefeff7f7f7101010
+ffffffeaeaeaffffff0a0a0a0000000101010a0a0ae4e4e4f6f6f6ffffff0000000d0d0d
+020202191919000000080808fffffffffffff9f9f9fbfbfbf5f5f5fbfbfb131313fbfbfb
+f8f8f8f1f1f1000000ffffffeeeeeefffffff0f0f0a2a2a29a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000040404fbfbfbfefefef8f8f8a8a8a8fefefee9e9e9f0f0f0
+ffffff040404fffffff9f9f9ffffff000000fffffffffffffffffff8f8f8fcfcfcf4f4f4
+f7f7f7f8f8f8fefefe000000f5f5f5d0d0d0ffffffecececffffff0b0b0bf8f8f8ffffff
+f9f9f9020202ffffffeaeaeafffffffcfcfce8e8e8111111e3e3e3ffffffffffffebebeb
+000000fffffff8f8f8eeeeeeffffff040404000000ffffffffffffdfdfdff9f9f9f8f8f8
+f6f6f6ffffff0d0d0d010101fdfdfdfcfcfcfbfbfbfafafafafafafcfcfcfdfdfdffffff
+f5f5f5fffffffffffff2f2f2fffffffffffff4f4f4edededfdfdfd181818f0f0f0fafafa
+f9f9f9ffffffdadada202020ffffffd8d8d8ffffff111111000000fffffff0f0f0fefefe
+f0f0f0fefefeffffff000000fcfcfcfefefeeaeaeafefefeffffff000000fffffffbfbfb
+f3f3f3050505121212f6f6f6dcdcdcfcfcfcf3f3f30c0c0cf4f4f4ffffffefefeffdfdfd
+0a0a0aeaeaeaebebebfffffff6f6f6040404f6f6f6fdfdfdffffffe1e1e1e4e4e4ffffff
+fdfdfdedededfafafa000000fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff686868fffffffefefe
+ffffffc6c6c6cececef8f8f8f3f3f3ffffff040404131313fcfcfcfffffffffffffefefe
+ffffff000000fffffffafafa020202f6f6f6f5f5f5f6f6f6121212ffffffeeeeee000000
+fffffffafafaeaeaea131313fbfbfbffffffffffff000000efefeff8f8f8fdfdfd000000
+f5f5f5fffffff9f9f9000000fffffffffffffbfbfbfffffffbfbfbf1f1f1090909ffffff
+eeeeeed8d8d8fefefeeeeeeeeeeeeefbfbfbf4f4f4f1f1f1fffffff5f5f5000000ffffff
+fffffffbfbfb0d0d0de9e9e9fffffff2f2f2ffffff8383839a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fcfcfcf9f9f9aaaaaafefefefcfcfcffffff
+e7e7e7101010fdfdfdf6f6f6e6e6e6151515fbfbfbe8e8e8edededffffffe1e1e1ffffff
+ffffffeeeeeef6f6f6030303ffffffffffffe8e8e8f8f8f80000000d0d0d000000fcfcfc
+fefefeffffff000000111111f7f7f7eaeaeaf7f7f7e8e8e8232323060606000000191919
+ffffffeeeeeef0f0f0f1f1f1fffffffbfbfb090909f5f5f5fffffffbfbfbf9f9f9ffffff
+e4e4e4e2e2e2141414030303fcfcfcfbfbfbfafafafafafafafafafcfcfcfefefeffffff
+fefefefffffff3f3f3ffffffffffffefefeffffffffffffffafafa000000ffffffffffff
+e3e3e3f9f9f9fffffff2f2f2000000030303020202ffffff000000000000fffffffbfbfb
+fcfcfc0000000101011b1b1b040404040404fffffff2f2f2eeeeeeffffff000000111111
+040404e1e1e1000000030303ffffffebebebf7f7f7dcdcdc0c0c0c0000000000000f0f0f
+ffffffe9e9e9fbfbfbecececf6f6f60d0d0df0f0f0ebebebd7d7d7fffffff4f4f4ffffff
+d5d5d5ffffffffffff060606fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff676767fcfcfcfbfbfb
+ffffffc5c5c5d1d1d1fcfcfce5e5e5fffffff0f0f0000000090909edededf7f7f7fdfdfd
+f6f6f6000000e4e4e4ffffff070707fefefee6e6e6ffffff000000fcfcfcf6f6f6070707
+fffffffefefe0c0c0c000000f2f2f2fdfdfdededed060606fcfcfcfffffff4f4f4171717
+fafafaeeeeeefbfbfb212121000000242424000000030303ffffffe2e2e2090909090909
+e4e4e4fffffffdfdfd151515f7f7f7f9f9f9fffffffffffff6f6f6f6f6f60c0c0cffffff
+f2f2f2eaeaea0e0e0ef5f5f5e0e0e0fffffff7f7f79999999a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f6f6f6fafafafafafa929292e2e2e2fffffff7f7f7
+f8f8f8000000fffffffefefeffffff000000fefefeffffffffffffe9e9e9ffffffececec
+efefeffcfcfcffffff060606ffffffd4d4d4fffffffffffffbfbfbffffffffffffffffff
+f4f4f4f4f4f4ffffffedededfefefefffffffbfbfbfefefef1f1f1f3f3f3ffffffefefef
+f0f0f0f7f7f7f8f8f8fffffff1f1f1000000fffffffbfbfbe9e9e9fbfbfbffffffe2e2e2
+ffffff000000040404fffffffbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefe
+fffffffdfdfdefefeffffffff7f7f7e3e3e3fefefeefefeffbfbfbfffffff3f3f3ededed
+fffffff0f0f0fffffffbfbfbf9f9f9fffffff5f5f5ffffffffffffffffffffffffefefef
+ffffffedededebebebffffffefefeff1f1f1ecececfdfdfdf0f0f0fffffff1f1f1eaeaea
+fffffffffffff3f3f3ffffffe9e9e9fcfcfcfffffffffffff7f7f7ffffffffffffebebeb
+f0f0f0f7f7f7fffffffefefeffffff000000fdfdfdffffffecececffffffeaeaeaefefef
+ffffffe8e8e8e3e3e3000000fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff666666fbfbfbf9f9f9
+fdfdfdc5c5c5d1d1d1fdfdfdfffffff3f3f3fcfcfcfffffffafafa0000000000000e0e0e
+040404ffffffffffff0000000a0a0a000000ffffff0000000000000e0e0efffffffefefe
+000000000000f1f1f10b0b0b000000ffffff121212000000040404fbfbfb0c0c0c070707
+0a0a0adcdcdc050505f4f4f4f0f0f0f7f7f7f8f8f8000000000000fffffff2f2f2010101
+1a1a1a000000000000ffffffefefeffffffffbfbfbeeeeeefafafa0404040f0f0f000000
+ffffffe9e9e90000000e0e0e0e0e0effffffffffff9292929a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303f4f4f4f9f9f9fafafaaaaaaafffffff2f2f2e0e0e0
+ffffff000000fbfbfbf4f4f4f4f4f4080808000000000000fcfcfcf7f7f7f6f6f6ffffff
+f7f7f7fcfcfcf5f5f5ededed000000fefefefffffff0f0f0ffffffe7e7e7fffffff2f2f2
+f9f9f9fffffffbfbfbefefeff8f8f8e5e5e5e4e4e4fafafaffffffecececf3f3f3f9f9f9
+ffffffffffffeaeaead8d8d8f3f3f30a0a0aefefeffafafaffffffeeeeeefdfdfdf8f8f8
+ffffff090909edededf8f8f8fafafafafafafcfcfcfdfdfdfefefefefefefefefefefefe
+fbfbfbfbfbfbfcfcfcfbfbfbfefefeffffffffffffefefeff7f7f7f3f3f3ffffffe1e1e1
+fffffff5f5f5f8f8f8fcfcfcf7f7f7f0f0f0f4f4f4f7f7f7efefeff8f8f8d9d9d9ffffff
+d9d9d9ffffffedededfefefefdfdfdfffffffffffff9f9f9fafafafffffff4f4f4ffffff
+ebebebf6f6f6e1e1e1fbfbfbfbfbfbfffffff2f2f2f5f5f5fcfcfce3e3e3edededffffff
+ffffffe0e0e0ffffffe9e9e9000000fcfcfcf5f5f5e5e5e5ffffffe5e5e5fefefef4f4f4
+e1e1e10f0f0f191919090909fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff676767fdfdfdfbfbfb
+ffffffc4c4c4cececef9f9f9f1f1f1f2f2f2fcfcfcf4f4f4f5f5f5fffffffffffffdfdfd
+fffffff6f6f6e2e2e2f9f9f9f7f7f7fafafaf3f3f3f7f7f7fffffff8f8f8f9f9f9fefefe
+f2f2f2ffffffefefeffffffffffffff1f1f1f4f4f4fffffffafafafafafafbfbfbf5f5f5
+fcfcfcffffff070707f2f2f2fefefefffffff3f3f3ffffff000000fafafafefefeffffff
+f3f3f3eaeaeaffffffffffffffffffe6e6e6fdfdfdfffffff1f1f1f1f1f1f2f2f2ffffff
+fdfdfdebebebffffffedededffffffeaeaeaf4f4f49f9f9f9a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000010101030303f3f3f3f8f8f8fafafa878787f4f4f4fefefe171717
+000000202020000000080808f8f8f8fffffff7f7f7fafafafffffffffffff2f2f2f9f9f9
+fefefeefefefffffffffffffefefeffffffff2f2f2ffffffe6e6e6fffffff8f8f8f2f2f2
+fffffff1f1f1f4f4f4fffffffffffffdfdfdfffffff6f6f6f7f7f7fafafafffffffcfcfc
+f5f5f5f8f8f8ffffff0f0f0f0b0b0b030303111111f8f8f8f8f8f8ecececfffffff7f7f7
+fefefeebebebffffffe8e8e8f9f9f9fafafafcfcfcfefefefffffffffffffefefefefefe
+fcfcfcf8f8f8fffffff5f5f5fafafaffffffe5e5e5fffffffdfdfdfdfdfdfffffff0f0f0
+f6f6f6fffffffffffff1f1f1fffffffefefefffffff7f7f7ffffffffffffe9e9e9ffffff
+ffffffe2e2e2ffffffecececfafafaedededfdfdfdf9f9f9fefefef8f8f8fafafafdfdfd
+fffffffefefefffffffffffffffffffdfdfdfffffff3f3f3f3f3f3fdfdfdffffffe7e7e7
+f8f8f8fffffff0f0f0fffffffffffff6f6f6f9f9f9fffffff0f0f0fffffff7f7f7f5f5f5
+fffffffffffff1f1f1fffffffcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffafafaffffffffffffc9c9c9ffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdffffff686868fffffffefefe
+ffffffc3c3c3cbcbcbf4f4f4fffffff9f9f9fffffffffffff1f1f1fafafae5e5e5f0f0f0
+f0f0f0fcfcfcffffffe7e7e7fcfcfcfffffff2f2f2fffffff0f0f0ffffffddddddffffff
+fffffffafafae4e4e4fefefef6f6f6ffffffeeeeeefdfdfdf5f5f5fffffff0f0f0f5f5f5
+f4f4f4fdfdfd000000fffffffcfcfcf7f7f7ffffff000000ffffffe4e4e4fdfdfdf7f7f7
+fbfbfbfffffffdfdfdf7f7f7f8f8f8f8f8f8fefefee7e7e7fffffff4f4f4ffffffe8e8e8
+f9f9f9fcfcfcf2f2f2f2f2f2f6f6f6ffffffffffff8f8f8f9a9a9afffffffdfdfdffffff
+e3e3e3fcfcfcfffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fafafaf5f5f5959595fbfbfbf6f6f6eeeeee
+fffffff5f5f5fbfbfbf9f9f9f0f0f0f1f1f1f2f2f2f4f4f4f5f5f5f7f7f7f8f8f8f8f8f8
+fbfbfbf9f9f9f6f6f6f5f5f5f5f5f5f8f8f8fbfbfbfefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafafafafafafafafafafafafafafafafafafafafafaf9f9f9fafafafafafafbfbfb
+fcfcfcfdfdfdfefefefefefefefefefcfcfcfafafaf8f8f8f9f9f9fbfbfbfefefeffffff
+fffffffffffffefefefdfdfdfbfbfbfafafaf8f8f8f8f8f8fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfafafaf7f7f7f4f4f4f4f4f4f7f7f7fafafafdfdfd
+f6f6f6f8f8f8fbfbfbfefefefffffffffffffefefefdfdfdf6f6f6f6f6f6f6f6f6f6f6f6
+f6f6f6f6f6f6f6f6f6f6f6f6fcfcfcfbfbfbf9f9f9f7f7f7f7f7f7f9f9f9fbfbfbfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefeffffffffffffefefeffefefeffffffc7c7c7ffffff
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfdfdfdfffffffbfbfb626262f2f2f2ffffff
+ffffffcfcfcfcececefdfdfdf7f7f7f8f8f8f9f9f9fafafafafafafafafafafafaf9f9f9
+fafafafafafafafafafafafafafafafafafafafafafafafafffffffdfdfdfafafaf7f7f7
+f7f7f7fafafafdfdfdfffffffdfdfdfbfbfbf9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfdfdfd
+eeeeeeffffffefefef1b1b1b020202181818000000fffffffdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+f8f8f8fefefeefefeff9f9f9f5f5f5ffffffffffff949494999999fffffff2f2f2fbfbfb
+e9e9e9f9f9f9fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f8f8f8fbfbfbf6f6f69c9c9cfffffffffffff3f3f3
+fffffff9f9f9fffffffefefef8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefe
+fafafafafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefbfbfbfbfbfbfcfcfcfdfdfd
+fefefefefefefffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffefefefcfcfcfafafafafafafcfcfcfefefeffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff6f6f6ffffffffffffc5c5c5ffffff
+fefefefbfbfbfbfbfbfefefefefefefbfbfbfbfbfbfefefeffffff6b6b6bf8f8f8fbfbfb
+eeeeeebfbfbfc6c6c6f6f6f6fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffefefefcfcfcfafafa
+fafafafcfcfcfefefefffffffffffffdfdfdfbfbfbfafafafafafafbfbfbfdfdfdffffff
+fdfdfdfffffffcfcfce4e4e4f9f9f9ffffffe2e2e2fffffff9f9f9f9f9f9f9f9f9f8f8f8
+f8f8f8f8f8f8f7f7f7f7f7f7f7f7f7f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8f7f7f7
+fafafafffffff8f8f8fffffffafafafcfcfcf5f5f5959595959595fffffffafafaffffff
+e8e8e8f9f9f9fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303f9f9f9fdfdfdf9f9f99b9b9bfefefefffffff4f4f4
+fefefefbfbfbfffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+f9f9f9fbfbfbfefefefffffffffffffffffffcfcfcfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfefefe
+fefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfefefefefefefefefeffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfafafaf8f8f8fefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffbfbfbfffffff8f8f8c0c0c0f9f9f9
+fdfdfdfafafafafafafdfdfdfdfdfdfafafafafafafdfdfdf7f7f7666666f9f9f9ffffff
+fafafad6d6d6d8d8d8f2f2f2fbfbfbfcfcfcfdfdfdfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefdfdfd
+fdfdfdfefefefffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefeffffff
+fffffffafafaf6f6f6fffffffafafaf4f4f4ffffffeeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fdfdfdf9f9f9fffffff8f8f8f5f5f5f4f4f4b0b0b0919191fbfbfbfefefeffffff
+e4e4e4fafafafffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fafafafffffffbfbfb959595f0f0f0fffffff0f0f0
+f7f7f7f9f9f9fffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9fbfbfbfdfdfdfffffffffffffefefefbfbfbf9f9f9fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfefefefbfbfbfcfcfcfdfdfdfefefefefefefdfdfdfcfcfcfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefef7f7f7f7f7f7fbfbfbfffffffffffff9f9f9cfcfcfffffff
+fefefefbfbfbfbfbfbfefefefefefefbfbfbfbfbfbfefefefefefe676767f7f7f7fcfcfc
+f8f8f8d1d1d1b3b3b3a1a1a19898989898989999999a9a9a9b9b9b9a9a9a9a9a9a9a9a9a
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9c9c9c9c9c9c
+9c9c9c9c9c9c9b9b9b9b9b9b9c9c9c9c9c9c9b9b9b9a9a9a9a9a9a9b9b9b9c9c9c9c9c9c
+aaaaaaa0a0a09e9e9e9494949393939898989595959b9b9b9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9999999999999999999999999999999a9a9a9a9a9a9a9a9a9a9a9a999999999999
+9b9b9b9898989595959e9e9e939393949494a2a2a28181819b9b9bf5f5f5fafafafdfdfd
+e0e0e0fefefefffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fbfbfbfffffffdfdfdaaaaaaf2f2f2fffffff8f8f8
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfdfdfdf4f4f4eaeaeac8c8c8f5f5f5
+fffffffcfcfcfcfcfcfffffffffffffcfcfcfcfcfcffffffffffff6a6a6afafafafbfbfb
+f4f4f4d5d5d5b6b6b69797979797979797979898989999999a9a9a9a9a9a999999999999
+979797979797979797979797979797979797979797979797959595969696979797989898
+989898979797969696959595979797979797979797969696969696979797979797979797
+9090908d8d8d9696968c8c8c9f9f9fa7a7a78c8c8c9c9c9c959595959595959595959595
+959595959595959595959595949494959595959595969696969696959595959595949494
+9c9c9c9696969595959a9a9a919191949494a6a6a69e9e9ebcbcbcfafafaf7f7f7fafafa
+dfdfdffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+000000000000000000000000030303fbfbfbfffffffefefe959595c1c1c1cfcfcfc5c5c5
+c9c9c9cacacac4c4c4c7c7c7c8c8c8c8c8c8c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c9c9c9c8c8c8c6c6c6c5c5c5c4c4c4c5c5c5c6c6c6c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c5c5c5c6c6c6c7c7c7c8c8c8c8c8c8c6c6c6c5c5c5c4c4c4
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c7c7c7c7c7c7c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c8c8c8c8c8c8c9c9c9c9c9c9c9c9c9c9c9c9c8c8c8c8c8c8
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c7c7c7c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7bcbcbcc2c2c2c4c4c4d2d2d2d7d7d7e1e1e1d2d2d2f8f8f8
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfdfdfdfffffffcfcfc666666fefefeffffff
+fafafaf2f2f2f8f8f8efefeffafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfbfbfbfcfcfc
+fcfcfcfbfbfbfbfbfbfafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefffffffcfcfcfffffff2f2f2ecececfffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefef9f9f9fcfcfcfefefef6f6f6f5f5f5fcfcfcfafafae5e5e5fffffff9f9f9fcfcfc
+e1e1e1fffffffdfdfdfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+010101000000000000000000030303fafafafffffffdfdfdf1f1f1fffffffffffffcfcfc
+fffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfcfffffff7f7f7fbfbfbe7e7e7f9f9f9
+fffffffcfcfcfcfcfcfffffffffffffcfcfcfcfcfcfffffffefefe646464fcfcfcfefefe
+f4f4f4f1f1f1fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefcfcfcebebebfffffffffffff8f8f8ffffffe6e6e6fcfcfcfdfdfdfdfdfdfdfdfd
+fefefefefefefffffffffffffdfdfdfdfdfdfefefefffffffffffffefefefdfdfdfdfdfd
+fffffffdfdfdfffffffffffffbfbfbfcfcfcf9f9f9f9f9f9fcfcfcfffffff9f9f9ffffff
+e2e2e2fffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+030303010101000000000000020202fafafafffffffdfdfdfefefefbfbfbf8f8f8f3f3f3
+fbfbfbfefefef7f7f7fffffffcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefeffffff
+fffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffff
+fffffffefefefefefefefefefffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fffffffffffffffffffffffffefefefefefefefefefdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefefefe
+fffffffffffffefefefefefefefefefefefefffffffffffffbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfefefefefefefffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff2f2f2fdfdfdf9f9f9fffffffcfcfcfffffff8f8f8ffffff
+fdfdfdfafafafafafafdfdfdfdfdfdfafafafafafafdfdfdfefefe5c5c5cf5f5f5ffffff
+fdfdfdf7f7f7ffffffefefeffbfbfbfcfcfcfdfdfdfefefefefefefefefefefefefdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfafafa
+fafafafbfbfbfbfbfbfcfcfcfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+f4f4f4fffffffefefef9f9f9fefefef6f6f6f4f4f4fffffffcfcfcfdfdfdfdfdfdfdfdfd
+fefefefffffffffffffffffffdfdfdfdfdfdfefefefffffffffffffefefefdfdfdfdfdfd
+fefefefcfcfcfffffffafafafbfbfbfffffffdfdfdfffffffefefefefefef5f5f5ffffff
+e1e1e1fefefef6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfffffffbfbfbffffffffffff000000010101
+000000000000000000
+0000000a0a0a000000030303010101fdfdfdfafafaf8f8f8fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf5f5f5878787e1e1e1d7d7d7
+e5e5e5e8e8e8d5d5d5e9e9e9e4e4e4e2e2e2e0e0e0dfdfdfdfdfdfe0e0e0e2e2e2e4e4e4
+e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2
+e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2
+e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2
+e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2
+e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0dfdfdfe1e1e1e6e6e6ececec
+f2f2f2f8f8f8fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff4f4f4fffffff3f3f3ffffffffffff000000020202
+000000000000000000
+000000010101000000040404050505f7f7f7f7f7f7f3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffd1d1d1ffffffffffff
+fffffffefefefffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffbfbfb000000010101
+000000000000000000
+070707000000040404000000000000fbfbfbfffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf7f7f7f9f9f9fbfbfbffffff
+f9f9f9f3f3f3fffffff5f5f5fefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffff0f0f0f3f3f3fffffffdfdfd000000000000
+000000000000000000
+0000000000000b0b0b010101000000fefefefbfbfbeeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff0f0f0fffffff5f5f5ffffff
+f9f9f9f9f9f9fffffffbfbfbfffffffffffffefefefdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfbfbfbfcfcfcfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffeeeeeefffffffffffffffffffffffff7f7f7000000020202
+000000000000000000
+030303010101010101000000000000fffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefef7f7f7fffffff2f2f2ffffff
+f9f9f9fffffff0f0f0fffffffefefefefefefefefefdfdfdfdfdfdfefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefdfdfdfcfcfc
+fbfbfbfafafafafafaf9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffff8f8f8fcfcfcf5f5f5fafafaffffff000000000000
+000000000000000000
+000000000000000000040404141414ebebebfbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcf9f9f9ffffff
+fcfcfcffffffebebebfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff3f3f3fffffffffffffffffffbfbfb121212000000
+000000000000000000
+0303030707070606060000000000001d1d1d000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000060606000000000000020202
+000000030303000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000505050000000000000e0e0e0000000d0d0d
+000000000000000000
+010101000000040404000000080808000000000000060606010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101000000030303010101020202
+000000000000070707000000000000010101010101020202020202010101010101000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202030303030303020202020202
+010101010101000000000000010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101060606060606000000000000000000040404030303000000
+000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe4.gif b/lib/orber/doc/src/dataframe4.gif
new file mode 100644
index 0000000000..f64c7f3733
--- /dev/null
+++ b/lib/orber/doc/src/dataframe4.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe4.ps b/lib/orber/doc/src/dataframe4.ps
new file mode 100644
index 0000000000..ba08fd3e4e
--- /dev/null
+++ b/lib/orber/doc/src/dataframe4.ps
@@ -0,0 +1,14713 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe4.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 0 256 613 537
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 1839 string def
+
+% define space for color conversions
+/grays 613 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+0 256 translate
+
+% size of image (on paper, in 1/72inch coords)
+613.00800 281.01600 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+613 281 8 % dimensions of data
+[613 0 0 -281 0 281] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0505050000000c0c0c000000090909000000030303000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+010101010101010101010101010101010101020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000
+0303030404040000000000000000000b0b0b050505000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202030303030303030303030303030303030303020202040404030303030303020202
+020202030303030303040404030303030303030303030303030303030303030303030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000040404030303030303020202
+020202030303030303040404020202020202020202020202030303030303030303040404
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000030303030303030303030303
+030303030303030303030303030303030303020202010101010101020202030303030303
+000000000000000000000000000000000000000000000000040404040404030303020202
+020202020202020202030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+0202020101010000000a0a0a000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101010101010101010101010101010101010101010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+0202020000000606060808080505050000000909090b0b0b010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404030303030303030303030303040404040404030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+020202020202020202020202010101010101010101010101050505040404040404030303
+030303040404040404050505020202020202020202020202030303030303040404040404
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101040404040404040404030303
+030303030303030303030303030303040404040404040404040404040404040404030303
+020202020202020202020202020202020202020202020202040404040404040404040404
+040404030303020202020202040404040404040404030303030303030303030303030303
+030303030303040404040404040404040404050505050505010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101000000000000000000000000
+000000
+0202020000000b0b0b000000000000080808020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101000000000000000000
+000000000000000000000000000000000000010101020202020202010101000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000010101000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+010101070707000000000000090909f2f2f2ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfefefefffffff9f9f9fafafafbfbfbfcfcfc
+fcfcfcfbfbfbfafafaf9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfbfbfb
+fbfbfbfcfcfcfcfcfcfdfdfdfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfbfbfbf9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfbfbfbf9f9f9
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fbfbfbfdfdfdfefefe
+fffffffffffffefefefdfdfdfffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfb
+fafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000707070000000b0b0b020202fffffff7f7f7eeeeeefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfffffffffffffefefefdfdfdfbfbfbf9f9f9
+f9f9f9fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8fffffffefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefefffffffefefefefefefefefeffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffffffffefefe
+fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafaf8f8f8f9f9f9fcfcfcffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+fbfbfbfcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc000000000000000000000000
+000000
+060606000000030303000000000000fdfdfdf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfbfbfbf9f9f9f9f9f9fbfbfbfdfdfdfefefefffffffdfdfdf8f8f8f5f5f5
+f5f5f5f8f8f8fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfefefefdfdfdfdfdfdfcfcfc
+fcfcfcfdfdfdfdfdfdfefefefefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfc
+fbfbfbfafafafafafaf9f9f9fcfcfcfafafaf7f7f7f5f5f5f5f5f5f7f7f7fafafafcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4f6f6f6fafafafdfdfd
+fffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9
+fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff8f8f8fffffff7f7f7eaeaeafffffffdfdfdfffffff8f8f8e9e9e9fffffffcfcfc
+fcfcfcf1f1f1fcfcfcfafafafbfbfbffffffebebebfffffff3f3f3edededfffffff3f3f3
+fffffffefefefffffffefefefffffffffffff2f2f2fffffff2f2f2fffffffffffff9f9f9
+fefefefffffff3f3f3f8f8f8fefefef1f1f1ffffffeeeeeeffffffffffffedededffffff
+fefefeebebebfffffff2f2f2fffffffffffffbfbfbfffffffcfcfcfffffffefefefbfbfb
+fdfdfdf9f9f9fffffff7f7f7fcfcfcffffffe5e5e5f3f3f3fffffffffffffffffff6f6f6
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefcfcfcf9f9f9ffffff
+fbfbfbfffffff8f8f8fdfdfdfffffff9f9f9f4f4f4fffffffefefefafafafffffff2f2f2
+f8f8f8fffffff9f9f9f1f1f1ffffffffffffecececfcfcfcffffffefefeffcfcfcf0f0f0
+e2e2e2fffffff6f6f6fefefeffffffeeeeeefffffffcfcfcebebebfffffffdfdfdf4f4f4
+f9f9f9fffffffcfcfcfdfdfdfffffff6f6f6fffffffdfdfdfffffffbfbfbf2f2f2ffffff
+f9f9f9fbfbfbfcfcfcfdfdfdfffffff3f3f3fffffffcfcfcf1f1f1fefefefffffffdfdfd
+f6f6f6fffffffefefefffffff0f0f0f0f0f0fffffff2f2f2f7f7f7ffffffeeeeeef2f2f2
+ffffffe5e5e5fffffff6f6f6f3f3f3fcfcfcfffffff9f9f9fffffff1f1f1fffffff9f9f9
+fafafafafafaf8f8f8ffffffeaeaeaf8f8f8000000060606fffffffefefef7f7f7fefefe
+f2f2f2fffffffffffffffffffffffffdfdfdfffffff7f7f70f0f0f000000fbfbfbf8f8f8
+e5e5e5fafafafdfdfdfafafafffffff0f0f0fffffff7f7f7f2f2f2ffffffedededfafafa
+fffffffafafafefefeffffffedededfafafafffffffefefef8f8f8fffffff3f3f3ffffff
+f5f5f5fffffffdfdfdfffffffffffffffffffbfbfbfffffffefefefefefefdfdfdfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffefefefcfcfcfcfcfcfdfdfd
+fffffff1f1f1f8f8f8ffffffedededffffff0000000404041212120c0c0c000000010101
+0a0a0a000000fcfcfcfffffff0f0f0fffffffefefee6e6e6ffffffffffffecececffffff
+f6f6f6fffffff1f1f1f8f8f8ebebebfffffffffffff7f7f7ffffffefefeff5f5f5ffffff
+f4f4f4fffffffcfcfcfffffffffffff9f9f9e1e1e1ffffffe5e5e5f9f9f9ffffffededed
+fffffffffffff8f8f8fefefef6f6f6ecececfcfcfcfffffff2f2f2f8f8f8fafafaffffff
+f8f8f8ffffffffffffffffffedededf5f5f5ffffffffffffedededfdfdfdfcfcfcfbfbfb
+fffffffffffffffffffefefefefefefefefefdfdfdfdfdfdffffffffffffebebebf9f9f9
+fefefefffffffffffff6f6f6fdfdfdfffffffffffff6f6f6f3f3f3f7f7f7ffffffffffff
+f0f0f0ffffffffffff000000030303000000060606fafafaeaeaeafffffff7f7f7ffffff
+ebebebf7f7f7070707000000010101010101000000fffffffffffff1f1f1ffffffffffff
+fffffffafafafffffff5f5f5fffffffffffff9f9f9fcfcfcf2f2f2fffffffdfdfdf0f0f0
+f6f6f6fffffffffffffffffffafafafcfcfcfefefef6f6f6fffffff7f7f7f7f7f7ffffff
+ffffffedededeaeaeafffffffdfdfdfffffff8f8f8fefefef8f8f8fffffffdfdfdffffff
+fcfcfcfcfcfcfffffffdfdfd0000000d0d0d0000000c0c0c0606060b0b0becececffffff
+fbfbfbffffffe7e7e7f2f2f2080808161616151515000000f3f3f3f7f7f7f6f6f6ffffff
+ffffffe6e6e6f7f7f7efefeff4f4f4fffffff1f1f10303030a0a0a000000fffffff6f6f6
+fffffffdfdfdeeeeeefffffffafafafcfcfce7e7e7fafafaffffffdfdfdffffffffcfcfc
+eaeaeafffffff4f4f4efefeffffffffffffff8f8f8fefefefffffffbfbfbfefefeffffff
+edededffffffe9e9e9f5f5f5fffffff8f8f8eeeeeefdfdfdfefefefdfdfdfdfdfdfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffdfdfdfbfbfbf9f9f9f9f9f9fafafa
+fffffff3f3f3fffffffbfbfb000000000000000000ffffffe5e5e5fefefef9f9f9ffffff
+e9e9e9111111060606fcfcfce9e9e9fffffff0f0f0fbfbfbe7e7e7fafafaf8f8f8ffffff
+fafafaeeeeeefbfbfbfffffff7f7f7f3f3f3eaeaeaffffffeaeaeaefefefffffffe1e1e1
+fdfdfdf5f5f5f0f0f0f7f7f7f6f6f6fffffffffffff6f6f6ffffffd9d9d9fffffffdfdfd
+f9f9f9f5f5f5eaeaeaffffffebebebfbfbfbffffffecececffffffffffffffffffffffff
+ebebebfcfcfcfafafafcfcfcfffffff9f9f9f8f8f8f6f6f6ffffffe5e5e5fffffff4f4f4
+fefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcf3f3f3fdfdfdfffffffdfdfd
+f7f7f7f1f1f1fcfcfcffffffefefeff0f0f0f2f2f2f9f9f9ffffffffffffedededffffff
+ffffffefefefedededffffffe5e5e5131313060606000000fefefefffffff4f4f4fbfbfb
+fffffffafafaf2f2f2ffffff030303e7e7e7fffffff2f2f2d4d4d4fffffffffffffdfdfd
+f8f8f8fffffff1f1f1eeeeeeffffffebebebfffffffcfcfcfffffff9f9f9fdfdfdffffff
+fffffff9f9f9f8f8f8f9f9f9f7f7f7fffffff8f8f8ffffffdfdfdffbfbfbf8f8f8ededed
+efefeffffffffffffff0f0f0fdfdfde1e1e1ffffffebebebffffffe3e3e3f7f7f7ffffff
+e5e5e50d0d0d0000000000000b0b0bf9f9f9fffffffffffff5f5f5020202000000000000
+111111c8c8c8fffffffcfcfcf6f6f6fbfbfb000000121212f5f5f5fffffff8f8f8e5e5e5
+efefefffffffe5e5e5fffffffffffffdfdfdffffffe3e3e3000000070707fffffff7f7f7
+edededfefefefffffffffffff3f3f3f3f3f3ffffffe7e7e7ebebebfffffff7f7f7ffffff
+f3f3f3f8f8f8f8f8f8ffffffecececf3f3f3f4f4f4fffffffcfcfcebebebffffffffffff
+ffffffe6e6e6fcfcfcfcfcfcf2f2f2fffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffcfcfcf9f9f9f8f8f8f8f8f8f9f9f9
+f2f2f2fbfbfbffffff000000010101ffffffe4e4e4fdfdfdf5f5f5f9f9f9f4f4f4ebebeb
+f4f4f4ffffff000000f9f9f9f9f9f9f4f4f4fffffffffffffdfdfdefefeffdfdfddedede
+ffffffefefefffffffeeeeeefafafafbfbfbfffffffbfbfbffffffeaeaeafdfdfdffffff
+f3f3f3fcfcfcf5f5f5f9f9f9fffffffffffffffffff4f4f4f2f2f2ffffffd5d5d5fdfdfd
+fffffffbfbfbfffffffefefef9f9f9f8f8f8000000fffffffefefeebebebf0f0f0eaeaea
+f6f6f6fffffff3f3f3fbfbfbeeeeeefafafafffffff9f9f9fefefeebebebfcfcfcf1f1f1
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafafafafaffffffe9e9e9ffffffeeeeee
+f3f3f3ffffffe0e0e0f1f1f1fffffff7f7f7f9f9f9f9f9f9fffffffffffff4f4f4ffffff
+f9f9f9fdfdfdffffffffffffffffff0000000000000f0f0f000000f5f5f5ffffffffffff
+fefefeebebebf6f6f6e4e4e4000000ffffffe7e7e7f7f7f7fffffffefefee6e6e6f3f3f3
+fffffff4f4f4fffffffbfbfbfffffffdfdfdeaeaeaf5f5f5ffffffdbdbdbfafafaffffff
+f1f1f1f5f5f5fffffff5f5f5fcfcfcffffffeeeeeef6f6f6fffffffdfdfdffffffe6e6e6
+fefefeffffffecececfffffffffffffbfbfbfffffffffffffbfbfbffffffffffffdedede
+ffffff000000050505fdfdfdfbfbfbf2f2f2fafafaf9f9f9efefeffefefeffffff050505
+000000ffffffefefeff4f4f4ffffffffffff030303101010fefefef2f2f2fffffffefefe
+f2f2f2ecececffffffdbdbdbffffffe7e7e7fffffff7f7f7fffffffefefeefefefededed
+ffffffffffffd7d7d7f0f0f0ebebebfffffff4f4f4fcfcfcffffffffffffe9e9e9f8f8f8
+ffffffedededf9f9f9ecececfefefefffffffcfcfcfffffffdfdfdfffffffffffffafafa
+eeeeeeffffff050505fdfdfdf6f6f6fffffff1f1f1f4f4f4fcfcfcfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffdfdfdfafafaf8f8f8f9f9f9fbfbfb
+f5f5f5ffffff000000212121000000edededffffffdededef5f5f5ffffffeeeeeeffffff
+eeeeeeededed151515f5f5f5f9f9f9f2f2f2e3e3e3eaeaeaf2f2f2ffffffe8e8e8ffffff
+ebebebe5e5e5fdfdfdfcfcfcfffffff6f6f6f9f9f9fdfdfdedededf3f3f3f6f6f6e0e0e0
+fffffffefefefffffffffffffbfbfbf0f0f0f2f2f2ffffffd5d5d5fbfbfbfcfcfcffffff
+f2f2f2ffffffdbdbdbecececf6f6f6ffffff050505f0f0f0fafafaf0f0f0ffffffffffff
+ebebebe1e1e1fffffff0f0f0fcfcfcfefefefffffff0f0f0e5e5e5ffffffe4e4e4ffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafaf9f9f9f3f3f3fbfbfbf7f7f7f2f2f2
+efefeff5f5f5fffffffffffff1f1f1f1f1f1fffffffbfbfbedededfffffffffffff5f5f5
+fffffffdfdfdf8f8f8dbdbdbfdfdfd0b0b0bffffff0000000c0c0cf6f6f6f3f3f3f8f8f8
+d3d3d3fffffffffffff4f4f40d0d0dfffffffffffff2f2f2e4e4e4fefefefffffffbfbfb
+fffffff8f8f8e0e0e0f3f3f3f3f3f3f3f3f3fffffffdfdfdfbfbfbeeeeeefffffff7f7f7
+ddddddf2f2f2fcfcfcf8f8f8eeeeeefbfbfbf9f9f9fffffff9f9f9ebebebd6d6d6ffffff
+f8f8f8ebebebffffffe5e5e5f1f1f1fbfbfbf9f9f9f6f6f6fffffffdfdfdf2f2f2fafafa
+242424000000f0f0f0ffffffeaeaeafcfcfcf2f2f2fefefeffffffececece5e5e5f6f6f6
+0808081c1c1cfffffffdfdfdf7f7f7e7e7e7000000090909fdfdfdf4f4f4f7f7f7ffffff
+fcfcfcffffffdbdbdbfffffffbfbfbffffffe9e9e9f3f3f3f4f4f4fbfbfbfffffff3f3f3
+f4f4f4ffffffffffffdcdcdcffffffffffffd3d3d3fffffff6f6f6e0e0e0edededfbfbfb
+e4e4e4ffffffeeeeeefffffff8f8f8fbfbfbfffffffcfcfce7e7e7e7e7e7ecececf9f9f9
+fffffff7f7f7000000ffffffeeeeeeffffffe4e4e4fffffffafafafcfcfcfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffdfdfdfafafafafafafbfbfbfdfdfd
+f8f8f8ffffff0b0b0b050505ffffffe9e9e9fafafafffffffcfcfcf5f5f5f9f9f9ffffff
+f9f9f9fdfdfdf8f8f8fffffffffffffffffff6f6f6ffffffebebebf9f9f9ffffffd4d4d4
+fbfbfbffffffdbdbdbf8f8f8fffffff3f3f3fffffff3f3f3f4f4f4fffffff6f6f6fdfdfd
+fcfcfce6e6e6f4f4f4f9f9f9f9f9f9f1f1f1fffffffdfdfdfffffffffffff7f7f7ededed
+ecececf5f5f5ffffffffffffeeeeee141414000000fbfbfbffffffeaeaeaf1f1f1eaeaea
+f9f9f9fffffff4f4f4f9f9f9ffffffd8d8d8fffffffffffffdfdfdccccccffffffededed
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafafafaf9f9f9f9f9f9efefeffffffff1f1f1ffffff
+fefefefffffffcfcfcecececfffffff2f2f2edededfffffffffffff7f7f7ffffffefefef
+ffffffeeeeeefffffff6f6f6f7f7f70b0b0bfcfcfc1010101b1b1b010101f5f5f5d8d8d8
+fffffff8f8f8f2f2f2fefefe000000fffffffcfcfcfcfcfcffffffe2e2e2ffffffeaeaea
+f3f3f3ffffffffffffffffffdfdfdffdfdfdffffffedededebebebe8e8e8f7f7f7ffffff
+ffffffffffffe2e2e2ffffffffffffffffffe8e8e8efefeff5f5f5f2f2f2fffffff7f7f7
+f2f2f2f4f4f4e2e2e2fffffffffffff4f4f4ffffffe2e2e2fcfcfcf8f8f8ffffffffffff
+000000000000fffffff9f9f9f0f0f0ffffffebebebfdfdfdfbfbfbfffffffffffff8f8f8
+0d0d0d000000fcfcfcf1f1f1fefefefefefe161616000000edededffffffebebebf5f5f5
+ffffffffffffecececf9f9f9fbfbfbf6f6f6ffffffffffffffffffe4e4e4e2e2e2ffffff
+fffffff2f2f2ecececffffffe6e6e6eaeaeaffffffffffffffffffe9e9e9ffffffececec
+ecececf1f1f1ffffffdfdfdffefefefffffff4f4f4e1e1e1ffffffffffffffffffebebeb
+fefefe0a0a0a060606fdfdfdffffffe2e2e2ffffffeaeaeaf9f9f9fbfbfbfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfafafafafafafcfcfcffffff
+f8f8f8080808000000ffffffe6e6e6ffffffe4e4e4f1f1f1fffffffffffffcfcfcd4d4d4
+fffffff9f9f9f6f6f6f1f1f1edededfafafaebebeb0707070b0b0bd7d7d7ffffff050505
+000000000000ffffffe1e1e1fffffff4f4f40000000c0c0c040404000000000000f9f9f9
+f9f9f9fffffff4f4f4f8f8f8fffffff9f9f90000000d0d0d0000000000002727270d0d0d
+fffffff7f7f7f9f9f90000000303030505050f0f0f0101010d0d0d060606090909f4f4f4
+fefefef3f3f3fafafa0c0c0c000000181818000000000000f6f6f6ffffffffffffffffff
+fcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafafafafafafafaffffffe9e9e90606060b0b0b
+0000000000003c3c3c020202eeeeeefffffff0f0f0fafafaffffffe8e8e8fbfbfbffffff
+fbfbfbe6e6e6fafafafffffff4f4f40e0e0ef1f1f1f4f4f4000000181818040404ffffff
+e4e4e4fafafaf4f4f4ffffff111111f7f7f7f8f8f8fafafaeaeaeaffffffe9e9e9ffffff
+1313130000000808080c0c0c101010e8e8e8f9f9f9f7f7f70f0f0f111111000000000000
+0d0d0de7e7e7ffffffe3e3e3fafafa000000fcfcfcffffffeeeeeeffffffd9d9d9000000
+131313010101060606f3f3f3eaeaeafdfdfdf4f4f4fffffffffffff2f2f2ffffff000000
+040404f1f1f1f5f5f5fffffff6f6f6fffffff2f2f2fffffffffffff0f0f0ebebebffffff
+f4f4f40c0c0c060606ffffffdfdfdfffffff0000000f0f0f090909000000000000171717
+000000000000fffffff0f0f0fafafaffffffebebebececec000000000000ffffffeaeaea
+f5f5f5fffffff0f0f0ffffff0000000101010000000d0d0d050505fefefee9e9e9ffffff
+ecececffffffcbcbcbffffff0000001919190202020b0b0bf5f5f5ffffffe8e8e8090909
+1b1b1b0000001919190000000000002c2c2c000000fffffff9f9f9fafafafdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefdfdfdfbfbfbf9f9f9f9f9f9fcfcfcffffff
+f7f7f70a0a0a080808fcfcfcfafafaf9f9f9f4f4f4fffffffafafaeeeeeef5f5f5ffffff
+f1f1f1fffffff9f9f9fefefeffffff060606000000070707080808ffffff000000000000
+121212000000fffffffdfdfdf0f0f0040404000000fffffffffffff0f0f0161616000000
+ffffffefefeff6f6f6fdfdfd030303060606f3f3f3ffffffeaeaeafcfcfc0a0a0a000000
+101010f8f8f8edededfffffff0f0f00d0d0d030303fcfcfcf4f4f4fffffff5f5f5f6f6f6
+fffffffbfbfb0000000e0e0efffffff9f9f9ffffff0a0a0a080808fafafae5e5e5f3f3f3
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfafafafafafafafafa080808141414f3f3f3ffffff
+e0e0e0ffffff000000020202121212e6e6e6fffffff3f3f3fffffff4f4f4fffffff8f8f8
+f9f9f9fffffff6f6f6f6f6f6ffffff000000f9f9f9fefefeffffff000000000000efefef
+fffffff0f0f0fafafaffffff030303fffffffafafae6e6e6ffffffdfdfdfffffff000000
+060606fffffffffffffafafa000000131313fafafaffffffffffff000000131313ffffff
+f9f9f9ffffffebebebffffff1515150d0d0d000000f3f3f3fdfdfdecececfffffff4f4f4
+000000000000fffffff9f9f9fffffffdfdfdebebebfffffff0f0f0fffffff8f8f8080808
+000000ffffffedededf8f8f8ffffffe1e1e1fffffff6f6f6f6f6f6fffffffefefef6f6f6
+f9f9f9050505000000fffffff5f5f5fafafa181818000000f4f4f4efefefffffffffffff
+000000040404000000ffffffebebebffffff090909111111000000111111e3e3e3fafafa
+fafafae6e6e6f5f5f50000000e0e0efffffffafafaf0f0f0000000070707fffffff1f1f1
+fffffffafafaffffff000000080808f7f7f7fefefe0000000d0d0d000000ffffffededed
+eeeeee090909000000fffffffffffff5f5f5fcfcfcfefefef8f8f8fafafafdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffdfdfdfcfcfc
+e7e7e71a1a1a000000f2f2f2e5e5e5ffffffd9d9d9fffffffffffff2f2f2fbfbfbffffff
+fdfdfdf5f5f5fffffff3f3f3fcfcfcfafafaffffff000000000000131313e8e8e8ffffff
+f4f4f4000000fffffffbfbfb000000040404fafafaffffffeaeaeafffffff7f7f7171717
+000000fffffff0f0f0f9f9f90d0d0d060606ffffffecececf1f1f1fcfcfcf7f7f7000000
+020202f5f5f5fafafafbfbfbf8f8f8000000000000f4f4f4f0f0f0fdfdfdfffffffafafa
+f0f0f0191919000000f9f9f9fafafaffffffffffffe8e8e8131313030303efefefffffff
+fafafaf8f8f8eeeeeefdfdfdfdfdfdebebebecececffffff000000090909fffffff2f2f2
+fffffffafafaffffff000000060606f6f6f6fdfdfdfffffffefefefdfdfdfffffffdfdfd
+fffffffcfcfcfffffff6f6f6ffffff050505f5f5f5f0f0f0ffffff1818180000000f0f0f
+ffffffe7e7e7fefefeffffff010101fffffffafafafcfcfcf6f6f6f7f7f7030303161616
+fffffffcfcfcf0f0f0f1f1f1ffffff000000111111f7f7f7ffffffededed040404ffffff
+e5e5e5f4f4f4fcfcfcfefefe0202020e0e0e060606ebebebffffffecececfffffff8f8f8
+000000fffffff4f4f4fffffff9f9f9efefeffffffffbfbfbffffffd9d9d9ffffff0d0d0d
+000000ffffffffffffe9e9e9fbfbfbfffffff7f7f7f1f1f1fffffffcfcfce5e5e5ffffff
+f7f7f70303030f0f0ffcfcfcf8f8f8ebebeb0404040c0c0cfffffff4f4f4f9f9f9f2f2f2
+ffffff090909070707fafafafafafafafafafffffff5f5f5050505040404fefefef8f8f8
+f4f4f4ffffff171717000000f3f3f3f5f5f5ffffffffffffe2e2e20e0e0e060606f8f8f8
+ebebebffffff000000181818fdfdfdffffffededed060606040404000000f0f0f0ffffff
+ffffff080808080808fefefefefefefcfcfcfafafaf4f4f4fbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffdfdfdfcfcfcfbfbfb
+fbfbfb0c0c0c020202fffffffcfcfcefefefffffffe0e0e0f9f9f9eaeaeaffffffffffff
+f3f3f3ffffffe6e6e6fffffffafafafffffffafafa151515040404e8e8e8ffffffeaeaea
+fefefefffffff5f5f5fbfbfb1b1b1bfefefef5f5f5f7f7f7fefefed6d6d6f9f9f9030303
+1c1c1cebebebfffffffefefeecececf1f1f1fffffffdfdfdffffffecececffffff040404
+050505f9f9f9fffffffffffffcfcfc030303040404fafafafbfbfbe4e4e4f5f5f5ffffff
+f8f8f8000000ffffffd7d7d7fdfdfdf8f8f8f3f3f3ffffff0b0b0b000000ffffffe9e9e9
+f5f5f5fffffffffffff1f1f1fbfbfbfffffffffffff5f5f5fffffff4f4f4e0e0e0ffffff
+ffffffefefeffafafa0a0a0a040404f5f5f5fcfcfcfffffffffffffdfdfdfffffffcfcfc
+fefefefafafafefefef4f4f4ffffff090909fdfdfdfafafafafafae5e5e50b0b0b000000
+000000fdfdfdffffffececec0b0b0bfbfbfbf8f8f8e5e5e5fffffff1f1f1000000fbfbfb
+f6f6f6fffffffffffffefefee5e5e50e0e0e000000ffffffecececffffff000000000000
+fafafafffffffcfcfcf1f1f1050505000000181818ffffffd2d2d2f9f9f9fafafa000000
+000000fffffffdfdfdf7f7f7fffffffffffff2f2f2f4f4f4ffffffffffffe6e6e6080808
+131313f7f7f7e7e7e7f9f9f9f8f8f8f1f1f1fcfcfcffffffecececfcfcfcffffffe1e1e1
+ffffff000000000000ffffffedededf3f3f3121212000000f6f6f6fffffff3f3f3ffffff
+f5f5f5fefefe000000000000f9f9f9f8f8f8fffffff4f4f4040404030303fdfdfdf7f7f7
+f4f4f4ffffff010101f7f7f7fffffffefefee1e1e1e3e3e3ffffff000000000000f5f5f5
+ffffffd5d5d50c0c0ce8e8e8f8f8f8fffffff5f5f5000000000000181818f2f2f2ededed
+fbfbfb020202050505fdfdfdfffffffffffffffffffbfbfbfbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefdfdfdfbfbfbfafafaf9f9f9
+ffffff000000000000ecececf3f3f3ffffffdfdfdfffffffe6e6e6ffffffeaeaeaf9f9f9
+ffffffe7e7e7fefefefefefeffffffedededf3f3f3000000000000fffffffbfbfbf3f3f3
+f3f3f3fffffff9f9f9020202000000ffffffe8e8e8fffffffbfbfbfffffffefefe000000
+050505f9f9f9f0f0f0f9f9f9ecececfffffff1f1f1eeeeeeffffff080808000000111111
+020202f8f8f8fffffffffffffafafa010101040404fcfcfcffffffffffffffffffededed
+0202020c0c0ce9e9e9fffffffffffff9f9f9f6f6f6ffffff050505161616f7f7f7efefef
+fdfdfdf0f0f0f0f0f0f3f3f3fefefef1f1f1eaeaeaffffffdfdfdffefefeffffffdcdcdc
+ffffff000000000000101010020202f3f3f3fcfcfcfffffffffffffefefefffffffcfcfc
+fffffffafafafdfdfdf2f2f2ffffff090909fffffffffffffefefeffffffe8e8e8020202
+111111dadadaffffffffffff000000fffffff2f2f2fffffff1f1f1000000040404fefefe
+f5f5f5fbfbfbfbfbfbfcfcfcf5f5f5000000060606f0f0f0fcfcfcededed1a1a1a050505
+fffffff1f1f1fefefe0a0a0a050505ffffff020202000000ffffffdadadaffffff0a0a0a
+060606dcdcdcf4f4f4f8f8f8fffffff9f9f9efefeffffffffffffffbfbfbf9f9f9010101
+000000f6f6f6fffffffffffffffffffffffffdfdfdfffffff5f5f5efefeffffffff2f2f2
+ffffff000000101010f1f1f1ffffffffffff0000000f0f0ffefefeecececfffffff0f0f0
+eaeaeaffffff0c0c0c080808fdfdfdfafafafffffff7f7f7070707050505fefefefafafa
+ffffff000000090909fafafaeaeaeafefefefffffffffffffbfbfb000000090909ffffff
+e7e7e70606060a0a0afffffff7f7f7f3f3f3f9f9f9fffffff6f6f6f1f1f1f8f8f8fcfcfc
+f9f9f9010101040404fcfcfcfefefefffffffffffffdfdfdfbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f8f8f8
+fafafa0b0b0b050505fffffffcfcfcfffffff6f6f6fafafafffffff6f6f6fdfdfddfdfdf
+f7f7f7e9e9e9ffffffe5e5e5fafafaefefefffffff090909191919dcdcdcf9f9f9f9f9f9
+fbfbfbefefeff3f3f31b1b1b0505050000001e1e1e090909000000000000000000090909
+151515f6f6f6f7f7f7f8f8f8fffffff9f9f9111111010101070707f1f1f1ffffff050505
+000000f6f6f6fdfdfdfdfdfdf8f8f8000000030303fdfdfdefefefffffffeeeeeeeeeeee
+0000000909090000001010100000000b0b0b050505050505060606000000ffffffffffff
+f9f9f9fffffffffffff3f3f3f9f9f9fcfcfcfdfdfdf2f2f2ffffffe4e4e40a0a0a0b0b0b
+0f0f0ffffffff2f2f2040404010101f2f2f2fbfbfbfffffffffffffefefefffffffbfbfb
+fffffffefefefffffff4f4f4fefefe050505fbfbfbfbfbfbe5e5e5ffffffffffff101010
+0000000f0f0febebebf4f4f4010101f0f0f0fdfdfde3e3e3ffffff141414000000000000
+1a1a1a0000000000000a0a0a0808080b0b0b0a0a0af3f3f3fafafafbfbfb000000000000
+fffffffcfcfce7e7e70f0f0ff2f2f2ffffff000000060606fbfbfbf0f0f0f1f1f1090909
+fffffffffffff8f8f8fefefef4f4f4fffffffffffffefefef7f7f7fdfdfdffffff050505
+1a1a1ae9e9e9ffffffedededecececf9f9f9edededecececfffffffcfcfcf1f1f1fdfdfd
+ffffff0000001b1b1bf2f2f2f1f1f1f3f3f3000000000000fffffffdfdfdfafafaebebeb
+fffffff6f6f6000000040404fcfcfcf8f8f8fffffff7f7f7070707030303fdfdfdfafafa
+ffffff1616160000001f1f1f0000000d0d0d0c0c0c0000002020200f0f0f000000fafafa
+efefef0f0f0f000000f0f0f0fefefeefefeffefefefffffffffffff6f6f6f8f8f8ffffff
+fefefe050505070707fdfdfdfcfcfcfbfbfbfcfcfcf9f9f9fbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf9f9f9f8f8f8
+f3f3f30b0b0b0000000b0b0bffffffeaeaeafffffff0f0f0ffffffdededef2f2f2ffffff
+fffffff3f3f3fffffffbfbfbeeeeeefffffff9f9f90c0c0c060606f5f5f5fffffffafafa
+ffffffffffffe8e8e8000000030303f1f1f1ffffffdfdfdffffffffffffffbfbfbffffff
+f8f8f8f6f6f6ffffffffffff000000090909f4f4f4f6f6f6f7f7f7e7e7e7ffffff000000
+030303f8f8f8fffffffefefefafafa020202060606fffffffcfcfcdededeffffffffffff
+0e0e0e0d0d0df2f2f2f6f6f6fffffff8f8f8fdfdfdf7f7f7fffffffffffff3f3f3f3f3f3
+ffffffdedededededeefefeffffffff3f3f3fffffff1f1f10a0a0a010101f0f0f0fbfbfb
+f6f6f6f2f2f2ffffff000000020202f3f3f3fcfcfcfffffffffffffefefefffffffcfcfc
+fffffffefefefffffff6f6f6fefefe020202f7f7f7f6f6f6ffffffedededf9f9f9ffffff
+000000262626101010f1f1f1222222f5f5f5fcfcfcf0f0f0eeeeee101010161616ffffff
+eeeeeef9f9f9ffffffebebebf7f7f7e4e4e4fafafafffffff4f4f4f0f0f0ebebeb292929
+000000eaeaeaffffff000000f2f2f2ffffff252525000000f0f0f0ffffff040404010101
+e6e6e6e5e5e5fcfcfcfffffffbfbfbfbfbfbf9f9f9ffffffffffffebebebffffff000000
+080808ffffffebebebfffffffffffff7f7f7fffffffbfbfbfafafafffffffbfbfbf0f0f0
+f7f7f7111111020202e5e5e5fffffff9f9f90000001a1a1afffffffdfdfdf9f9f9eaeaea
+fffffff5f5f5000000040404fafafaf4f4f4fcfcfcf5f5f5050505000000f8f8f8f7f7f7
+f5f5f50e0e0e030303f4f4f4f0f0f0f3f3f3fffffffbfbfbe6e6e6fdfdfdfffffff0f0f0
+ffffff080808090909fffffff7f7f7ffffffffffffe8e8e8edededf9f9f9f6f6f6ededed
+ffffff070707080808fdfdfdf9f9f9f8f8f8fafafaf8f8f8fbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+ebebebffffff121212000000f4f4f4f0f0f0fffffff8f8f8fffffffbfbfbffffffd9d9d9
+fbfbfbf8f8f8000000f7f7f7f9f9f9fdfdfdf2f2f2000000000000fffffff2f2f2ffffff
+e9e9e9f7f7f7ffffff000000191919fffffff3f3f3ffffffe8e8e8f8f8f8f9f9f9fdfdfd
+f9f9f9f9f9f9f7f7f7000000060606eeeeeedededefffffffefefefffffff1f1f1000000
+050505f7f7f7fbfbfbfbfbfbf9f9f9020202040404fbfbfbebebebfffffffffffff2f2f2
+000000191919fffffff9f9f9fffffff7f7f7f0f0f0f2f2f2fffffff4f4f4ffffffefefef
+e9e9e9fffffffffffffbfbfbfffffffefefed9d9d90c0c0c000000f1f1f1fefefeffffff
+fbfbfbf8f8f8ffffff090909060606f6f6f6fdfdfdfffffffefefefdfdfdfffffffdfdfd
+fcfcfcfbfbfbfffffff6f6f6fefefe030303f8f8f8f8f8f8edededfffffff2f2f2f6f6f6
+ffffff000000000000ffffff000000f8f8f8e3e3e3ffffffffffff000000000000f1f1f1
+fefefee8e8e8ffffffffffffd7d7d7ffffffdededeedededfffffff5f5f5ffffff030303
+000000ffffff000000191919fffffff5f5f5e1e1e1181818191919e3e3e30a0a0a060606
+ffffffffffffececece4e4e4fdfdfdfffffff9f9f9fffffff5f5f5ffffffffffffffffff
+000000080808f2f2f2f2f2f2f4f4f4f2f2f2fbfbfbf5f5f5e9e9e9dddddde0e0e0ffffff
+000000090909f4f4f4fffffff8f8f8ffffff080808000000ffffffecececffffffededed
+e7e7e7ffffff0b0b0b090909fefefef7f7f7fffffff9f9f9090909010101fbfbfbfcfcfc
+ffffff000000090909f5f5f5ffffffffffffefefefffffffffffffecececeaeaeafbfbfb
+eeeeee000000010101fffffffffffff8f8f8dadadafffffffffffffffffff2f2f2ffffff
+fcfcfc050505070707fbfbfbf9f9f9f8f8f8fcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfcfcfcfcfcfcfdfdfdfdfdfd
+fcfcfcfefefe000000080808161616fdfdfdfcfcfcf8f8f8ffffffe4e4e4ffffffffffff
+eaeaeaffffff0b0b0bfffffff9f9f9eeeeeeffffff090909171717ffffffe2e2e2fbfbfb
+ffffffd3d3d3fafafa141414000000e8e8e8e5e5e5fdfdfdf6f6f6ffffffefefeffdfdfd
+fcfcfcffffffffffff060606000000ffffffffffffe3e3e3f1f1f1f5f5f5fdfdfd010101
+080808f7f7f7f7f7f7f8f8f8f9f9f9030303030303f7f7f7fffffff6f6f6e7e7e7ffffff
+191919020202fefefeefefeff4f4f4f0f0f0fbfbfbffffffd5d5d5ffffffecececffffff
+fffffff9f9f9e8e8e8edededf5f5f5f5f5f5fcfcfc141414020202ffffffecececfcfcfc
+fdfdfdfffffff6f6f60808080b0b0bfafafafefefefffffffdfdfdfdfdfdfffffffefefe
+fdfdfdfbfbfbfffffff4f4f4fcfcfc030303fcfcfcfefefef4f4f4fffffff0f0f0f3f3f3
+f0f0f01616160606060202020e0e0edfdfdfffffffffffffcccccc151515070707ffffff
+ffffffeeeeeeecececf1f1f1ffffffddddddfffffffffffffafafaffffffebebeb000000
+141414e5e5e5000000fcfcfcf1f1f1f7f7f7ffffff000000010101f8f8f8060606ececec
+e2e2e2fffffffffffffbfbfbfffffff7f7f7f2f2f2fffffffdfdfdfbfbfbf1f1f1fbfbfb
+0b0b0b060606fffffff3f3f3f1f1f1ffffffeeeeeefffffffffffff3f3f3ffffffeeeeee
+181818000000fffffffefefee4e4e4f0f0f0141414000000f7f7f7fffffff0f0f0ffffff
+f0f0f0fbfbfb000000010101fffffff9f9f9fffffffcfcfc0c0c0c030303fdfdfdffffff
+dbdbdb202020040404fffffffbfbfbd9d9d9f9f9f9f9f9f9d8d8d8fffffffffffff9f9f9
+ffffff151515000000ffffffeaeaeaffffffffffffeaeaeaffffffdcdcdcfdfdfdf9f9f9
+fafafa030303060606fbfbfbf8f8f8f8f8f8fdfdfdfefefefbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfdfdfdfefefeffffff
+ffffffe5e5e5fefefe0b0b0b0000000e0e0eecececfffffff9f9f9fffffff7f7f7e9e9e9
+f5f5f5ffffff000000f8f8f8fafafaffffffeaeaea000000000000fffffff0f0f0ffffff
+f2f2f2fdfdfdfffffff8f8f8111111000000fffffff4f4f4ffffffeeeeeef5f5f5ffffff
+f0f0f0eaeaeaffffff0000000f0f0ff2f2f2edededfffffff7f7f7fcfcfcffffff000000
+101010fcfcfcfbfbfbfcfcfcfefefe090909070707f9f9f9e6e6e6ffffffdcdcdcf7f7f7
+fdfdfd080808000000fffffff7f7f7fffffffcfcfcfffffffffffff1f1f1fffffff9f9f9
+f4f4f4fffffff8f8f8fffffff9f9f9f2f2f2ffffff0000000c0c0cfffffff7f7f7ffffff
+f9f9f9e9e9e9ffffff0000000e0e0efcfcfcfffffffffffffdfdfdfcfcfcffffffffffff
+fffffffffffffffffff3f3f3fafafa020202fdfdfdffffffffffffeeeeeeefefefffffff
+e9e9e9f6f6f60000001f1f1f000000fffffff6f6f6f1f1f1fbfbfbffffff040404000000
+edededfffffff8f8f8ecececfffffffffffff6f6f6f5f5f5e9e9e9fcfcfcefefef111111
+0000001616160d0d0df3f3f3fdfdfdfafafafbfbfb0000000b0b0b0e0e0e050505f9f9f9
+ffffffeaeaeaf3f3f3fffffffefefef5f5f5fffffff6f6f6fffffff9f9f9fffffffbfbfb
+f4f4f40e0e0e000000fffffff9f9f9ffffffdcdcdcf3f3f3e7e7e7fffffffbfbfb000000
+000000fafafafffffff5f5f5ffffffffffff0000000b0b0bfffffff3f3f3f6f6f6ededed
+fafafa060606070707fbfbfbfcfcfcf3f3f3fbfbfbf7f7f7070707000000f7f7f7fafafa
+ffffffeeeeee010101000000fcfcfcf8f8f8fffffff8f8f8fffffff4f4f4f7f7f7f9f9f9
+f3f3f3ffffff000000040404e7e7e7ffffffdbdbdbfcfcfcfffffffefefefbfbfbf2f2f2
+fbfbfb050505070707fbfbfbf7f7f7f6f6f6fcfcfcfdfdfdfbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfafafaf8f8f8f7f7f7f7f7f7
+edededffffffffffffececec1616160b0b0b000000fffffff7f7f7fffffffefefeffffff
+ffffff000000090909fdfdfdf4f4f4ebebebffffff080808020202f8f8f8e9e9e9fdfdfd
+efefefffffffffffffeaeaea090909121212000000fffffff9f9f9ebebebfffffff5f5f5
+000000ecececffffff0000000505050d0d0de6e6e6fffffff3f3f3000000080808000000
+060606f0f0f0f6f6f6fffffff6f6f6030303010101020202ffffffddddddfffffffbfbfb
+eaeaea191919000000010101ffffffe8e8e8ffffffffffffffffff000000f8f8f8f4f4f4
+f0f0f0fffffff4f4f4fffffff1f1f1ffffffe0e0e0060606040404090909e1e1e1ffffff
+f3f3f3000000070707000000000000fffffff7f7f7efefeffffffffffffffefefeffffff
+fdfdfdfefefef7f7f7f1f1f1ffffff0b0b0be8e8e8ffffffe9e9e9fbfbfbffffffe4e4e4
+fcfcfcffffffffffff060606000000fbfbfbfffffffafafafbfbfbe5e5e51a1a1a000000
+070707fbfbfbffffffeaeaeafffffff7f7f7000000fffffff9f9f9f4f4f4fffffffcfcfc
+020202121212000000fffffffffffff8f8f8fffffff5f5f5000000111111000000f7f7f7
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf9f9f9f6f6f6ffffff
+f1f1f1f7f7f7141414050505030303fffffffbfbfbf7f7f7ffffff020202020202030303
+fcfcfcf1f1f1fffffff2f2f2ffffffffffff010101060606fafafafffffffcfcfcf9f9f9
+101010000000ffffffecececf6f6f6e9e9e9fffffff8f8f8090909101010f3f3f3f8f8f8
+f2f2f2ffffff0c0c0c000000141414ffffffdfdfdfffffffedededffffff000000eaeaea
+f1f1f1fdfdfd2020200000000d0d0df3f3f3fdfdfdffffffdedede080808fefefeececec
+e8e8e81b1b1b000000171717f3f3f3f9f9f9ffffffefefefffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfbfbfbfafafafafafa
+fffffff4f4f4eaeaeafffffff0f0f0ececec252525000000030303000000000000000000
+000000171717f1f1f1fafafaf4f4f4171717000000060606020202000000161616fafafa
+fffffff4f4f4eaeaeaffffffe6e6e6f5f5f51e1e1e0000000f0f0f171717000000040404
+ffffffffffffe9e9e9f4f4f40000000d0d0d101010030303000000fdfdfdffffff0a0a0a
+080808131313080808f2f2f2fffffffefefe0000001717170000000a0a0a000000ffffff
+f2f2f2d9d9d9ffffff000000000000000000060606000000000000fffffff3f3f3fbfbfb
+fbfbfbfbfbfbe9e9e9fffffffafafaf1f1f1ffffffe7e7e70000000a0a0a0c0c0c010101
+000000fdfdfdffffff090909111111000000030303f7f7f7fffffffbfbfbf4f4f4fdfdfd
+fffffff5f5f5ffffff050505000000000000151515000000fffffffafafafcfcfcefefef
+ffffffffffffdcdcdc090909292929e3e3e3fffffffdfdfdfafafaffffffdadadaffffff
+181818000000020202101010000000010101ffffffdfdfdff6f6f6fffffff4f4f4ffffff
+000000000000fffffffefefef4f4f4fefefef1f1f1ffffff000000050505fffffffbfbfb
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8f2f2f2
+ecececffffffd1d1d1fcfcfc0909090000000707071717170000001a1a1afafafaf8f8f8
+fdfdfdfffffffefefefcfcfcffffffe4e4e41111110000000000000a0a0a020202000000
+010101ffffffe0e0e0fffffffffffff3f3f3ebebebf4f4f40000000e0e0efbfbfbffffff
+fafafaeeeeeeffffffffffff0000000000000606060000000b0b0b000000fffffff4f4f4
+ffffffebebebd4d4d4202020050505050505010101000000000000fbfbfbfefefeffffff
+fffffff1f1f10b0b0b000000111111000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+f5f5f5fcfcfcfffffff4f4f4fcfcfcffffffeaeaeafffffffafafafffffffffffffdfdfd
+fffffff8f8f8fffffff7f7f7fbfbfbf4f4f4fffffffffffffffffffffffff4f4f4fcfcfc
+f1f1f1fbfbfbfffffff9f9f9f6f6f6ffffffe3e3e3fffffff7f7f7fcfcfcfcfcfcfdfdfd
+fbfbfbf8f8f8f8f8f8fffffff9f9f9fcfcfcfffffff5f5f5fffffff8f8f8fbfbfbffffff
+f7f7f7e9e9e9fffffffafafaf7f7f7ffffffebebebf8f8f8f2f2f2fffffffbfbfbffffff
+ecececffffffe3e3e3ffffffffffffffffffefefeffffffffffffff1f1f1ffffffe7e7e7
+edededfffffffafafafffffffffffff1f1f1f6f6f6fffffff6f6f6fafafafffffff4f4f4
+fffffff6f6f6fafafafffffffffffffcfcfcf1f1f1fffffff0f0f0f6f6f6ffffffe3e3e3
+f8f8f8f1f1f1fbfbfbf9f9f9fffffff8f8f8fffffffafafaedededf2f2f2fffffff8f8f8
+f1f1f1f7f7f7ffffffe4e4e4e6e6e6fffffffffffff2f2f2f8f8f8f9f9f9f7f7f7fbfbfb
+f6f6f6fbfbfbf9f9f9fffffffcfcfcf9f9f9fffffffefefefbfbfbfffffffffffff0f0f0
+fffffff7f7f7fdfdfdf8f8f8fbfbfbfffffffffffff0f0f0fffffffcfcfcfefefef1f1f1
+fffffffffffffffffffffffffffffffffffffffffffffffff2f2f2fffffffdfdfdfefefe
+fffffff8f8f8fffffffffffff9f9f9ffffffffffffedededfffffff3f3f3f6f6f6ffffff
+fcfcfcfffffff2f2f2f1f1f1fefefeffffffebebebffffffffffffeaeaeaffffffffffff
+ecececf5f5f5ffffffebebebfcfcfcfcfcfcfafafaffffff101010000000fdfdfdf5f5f5
+fffffffcfcfce8e8e8ffffffffffffffffffeeeeeeffffffffffffe5e5e5fffffff1f1f1
+eeeeeeffffffe3e3e3fffffff3f3f3fffffff9f9f9fffffffffffffefefef9f9f9f0f0f0
+f5f5f5fffffff5f5f5fffffffafafafdfdfdfffffff4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7f7f7f7f7f7eeeeeeffffffe8e8e8f4f4f4fffffff7f7f7f6f6f6f7f7f7eeeeee
+fefefeffffffebebebf9f9f9f5f5f5fffffff4f4f4f6f6f6f9f9f9f9f9f9fffffff1f1f1
+fffffff6f6f6f9f9f9f3f3f3fffffff4f4f4edededfffffffffffffdfdfdffffffffffff
+f5f5f5fffffffffffff4f4f4fffffff8f8f8fafafaf1f1f1fffffff2f2f2f9f9f9fbfbfb
+f3f3f3ffffffe5e5e5ffffffeeeeeeffffffffffffedededffffffedededecececf4f4f4
+fffffff4f4f4fcfcfcfffffffbfbfbfdfdfdfffffff9f9f9f1f1f1fbfbfbf5f5f5ffffff
+f5f5f5ffffffffffffeeeeeefcfcfcfffffff8f8f8f5f5f5fffffff7f7f7fbfbfbf1f1f1
+ffffffeeeeeef8f8f8fdfdfdedededffffffffffffe4e4e4ffffffe9e9e9f1f1f1ffffff
+ffffffffffffefefeffdfdfdfdfdfdf7f7f7fffffff3f3f3ffffffffffffffffffffffff
+f3f3f3f4f4f4fafafaffffffffffffeeeeeef8f8f8fffffffffffffcfcfcfffffffcfcfc
+fefefefdfdfdfcfcfcfefefefbfbfbfffffff6f6f6f9f9f9fefefee5e5e5fefefefcfcfc
+fdfdfdf9f9f9efefefffffffffffffe8e8e8fffffffcfcfcfefefefcfcfcefefefffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffff7f7f7ffffff
+fffffff2f2f2fbfbfbe1e1e1ffffffecececfffffffefefef7f7f7fffffff8f8f8f8f8f8
+e7e7e7fdfdfdfffffffffffffcfcfcf2f2f2f5f5f5fffffffbfbfbffffffeeeeeef7f7f7
+fafafae7e7e7fcfcfcf2f2f2fbfbfbf8f8f8fcfcfcf5f5f5000000191919f2f2f2ffffff
+f0f0f0eeeeeefffffffdfdfdf6f6f6fbfbfbfffffff5f5f5fffffff5f5f5f0f0f0ffffff
+f1f1f1f3f3f3fffffff2f2f2ffffffedededfefefee8e8e8fefefeffffffdbdbdbffffff
+e5e5e5fffffffffffffefefef9f9f9f3f3f3fefefef1f1f1ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+f7f7f7fffffffffffff8f8f8fffffff6f6f6fffffffcfcfcf9f9f9fffffff3f3f3ffffff
+f6f6f6ebebebfffffff1f1f1fffffffffffff9f9f9fcfcfcfffffffffffffffffffbfbfb
+f6f6f6fffffffffffffbfbfbfefefefffffffffffffdfdfdfefefeeaeaeafffffff9f9f9
+ffffffedededfffffffbfbfbfefefeeeeeeef7f7f7ffffffeeeeeefffffffffffff2f2f2
+fffffff1f1f1fbfbfbf9f9f9fdfdfdeeeeeef3f3f3f6f6f6f3f3f3fffffffffffffbfbfb
+f7f7f7ffffffe9e9e9fafafafffffff3f3f3f6f6f6e4e4e4ffffffe8e8e8fffffff2f2f2
+fffffff5f5f5fffffffdfdfdf9f9f9fdfdfdfdfdfdfffffffcfcfceeeeeefafafaffffff
+ecececfffffffffffff3f3f3fffffffffffffffffffffffff8f8f8ffffffefefefe9e9e9
+fdfdfdecececfcfcfcfffffffffffffffffff0f0f0fffffff2f2f2edededf1f1f1f9f9f9
+fffffffffffff0f0f0f5f5f5fffffffffffffffffffffffffffffff9f9f9f9f9f9ffffff
+fdfdfdfffffffffffff7f7f7ffffffe6e6e6fffffffafafafbfbfbfffffff9f9f9f7f7f7
+fffffffffffffafafaf7f7f7f7f7f7fffffff6f6f6f2f2f2fffffffffffffffffffafafa
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+efefeff9f9f9fffffffffffffffffffffffffcfcfcf1f1f1f6f6f6fdfdfdeeeeeeffffff
+fffffff4f4f4fbfbfbf3f3f3f8f8f8fffffffffffffffffffdfdfdffffffe7e7e7ffffff
+ffffffffffffebebebfffffff8f8f8ffffffe1e1e1ffffff101010010101d9d9d9ffffff
+f9f9f9fffffffafafaf2f2f2fffffff7f7f7f4f4f4ffffffe5e5e5fcfcfcffffffffffff
+f5f5f5fffffff4f4f4f4f4f4fffffffffffffefefeffffffdfdfdffefefeffffffededed
+ffffffeeeeeee9e9e9ffffffeeeeeefffffff5f5f5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefefefefefefefefefefefefefefefefe
+f1f1f1fffffff5f5f5fbfbfbfcfcfcf8f8f8ffffffedededf3f3f3fcfcfcebebebf9f9f9
+fffffff3f3f3f1f1f1fffffffdfdfdf6f6f6f4f4f4fcfcfcfffffff9f9f9f7f7f7f9f9f9
+f2f2f2fffffff6f6f6fcfcfcf2f2f2fffffffdfdfdf1f1f1f5f5f5fffffff9f9f9f2f2f2
+f9f9f9fffffff9f9f9f6f6f6fafafafffffffcfcfcd9d9d9fffffff0f0f0f2f2f2ffffff
+f5f5f5fffffffffffff4f4f4f5f5f5fffffff6f6f6fffffff0f0f0fcfcfcfdfdfdffffff
+f1f1f1fafafafffffff8f8f8f9f9f9fffffffffffff1f1f1efefeffbfbfbfdfdfdffffff
+ffffffedededfffffffffffff8f8f8f5f5f5f4f4f4f1f1f1fafafafffffffdfdfdd9d9d9
+ffffffeeeeeef1f1f1ffffffffffffe7e7e7f7f7f7f9f9f9eeeeeef9f9f9fafafaffffff
+fffffffffffffafafafcfcfcfffffff7f7f7fffffffdfdfdfefefefffffffffffffafafa
+f4f4f4f7f7f7f6f6f6fffffffdfdfdfdfdfdeaeaeaf8f8f8fbfbfbfffffff7f7f7ffffff
+fefefeeaeaeaffffffffffffedededfffffff1f1f1eeeeeeffffffedededffffffe9e9e9
+e7e7e7f5f5f5fbfbfbffffffffffffeeeeeeffffffe4e4e4e3e3e3f5f5f5fdfdfdffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcf7f7f7ffffffffffff
+edededffffffeeeeeef9f9f9f4f4f4fafafaf5f5f5fffffffffffffffffffffffffdfdfd
+ffffffefefeffffffffffffffdfdfdfffffff6f6f6f2f2f2fffffffefefeffffffededed
+efefefeeeeeef7f7f7000000eaeaeafefefef5f5f5dfdfdf0a0a0afbfbfbfbfbfbffffff
+f8f8f8fbfbfbfffffffffffffffffffffffffcfcfcf6f6f6ffffffe6e6e6f3f3f3f2f2f2
+fffffffffffffffffffffffffefefeebebebf7f7f7f7f7f7fffffff7f7f7fffffffbfbfb
+e3e3e3f0f0f0ffffffeaeaeafdfdfdfffffffafafaffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefefefefefefefe
+fffffff9f9f9efefeffffffffffffff7f7f7ffffffffffffffffffeaeaeafffffff2f2f2
+e7e7e7fffffff6f6f6eeeeeefffffffcfcfcfafafafffffffffffffcfcfcfdfdfdffffff
+fffffffbfbfbf0f0f0fffffff9f9f9fffffffdfdfdffffffffffffefefefffffffffffff
+ffffffdededef6f6f6fffffff2f2f2fefefefefefefffffffffffffffffffafafaf7f7f7
+f8f8f8fdfdfdeeeeeeffffffffffffedededfbfbfbfefefeffffffebebebf8f8f8fbfbfb
+ffffffebebebffffffefefeff0f0f0efefeff0f0f0fffffffffffffafafaf5f5f5f7f7f7
+fffffffffffff8f8f8f1f1f1f5f5f5fffffffffffffdfdfdf4f4f4fefefefdfdfdffffff
+fffffffffffff9f9f9f5f5f5fdfdfdffffffffffffeaeaeafffffffcfcfcf4f4f4efefef
+f7f7f7e6e6e6f7f7f7fffffffffffffafafaeaeaeafafafaf3f3f3f7f7f7f5f5f5f7f7f7
+fffffffffffffffffffafafaf6f6f6fffffffffffffffffff9f9f9fcfcfcfbfbfbffffff
+fffffffffffffbfbfbe9e9e9fffffff8f8f8fffffffffffffbfbfbf4f4f4f5f5f5ffffff
+fffffff1f1f1fffffff8f8f8fffffffbfbfbfbfbfbffffffffffffefefeffffffff2f2f2
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf7f7f7fbfbfb
+f8f8f8fffffffafafafffffffffffffffffffafafafcfcfcfefefef4f4f4fffffff7f7f7
+fbfbfbfbfbfbfffffffffffff2f2f2f9f9f9fbfbfbfffffffefefee7e7e7fbfbfbfefefe
+ffffffffffffeaeaea1b1b1b0c0c0c111111fcfcfc161616000000fffffff0f0f0f7f7f7
+fffffffcfcfcfcfcfcf2f2f2e7e7e7f9f9f9fffffffbfbfbeeeeeeffffffeaeaeaffffff
+ecececffffffffffffe8e8e8dadadafffffffffffff5f5f5f7f7f7fafafaf0f0f0ffffff
+fffffffefefef5f5f5fcfcfcfdfdfdfffffff9f9f9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+f7f7f7f8f8f8fffffffffffffbfbfbf4f4f4fffffffbfbfbfefefefefefefafafafdfdfd
+fffffff0f0f0fffffffffffff4f4f4fffffffbfbfbfdfdfdfdfdfdfafafafffffff5f5f5
+f7f7f7f9f9f9fffffffffffff4f4f4fffffffbfbfbfdfdfdf8f8f8fefefefbfbfbf5f5f5
+fffffffffffffefefefefefefefefefdfdfdfffffff5f5f5f9f9f9f7f7f7fffffffdfdfd
+fffffffefefefefefef9f9f9f0f0f0fffffffffffffdfdfdfafafaf8f8f8ffffffffffff
+fffffffffffffffffffffffffefefefffffffffffff6f6f6f7f7f7fefefefffffff5f5f5
+eeeeeefffffffbfbfbfdfdfdfffffff6f6f6fbfbfbfffffffffffffefefefffffff4f4f4
+fafafaf9f9f9fffffffafafafffffff5f5f5ecececffffffefefeffffffff6f6f6ffffff
+fbfbfbfffffffefefefffffff7f7f7f8f8f8fffffffffffffffffffffffffcfcfcfafafa
+fffffff1f1f1fffffff6f6f6fffffff6f6f6fbfbfbfffffffbfbfbfcfcfcfffffffbfbfb
+fafafaf9f9f9fffffffafafafefefefefefeefefeffcfcfcfcfcfcffffffeeeeeef6f6f6
+fbfbfbfffffff4f4f4fffffff9f9f9fffffff4f4f4fafafafdfdfdfffffff6f6f6fefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaffffffffffffffffff
+fffffffafafafefefefffffff7f7f7fcfcfcfffffffcfcfcfffffff4f4f4ffffffffffff
+fdfdfdffffffedededfffffffcfcfcfffffffffffff9f9f9fcfcfcfffffffefefef5f5f5
+f6f6f6f4f4f4f4f4f4070707131313000000000000fffffffffffff0f0f0fffffff8f8f8
+ffffffecececf9f9f9fffffffffffff5f5f5fffffffbfbfbfffffffffffffcfcfcffffff
+fcfcfcfdfdfdfefefeffffffffffffe8e8e8fefefefbfbfbfffffffffffffffffff7f7f7
+fefefefafafaf9f9f9fefefefefefeecececfffffff0f0f0ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff6f6f6f8f8f8fbfbfbfefefefefefefbfbfbf8f8f8f6f6f6
+f8f8f8f8f8f8fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfbfbfbf9f9f9
+fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffefefefdfdfdfffffffffffffffffffffffffcfcfc000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefdfdfdfefefefefefeffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffffffffdfdfd000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfd
+fffffffefefefdfdfdfdfdfdfffffffffffffffffffefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfefefefefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fffffffefefefdfdfdfdfdfdfdfdfdffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafbfbfbfbfbfb
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfc
+f9f9f9fcfcfcfefefefffffffefefefefefefefefeffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefe
+f6f6f6fafafafffffffffffffffffffefefefdfdfdfefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+f4f4f4fafafafffffffffffffffffffefefefdfdfdfdfdfd000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdfffffffefefefffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefefefefffffffffffffefefefefefefffffffbfbfbfdfdfdf9f9f9
+fdfdfdfffffff9f9f9fafafafffffffffffffffffffefefefffffffffffffffffffbfbfb
+f4f4f4fffffff5f5f5eaeaeafffffff7f7f7ffffffedededfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafa8e8e8ea4a4a4a0a0a09c9c9c989898
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9c9c9c9c9c9c
+9999999a9a9a9a9a9a9b9b9b9a9a9a9a9a9a9999999999999b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a
+9a9a9a999999999999999999949494a1a1a19b9b9b9696969f9f9f9999999292929e9e9e
+9999999999999999999999999a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9ba4a4a4979797949494989898a6a6a6a6a6a6959595959595
+9f9f9fa3a3a39d9d9da2a2a29191919b9b9b969696a4a4a49b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+aaaaaae9e9e9fcfcfcfbfbfbfffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000000000000000050505fcfcfcfffffffefefefffffffffffffefefefefefe
+fefefefefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefefefef7f7f7f6f6f6fafafaffffff
+fafafafafafafffffffffffffafafafdfdfdfffffffffffffbfbfbf9f9f9fcfcfcffffff
+fffffffffffffefefef9f9f9f5f5f5e3e3e3f6f6f6fffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5f8f8f8fcfcfca8a8a8e4e4e4f7f7f7fefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffefefefefefefefefefbfbfbfffffffffffffefefefffffffdfdfdfbfbfbffffff
+fefefefffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffafafaf4f4f4f2f2f2f7f7f7ffffff
+fdfdfdf7f7f7f1f1f1fafafafefefef8f8f8fdfdfdfffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+c6c6c6fffffffffffffffffffffffffcfcfcfffffffefefe000000000000000000000000
+000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfefefefdfdfdfdfdfdfcfcfc
+fcfcfcfdfdfdfdfdfdfefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffefefefcfcfcfbfbfbfafafafafafafbfbfbfcfcfcf6f6f6fffffffffffffafafa
+f8f8f8e5e5e5f3f3f3fffffffdfdfdf8f8f8f9f9f9fdfdfdfcfcfcf6f6f6f8f8f8ffffff
+f3f3f3e8e8e8f4f4f4fffffffffffffffffffbfbfbfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbf9f9f9a4a4a4f0f0f0fffffffffffffbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfb
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf9f9f9fefefefffffff9f9f9fafafafefefefcfcfc
+fdfdfdfdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffeeeeeefffffff9f9f9f0f0f0ffffffffffffefefeff4f4f4
+fefefeffffffe7e7e7fffffff7f7f7ffffffecececfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ccccccfffffffffffffbfbfbfffffffdfdfdffffffffffff000000000000000000000000
+000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfdfcfcfcfcfcfcfbfbfb
+fbfbfbfcfcfcfcfcfcfdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9f8f8f8f9f9f9fdfdfdf7f7f7fcfcfc
+fffffffffffff9f9f9f5f5f5fffffff6f6f6f0f0f0f9f9f9fffffffcfcfcf6f6f6f7f7f7
+fefefeefefeffffffff5f5f5e4e4e4f8f8f8f8f8f8fcfcfcfdfdfdfdfdfdfefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf6f6f69b9b9bf3f3f3fffffffdfdfdf2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafa
+fcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfcfcfcfffffff5f5f5fdfdfdfffffff6f6f6fafafafffffffafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffe3e3e3f2f2f2ffffffe9e9e9e8e8e8fffffffcfcfc
+cececeffffffffffffedededfafafaf9f9f9fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+c7c7c7f8f8f8fbfbfbf5f5f5fefefeffffffffffffffffff000000000000000000000000
+000000
+010101000000000000000000040404fafafafffffffbfbfbfcfcfcfcfcfcfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fafafafcfcfcfdfdfdfefefefdfdfdfafafaf7f7f7f5f5f5ffffffe6e6e6fffffff8f8f8
+e2e2e2f5f5f5fdfdfdfefefefefefef6f6f6f4f4f4fcfcfcfffffffbfbfbf8f8f8fbfbfb
+ffffffeeeeeefffffffffffffbfbfbfffffffffffffbfbfbfdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfb9b9b9bfdfdfdffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffefefefcfcfcfbfbfbf9f9f9f8f8f8f8f8f8
+fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbfdfdfdf2f2f2f9f9f9fdfdfdf3f3f3f9f9f9fffffff8f8f8
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefffffffffffffffffffefefefafafaffffffebebeb
+ffffffe4e4e4efefeffffffff6f6f6fffffff4f4f4fbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+cfcfcffffffffffffffbfbfbfffffffffffffffffff8f8f8000000000000000000000000
+000000
+010101000000000000000000030303fafafafefefefafafafdfdfdfcfcfcfcfcfcfbfbfb
+fbfbfbfcfcfcfcfcfcfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f9f9f9fbfbfbfdfdfdfefefefefefefbfbfbf8f8f8f6f6f6fafafafffffffdfdfdf3f3f3
+fffffffffffff2f2f2ffffffecececf7f7f7fffffffffffffafafaf6f6f6fcfcfcffffff
+ffffffeeeeeef2f2f2fefefef6f6f6fafafaf6f6f6fffffffcfcfcfcfcfcfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff959595fafafaf6f6f6f8f8f8f6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfb
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefefefef8f8f8f9f9f9fbfbfbf9f9f9fdfdfdfffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff0f0f0ffffffeaeaeafdfdfdffffffdfdfdfeaeaeaffffff
+f2f2f2f7f7f7fffffffdfdfdfcfcfcf3f3f3ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ccccccfefefefffffffdfdfdfffffffffffffffffff8f8f8000000000000000000000000
+000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfcfcfcfdfdfdfdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbeeeeeeffffffeaeaeafdfdfd
+fefefeeeeeeefffffff1f1f1ebebebfbfbfbfffffffffffff9f9f9fbfbfbfbfbfbf8f8f8
+e5e5e5fffffff2f2f2ffffffe3e3e3fffffff0f0f0f3f3f3fcfcfcfcfcfcfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9ffffffffffff939393fffffffdfdfdffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfafafaf9f9f9f8f8f8f8f8f8
+f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfbfbfb
+fbfbfbfbfbfbfafafafafafaf7f7f7f9f9f9f3f3f3f1f1f1f9f9f9fafafaf8f8f8fcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefeffffffffffffe4e4e4ffffffececec010101
+fbfbfb0a0a0afafafaefefeffffffffffffffbfbfbf4f4f4fefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+c4c4c4f8f8f8fefefef9f9f9fffffffffffffffffffefefe000000000000000000000000
+000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fefefefdfdfdfdfdfdfcfcfc
+fcfcfcfdfdfdfdfdfdfefefefafafafafafafafafafafafafafafafafafafafafafafafa
+fffffffdfdfdfafafaf8f8f8f8f8f8fbfbfbfefefefffffffdfdfdf4f4f4ffffffeeeeee
+0c0c0c000000f9f9f9fefefef9f9f9fffffffcfcfcf7f7f7fdfdfdfffffff9f9f9e1e1e1
+ffffffdcdcdc0b0b0b0000001d1d1deaeaeafffffff5f5f5fcfcfcfcfcfcfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcffffffffffff909090fffffffafafafcfcfcfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfd
+fcfcfcfdfdfdfffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafffffff5f5f5f2f2f2fffffffffffff8f8f8ffffff
+fefefefffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeedededfffffff1f1f1fffffffefefee8e8e8fefefef7f7f7
+080808f4f4f4fdfdfdffffffe4e4e4f8f8f8fffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefffffffbfbfbfefefefdfdfdffffffffffff000000000000000000000000
+000000
+0d0d0d000000000000000000000000fafafaffffffeeeeeef6f6f6fffffff8f8f8f8f8f8
+f7f7f7fbfbfbf6f6f6fffffff8f8f8fefefef9f9f9ebebebfffffff9f9f9f2f2f2ffffff
+f2f2f2fffffff3f3f3f7f7f7f6f6f6fefefef9f9f9ecececfffffff0f0f00000000e0e0e
+020202010101f9f9f9fcfcfcffffffecececfcfcfcf2f2f2fafafafcfcfcfdfdfdfcfcfc
+fffffff2f2f2ffffff080808000000fffffff2f2f2ffffffebebebfffffffafafae9e9e9
+ffffffeeeeeefefefefffffffffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfb9d9d9dfcfcfcfffffffcfcfcffffff
+fafafafafafaf6f6f6fffffffefefefffffffffffffdfdfdffffffe7e7e7ffffffffffff
+f9f9f9f0f0f0fffffffffffffcfcfcfffffff1f1f1fffffff6f6f6fffffff2f2f2f3f3f3
+efefefffffffedededfffffffffffff5f5f5f4f4f4fffffffffffffffffffefefef3f3f3
+fffffff3f3f3ffffffffffffe8e8e8ffffffeaeaeafafafaffffffeeeeeeffffffffffff
+fcfcfcfefefef3f3f3fffffffcfcfcfffffffbfbfbffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff4f4f4ffffffe9e9e9fffffff0f0f0f8f8f8fffffffafafa
+ffffffefefeffafafafffffffffffff8f8f8fffffffbfbfbfffffffffffffffffff3f3f3
+fffffff4f4f4fffffffffffffdfdfdfffffff1f1f1fdfdfdfffffff9f9f9fcfcfcffffff
+fffffffcfcfcf8f8f8fffffffcfcfcfffffff4f4f4fffffffffffff4f4f4ecececffffff
+f4f4f4fefefef4f4f4efefeffdfdfde9e9e9f6f6f6ffffffe0e0e0fffffff6f6f6fbfbfb
+fbfbfbf3f3f3fffffffffffff5f5f5f7f7f7fffffffefefefffffff2f2f2fcfcfcffffff
+e1e1e1fffffffcfcfcf9f9f9fffffffcfcfcfffffff4f4f4e8e8e8fffffffcfcfcececec
+edededffffffefefeffdfdfdfefefef4f4f4fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0000000909090000000b0b0b020202ffffffdcdcdc0101010e0e0e000000010101ffffff
+e8e8e8fffffffbfbfbebebeb0000000000000404041e1e1ed1d1d1fffffffcfcfcf7f7f7
+e4e4e4fafafafcfcfcfefefefffffffffffff4f4f4fffffffbfbfbe9e9e9fdfdfdffffff
+0e0e0e0a0a0afffffffdfdfdf5f5f5ffffffe9e9e9ffffffebebebf2f2f2fffffff4f4f4
+fbfbfbf3f3f3f6f6f6050505080808fffffffafafaf3f3f3fffffff1f1f1ffffffffffff
+eaeaeafffffffffffff9f9f9fefefefffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfb9c9c9cfcfcfcfffffffcfcfcffffff
+fffffffffffffffffff6f6f6f2f2f2f2f2f2fffffffbfbfbf4f4f4ffffffeeeeeef2f2f2
+fafafaffffffffffffe9e9e9f5f5f5f1f1f1f8f8f8f7f7f7fafafaf8f8f8f2f2f2ffffff
+0a0a0a000000fffffffafafaf6f6f6ffffffedededfbfbfbfffffff4f4f4ffffffffffff
+efefeffafafaffffffefefefffffffffffffffffffeaeaeafffffff3f3f3f4f4f4ffffff
+fffffff6f6f6fafafaeeeeeefffffff4f4f4fffffffffffffefefefdfdfdfcfcfcfcfcfc
+fcfcfcfefefefffffffffffffffffffefefefafafaffffffffffffffffffffffffffffff
+fdfdfdfffffffffffffffffffffffffffffffefefeffffffe9e9e9fffffffdfdfdfefefe
+fdfdfdffffffebebebfffffffefefefafafaffffffe0e0e0f3f3f3fbfbfbf7f7f7f8f8f8
+fffffff2f2f2fffffff8f8f8ffffffffffffe0e0e0fdfdfdf2f2f2f1f1f1ffffffebebeb
+fafafaedededf9f9f9fffffff6f6f60f0f0f000000000000111111e8e8e8edededffffff
+fbfbfbffffffefefeff5f5f5edededfffffffcfcfcfafafafffffff3f3f3fffffff2f2f2
+fffffff7f7f7f8f8f8ffffffe7e7e7fffffff2f2f2fefefeffffffdededefffffff0f0f0
+000000fffffffefefef3f3f3fffffffffffff0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+050505030303040404000000000000edededffffffffffff0f0f0f000000090909000000
+ffffffedededf9f9f9fafafa191919040404000000fffffffffffffcfcfcfffffff3f3f3
+ffffffffffffe8e8e8f6f6f6fefefeddddddfffffff2f2f2f8f8f8ffffffffffffeeeeee
+101010000000fffffff5f5f5f1f1f1f2f2f2f4f4f4fffffff2f2f2ffffffe6e6e6f3f3f3
+fffffffffffffbfbfb030303010101ecececfdfdfdfffffff8f8f8d9d9d9f4f4f4ffffff
+fffffff5f5f5fdfdfde7e7e7fefefefefefefffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfb9c9c9cfcfcfcfffffffcfcfcffffff
+f8f8f8000000000000030303f4f4f4ffffffffffff080808020202121212ecececffffff
+f8f8f8e7e7e7fffffff9f9f9f3f3f3fffffffffffff9f9f9fefefef7f7f7fcfcfcf1f1f1
+fefefe090909edededf9f9f9fbfbfbf2f2f2f6f6f6fffffff9f9f9ffffffd8d8d8f8f8f8
+fbfbfbfefefeeeeeee070707000000000000f5f5f5ffffffecececffffffffffffe4e4e4
+ecececfffffff6f6f6edededfbfbfbeeeeeeffffffefefeffafafafafafaf9f9f9f9f9f9
+fafafafbfbfbfcfcfcfcfcfcffffffd9d9d90b0b0b000000000000161616000000f8f8f8
+f2f2f2fafafafbfbfbecececf3f3f3ffffffe1e1e1fffffffffffffdfdfde2e2e2ffffff
+030303edededfffffffbfbfbf3f3f3ebebebf8f8f8fffffffdfdfdedededffffffffffff
+dcdcdcfffffffffffff6f6f6ffffffe2e2e2ffffffedededffffffe4e4e4e7e7e7ffffff
+f5f5f5fffffff7f7f7f5f5f50a0a0ae7e7e7fffffffbfbfbf0f0f0fdfdfdfffffff8f8f8
+f8f8f8fffffff7f7f7e8e8e8fffffffcfcfcf4f4f4fffffff9f9f9ffffffe8e8e8efefef
+fafafafafafaf4f4f4ffffffffffffebebebe5e5e5fffffff1f1f1f8f8f8ffffffefefef
+fafafaf1f1f1f9f9f9f9f9f9fefefef8f8f8fffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+040404000000000000000000141414fbfbfbcfcfcfeeeeee0000000000000404040b0b0b
+eeeeeef8f8f8ffffff020202000000070707000000fbfbfbf7f7f7f4f4f4f3f3f3ffffff
+f5f5f5ecececffffffffffffdfdfdffffffffefefef3f3f3f9f9f9f9f9f9fcfcfce5e5e5
+090909303030f4f4f4fffffffefefefefefefafafaf3f3f3f1f1f1f4f4f4ffffffffffff
+f1f1f1e0e0e0e8e8e8000000121212fcfcfcfafafaf1f1f1fdfdfdfffffffbfbfbfcfcfc
+eeeeeefffffffffffffffffffdfdfdfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafa9c9c9cfbfbfbfffffffcfcfcffffff
+f4f4f4ffffff0f0f0f030303fafafaf6f6f6f9f9f9000000000000fafafaf5f5f5f0f0f0
+e6e6e6fffffffffffffbfbfbf2f2f2f4f4f4f2f2f2e0e0e0f8f8f8ffffffeeeeeef6f6f6
+ffffff040404f7f7f7fbfbfbebebebfffffffffffffffffff4f4f4fffffffffffff3f3f3
+fafafafffffffcfcfcedededfcfcfc000000eaeaeafffffff6f6f6f1f1f1fbfbfbffffff
+fbfbfbf0f0f0f0f0f0fffffffffffff5f5f5eaeaeafdfdfdf9f9f9f8f8f8f8f8f8f9f9f9
+f9f9f9fafafafafafafbfbfbf2f2f2ffffffe9e9e9ffffff101010ffffffecececf6f6f6
+fdfdfdebebebffffffffffffffffffdededefffffff5f5f5ddddddf0f0f0fffffff7f7f7
+030303f4f4f4ffffffefefeffdfdfdfffffff6f6f6e6e6e6f8f8f8fbfbfbf2f2f2ffffff
+ffffffebebebe1e1e1fffffff5f5f5ffffffeaeaeaffffffe7e7e7ffffffe9e9e9fbfbfb
+f7f7f7f0f0f0fffffff1f1f10f0f0ff6f6f6f9f9f9fdfdfdfffffff5f5f5e0e0e0efefef
+f4f4f4f4f4f4f4f4f4fffffff8f8f8e8e8e8e6e6e6eeeeeefffffff5f5f5ffffffffffff
+ecececf8f8f8fdfdfdf8f8f8f9f9f9f0f0f0ffffffffffffe5e5e5f4f4f4f3f3f3fefefe
+020202fffffffbfbfbffffffeeeeeef3f3f3fafafafefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0000000808080404040b0b0b000000e6e6e6fffffff4f4f40b0b0bffffff000000060606
+030303f9f9f9fafafa121212f6f6f6262626000000edededfafafaffffff060606000000
+1313130000000c0c0c000000f8f8f8e6e6e6dbdbdb080808151515000000191919141414
+111111000000f4f4f4fafafa0707070000000b0b0bffffffebebeb080808000000000000
+fffffff0f0f0ffffff070707000000e7e7e7f7f7f7fefefef9f9f9000000020202000000
+0606060b0b0be1e1e1f9f9f9fcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffafafa9b9b9bfbfbfbfefefefbfbfbfefefe
+f2f2f2f6f6f6000000ffffff000000ffffff000000111111000000fffffffffffff5f5f5
+1c1c1c000000000000131313fffffff1f1f1fbfbfbfffffff2f2f2000000080808050505
+ffffff000000ffffffffffff0f0f0f000000fffffff2f2f2f2f2f20a0a0a000000ffffff
+fffffff4f4f4fcfcfcfffffff3f3f30c0c0cffffffecececfffffffcfcfcecececfbfbfb
+f4f4f40606060f0f0f0c0c0cddddddfffffff4f4f4f4f4f4f9f9f9f9f9f9fafafafafafa
+fbfbfbfbfbfbfbfbfbfbfbfbfefefef2f2f2fcfcfcf0f0f0000000ebebebf5f5f5f2f2f2
+fdfdfd101010000000eaeaea0e0e0e1a1a1a000000fffffff7f7f7ffffffefefef000000
+1111110202020000001e1e1ee8e8e8fbfbfbffffffe6e6e6f8f8f8fdfdfd000000060606
+000000efefeffffffff8f8f8eaeaea020202050505eeeeeeeeeeee0000000a0a0af8f8f8
+ebebebffffff000000000000060606000000010101000000fffffff0f0f0ffffffffffff
+040404010101050505020202cececefffffffffffffffffff8f8f8ffffff000000000000
+101010ffffff141414e6e6e6f8f8f8ffffffe6e6e60000000f0f0f0c0c0cf3f3f3ffffff
+f8f8f8f4f4f4f4f4f4edededfffffffefefefffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0c0c0c000000000000000000060606f1f1f1efefeffafafa000000e3e3e3222222010101
+000000ffffff000000000000efefef040404000000fffffff3f3f3ffffff121212101010
+dfdfdfffffff000000000000f0f0f0ffffffffffff000000060606fffffff8f8f8e4e4e4
+0000000b0b0bf8f8f8fffffff7f7f7000000141414e3e3e3fbfbfbffffff0000000a0a0a
+eeeeeee1e1e1ffffff030303000000eeeeeeffffffeaeaea010101030303ffffffececec
+ffffff050505010101fffffffbfbfbfbfbfbfdfdfdfefefefffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffafafa9b9b9bfbfbfbfefefefbfbfbfefefe
+f0f0f0ededed0c0c0cfefefe000000f5f5f5090909f5f5f5090909fefefee7e7e7020202
+d4d4d4ffffffffffffe0e0e0000000ffffffededede2e2e21f1f1ff2f2f2fefefefcfcfc
+000000181818e8e8e8f8f8f8f5f5f50b0b0bfcfcfcffffffffffffffffff121212ffffff
+e6e6e6e9e9e9ffffffe0e0e0fcfcfc000000fffffffffffff6f6f6e0e0e0ffffffffffff
+020202fffffffcfcfce9e9e9141414ecececfffffffffffffafafafafafafbfbfbfcfcfc
+fdfdfdfdfdfdfcfcfcfcfcfcffffffe9e9e9ffffffeeeeee0f0f0ff6f6f6fffffffafafa
+efefefffffff0d0d0d1c1c1cebebebfffffff9f9f9000000fffffff8f8f8f6f6f6fafafa
+202020f9f9f9f8f8f8f3f3f3ffffffffffffdddddddadadaffffff000000fffffff3f3f3
+ffffff000000eeeeeefffffff6f6f6fdfdfd111111ffffff141414dcdcdcffffff060606
+f2f2f2f9f9f9ffffffffffff000000f0f0f0ffffffffffffefefefffffffe7e7e7000000
+f5f5f5fffffff1f1f1ffffff232323fbfbfbfdfdfdefefefffffff000000ffffffffffff
+ececec0505050a0a0afffffff2f2f2f7f7f7080808ffffffdfdfdfffffff000000e6e6e6
+010101fffffff7f7f7fcfcfcfdfdfdfbfbfbf0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000161616000000010101ffffffd9d9d9fefefe2c2c2cffffffe1e1e1000000
+111111f6f6f6030303fffffff0f0f0232323121212f5f5f5f6f6f6000000000000fefefe
+f2f2f2f4f4f4f9f9f90000001d1d1df0f0f0000000141414ffffffeeeeeef8f8f8ffffff
+000000282828f6f6f6fcfcfcffffff030303030303fffffff4f4f4fefefe000000020202
+fffffff3f3f3ededed030303131313f6f6f6e0e0e00d0d0d050505fdfdfdf8f8f8ffffff
+d8d8d8000000020202fffffffafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffff9f9f99b9b9bfafafafefefefafafafefefe
+ffffffe6e6e6020202fffffff7f7f7000000fffffffdfdfd131313dcdcdc191919ffffff
+fffffffcfcfce9e9e9fffffff9f9f9151515fbfbfb151515dcdcdcffffffe6e6e6fafafa
+ffffff040404fbfbfbfefefeffffff000000f0f0f0f0f0f0f3f3f3f3f3f3000000fcfcfc
+e7e7e7fffffff5f5f5ffffffffffff000000f9f9f9fffffffbfbfbfffffff4f4f4000000
+ffffffe8e8e8f1f1f1ffffffeaeaea080808e2e2e2dfdfdffafafafbfbfbfcfcfcfdfdfd
+fefefefdfdfdfdfdfdfcfcfcfffffffbfbfbf7f7f7ffffff070707fffffff5f5f5f0f0f0
+fffffffdfdfd000000fffffff1f1f1e8e8e8ffffff181818f4f4f4fefefef5f5f5ffffff
+000000f5f5f5fffffff9f9f9edededecececfffffffefefe000000fefefef5f5f5fdfdfd
+f7f7f7ffffff0b0b0bf2f2f2fefefef0f0f0000000080808fffffffcfcfcedededffffff
+fffffff3f3f3e3e3e3dddddd171717ffffffedededffffffe9e9e9eeeeeeeeeeeeffffff
+f7f7f7fffffffffffffdfdfd000000fcfcfcfbfbfbfefefe111111fffffff6f6f6fdfdfd
+fffffffafafa030303e7e7e7fcfcfc020202f5f5f5fffffffafafafdfdfdfafafa161616
+fefefef3f3f3f3f3f3fffffffafafaf2f2f2fffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0707070000000000000c0c0c000000ebebebffffffffffff000000ffffffececec000000
+0b0b0b000000111111fcfcfcfbfbfb000000020202f9f9f9ffffff090909101010f6f6f6
+ffffffefefeff5f5f5202020000000ffffff0a0a0a060606ecececfffffffbfbfbe9e9e9
+000000020202fafafafcfcfcfcfcfc000000141414fefefef0f0f0fbfbfb0c0c0c010101
+f0f0f0ffffffececec010101070707efefefffffff000000000000000000202020000000
+333333010101030303fcfcfcfafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffff9f9f99b9b9bfafafafdfdfdfafafafdfdfd
+dbdbdbffffff000000eaeaeaffffff1f1f1fdfdfdfffffff000000ffffff000000f4f4f4
+f1f1f1fffffffefefef9f9f9ffffff000000ffffff000000fafafafcfcfcfcfcfcffffff
+efefef000000fffffffafafafdfdfd000000fffffffffffff9f9f9f9f9f9040404ffffff
+fefefef1f1f1fffffff8f8f8efefef0a0a0af9f9f9fffffff2f2f2f6f6f6fafafa060606
+010101000000090909040404000000000000fefefefffffffafafafbfbfbfcfcfcfefefe
+fefefefdfdfdfcfcfcfcfcfce5e5e5fffffff4f4f4f3f3f3000000f5f5f5eeeeeefdfdfd
+f8f8f8ffffff080808fcfcfcffffffffffffebebeb040404fffffff4f4f4eaeaeaffffff
+1c1c1ce8e8e8fffffff6f6f6fffffff1f1f1f3f3f3fdfdfd080808050505030303000000
+0808080c0c0c020202efefeffffffffbfbfb090909ecececdfdfdffffffff8f8f8eaeaea
+fffffffbfbfbffffffffffff101010f3f3f3f5f5f5fffffffefefefffffff7f7f7fbfbfb
+0909090000000f0f0f171717010101fffffff9f9f9ffffff0b0b0bfcfcfcf8f8f8f9f9f9
+fafafaeeeeeefffffff7f7f7ffffff0d0d0d000000020202050505000000030303040404
+121212eeeeeefffffffbfbfbfffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000090909000000000000101010f6f6f6e9e9e9fcfcfc0c0c0cfefefeececec040404
+090909101010000000ebebebffffff000000050505fffffff4f4f4000000101010f9f9f9
+e5e5e5fffffff0f0f0050505030303f1f1f1050505000000fbfbfbfffffffbfbfbf6f6f6
+030303080808f4f4f4fffffffafafa000000070707fffffffefefefafafa0b0b0b000000
+f5f5f5fffffff9f9f90000000b0b0bf3f3f3eeeeee040404000000fffffff1f1f1f2f2f2
+fafafaf6f6f6fffffffbfbfbf8f8f8fafafafdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+f8f8f8fdfdfd0f0f0ffafafafafafaf7f7f7fffffff8f8f8000000ffffff000000fefefe
+f8f8f8fefefef8f8f8f2f2f2f8f8f8030303ffffff000000ffffffffffffe0e0e0fcfcfc
+f6f6f6040404fdfdfdfffffff6f6f6121212e7e7e7fdfdfdeeeeeefefefe010101fbfbfb
+f8f8f8f7f7f7fffffff2f2f2fcfcfc212121f3f3f3fbfbfbfdfdfdf8f8f8ffffff010101
+fefefedededefffffffefefef8f8f8fafafaf6f6f6efefeffdfdfdfefefefefefefcfcfc
+f9f9f9f6f6f6f5f5f5f5f5f5fcfcfcfffffff0f0f0fafafa080808edededfffffff0f0f0
+f6f6f6ffffff000000ffffffe1e1e1f7f7f7ffffff020202ffffffedededffffffe0e0e0
+020202fffffffffffff3f3f3efefeff0f0f0ffffffefefef131313fffffffbfbfbefefef
+f9f9f9fcfcfcf6f6f6ffffffeeeeeef3f3f3060606fdfdfdf9f9f9f3f3f3fcfcfcffffff
+efefeffafafaefefeff6f6f6090909f0f0f0f7f7f7ffffffe9e9e9ffffffffffff000000
+ffffffedededffffffe0e0e0050505fbfbfbf5f5f5ffffff060606e3e3e3fdfdfdffffff
+ffffffe5e5e5ffffffddddddffffff070707fafafaf1f1f1fffffff7f7f7fffffffcfcfc
+f0f0f0fefefeeaeaeafffffff4f4f4fdfdfdffffffe8e8e8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+060606000000000000000000020202f6f6f6fffffffdfdfd101010f1f1f1efefefffffff
+0000000b0b0bfffffff6f6f6f7f7f7050505121212f0f0f0fafafaffffff000000101010
+fefefef8f8f80000000c0c0cfdfdfdf6f6f60c0c0c1313130d0d0d000000151515020202
+000000000000fdfdfdf9f9f9f8f8f80606060c0c0c0000000d0d0d0101010505050f0f0f
+fefefee9e9e9ffffff020202000000ffffffe7e7e7101010040404010101fffffff3f3f3
+ebebebfefefe000000f2f2f2fafafafbfbfbfdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+fefefee2e2e2060606fffffffffffffbfbfbbfbfbfffffff070707e2e2e2ffffff010101
+ffffffffffffe7e7e7fafafa0d0d0df7f7f7e2e2e2ffffff000000fcfcfce4e4e4ffffff
+0f0f0f000000edededf4f4f4f9f9f9000000fffffffdfdfdffffff0000000a0a0af4f4f4
+fcfcfcfffffffffffffefefeffffff000000ffffffe4e4e4ffffffffffffeaeaeafcfcfc
+000000fffffff1f1f1f0f0f0ffffff000000fffffffdfdfdf8f8f8fbfbfbfefefeffffff
+fffffffffffffffffffffffffbfbfbe7e7e7ffffffe7e7e7171717fafafaf0f0f0f7f7f7
+edededffffff000000fffffff9f9f9fdfdfdf5f5f5000000f6f6f6ffffffe4e4e4ffffff
+070707f7f7f7f0f0f0ffffff070707fbfbfbf5f5f5f9f9f9efefef010101f6f6f6fafafa
+f1f1f1ffffff000000efefefffffffffffff0c0c0cf2f2f2fdfdfdfffffffefefeffffff
+eeeeeefffffff0f0f0ffffff0b0b0be9e9e9fffffffafafae1e1e1f9f9f9f6f6f6070707
+f4f4f4ffffffe3e3e3000000161616f9f9f9f2f2f2eaeaeafafafa0d0d0df9f9f9f8f8f8
+ffffffededed000000fffffff5f5f5dfdfdf0b0b0bfffffff3f3f3eeeeeef1f1f1050505
+0b0b0becececffffffe8e8e8f9f9f9f0f0f0f6f6f6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000060606111111000000000000ffffffcdcdcd070707090909000000ffffffe2e2e2
+0e0e0e000000ffffffeaeaea0d0d0d060606060606000000fffffff0f0f00000000f0f0f
+000000060606151515000000fdfdfdf1f1f1f2f2f2090909000000161616030303fbfbfb
+222222000000151515fefefef9f9f9ffffff030303000000121212f0f0f0121212000000
+090909fdfdfd000000050505121212000000fffffffafafa1b1b1b0000000000000f0f0f
+0a0a0a0f0f0f0c0c0cefefeffcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+fbfbfb121212090909000000f2f2f2f7f7f7ffffff000000040404010101f6f6f6f5f5f5
+000000121212070707101010fafafafffffff8f8f8f2f2f2f6f6f6080808141414000000
+f3f3f3040404000000fcfcfcffffffffffff000000040404000000ffffff0e0e0e000000
+fdfdfdf7f7f7f8f8f80606060000001d1d1d0b0b0b010101e9e9e9efefefffffffededed
+f2f2f2040404040404060606020202fdfdfdfafafaeaeaeaf8f8f8fafafafdfdfdfefefe
+fefefefefefefffffffffffffffffff6f6f60000000808080d0d0d000000222222fefefe
+ffffff000000030303060606fefefef9f9f9080808030303000000fffffff6f6f6ededed
+e5e5e5010101090909020202fdfdfdf7f7f7f0f0f0f4f4f4fffffff8f8f80000000d0d0d
+030303000000fefefeffffffdfdfdf040404000000141414000000fffffff6f6f6f5f5f5
+f5f5f5ffffff1313130000000000000d0d0d000000ffffffefefefffffffe4e4e4ffffff
+000000070707000000fefefe0000000e0e0efffffffafafaf5f5f5ffffff000000080808
+111111020202f2f2f2eeeeeef8f8f8ffffffffffff0000000606060d0d0d000000fdfdfd
+fcfcfcfffffff6f6f6f9f9f9ffffffffffffeeeeeee8e8e8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+1313130000000202020e0e0e000000e9e9e9fffffffcfcfcfdfdfdf5f5f5e6e6e6fefefe
+ffffffe5e5e5f5f5f5f3f3f3e1e1e1ffffffe4e4e4fffffff5f5f5ffffffebebebf5f5f5
+fbfbfbf6f6f6f0f0f0fefefefffffffafafaedededffffffeeeeeeffffffeaeaeafbfbfb
+e9e9e9fcfcfcfcfcfcfffffff7f7f7f1f1f1fbfbfbfffffff0f0f0fbfbfbf6f6f6ffffff
+fcfcfcfafafaf4f4f4fffffff5f5f5f5f5f5fffffffffffff8f8f8fffffffffffffefefe
+eeeeeef0f0f0dbdbdbfefefefefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+f5f5f5e7e7e7edededecececfffffff1f1f1ebebebfffffffbfbfbfdfdfdf4f4f4ffffff
+fffffff9f9f9f4f4f4e2e2e2fafafaf3f3f3ebebebfffffff2f2f2edededfffffff6f6f6
+fffffff1f1f1f6f6f6fefefef6f6f6e2e2e2f0f0f0fafafaeeeeeeeeeeeefefefeffffff
+fefefee6e6e6ffffffefefefffffffefefeff7f7f7fffffffafafaf4f4f4fffffff8f8f8
+ecececfffffffffffffafafae7e7e7fafafafffffffffffffafafafcfcfcfdfdfdfdfdfd
+fcfcfcfbfbfbfbfbfbfcfcfcf8f8f8e6e6e6f2f2f2f7f7f7f4f4f4ffffffd8d8d8ffffff
+e9e9e9fafafafffffff1f1f1e3e3e3f9f9f9f0f0f0ffffffe8e8e8ecececfdfdfdffffff
+ffffffffffffebebebffffffffffffffffffffffffe8e8e8dfdfdfffffffe4e4e4ffffff
+fffffff2f2f2fdfdfde0e0e0fffffffffffffffffffdfdfdffffffefefeffdfdfdfafafa
+e8e8e8ebebebf5f5f5fffffffffffff7f7f7fafafaf7f7f7ffffffe3e3e3ffffffe5e5e5
+fbfbfbf6f6f6f7f7f7ffffffebebebd7d7d7ffffffffffffe9e9e9fffffff5f5f5ffffff
+f6f6f6e8e8e8fffffff6f6f6f7f7f7f6f6f6fbfbfbf8f8f8fffffffdfdfdfdfdfdf7f7f7
+000000f5f5f5fffffffcfcfcfffffff0f0f0fbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000020202000000000000fefefefffffffafafaf8f8f8fbfbfbfffffff0f0f0
+f4f4f4fffffff6f6f6ffffffffffffe2e2e2f3f3f3ffffffdfdfdfeeeeeefefefeffffff
+f8f8f8fafafafffffffffffff8f8f8f4f4f4ffffffecececfffffff4f4f4fefefef8f8f8
+fffffffffffffbfbfbe6e6e6fffffffffffffffffff9f9f9fffffffefefeffffffededed
+f5f5f5ffffffffffffefefefffffffffffffe3e3e3e5e5e5f6f6f6fffffff6f6f6f1f1f1
+efefefffffffffffffeeeeeefefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+fffffffdfdfdf7f7f7ffffffe4e4e4fdfdfdf7f7f7f6f6f6f7f7f7f5f5f5f6f6f6ffffff
+e7e7e7e7e7e7fffffffbfbfbfffffff5f5f5f6f6f6fcfcfcf7f7f7fafafaffffffe2e2e2
+f6f6f6fcfcfcfffffff3f3f3ffffffe5e5e5fffffff1f1f1fdfdfdf4f4f4f3f3f3efefef
+f2f2f2ffffffe5e5e5ffffffefefeffffffff1f1f1f3f3f3ebebebfffffffcfcfcfafafa
+fafafaffffffddddddebebebfffffff4f4f4e0e0e0fcfcfcf4f4f4f7f7f7fafafafcfcfc
+fdfdfdfdfdfdfffffffffffffdfdfdfffffffefefefffffff3f3f3e0e0e0ffffffeeeeee
+f1f1f1ffffffededede3e3e3ffffffe6e6e6f6f6f6fefefeffffffe9e9e9fafafaffffff
+f0f0f0f6f6f6fcfcfcf5f5f5f1f1f1fefefeeeeeeef6f6f6fffffff1f1f1fffffff6f6f6
+e2e2e2ffffffedededfffffff5f5f5fffffffdfdfddededef4f4f4f4f4f4ffffffebebeb
+fffffff7f7f7f6f6f6edededfbfbfbfefefefbfbfbf7f7f7f2f2f2fafafafffffffefefe
+fbfbfbf7f7f7f9f9f9e5e5e5fcfcfcfffffff2f2f2f9f9f9ffffffe4e4e4fffffff1f1f1
+ebebebfffffff3f3f3fffffff0f0f0fefefeeeeeeefcfcfce0e0e0fffffff7f7f7f3f3f3
+ffffffefefeff9f9f9fffffff3f3f3ffffffffffffe8e8e8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000050505030303060606ededededededfbfbfbf0f0f0fffffff8f8f8f8f8f8
+f1f1f1fafafaedededfdfdfdfcfcfce7e7e7f4f4f4fffffff5f5f5fffffffbfbfbf0f0f0
+f7f7f7fffffff0f0f0e4e4e4eeeeeefffffffbfbfbdadadaffffffe2e2e2f2f2f2ffffff
+f2f2f2eaeaeaf6f6f6fffffff8f8f8efefeff5f5f5ffffffdededeeeeeeeffffffefefef
+fcfcfcecececfcfcfcf3f3f3fbfbfbfdfdfdffffffffffffffffffefefefffffffffffff
+f6f6f6fffffff2f2f2f3f3f3fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+f6f6f6f0f0f0e4e4e4e8e8e8fffffff8f8f8fffffffffffff8f8f8fffffff0f0f0eeeeee
+e9e9e9fffffff8f8f8e3e3e3fafafafbfbfbf8f8f8eaeaeafbfbfbffffffe2e2e2fefefe
+f4f4f4fffffff1f1f1ffffffe9e9e9eeeeeeffffffe5e5e5f0f0f0fffffff6f6f6ffffff
+fffffffefefefafafae0e0e0fefefeecececffffffefefeffdfdfdf5f5f5e9e9e9ffffff
+fffffff1f1f1fffffff9f9f9e7e7e7f6f6f6ffffff060606020202040404060606060606
+040404030303040404050505f5f5f5fefefef9f9f9f0f0f0f2f2f2eaeaeafffffff6f6f6
+ffffffe6e6e6fdfdfdffffffd8d8d8fffffffbfbfbf4f4f4fdfdfdfafafaf3f3f3ffffff
+fbfbfbfffffffffffffffffffcfcfcf7f7f7fffffffcfcfcfcfcfcfbfbfbfffffffafafa
+ffffffe0e0e0ffffffe6e6e6ebebebffffffecececfffffffafafaffffffe6e6e6f0f0f0
+e9e9e9ffffffe8e8e8fffffffffffff4f4f4eeeeeefafafafffffffffffff0f0f0f2f2f2
+fffffff0f0f0fdfdfdfdfdfdf2f2f2e4e4e4fefefefffffff4f4f4f2f2f2f8f8f8fefefe
+fbfbfbfdfdfdfffffffbfbfbfffffff5f5f5ffffffeaeaeaffffffdfdfdf010101fbfbfb
+000000ffffff000000fbfbfbfbfbfbeaeaeaffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+050505010101000000000000000000eeeeeefbfbfbffffffffffffdfdfdff2f2f2ffffff
+fbfbfbf8f8f8fffffff3f3f3ecececfffffffffffff4f4f4ffffffeaeaeafffffffafafa
+fffffff1f1f1fafafafffffff8f8f8fefefee8e8e8fffffffafafaf9f9f9ffffffeaeaea
+fefefefbfbfbffffffdededeffffffebebebfefefef7f7f7f4f4f4f1f1f1fffffff5f5f5
+fbfbfbf9f9f9f9f9f9fdfdfde7e7e7ffffffffffffd7d7d7fbfbfbfcfcfcf9f9f9ffffff
+f9f9f9f3f3f3fffffffbfbfbfafafafbfbfbfdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+ebebebfffffff8f8f8f8f8f8fbfbfbf7f7f7ecececfffffffcfcfcfffffffffffffcfcfc
+fbfbfbe3e3e3ecececffffffffffffd8d8d8ffffffffffffe1e1e1fffffffdfdfdf6f6f6
+ffffffe7e7e7f9f9f9f4f4f4fffffffefefefcfcfcffffffffffffefefeffffffff2f2f2
+f6f6f6f9f9f9fefefefffffffdfdfdf2f2f2fffffff3f3f3ffffffe9e9e9f9f9f9e5e5e5
+fafafafefefefffffffefefeffffffeeeeeef6f6f6f6f6f6fdfdfdfefefefefefefdfdfd
+f9f9f9f7f7f7f6f6f6f6f6f6fffffff4f4f4fafafaf5f5f5ffffffffffffe5e5e5fbfbfb
+efefefffffffe6e6e6ffffffe4e4e4fffffffcfcfcfffffff6f6f6fffffff5f5f5f5f5f5
+f9f9f9efefefe2e2e2edededf1f1f1ffffffe4e4e4ffffffd4d4d4fafafaffffffededed
+fcfcfcf4f4f4fffffffdfdfdfcfcfcfffffffefefeeaeaeafefefef0f0f0fffffff8f8f8
+fffffff4f4f4f0f0f0eeeeeee1e1e1fcfcfcfffffff6f6f6f0f0f0fbfbfbffffffffffff
+d2d2d2ffffffedededffffffffffffeeeeeee9e9e9efefeffbfbfbfffffffdfdfdffffff
+fcfcfcedededf7f7f7efefeffafafaf0f0f0fcfcfce4e4e4f9f9f9fbfbfbfffffffafafa
+e9e9e9fffffff4f4f4fffffffffffffefefefafafaffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+020202000000000000040404030303fcfcfcffffffebebebf1f1f1ffffffffffffffffff
+f6f6f6fffffffdfdfdfafafafefefef0f0f0f1f1f1fbfbfbf4f4f4fffffff7f7f7e9e9e9
+fffffffefefee8e8e8fffffff3f3f3fafafaffffffecececefefeffdfdfdf0f0f0ffffff
+fcfcfcfffffff9f9f9fdfdfdeaeaeafffffff5f5f5f6f6f6fffffffefefed9d9d9ffffff
+f9f9f9ffffffedededffffffeaeaeafbfbfbf0f0f0fffffffcfcfce7e7e7fffffff9f9f9
+f8f8f8fffffff5f5f5fafafaf8f8f8fafafafdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfc9d9d9dfafafafdfdfdfafafaffffff
+fcfcfce8e8e8f4f4f4fffffffffffffbfbfbfdfdfdf4f4f4ffffffe5e5e5fefefeffffff
+fafafafcfcfcebebebf2f2f2fffffff7f7f7f4f4f4ebebebffffffebebebfefefef6f6f6
+f2f2f2ffffffffffffebebebf9f9f9fffffff6f6f6fafafaedededfffffff0f0f0f9f9f9
+ffffffeeeeeefffffff6f6f6eaeaeaffffffebebebffffffffffffe4e4e4fffffff3f3f3
+f3f3f3fffffff3f3f3f8f8f8fdfdfdfffffff9f9f9f6f6f6f7f7f7f9f9f9fcfcfcfdfdfd
+fdfdfdfdfdfdfffffffffffff7f7f7f0f0f0fcfcfcfafafae4e4e4f6f6f6fffffffcfcfc
+fefefef8f8f8fbfbfbfffffffefefefffffffffffff7f7f7fafafafdfdfde0e0e0ffffff
+eaeaeafafafafffffffffffffdfdfdfffffff3f3f3fcfcfcffffffe7e7e7fafafaefefef
+eeeeeefffffff4f4f4fdfdfdf7f7f7f5f5f5fffffffafafafafafaf6f6f6fffffffcfcfc
+edededfffffffefefefffffffcfcfcfefefef7f7f7f8f8f8fffffffffffff3f3f3f1f1f1
+fefefeefefefffffffeeeeeef8f8f8fefefefffffff6f6f6fafafafdfdfde9e9e9f0f0f0
+fffffffffffffffffff9f9f9fafafaffffffe3e3e3fffffffefefee4e4e4fffffff9f9f9
+fffffffffffff6f6f6fafafafffffff7f7f7fbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000000000000000030303f9f9f9fefefefafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfafafaf9f9f9f9f9f9f9f9f9f8f8f8
+f6f6f6f8f8f8fbfbfbfefefefefefefbfbfbf8f8f8f6f6f6fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfba3a3a3ffffffffffffedededffffff
+fbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf5f5f5f7f7f7fafafafdfdfd
+fdfdfdfafafaf7f7f7f5f5f5fafafafafafafafafafafafafafafafafafafafafafafafa
+fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfafafafefefefefefefefefefdfdfd
+fdfdfdfcfcfcfcfcfcfbfbfbfafafafbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fafafafafafafafafafafafafafafafafafafafafafafafaf9f9f9fbfbfbfdfdfdffffff
+fdfdfdfafafaf6f6f6f3f3f3fcfcfcfbfbfbfafafafafafafafafafafafafbfbfbfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafafafafafafafafafafafafafa
+f8f8f8fcfcfcfffffffdfdfdf9f9f9f7f7f7fafafafefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfefefefffffffffffffdfdfdf9f9f9
+c5c5c5fffffffffffff9f9f9fffffffdfdfdfefefeffffff000000000000000000000000
+000000
+000000000000000000000000030303fafafafefefefafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfb
+f9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfbfbfbf9f9f9fefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fafafaf9f9f9939393f9f9f9fcfcfcf8f8f8fdfdfd
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefef9f9f9fbfbfbfdfdfdffffff
+fffffffdfdfdfbfbfbf9f9f9fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdffffffffffff
+fffffffdfdfdfafafaf8f8f8fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfefefefffffffffffffcfcfcfafafafdfdfdfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefefdfdfdfbfbfb
+c8c8c8fffffffffffffcfcfcfffffffefefefdfdfdffffff000000000000000000000000
+000000
+000000000000000000000000030303fafafafffffffbfbfbffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfefefefffffffffffffffffffffffffefefefdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefeffffffffffff979797f8f8f8f8f8f8fffffff9f9f9
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffefefefefefe
+fefefefefefefdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfefefeffffff
+fffffffefefefdfdfdfcfcfcfffffffffffffefefefefefefefefefefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfffffffffffffffffffdfdfdfcfcfcfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+cacacafafafafffffffdfdfdfffffffefefefefefefdfdfd000000000000000000000000
+000000
+000000000000000000000000040404fbfbfbfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfba3a3a3d6d6d6c8c8c8c5c5c5bebebe
+c9c9c9c9c9c9cacacacacacacacacacbcbcbcbcbcbcbcbcbcccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcbcb
+cbcbcbcccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacaca
+cacacacbcbcbcccccccdcdcdcdcdcdcccccccbcbcbcbcbcbcbcbcbcbcbcbcccccccdcdcd
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cacacacccccccecececdcdcdcbcbcbcacacacbcbcbcdcdcdcccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacccccccccccccacacac8c8c8c9c9c9cdcdcdd2d2d2
+d0d0d0f5f5f5f8f8f8fafafafffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000000000000000040404fcfcfcfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff3f3f3fbfbfbfbfbfbe6e6e6fdfdfdfffffffcfcfcffffff
+fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfefefefffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffefefefbfbfbfcfcfcffffffffffff
+e3e3e3f9f9f9f7f7f7fbfbfbfefefefafafaffffffffffff000000000000000000000000
+000000
+000000000000000000000000050505fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfafafaf0f0f0fefefe
+fdfdfdfdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffefefefefefefdfdfd
+fdfdfdfefefefefefefffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfefefefffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefffffffefefefefefefefefefefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+f9f9f9fffffffbfbfbfffffffefefef9f9f9fffffffdfdfd000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fafafaf7f7f7fffffff9f9f9fafafafbfbfbf9f9f9
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfbfbfb
+fffffffffffffafafafffffffffffff9f9f9fffffffafafa000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff8f8f8fdfdfdfdfdfdfffffff3f3f3
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfefefefefefe
+fefefefefefefdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefefefefffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfdfdfd
+fefefefefefefffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffdfdfdfbfbfbfcfcfcfffffffffffffbfbfbf8f8f8
+fafafaf7f7f7f5f5f5fffffffffffffafafafffffff9f9f9000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffafafaf9f9f9fcfcfcfcfcfcf9f9f9
+fffffffafafaf9f9f9fffffffffffffffffffcfcfcfefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffafafaf9f9f9fcfcfcfcfcfcf9f9f9
+fffffffbfbfbfafafafffffffffffffffffffdfdfdffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffafafafafafafdfdfdfdfdfdfafafa
+fffffffbfbfbfafafafdfdfdfffffffefefefefefeffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffbfbfbfafafafdfdfdfdfdfdfbfbfb
+fefefefcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffbfbfbfbfbfbfefefefefefefcfcfc
+fafafafcfcfcfcfcfcfcfcfcfcfcfcfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffbfbfbfbfbfbfffffffffffffdfdfd
+f6f6f6fbfbfbfefefefcfcfcfcfcfcfefefefffffffefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffdfdfd
+f2f2f2fafafafffffffefefefdfdfdfffffffffffffcfcfc000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffefefe
+f0f0f0fafafafffffffefefefdfdfdfffffffffffffbfbfb000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafa8e8e8ea4a4a4a0a0a09c9c9c989898
+9c9c9c9c9c9c9b9b9b9a9a9a9999999999999898989898989999999a9a9a9b9b9b9b9b9b
+9c9c9c9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9999999a9a9a9b9b9b9c9c9c9c9c9c9c9c9c9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9d9d9d9a9a9a9a9a9a9c9c9c
+9d9d9d9a9a9a9b9b9b9f9f9f9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9c9c9c9e9e9e9e9e9e9c9c9c9b9b9b9b9b9b9c9c9c
+9a9a9a9999999a9a9a9c9c9c9b9b9b9797979898989d9d9d9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9c9c9c9898989696969a9a9a
+9b9b9b9999999a9a9a9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a
+9d9d9d9a9a9a9a9a9a9c9c9c9d9d9d9a9a9a9b9b9b9f9f9f9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9b9b9b9c9c9c9d9d9d9d9d9d9d9d9d9c9c9c
+9999999a9a9a9a9a9a9b9b9b9a9a9a9a9a9a9999999999999b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9d9d9d909090929292a1a1a1
+a5a5a58a8a8a9b9b9b9494949c9c9c9e9e9e9595959393939b9b9b9b9b9b9797979a9a9a
+9999999999999999999999999a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+aaaaaae9e9e9fcfcfcfbfbfbfffffffcfcfcffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffffffffefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfafafafdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5f8f8f8fcfcfca8a8a8e4e4e4f7f7f7fefefefdfdfd
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfcfcfcfdfdfdfdfdfdfefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdffffff
+fffffffefefefffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfd
+fffffffefefefefefefffffffefefefafafafbfbfbfffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffefefefcfcfcffffff
+fffffffefefefefefefffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfffffffffffffefefefffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffffffffffffffffffffefefefdfdfd
+fefefefffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffffff8f8f8f4f4f4
+fcfcfcfffffffbfbfbfffffffefefefbfbfbffffffeeeeeefffffff3f3f3fffffffefefe
+fefefefffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+c6c6c6fffffffffffffffffffffffffcfcfcfffffffefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffffffffefefefdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffbfbfbf7f7f7f5f5f5fdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbf9f9f9a4a4a4f0f0f0fffffffffffffbfbfb
+fefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfdfdfdfefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfcfcfcfdfdfdfefefefefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcf9f9f9fafafafdfdfd
+fefefefbfbfbfcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfbfbfbfbfbfbfcfcfc
+fafafaf9f9f9fafafafcfcfcfbfbfbf7f7f7f8f8f8fdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfdfdfd
+fcfcfcf9f9f9f9f9f9fdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcf9f9f9fafafafdfdfdfefefefbfbfbfcfcfcffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfafafaf9f9f9f8f8f8
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfce6e6e6f4f4f4f1f1f1
+fffffff6f6f6f4f4f4fcfcfcf2f2f2fffffff2f2f2fffffff6f6f6ecececfffffffbfbfb
+fdfdfdfdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ccccccfffffffffffffbfbfbfffffffdfdfdffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffffffffdfdfdfbfbfb
+fafafafafafafafafafbfbfbfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefbfbfbf8f8f8f6f6f6fdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf6f6f69b9b9bf3f3f3fffffffdfdfdf2f2f2
+fffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfafafafbfbfbffffff
+fffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfd
+f8f8f8f7f7f7f9f9f9fdfdfdfcfcfcfafafafcfcfcfffffffefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fcfcfcf8f8f8f8f8f8fcfcfcfefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfafafafbfbfbfffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfafafaf9f9f9
+fcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfffffff4f4f4fffffffdfdfd
+e2e2e2f4f4f4fffffffefefeffffffdadadaffffffe6e6e6f5f5f5ffffffefefeffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+c7c7c7f8f8f8fbfbfbf5f5f5fefefeffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffffffffcfcfcfafafa
+f9f9f9f9f9f9fafafafbfbfbfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfb9b9b9bfdfdfdffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfb
+f7f7f7f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9fafafaf8f8f8fafafafefefe
+fffffffdfdfdfcfcfcfffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefdfdfdfafafaf7f7f7f6f6f6f7f7f7f8f8f8
+fafafaf8f8f8fafafafcfcfcfbfbfbf8f8f8f9f9f9fefefef9f9f9fafafafafafafafafa
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffdfdfdfdfdfdfdfdfd
+f9f9f9f5f5f5f6f6f6fbfbfbf9f9f9fafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9
+fafafaf8f8f8fafafafefefefffffffdfdfdfcfcfcfffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafa
+fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9f0f0f0ecececd9d9d9ffffff
+edededffffffedededf1f1f1fafafafffffff8f8f8ffffffe1e1e1f6f6f6f5f5f5ffffff
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+cfcfcffffffffffffffbfbfbfffffffffffffffffff8f8f8000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffefefefcfcfcfafafa
+f9f9f9fafafafcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefcfcfcfcfcfcfcfcfcfdfdfdfefefefdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff959595fafafaf6f6f6f8f8f8f6f6f6
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcfbfbfbfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfafafafcfcfcfefefe
+fffffffffffffffffffffffffdfdfdf8f8f8f8f8f8fcfcfcfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcf7f7f7f9f9f9fefefefefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfb
+fcfcfcfbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfffffffbfbfbdadada
+ffffffe2e2e2f0f0f0fefefefffffff3f3f3e2e2e2f4f4f4f3f3f3f8f8f8fffffff3f3f3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ccccccfefefefffffffdfdfdfffffffffffffffffff8f8f8000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffefefefcfcfcfafafa
+fafafafbfbfbfdfdfdfffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9f8f8f8fdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9ffffffffffff939393fffffffdfdfdffffffffffff
+fbfbfbfbfbfbfafafafafafaf9f9f9f8f8f8f7f7f7f7f7f7f6f6f6f7f7f7f9f9f9fafafa
+fcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9
+f9f9f9fafafafcfcfcfdfdfdfffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbfafafaf8f8f8f7f7f7f7f7f7f7f7f7f5f5f5f8f8f8fdfdfd
+fffffffcfcfcfbfbfbfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffefefefbfbfbf9f9f9f9f9f9fcfcfcfefefe
+fbfbfbf9f9f9fafafafbfbfbf9f9f9f4f4f4f5f5f5f9f9f9fbfbfbfcfcfcfcfcfcfdfdfd
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefbfbfbfbfbfbfcfcfcfcfcfc
+f7f7f7f2f2f2f5f5f5fcfcfcfbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfafafaf8f8f8f7f7f7f7f7f7
+f7f7f7f5f5f5f8f8f8fdfdfdfffffffcfcfcfbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8f7f7f7
+f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbfafafaf8f8f8f7f7f7f7f7f7f6f6f6ccccccfcfcfcffffff
+f3f3f3000000050505050505010101040404ffffffd3d3d3ffffffe9e9e9ecececffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+c4c4c4f8f8f8fefefef9f9f9fffffffffffffffffffefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefefffffffefefefbfbfbfafafa
+fafafafcfcfcfffffffffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffdfdfdf9f9f9f4f4f4f2f2f2fdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcffffffffffff909090fffffffafafafcfcfcfdfdfd
+fffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfafafafbfbfbfdfdfdffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfc
+fafafafbfbfbfdfdfdfffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf9f9f9f8f8f8fbfbfbffffff
+fffffffffffffefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffefefefcfcfcfafafafbfbfbfefefeffffff
+f8f8f8f7f7f7f9f9f9fdfdfdfdfdfdfbfbfbfdfdfdfffffffbfbfbfbfbfbfcfcfcfdfdfd
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fcfcfcf7f7f7fafafafffffffbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfb
+f9f9f9f8f8f8fbfbfbfffffffffffffffffffefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffdfdfdfbfbfbf9f9f9f7f7f7
+fcfcfcfdfdfdfffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfdfdfdfcfcfcf7f7f7f8f8f8
+e8e8e8fffffff6f6f6020202ffffffedededf4f4f4fcfcfcf0f0f0f7f7f7fffffff9f9f9
+fefefefffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefffffffbfbfbfefefefdfdfdffffffffffff000000000000000000000000
+000000
+000000000000020202000000040404fafafafffffffcfcfcfdfdfdf8f8f8ffffffffffff
+d6d6d6f9f9f9fcfcfcfcfcfcfefefeffffffffffffeaeaeafefefefffffffffffff5f5f5
+eeeeeefffffffbfbfbfffffff8f8f8f0f0f0fffffffdfdfdf8f8f8fdfdfdfffffffefefe
+fcfcfcedededfffffff4f4f4f5f5f5fffffffffffff7f7f7f4f4f4fffffff0f0f0fcfcfc
+fefefefefefefffffff5f5f5fffffff3f3f3fffffffefefeffffffffffffeaeaeaffffff
+dcdcdcf8f8f8fffffffefefefdfdfdfdfdfdfffffff9f9f9fffffffffffffbfbfbfefefe
+fffffff9f9f9fbfbfbffffffeeeeeef9f9f9f8f8f8f8f8f8ffffffe5e5e5fffffffdfdfd
+fffffffffffffdfdfdfbfbfbfbfbfbfffffff0f0f0f0f0f0fffffffdfdfdf9f9f9ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fefefefdfdfdf7f7f7f8f8f8ebebebfffffff1f1f1fffffff2f2f2fffffffbfbfbf4f4f4
+fffffffffffffdfdfdffffffe7e7e7fffffffffffff3f3f3ffffffffffffedededffffff
+f8f8f8fffffff6f6f6fffffffefefefffffff6f6f6fcfcfcfafafaffffffe7e7e7f5f5f5
+fffffff5f5f5f5f5f5fffffffffffff9f9f9fafafaffffffffffffeeeeeef5f5f5ffffff
+fffffff5f5f5f5f5f5fbfbfbf8f8f8fefefefffffff4f4f4f5f5f5fafafaffffffefefef
+fffffffcfcfcf3f3f3fffffffffffffefefefefefef0f0f0fdfdfdfffffff4f4f4ffffff
+fafafafffffffbfbfbfffffff1f1f1fffffff1f1f1fffffffdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fefefefefefef7f7f7f4f4f4fefefefffffff3f3f3fdfdfdfcfcfcffffffebebebededed
+fffffff5f5f5fbfbfbfffffffdfdfdf9f9f9f2f2f2ffffffffffffecececf3f3f3ffffff
+fffffff9f9f9f9f9f9fffffff8f8f8fffffffffffff8f8f8fcfcfce9e9e9fffffffcfcfc
+ffffffedededfffffff9f9f9f9f9f9fffffff7f7f7f3f3f3ffffffebebebfefefeececec
+ffffffe9e9e9fcfcfcfffffff9f9f9fafafafcfcfcfffffff6f6f6fffffffbfbfbfefefe
+f6f6f6f0f0f0fffffff8f8f8fffffff9f9f9f7f7f7fffffff7f7f7f1f1f1fffffffcfcfc
+fffffffcfcfcfffffffffffff5f5f5ffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfdfdfdfefefefffffffffffffdfdfdfbfbfbfdfdfdffffff
+fefefefffffff4f4f4fffffff9f9f9fffffff8f8f8fbfbfbffffffe7e7e7fffffff4f4f4
+fffffff1f1f1fffffff6f6f6fdfdfdf7f7f7ffffffe2e2e2fffffffdfdfdfffffffdfdfd
+fefefefffffffffffffefefef5f5f5ffffffefefeffffffffffffff9f9f9fdfdfdffffff
+f5f5f5fffffff2f2f2fffffff3f3f3ffffffe6e6e6f3f3f3fffffff6f6f6fffffffcfcfc
+fffffff2f2f2fefefef2f2f2f9f9f9f9f9f9fffffff0f0f0fffffffffffffffffff4f4f4
+f4f4f4fffffffffffffcfcfcf8f8f8ffffffefefeffcfcfcfffffff6f6f6edededffffff
+f1f1f1ffffffedededfbfbfbfffffff9f9f9fffffffcfcfcffffffe3e3e3f9f9f9f5f5f5
+fafafafffffffffffffffffffffffff8f8f8f9f9f9f9f9f9fffffffffffff2f2f2fbfbfb
+fffffffffffffbfbfbf4f4f4fffffff9f9f9f3f3f3fcfcfcfffffffffffffcfcfcfafafa
+ebebebfffffff4f4f4fbfbfbf7f7f7fffffff8f8f8edededffffffffffffedededffffff
+fffffff7f7f7fffffff6f6f6fffffff2f2f2fffffffafafafffffff0f0f0efefefffffff
+e6e6e6fffffffefefef5f5f5f8f8f8fffffffffffff0f0f0fffffffbfbfbfffffffdfdfd
+fefefefffffff9f9f9fcfcfcf4f4f4fffffffefefefffffffffffff3f3f3fffffffcfcfc
+eaeaeafcfcfcffffff030303f2f2f2ffffffe6e6e6ffffffe4e4e4f7f7f7edededffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000020202000000060606fdfdfdfffffffffffffdfdfdffffffebebeb000000
+151515fefefefffffffcfcfceaeaeaf7f7f7f2f2f2fffffff0f0f0fcfcfcfafafafcfcfc
+ffffffdcdcdcf8f8f8fffffffffffffffffffcfcfcfffffffffffff2f2f2ecececffffff
+fffffff3f3f3fffffffffffffffffff3f3f3fffffffffffffffffff0f0f0fffffffdfdfd
+fffffffbfbfbeaeaeaf7f7f7fffffff5f5f5fefefefffffffcfcfcfdfdfdfdfdfddadada
+ffffffffffffe6e6e6f4f4f4fffffff1f1f1f8f8f8fffffffefefefefefefdfdfdf2f2f2
+f0f0f0fffffff5f5f5f9f9f9f0f0f0ffffff161616f9f9f9f3f3f3f0f0f0fafafaf3f3f3
+ffffffe3e3e3fefefefffffff5f5f5fffffff7f7f7fffffffdfdfde5e5e5fffffff7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff1f1f1f9f9f9ffffff0000000000001c1c1cf3f3f3fffffff8f8f8f8f8f8ffffff
+f9f9f9fffffffffffff5f5f5fffffff5f5f5fefefeffffffe8e8e8fffffff0f0f0ffffff
+edededfffffff1f1f1fffffff8f8f8f5f5f5f0f0f0fffffff4f4f4f1f1f1ffffffffffff
+f3f3f3f2f2f2fffffffafafafdfdfdffffffe8e8e8fafafaf2f2f2e4e4e4f7f7f7ffffff
+f8f8f8ebebeb080808fffffffffffff1f1f1f1f1f1fffffffffffffdfdfdfafafaffffff
+eeeeeef2f2f2fffffffffffffffffffcfcfce9e9e9ffffffecececfffffffefefefefefe
+fffffffffffff5f5f5f9f9f9fffffff7f7f7fffffff1f1f1fcfcfcfefefeffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+f1f1f1f8f8f8ffffffffffffe4e4e4f7f7f7fffffff0f0f0fcfcfc000000fffffff4f4f4
+fffffffdfdfdfefefefcfcfcf8f8f8ffffffeaeaeaf7f7f7f0f0f0fffffffffffff4f4f4
+f4f4f4fcfcfcfffffff3f3f3ffffffefefeff0f0f0fffffffcfcfcfffffffafafaf6f6f6
+fffffffefefef1f1f1fcfcfcf8f8f8ffffffecececffffff040404000000030303030303
+e4e4e4fffffffffffff5f5f5ffffff020202fffffff7f7f7fffffff2f2f2ecececf6f6f6
+fffffffcfcfce1e1e1fffffff5f5f5ffffffffffffe3e3e3fffffffffffff9f9f9fcfcfc
+f7f7f7f6f6f6fffffffdfdfdf9f9f9f3f3f3ffffffe8e8e8ffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfefefefffffffffffffcfcfcfbfbfbfefefeffffff
+fbfbfbf2f2f2fbfbfbfffffff3f3f3fbfbfbffffffffffffe8e8e8fffffff8f8f8ececec
+ffffff000000f7f7f7f1f1f1fffffff0f0f0e5e5e5ffffffeeeeeeefefefefefefffffff
+f7f7f7ffffffe9e9e9fafafafffffffffffff8f8f8fffffffffffffffffff2f2f2ffffff
+fdfdfdfefefefefefee9e9e9ffffffefefeffffffffefefeefefeffefefef4f4f4f9f9f9
+ffffff0d0d0df8f8f8fffffffffffff6f6f6f7f7f7ffffffffffffffffffffffffffffff
+fffffff6f6f6ebebebfafafaffffffefefefffffffe0e0e0fffffffffffffffffff1f1f1
+fcfcfcfafafaffffffffffffe6e6e6fffffff3f3f3ffffffe6e6e6ffffffffffffffffff
+fffffffffffff8f8f8e5e5e5f4f4f4fffffffffffffffffff2f2f2fefefefefefeffffff
+fffffff5f5f5e3e3e3fffffff5f5f5ffffffffffffeeeeeef3f3f3fffffff6f6f6ebebeb
+fffffff0f0f0f4f4f4fffffff5f5f5fffffff9f9f9fffffff8f8f8eeeeeeffffff000000
+fdfdfdf3f3f3f3f3f3ffffffe1e1e1fffffffefefefbfbfbf2f2f2fffffffffffff9f9f9
+fffffffefefefffffffdfdfdfffffffafafafcfcfcffffffecececf5f5f5f3f3f3fefefe
+fffffff8f8f8fefefeffffffe9e9e9f0f0f0fafafaf7f7f7f5f5f5000000fffffff6f6f6
+ffffffffffffe4e4e40e0e0ef1f1f1efefef0a0a0a000000151515ffffffe3e3e3ffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000040404fbfbfbfffffffdfdfdf9f9f9f5f5f50c0c0c0b0b0b
+0000000d0d0defefeffcfcfcfffffff8f8f8fcfcfcffffffebebebf9f9f9ffffffeaeaea
+fcfcfcf8f8f8fffffff3f3f3efefeffafafaf3f3f3fcfcfcfefefef2f2f2ffffffffffff
+f1f1f1ffffffe5e5e5f7f7f7e2e2e2fffffff0f0f0e1e1e1fffffffffffff6f6f6f9f9f9
+fdfdfdf1f1f1fffffffbfbfbf2f2f2ffffffdbdbdbfffffff9f9f9ffffffffffffffffff
+fefefef6f6f6fffffffcfcfcfcfcfcfdfdfdf3f3f3fffffff3f3f3f0f0f0ffffffececec
+f6f6f6fffffffffffffcfcfcffffff000000000000fffffffffffff9f9f9ffffffffffff
+ffffffe8e8e8fafafaf8f8f8f3f3f3fcfcfcffffffefefeff5f5f5ffffffefefefffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f4f4f4fffffffdfdfdf9f9f90a0a0afffffffffffffdfdfdecececfffffffbfbfbf9f9f9
+020202fefefef6f6f60f0f0ff4f4f4eeeeeef2f2f2fffffffefefe000000000000000000
+ffffff000000fbfbfbf7f7f7f9f9f9ffffff232323eaeaeaffffffe6e6e6efefefffffff
+ffffffffffffffffffefefeff0f0f0fffffffcfcfcf5f5f5fffffffffffff6f6f6efefef
+fffffffcfcfc101010f5f5f5fffffff2f2f2fffffff4f4f4ececece9e9e9fffffff5f5f5
+fffffff7f7f7f7f7f7fafafaebebebf7f7f7f5f5f5f5f5f5fcfcfceeeeeefafafaffffff
+f4f4f4f5f5f5fefefe070707ecececffffff000000fffffffbfbfbfdfdfdfefefefefefe
+fdfdfdfcfcfcfefefefffffffcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+fffffffffffff5f5f5f2f2f2fffffffafafaf7f7f7ffffff090909ffffffefefeffafafa
+f5f5f5ebebebf5f5f5000000050505000000fbfbfbfffffffafafae3e3e3f6f6f6ffffff
+fffffff5f5f5e3e3e3ffffffefefefedededffffffe9e9e9fbfbfbf5f5f5fbfbfbfefefe
+e9e9e9fffffffffffffffffff4f4f4f3f3f3ffffff000000ebebebfffffffffffff7f7f7
+fffffffcfcfcfbfbfbf2f2f2f6f6f6000000e7e7e7ffffffffffffe6e6e6ffffffffffff
+000000141414232323eeeeeefdfdfdf6f6f6eeeeeefffffff9f9f9efefefffffffffffff
+f9f9f9ffffffecececf0f0f0fffffffdfdfdf5f5f5fffffffdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffdfdfdfcfcfcfcfcfcfefefeffffff
+020202fffffff8f8f8000000fefefefffffff4f4f4f6f6f6eaeaeaefefefffffffffffff
+000000edededf6f6f6ffffffe0e0e0ffffff000000f2f2f2fffffff3f3f3ffffffeaeaea
+ffffffeeeeeeffffffffffffe7e7e7f7f7f7ffffffedededf7f7f7ffffffebebebffffff
+f5f5f5f1f1f1fffffff7f7f7f7f7f7f0f0f0f4f4f4ffffffebebebedededfffffff2f2f2
+000000fafafafffffff5f5f5000000000000202020fdfdfdf2f2f2ffffff000000000000
+000000e7e7e7fffffffcfcfcfffffff8f8f8f6f6f6ffffffe9e9e9f0f0f0181818000000
+030303040404000000fefefefefefef0f0f0f7f7f7fffffff8f8f8f6f6f6f4f4f4ffffff
+eaeaeaf5f5f5fbfbfbfffffff7f7f7fafafaebebebfefefeedededffffffffffffe8e8e8
+ffffffdfdfdffffffff1f1f1fffffff2f2f2ecececfffffffffffff0f0f0ffffff000000
+0000000000000c0c0c0000001b1b1b000000f1f1f1f8f8f8f8f8f8ecececfefefe010101
+fffffff8f8f8f7f7f7f8f8f8ffffffffffff0a0a0a000000060606f6f6f6e4e4e4efefef
+f4f4f4fcfcfcf8f8f8fefefef4f4f4f6f6f6fbfbfbf9f9f9fefefefffffffffffff2f2f2
+000000fffffff7f7f7000000fffffffffffffcfcfcfffffff9f9f9fcfcfc0f0f0fffffff
+f1f1f1f4f4f4fcfcfc040404fffffffffffff6f6f6ffffff000000efefefffffffececec
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000010101010101000000000000f4f4f4f8f8f8f5f5f5f9f9f9e5e5e50c0c0c0b0b0b
+000000040404fffffffbfbfbf3f3f3fbfbfbfbfbfbe5e5e5fffffff1f1f1f2f2f2ffffff
+f0f0f0ffffffe0e0e0fffffffdfdfdfffffff9f9f9e6e6e6ffffffeeeeeefffffff0f0f0
+f9f9f9e4e4e4fffffff7f7f7ffffffebebebecececffffffe5e5e5ffffffe9e9e9fefefe
+ffffffe7e7e7eeeeeeffffffdcdcdcf6f6f6fffffffafafaffffffe9e9e9ffffffffffff
+f7f7f7f8f8f8efefeff1f1f1fcfcfcf9f9f9eaeaeaf4f4f4fbfbfbffffffeeeeeef3f3f3
+f6f6f6f8f8f8edededf2f2f2fcfcfc222222131313f5f5f5f0f0f0fefefefdfdfdfdfdfd
+e1e1e1fffffff0f0f0ffffffffffffe8e8e8fffffffffffff1f1f1fffffffafafaf6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fdfdfdeeeeeefffffff3f3f3000000fffffffefefeeeeeeefffffffbfbfbf8f8f8ffffff
+000000fdfdfdf9f9f9030303eaeaeafffffffdfdfdefefef000000f9f9f9fffffffbfbfb
+000000222222fcfcfcfffffff3f3f3eeeeee000000fffffffbfbfbfcfcfcf7f7f7f3f3f3
+fbfbfbdddddde9e9e9fffffff6f6f6f6f6f6fefefef5f5f5fdfdfde6e6e6fcfcfcffffff
+f5f5f5ffffffebebebdadadaeeeeeeffffffefefeffffffffefefef8f8f8edededffffff
+e4e4e4ffffffe9e9e9f2f2f2fdfdfdffffffffffffffffffe9e9e9ffffffefefeff7f7f7
+fdfdfdfafafaf9f9f9000000fffffff7f7f7080808f5f5f5fbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfefefefafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+f7f7f7fffffffffffff2f2f2f6f6f6f9f9f9fffffff8f8f8000000ffffffe8e8e8fcfcfc
+fffffff4f4f4ecececfefefeededed000000ffffffffffffe8e8e8fffffff0f0f0efefef
+f6f6f6fffffff6f6f6fffffff0f0f0fffffffefefef6f6f6eaeaeaffffffe2e2e2ffffff
+fffffff8f8f8f1f1f1f2f2f2ffffffffffffefefef161616fffffffffffff5f5f5f1f1f1
+f9f9f9f4f4f4efefeffffffff2f2f2fffffffffffffefefef7f7f7ffffffe8e8e8fefefe
+ffffffefefef000000f3f3f3fffffffffffffffffffcfcfcfbfbfbfffffffbfbfbe4e4e4
+f3f3f3f8f8f8fcfcfceaeaeafafafafffffffefefef1f1f1fbfbfbfcfcfcfdfdfdffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffcfcfcfbfbfbfdfdfdfefefefdfdfd
+000000fafafaffffff030303f8f8f8fbfbfbfffffffcfcfcffffffefefeffffffff4f4f4
+0a0a0affffffe1e1e1ebebebffffffebebeb040404ffffffdcdcdcfafafaf1f1f1fefefe
+fcfcfcffffffe1e1e1f2f2f2fefefef7f7f7f3f3f3fffffffffffffffffff8f8f8eeeeee
+fcfcfcf1f1f1fcfcfcfcfcfcecececfffffffefefef6f6f6fffffff1f1f1e9e9e9fbfbfb
+0b0b0bfffffff8f8f8fafafaf9f9f91c1c1c000000fefefef5f5f5ffffff060606000000
+ffffffedededfbfbfbf4f4f4fdfdfdfffffff1f1f1fefefefbfbfbffffffdededeffffff
+0e0e0efffffffafafad7d7d7fffffffffffffcfcfcf5f5f5fffffffdfdfde6e6e6ffffff
+fffffffcfcfcfdfdfdf3f3f3f4f4f4fcfcfcfffffff0f0f0fffffffcfcfcebebebffffff
+f0f0f0f8f8f8fffffffdfdfde4e4e4ffffffffffffffffffecececf5f5f5ffffffffffff
+000000ffffffefefeffdfdfddbdbdb0a0a0affffffffffffffffffffffffeeeeeeffffff
+efefeff3f3f3fffffffffffff7f7f7fcfcfce7e7e7f2f2f2000000ffffffffffffffffff
+f6f6f6ffffffd5d5d5fbfbfbffffffe0e0e0ffffffe8e8e8fffffffbfbfbefefefffffff
+000000f6f6f6fcfcfc050505f7f7f7f2f2f2f7f7f7fbfbfbfdfdfdf3f3f30e0e0ee6e6e6
+ffffffe8e8e8ffffff0a0a0af6f6f6eaeaeaecececffffff0a0a0af5f5f5edededf5f5f5
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000010101010101000000000000f3f3f3f7f7f7f4f4f4f6f6f6181818000000f6f6f6
+000000161616eeeeeefcfcfcf4f4f4ffffff0000001d1d1d171717f6f6f6000000000000
+ffffffececec111111000000000000000000000000fffffff6f6f6ececec000000090909
+0d0d0df8f8f8e6e6e6000000000000060606fffffff8f8f8070707000000131313030303
+0000000505050909090000000b0b0b0a0a0a010101ecececf2f2f2fbfbfbffffff010101
+000000171717020202090909ffffffffffff1616160707071d1d1d0000001d1d1d0b0b0b
+000000030303ffffffffffff000000060606000000020202151515f2f2f2ffffff030303
+0303030000001a1a1a000000000000f7f7f7fffffffdfdfdfbfbfbf2f2f2ffffffefefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff2f2f2fffffff0f0f0030303fffffffcfcfcfbfbfbfffffffcfcfcf8f8f8ffffff
+000000fdfdfdf9f9f9020202ffffffe7e7e7fffffff9f9f9101010f8f8f8fffffff7f7f7
+fdfdfd040404efefefffffffffffff0101010d0d0d000000020202000000ffffffe8e8e8
+fcfcfcffffff050505000000e5e5e5ffffff000000040404efefeffffffff2f2f2f3f3f3
+0707071212120b0b0bfffffffdfdfde9e9e9e7e7e7030303040404ffffff0101010b0b0b
+101010ffffffffffffffffffe9e9e9fbfbfb0000000000000b0b0bffffff0a0a0a141414
+fefefefbfbfbfafafa000000fffffff9f9f9090909f7f7f7fbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbfafafafbfbfbfdfdfdf9f9f9fafafafbfbfbfdfdfdfefefeffffffffffffffffff
+f6f6f6ffffffededede9e9e9ffffffe8e8e8e0e0e0ededed040404fefefeffffffe7e7e7
+f8f8f8f8f8f8ffffffebebebffffff010101ffffffebebebf6f6f6fbfbfbeeeeeeffffff
+121212000000000000060606f6f6f6fdfdfdf3f3f3fcfcfcffffff000000050505000000
+ffffff1212120f0f0ff3f3f3fbfbfb0000000303030000000c0c0c000000000000ffffff
+e0e0e0fffffffdfdfd000000050505000000ffffffecececf4f4f4fafafafefefefefefe
+fffffff8f8f8000000fffffffafafaf5f5f5ffffffe6e6e6e3e3e3fafafa0d0d0d0b0b0b
+050505f2f2f2ffffffecececfefefee8e8e8f8f8f8fffffffafafafbfbfbfcfcfcfefefe
+fffffffffffffffffffffffffdfdfdfffffffffffffafafafafafafefefefefefefafafa
+000000fafafaffffff030303f7f7f7fafafafffffffcfcfcfbfbfbffffffefefef131313
+dfdfdffbfbfbfffffff9f9f9fcfcfc0000000000000000002222220a0a0afffffff7f7f7
+e7e7e7040404020202fcfcfc0909090e0e0eececec000000040404e0e0e0000000151515
+ffffff030303000000020202fffffffcfcfcefefeffcfcfce9e9e9fffffff0f0f00f0f0f
+fffffff2f2f2e7e7e7ffffffe5e5e5000000ffffff040404ffffff090909000000030303
+fcfcfc0c0c0c0101010e0e0efafafaf9f9f9222222000000090909e6e6e6ffffffdddddd
+000000f9f9f9f3f3f3ffffffd7d7d7ffffffe3e3e3fffffff8f8f80b0b0b1a1a1a000000
+000000fffffffffffff6f6f6ffffffffffff000000010101000000ffffff000000020202
+fffffffefefee7e7e7070707080808050505f5f5f50000000b0b0bfffffff9f9f9ffffff
+050505ffffffffffffececece0e0e01b1b1bedededddddddffffff000000000000000000
+ffffffd3d3d3ffffffe8e8e8e6e6e6fffffffafafafcfcfc030303f8f8f8dfdfdfeaeaea
+ffffffd4d4d4ffffffededed0202020d0d0d0d0d0dfffffff2f2f2e4e4e4f9f9f9f1f1f1
+000000f6f6f6fcfcfc050505f7f7f7f2f2f2f7f7f7fbfbfbffffffe8e8e8000000fafafa
+f6f6f6f2f2f2f6f6f6000000fdfdfdf9f9f9fffffffafafa000000fffffffffffffbfbfb
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000030303f8f8f8fdfdfdfafafafdfdfd232323000000f2f2f2
+1e1e1e020202181818f7f7f7fffffffcfcfcf9f9f9000000000000010101080808000000
+f1f1f1222222000000f2f2f2ffffffffffff000000101010000000ffffffebebeb000000
+181818ffffffffffffffffff0a0a0a050505f5f5f5ffffffe4e4e4222222020202f6f6f6
+eaeaea101010040404ffffffffffff000000000000fffffff1f1f1ffffff000000141414
+f6f6f6f6f6f6ffffff000000040404fdfdfdfafafa000000050505fafafafdfdfdfcfcfc
+101010000000f7f7f7f4f4f4ebebeb0606061a1a1affffffffffffeaeaea080808000000
+fffffffbfbfbe4e4e4ffffff000000fffffff2f2f2e4e4e4fffffffafafaf1f1f1ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f8f8f8e7e7e7f5f5f5ffffff0f0f0fffffffeaeaeaffffffeeeeeefffffffbfbfbfafafa
+020202fdfdfdf4f4f40d0d0df9f9f9fefefef3f3f3e6e6e60b0b0bf7f7f7f6f6f6fafafa
+fffffff7f7f7f4f4f4f9f9f9f2f2f2f3f3f30b0b0bfffffffffffffffffff5f5f5fbfbfb
+f4f4f4f0f0f0f3f3f3050505ffffff000000f1f1f1ffffff000000e3e3e3fffffff2f2f2
+ffffffececec000000ebebebf0f0f0f3f3f3fffffffcfcfc000000000000ffffffdcdcdc
+fbfbfb000000fbfbfbf7f7f7fefefe202020e9e9e9fffffff0f0f0000000000000fbfbfb
+f7f7f7f7f7f7ffffff090909eeeeeeffffff000000fffffffcfcfcfdfdfdfefefefdfdfd
+fbfbfbfafafafbfbfbfcfcfcfafafafafafafcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffafafaeaeaeafafafae1e1e1ffffffffffff000000f1f1f1ffffffffffff
+e8e8e8fbfbfbffffffd6d6d6ebebeb0f0f0ff2f2f2f9f9f9fffffff8f8f8ffffff020202
+fffffffffffffffffff0f0f0080808f8f8f8ffffffebebeb000000e9e9e9fffffff2f2f2
+000000000000ecececfffffff4f4f4ffffffffffff111111f3f3f3ffffffffffffe5e5e5
+fefefef9f9f9ffffffffffffffffff070707f3f3f3fffffffffffffcfcfcecececf8f8f8
+e3e3e3ffffff000000fffffff2f2f2ffffffe2e2e2dbdbdbffffff000000fcfcfceaeaea
+fefefe000000e0e0e0fffffffafafafffffff4f4f4fefefefafafafbfbfbfcfcfcfefefe
+fffffffffffffffffffffffffdfdfdfffffffffffff8f8f8f9f9f9fffffffefefef7f7f7
+010101fffffff7f7f7000000fcfcfcfffffff3f3f3f5f5f5fffffffdfdfdffffff000000
+fffffff5f5f5fffffffffffffcfcfcffffff060606fcfcfcebebebf8f8f8ebebebffffff
+f8f8f8f9f9f9090909000000ffffff000000242424f3f3f3000000ffffffffffff000000
+000000fffffffafafaececec000000efefeffafafafffffffffffffcfcfcebebeb000000
+f3f3f3efefeffffffff1f1f1ffffff000000ffffff000000fefefe000000ffffff0c0c0c
+f6f6f6dedede0f0f0ff4f4f4fcfcfce1e1e1e1e1e10b0b0bfafafafffffffffffffefefe
+060606fffffffbfbfbfafafaf9f9f9f4f4f4ffffffe4e4e4020202f9f9f9eaeaeaffffff
+fdfdfd000000fafafafefefef2f2f21d1d1de2e2e2f4f4f4ffffff000000090909fefefe
+fdfdfdf9f9f9050505fbfbfbffffffefefef0404041c1c1ce2e2e2f9f9f9f3f3f3f5f5f5
+080808e5e5e5fcfcfc060606fffffffffffff6f6f6fefefef9f9f9fffffffefefe0b0b0b
+e5e5e5ffffffe3e3e3ffffffffffffefefeffffffffbfbfb050505fffffffdfdfdffffff
+e1e1e1f7f7f7e1e1e1020202fafafaf9f9f9f7f7f7000000fafafafffffff2f2f2f7f7f7
+000000fffffff7f7f7000000fffffffffffffcfcfcfffffff9f9f9f2f2f2080808ffffff
+f7f7f7f0f0f0ffffff000000f0f0f0f2f2f2f6f6f6f4f4f4000000ffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000040404fafafafefefefcfcfcf3f3f3030303fffffff8f8f8
+070707030303000000fefefef0f0f0f5f5f5ffffff0000000d0d0dffffffdedede131313
+f4f4f4000000101010ffffffe0e0e0ffffff0000000a0a0afafafaf2f2f2ffffff0e0e0e
+000000ffffffecececf8f8f81a1a1a000000fbfbfbfffffffbfbfb000000000000fefefe
+ffffff010101141414efefefefefef0d0d0d090909fdfdfdf3f3f3020202070707ffffff
+ffffffecececfafafa121212020202e8e8e8ffffff000000000000ffffffedededf4f4f4
+0e0e0e000000fffffff5f5f5ffffff000000000000eeeeeef6f6f6fcfcfc101010070707
+000000000000040404f8f8f8fafafaffffffe8e8e8fffffffefefefffffff4f4f4fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffffffffffffffff3f3f3000000fefefefffffffafafafffffffafafaf9f9f9ffffff
+f8f8f8fffffffffffff2f2f2f2f2f2fffffff9f9f9fffffffafafa0909090808080c0c0c
+000000f0f0f0ffffffebebebffffffffffff000000f0f0f0fdfdfde8e8e8fffffff7f7f7
+dededeffffffffffff0d0d0d000000fffffff5f5f5fcfcfcf6f6f6ffffffefefeff3f3f3
+fcfcfcffffff000000fffffffffffff1f1f1f0f0f0e0e0e0040404ffffffe0e0e0ffffff
+ffffff000000f0f0f0ffffff040404e3e3e3f9f9f9e7e7e7fdfdfdffffff191919f7f7f7
+fffffffffffff5f5f5f9f9f9fffffff8f8f8fffffff1f1f1fdfdfdfefefefffffffefefe
+fcfcfcfbfbfbfbfbfbfdfdfdfbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefe
+ffffffddddddffffffffffffeaeaeafffffff1f1f1000000fffffff5f5f5e7e7e7f6f6f6
+fefefef9f9f9f8f8f8ffffffffffff000000fffffff3f3f3e6e6e6f3f3f30e0e0eeeeeee
+f5f5f5fbfbfbeaeaeaf3f3f3ffffff060606f9f9f9080808eaeaeaffffffe7e7e7ffffff
+f0f0f0121212fffffff2f2f2fafafafdfdfdf5f5f5090909f0f0f0fefefedcdcdcffffff
+fffffffffffff4f4f4f3f3f3f4f4f4000000e3e3e3f1f1f1f2f2f2f3f3f3fffffff6f6f6
+ffffffe7e7e70a0a0af6f6f6f5f5f5fffffffffffff9f9f9000000fcfcfcf3f3f3ffffff
+ffffffffffff000000ffffffefefefe5e5e5ffffffeaeaeafbfbfbfbfbfbfdfdfdfefefe
+fefefefefefefefefefefefefefefefffffffefefef7f7f7f9f9f9fffffffefefef6f6f6
+f9f9f9f1f1f1fafafafffffff2f2f2f9f9f9fffffffffffffdfdfdf6f6f6000000ffffff
+fffffffcfcfcf4f4f4eeeeeefafafaededed000000f9f9f9f4f4f4fcfcfcfffffff5f5f5
+f9f9f9ffffff000000fffffffefefe000000f1f1f1ffffff000000f9f9f9e6e6e61c1c1c
+ffffffe8e8e8ecececffffffefefef121212ffffffeeeeeee8e8e8f1f1f1020202ffffff
+f0f0f0ffffffebebebe4e4e4fdfdfd000000dfdfdfffffff000000fffffff0f0f0000000
+fbfbfbffffff030303fffffff3f3f3fffffffdfdfd000000fefefee7e7e7ffffffffffff
+0b0b0be6e6e6fcfcfcffffffeaeaeaf4f4f4ffffff0c0c0cfffffff8f8f8fffffff0f0f0
+fffffff6f6f6121212f7f7f7090909f7f7f7fffffff8f8f8e2e2e2ffffff111111e6e6e6
+f3f3f3121212f4f4f4e6e6e6fefefef4f4f4ffffff000000fffffffffffffffffff3f3f3
+0d0d0d131313000000060606f3f3f3f4f4f4f2f2f2ffffffe2e2e2fafafaf4f4f4000000
+fffffff1f1f1f3f3f3ffffffddddddfcfcfcfffffff2f2f2080808e4e4e4f6f6f6fefefe
+fffffffdfdfd181818fefefeffffffcececefffffffafafa000000f6f6f6f7f7f7fafafa
+fffffff8f8f8fefefeffffffe9e9e9f0f0f0fafafaf7f7f7fffffffdfdfdffffff080808
+dadadaf7f7f7dedede080808fffffff1f1f1f4f4f4ffffff000000ffffffefefefe8e8e8
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000010101f6f6f6fafafaf7f7f70f0f0f080808000000212121
+000000000000090909fffffffffffffcfcfce7e7e70e0e0e000000fefefef6f6f6f6f6f6
+ffffff070707010101fefefefafafaffffff010101030303ffffffffffffeaeaea101010
+060606f2f2f2fffffffcfcfc000000151515fffffff7f7f7f7f7f7050505030303fdfdfd
+f3f3f30000000a0a0affffffffffff000000141414e7e7e7ffffff000000000000030303
+0000000101010a0a0a060606090909f3f3f3f8f8f80f0f0f000000f0f0f0fffffffbfbfb
+0000001b1b1bd6d6d6ffffffdedede070707212121f7f7f7fffffff5f5f5f8f8f8050505
+0d0d0d0909090202020707070b0b0bf6f6f6ffffffefefefefefeffffffffdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ffffffe7e7e7fefefefefefe111111eeeeeefffffff5f5f5f5f5f5fffffffdfdfdf5f5f5
+fefefefffffffbfbfbfefefefffffff4f4f4f8f8f8ffffffe7e7e7ffffffedededf8f8f8
+f1f1f1171717e7e7e7fffffff3f3f3ededed242424f7f7f7f5f5f5fdfdfde8e8e8fbfbfb
+fffffff4f4f4ffffff000000fffffff6f6f6fdfdfdf8f8f8ffffffffffffefefefffffff
+fcfcfce4e4e4121212f2f2f2d6d6d6f9f9f9f8f8f8ffffff000000fafafafafafaf8f8f8
+dadada0a0a0afffffff1f1f1080808fffffffffffff7f7f7ffffffebebeb000000ffffff
+f8f8f8fdfdfdf9f9f9ffffffefefefffffffefefeffffffffdfdfdfffffffffffffefefe
+fcfcfcfbfbfbfcfcfcfdfdfdfcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+f3f3f3fffffffafafae9e9e9ffffffddddddfffffffdfdfd000000fffffff9f9f9ffffff
+fffffff5f5f5fdfdfdf6f6f6ffffff000000fdfdfdfffffff7f7f7fbfbfb181818f4f4f4
+f8f8f8fffffffffffffffffff3f3f3090909e7e7e7181818ffffffeeeeeef9f9f9efefef
+f7f7f7030303f1f1f1fffffff9f9f9fffffff4f4f4040404fffffff5f5f5ffffffefefef
+e3e3e3fffffffffffffdfdfdffffff111111fbfbfbf6f6f6f8f8f8fbfbfbedededffffff
+f0f0f0f5f5f50e0e0efbfbfbffffffe2e2e2f8f8f8ffffff000000050505131313000000
+111111000000191919ecececfdfdfdffffffe5e5e5fffffffbfbfbfcfcfcfdfdfdfefefe
+fefefefefefefdfdfdfdfdfdfefefefffffffefefef7f7f7f8f8f8fffffffefefef5f5f5
+fcfcfcfdfdfdf2f2f2fefefef7f7f7fffffff6f6f6f9f9f9e2e2e2ffffff000000e3e3e3
+fefefefefefef9f9f9fefefeffffffffffff0b0b0bfdfdfdfefefef9f9f9f7f7f7fdfdfd
+f7f7f7f6f6f6161616fafafaeaeaea020202fcfcfcfcfcfc0e0e0efdfdfdf0f0f0000000
+f3f3f3fefefef8f8f8fffffffafafa0b0b0bf2f2f2fefefeffffffffffff0b0b0bdfdfdf
+f5f5f5f8f8f8f8f8f8fffffffbfbfb000000fffffff5f5f50b0b0bebebebffffff161616
+f6f6f6f9f9f9f4f4f4000000fafafaffffff000000fffffff2f2f2fcfcfcfefefeeaeaea
+000000ffffffdadadaffffffffffff000000fcfcfc0a0a0afffffffcfcfcf9f9f9f3f3f3
+fbfbfbf9f9f90c0c0cffffff070707fbfbfbf9f9f9f2f2f2ffffffe8e8e8000000ffffff
+f7f7f70c0c0cf8f8f8fffffff8f8f8fbfbfbf3f3f3070707fefefef4f4f4f6f6f6fefefe
+030303dededeffffff000000fefefee6e6e6ffffffeaeaeafafafaffffffffffff040404
+efefefffffffe5e5e5edededfffffffefefeeeeeeeffffff070707fdfdfdfffffff1f1f1
+efefefffffff0000000606060303031a1a1a0000000505050d0d0dfffffff0f0f0fdfdfd
+fefefefffffff9f9f9fcfcfcf4f4f4fffffffefefefffffffcfcfcdbdbdb050505f6f6f6
+fffffff5f5f5ffffff000000f1f1f1f5f5f5fffffff6f6f6010101f3f3f3ffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0101010000000000000000000d0d0dfdfdfdfefefef4f4f4212121f7f7f7f1f1f1ffffff
+ffffff0000000b0b0b000000f9f9f9fffffff4f4f40505050c0c0cf6f6f6f8f8f8f5f5f5
+f1f1f1ffffff101010010101010101141414000000fffffff3f3f3fffffff5f5f5010101
+131313eeeeeefffffffbfbfb010101222222e2e2e2f1f1f1fbfbfb000000030303fbfbfb
+ffffff010101000000f9f9f9fcfcfc080808040404f9f9f9fdfdfd000000181818eeeeee
+fdfdfdf5f5f5f4f4f4f6f6f6fffffff6f6f6f7f7f7080808000000ecececf4f4f4ffffff
+050505000000fffffff3f3f3fbfbfb080808000000e9e9e9ffffffffffff0f0f0ffefefe
+eaeaeae8e8e8171717000000060606ffffffe6e6e6fefefefffffffcfcfceeeeeeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ffffffedededfefefeffffff000000f9f9f9fffffff7f7f7fffffffffffffefefeffffff
+fefefefbfbfbfbfbfbfefefefdfdfdf8f8f8fffffff0f0f0050505f9f9f9fefefeffffff
+f1f1f1080808fffffff2f2f2f1f1f1ffffff050505efefefffffffeaeaeafdfdfdf9f9f9
+f3f3f3fdfdfdffffff000000f5f5f5e7e7e7fffffff8f8f8ffffffeeeeeeffffffeeeeee
+f5f5f5f6f6f6000000fffffff6f6f6fcfcfcefefefffffff000000fffffff3f3f3f0f0f0
+ffffff1b1b1be7e7e7fbfbfb020202fffffff4f4f4edededfdfdfdf9f9f9000000fefefe
+fffffffffffffefefefcfcfcfcfcfcfdfdfdfefefefffffffffffffcfcfcfffffffdfdfd
+f2f2f2e7e7e7fffffff7f7f7fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbfafafaf8f8f8080808e7e7e7f5f5f5ffffff
+f0f0f0f1f1f1fffffff2f2f2fefefe161616fdfdfdfffffff1f1f1ececec0b0b0bf6f6f6
+e9e9e9fffffffcfcfcecececffffff090909fefefe080808fffffffcfcfceaeaeaffffff
+f9f9f9000000fffffff2f2f2fffffff6f6f6fefefe000000f9f9f9fffffffafafafbfbfb
+ffffffecececf7f7f7fefefef5f5f50a0a0afefefefdfdfdfffffffffffff3f3f3e7e7e7
+fffffffbfbfb000000fafafaf9f9f9fffffffbfbfbf3f3f30e0e0efbfbfbf8f8f8ebebeb
+fffffff4f4f4fffffffbfbfbfffffffefefee8e8e8fffffffafafaf2f2f2f0f0f0ffffff
+e8e8e8fffffff4f4f4fffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefdfdfdfdfdfdfefefefefefefffffffffffff7f7f7050505ffffffffffff
+fafafafefefef6f6f6f8f8f8f6f6f6ffffff000000fbfbfbddddddfffffff2f2f2ffffff
+f6f6f6ffffff000000edededf8f8f8070707e4e4e4ffffff070707f6f6f6ffffff0a0a0a
+ebebebffffffefefeff9f9f9ffffff040404fdfdfdf4f4f4ffffff101010fafafaefefef
+f4f4f4f9f9f9f9f9f9f2f2f2f9f9f90e0e0efdfdfdf5f5f5fcfcfcfffffffbfbfb000000
+eeeeeef9f9f9ffffff000000ffffffffffff000000ffffffeeeeeeeeeeeeffffffffffff
+0c0c0cf0f0f0fafafaffffffe9e9e9080808ffffff000000fcfcfcfefefef9f9f9ffffff
+fffffff2f2f20b0b0bf4f4f4161616ffffffe3e3e3fffffff8f8f8f7f7f70a0a0af5f5f5
+ffffff000000fbfbfbffffffeeeeeef2f2f2f8f8f80e0e0effffffecececfffffff5f5f5
+020202e9e9e9ffffffefefeffbfbfbffffffe9e9e9fffffff3f3f3f2f2f2fdfdfd000000
+f3f3f3fbfbfbf5f5f5f7f7f7ffffffedededfffffff4f4f4050505fffffff8f8f8ffffff
+eaeaeafefefe151515fcfcfcfefefed5d5d5fffffff6f6f6fafafaebebebffffffffffff
+f7f7f7fefefefffffffefefefbfbfbfcfcfcfcfcfcfbfbfbffffffffffff010101f4f4f4
+fdfdfdf0f0f0fdfdfd090909fdfdfdffffffe7e7e7ffffff000000fefefefffffff4f4f4
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+060606090909000000000000040404cdcdcdffffff020202000000fffffffefefefafafa
+f7f7f7020202000000181818fcfcfcf8f8f8ffffff010101080808ffffffeeeeeeffffff
+fffffffbfbfb000000fffffffbfbfbfffffffefefeffffffffffffdededefdfdfd000000
+0707070b0b0b101010000000121212000000ffffffffffffededed282828000000ffffff
+f7f7f7000000191919e6e6e6ffffff000000141414f9f9f9f6f6f60808080000000f0f0f
+fafafafffffffdfdfdfafafa000000e5e5e5ffffff000000141414fffffffdfdfdf7f7f7
+050505010101e5e5e5f1f1f1fdfdfd010101232323f0f0f0f9f9f9f1f1f1000000ffffff
+ffffffffffffdddddd191919030303e8e8e8fffffffcfcfce4e4e4fffffffffffff7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff6f6f6f9f9f9ededed090909fffffff8f8f8fefefefffffffcfcfcfcfcfcffffff
+fffffffcfcfcfcfcfcfefefef8f8f8fffffffcfcfcfcfcfc080808000000f3f3f3ffffff
+ffffff000000f6f6f6fffffffffffff4f4f4000000fffffff6f6f6ffffff000000ffffff
+f1f1f1f6f6f6fbfbfb0e0e0effffffedededfbfbfbefefefedededfffffffefefeffffff
+f2f2f2fdfdfd030303fdfdfdf0f0f0fffffffffffff2f2f2000000fafafaf2f2f2f3f3f3
+ffffff000000ffffffe9e9e9fefefe000000f9f9f9fffffffcfcfc070707010101ffffff
+fffffffffffffefefefdfdfdfdfdfdfdfdfdfefefefffffff5f5f5eaeaeaf9f9f9ffffff
+fbfbfb010101070707e3e3e3fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafa030303ffffffffffffececec
+fffffff6f6f6fcfcfcffffffffffff000000fffffffefefefbfbfbffffffe9e9e9000000
+fffffff5f5f5fdfdfdfafafa000000fffffffffffff7f7f7000000efefefffffffeeeeee
+040404000000fffffffcfcfcf5f5f5f7f7f7f2f2f2101010ffffffefefefffffffeaeaea
+f2f2f2fdfdfdf3f3f3f2f2f2ffffff000000f2f2f2ffffffeeeeeef2f2f2f1f1f1ffffff
+fbfbfbffffff0a0a0affffffffffffeaeaeafffffffffffff6f6f6161616fffffffdfdfd
+fdfdfdf0f0f00a0a0afdfdfdedededfefefef3f3f3000000000000fffffffffffff3f3f3
+fffffffffffff1f1f1fafafafefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefafafa060606fefefef3f3f3
+f4f4f4fffffff2f2f2efefeffcfcfcececec181818ecececffffffefefef020202ececec
+fefefedbdbdb080808fffffff1f1f1000000ffffffefefef0d0d0decececf5f5f5131313
+000000f8f8f8fffffffefefe000000f6f6f6f4f4f4fffffffbfbfb000000fffffff7f7f7
+f8f8f8fffffffffffffffffff3f3f3000000ebebebffffffffffffe7e7e7ffffff030303
+fffffffbfbfbdadadaffffff000000050505fffffffbfbfbf5f5f5ffffffdcdcdcfcfcfc
+0b0b0bfafafafffffff8f8f8fbfbfb0d0d0df4f4f4ffffff000000fffffff6f6f6f2f2f2
+ededed000000eeeeeefffffffdfdfd000000fffffffffffff2f2f2000000101010f6f6f6
+eeeeeeffffff000000fffffff9f9f9f5f5f5262626000000f9f9f9ecececffffffffffff
+040404fffffff1f1f1fefefefffffffffffffffffffffffffcfcfcfefefeffffff090909
+fffffffcfcfcfffffffafafaf7f7f7fffffff9f9f9ffffff000000f4f4f4ffffffececec
+ffffffffffffe5e5e5080808ecececffffffd9d9d9ffffff020202fdfdfdfcfcfceeeeee
+f6f6f6fcfcfcfefefefbfbfbfafafafcfcfcfefefefdfdfdf7f7f7fafafa060606ffffff
+fefefef8f8f8ffffff000000ffffffeaeaeaffffffffffff141414ebebebf8f8f8efefef
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000050505060606000000131313ffffff0000001111111919190b0b0bf9f9f9f4f4f4
+ffffff0404040505050000000a0a0af0f0f00303030000000d0d0d000000fffffff7f7f7
+fdfdfdffffff090909000000010101000000000000060606fffffffffffffffffff0f0f0
+181818000000050505ffffff070707010101000000ffffff0000000d0d0d1c1c1c030303
+ffffff0000000b0b0b161616eeeeee000000191919040404f9f9f9ffffff000000000000
+0a0a0a0000000101010e0e0e0c0c0cfdfdfd000000090909000000000000ffffff000000
+0000000d0d0d000000f3f3f3ffffff0000000808080d0d0d141414e3e3e3202020000000
+0a0a0a0000000a0a0a0a0a0afffffff5f5f5f6f6f6fffffffdfdfdfffffff0f0f0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff0f0f0ffffffffffff000000fffffffdfdfdf3f3f3fafafaf8f8f8fafafaffffff
+fffffffdfdfdfdfdfdffffffffffffebebebffffffffffff010101ffffff111111000000
+000000fffffff9f9f9fffffffffffff8f8f8ffffff000000141414000000fbfbfbf7f7f7
+f7f7f7f4f4f4000000161616090909000000fffffffcfcfcfdfdfdfbfbfbf8f8f8f5f5f5
+0606060e0e0e000000060606030303f3f3f3ffffff0000000a0a0a000000fbfbfbffffff
+000000080808000000ffffffecececffffff030303000000020202fdfdfd020202ececec
+fffffffefefefefefefdfdfdfdfdfdfefefefffffffffffff5f5f5ffffffe3e3e3f6f6f6
+f2f2f2131313020202fffffffbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfdfdfd040404ffffffe3e3e3ededed
+fffffff4f4f4ececec0505050d0d0d0a0a0a030303000000fffffff3f3f3f8f8f8ffffff
+090909000000212121090909f6f6f6ffffffeeeeeeeeeeeeffffff181818000000020202
+ffffff060606fefefeeeeeeefcfcfc0000000b0b0b000000090909000000ecececfdfdfd
+f8f8f8ffffffffffff090909050505000000171717060606fffffff3f3f3fffffffdfdfd
+0000000000000c0c0c000000121212fbfbfbfffffff1f1f1f2f2f2eeeeee000000070707
+0808080a0a0af3f3f3edededffffffffffffffffff0000000e0e0efffffffcfcfcfcfcfc
+fefefef4f4f4fffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb070707efefeffffffffafafa
+ffffffeaeaeafffffffffffff4f4f4ffffffe9e9e9030303191919000000fefefeffffff
+ffffff242424000000000000f0f0f0030303101010e5e5e5000000101010f4f4f4030303
+ffffff040404010101000000f2f2f2fffffffbfbfbeeeeee040404ffffffeeeeeef6f6f6
+f6f6f6f8f8f8f1f1f1f8f8f80000000e0e0e0f0f0ff8f8f8e6e6e6ffffff0a0a0a050505
+000000ffffffeaeaeaf1f1f1ffffff000000e3e3e3ffffffe2e2e2fefefe050505040404
+000000000000060606161616020202000000fefefefffffff6f6f60d0d0d000000000000
+080808ffffffffffffd6d6d6fffffff5f5f51212120b0b0b0f0f0ff2f2f20a0a0affffff
+fcfcfcfdfdfdf4f4f4040404000000000000f0f0f0111111ffffffffffffffffff000000
+0303030202020b0b0bf0f0f0f0f0f0fcfcfcffffffffffffe4e4e41414140000000c0c0c
+020202040404f6f6f6ffffffefefefffffff000000010101010101151515000000ffffff
+fafafaefefeffffffff9f9f90a0a0a000000000000161616f8f8f8fffffff4f4f4ffffff
+f6f6f6fafafafbfbfbf9f9f9f8f8f8fcfcfcfffffffefefef8f8f8f2f2f2000000ffffff
+efefefe8e8e8ffffff000000ffffffeeeeeeeeeeeeffffff000000fffffff3f3f3ffffff
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+070707030303000000050505000000fcfcfcd6d6d6fcfcfcf0f0f0f9f9f9ffffffffffff
+dfdfdfffffffffffffe6e6e6fefefefafafaf1f1f1fffffffffffff5f5f5fefefefbfbfb
+ffffff000000080808fffffff5f5f5f7f7f7171717030303fffffff9f9f9fefefef1f1f1
+f9f9f9fffffff4f4f4fcfcfcf4f4f4fcfcfcfffffff4f4f4fffffffbfbfbf4f4f4e5e5e5
+fffffff9f9f9eeeeeef5f5f5fafafafffffff8f8f8f1f1f1e7e7e7fcfcfcffffffebebeb
+fffffffafafaecececffffffefefeffffffffbfbfbfffffffafafae8e8e8ffffffffffff
+e4e4e4ffffffffffffffffffe4e4e4fffffff2f2f2f2f2f2d9d9d9fffffffffffff0f0f0
+fffffffffffff3f3f3e9e9e9ffffffd4d4d4e7e7e7f6f6f6f3f3f3fffffffefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f8f8f8ffffffffffffffffff000000fffffff8f8f8fefefef6f6f6f5f5f5f9f9f9ffffff
+fffffffefefefefefefffffff6f6f6f7f7f7f8f8f8fefefefefefefbfbfbfafafaf8f8f8
+fffffff0f0f0fdfdfdf2f2f2f2f2f2fcfcfcefefeffffffff7f7f7fcfcfcfbfbfbf2f2f2
+f0f0f0ffffffdbdbdbfbfbfbfcfcfcffffffebebebdfdfdffffffffafafafbfbfbfcfcfc
+cacacaffffffffffffe9e9e9fcfcfceeeeeefbfbfbeeeeeef6f6f6ffffffe8e8e8fefefe
+fefefeffffffffffffe2e2e2fcfcfcffffffeaeaeafffffffffffff6f6f6000000ffffff
+fefefefefefefdfdfdfefefefefefefefefeffffffffffffeeeeeeebebebffffffffffff
+000000040404fefefef0f0f0fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffefefefcfcfcfbfbfbfafafafcfcfcfefefeffffff000000fefefef7f7f7ffffff
+e3e3e3fffffffffffff2f2f2ecececfffffff7f7f7fafafaf8f8f8ffffffefefeff0f0f0
+f3f3f3ffffffe7e7e7fbfbfbfffffffdfdfdf7f7f7fffffff3f3f3eaeaeaffffffffffff
+ffffff010101f4f4f4fffffffefefef2f2f2ffffffffffffffffffe1e1e1fffffff8f8f8
+ecececffffffe6e6e6ebebebfffffff1f1f1fcfcfce3e3e3f9f9f9ddddddf0f0f0fcfcfc
+f6f6f6fffffff9f9f9f6f6f6ecececfdfdfdfdfdfdfffffffffffffffffffefefefbfbfb
+fffffffffffff9f9f9fffffff0f0f0f8f8f8000000010101e9e9e9f3f3f3f2f2f2ffffff
+f2f2f2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfafafafafafaf9f9f9f9f9f90a0a0afffffff0f0f0ffffff
+f0f0f0f0f0f0f1f1f1f4f4f4fffffffffffffefefef3f3f3f3f3f3ecececfffffffcfcfc
+ecececfafafafffffff6f6f6fffffff5f5f5d5d5d5fffffffffffff6f6f6fcfcfc080808
+e7e7e7fffffffafafafffffffffffff8f8f8f4f4f4ffffff191919efefeff9f9f9efefef
+fffffffffffff9f9f9ffffffefefeff0f0f0f2f2f2fffffffefefefcfcfce7e7e7f6f6f6
+fffffffffffffffffffcfcfc0c0c0cf2f2f2fffffff7f7f7e7e7e7f0f0f0fffffff1f1f1
+fffffffffffff6f6f6e6e6e6fdfdfdefefefffffffecececf4f4f4fffffff8f8f8ffffff
+fefefee8e8e8fefefefffffff8f8f8ffffffeeeeeef7f7f7eaeaeaffffff000000f7f7f7
+f9f9f9fffffff3f3f3ecececffffffffffffffffff000000fbfbfbf6f6f6ecececffffff
+ffffffecececf6f6f6f8f8f8fffffffefefeffffffefefefffffffefefeffdfdfdf1f1f1
+fffffffdfdfdf5f5f5f6f6f6edededfbfbfbf6f6f6fffffff7f7f7fffffffbfbfbefefef
+fffffff9f9f9fffffff4f4f4efefeffcfcfcffffffe9e9e9f1f1f1fffffffffffff9f9f9
+f8f8f8fbfbfbfafafaf7f7f7f7f7f7fbfbfbfdfdfdfcfcfcffffffe9e9e9000000fdfdfd
+fffffffffffff7f7f7000000e3e3e3fffffff4f4f4dbdbdb333333f3f3f3f2f2f2f9f9f9
+fcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000111111000000050505ebebebfffffff4f4f4fafafaffffffecececdedede
+fffffff6f6f6ecececfffffff0f0f0fffffffcfcfcf5f5f5fffffff8f8f8f5f5f5ffffff
+f5f5f5070707010101f0f0f0ffffffe7e7e7030303000000fbfbfbfefefeffffffffffff
+fafafaf5f5f5efefeffffffffdfdfdf8f8f8fffffffafafafffffffdfdfdfbfbfbffffff
+f0f0f0fffffffffffff6f6f6eeeeeefbfbfbfffffff7f7f7fffffffafafae9e9e9f7f7f7
+f0f0f0e8e8e8ffffffefefeff9f9f9f5f5f5e7e7e7dbdbdbffffffffffffd2d2d2fefefe
+fffffff4f4f4f1f1f1eeeeeeffffffecececffffffffffffffffffeeeeeef4f4f4fdfdfd
+fffffff4f4f4fffffffbfbfbf3f3f3fffffffffffffffffffbfbfbfcfcfcfffffff2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f0f0f0f7f7f7ffffffffffff050505030303000000f7f7f7f5f5f5f5f5f5f8f8f8ffffff
+fffffffffffffefefeffffffefefefffffffffffffe6e6e6ffffffd7d7d7fdfdfdf9f9f9
+fcfcfcf6f6f6f4f4f4fffffffffffff4f4f4f6f6f6fdfdfdfffffffefefefbfbfbebebeb
+f6f6f6ebebebf5f5f5ffffffd5d5d5ffffffe3e3e3fffffffffffff0f0f0fafafafefefe
+fffffff8f8f8e5e5e5ffffffefefefffffffefefeffffffff9f9f9fafafafbfbfbf1f1f1
+fffffff8f8f8e5e5e5ffffffe9e9e9ffffffffffffebebebf8f8f8000000ffffffeeeeee
+fcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffdfdfdfbfbfbffffff
+070707ffffffe1e1e1fffffffbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffefefefcfcfcfbfbfbfafafafcfcfcfefefeffffffffffff000000eaeaeaffffff
+fdfdfdeeeeeeefefefe8e8e8eeeeeefbfbfbffffffedededf2f2f2fffffff4f4f4f9f9f9
+ffffffffffffffffffe0e0e0fcfcfcefefeff4f4f4eeeeeefcfcfcffffffffffffffffff
+000000fcfcfcfdfdfdf9f9f9f3f3f3fbfbfbeaeaeaf0f0f0f9f9f9fffffff4f4f4ffffff
+fbfbfbf2f2f2f7f7f7ffffffedededfffffff6f6f6fffffffffffff7f7f7fffffff4f4f4
+fffffffefefeeeeeeefffffffffffffcfcfcfefefeeeeeeeffffffe3e3e3efefefffffff
+f6f6f6f3f3f3f9f9f9fcfcfcfefefef5f5f51d1d1dfefefefffffff2f2f2fefefefdfdfd
+f9f9f9ffffffecececfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefcfcfcfafafaf9f9f9f9f9f9f9f9f9f2f2f2e5e5e5fffffff6f6f6
+fbfbfbfffffffffffffdfdfdffffffd8d8d8f7f7f7fffffff3f3f3ffffffe6e6e6f3f3f3
+fffffff9f9f9ffffffeeeeeefafafafffffff7f7f7f6f6f6e9e9e9f2f2f2fbfbfb080808
+f5f5f5fcfcfcf6f6f6f5f5f5e9e9e9fbfbfbfffffffffffff9f9f9fcfcfcfcfcfcfefefe
+fcfcfcdededeffffffd9d9d9e9e9e9fffffff3f3f3f7f7f7f8f8f8eaeaeafffffff6f6f6
+f6f6f6f3f3f3fffffff7f7f7000000fffffff4f4f4fcfcfcf0f0f0ebebebf6f6f6ffffff
+fbfbfbfdfdfdfdfdfdfffffffffffffffffffbfbfbfffffffbfbfbfcfcfcf4f4f4ffffff
+e2e2e2fffffff0f0f0f9f9f9fffffffdfdfdf8f8f8fafafafafafa000000fffffffbfbfb
+fafafaf0f0f0fffffff8f8f8dcdcdcdedede030303f6f6f6fffffff5f5f5fdfdfdf3f3f3
+e7e7e7f1f1f1fcfcfce6e6e6f3f3f3edededf7f7f7fefefefcfcfcfefefef9f9f9f5f5f5
+fcfcfcf5f5f5fffffff6f6f6fffffffbfbfbfcfcfcfcfcfcfffffff0f0f0eaeaeaffffff
+fffffff5f5f5fafafafffffff7f7f7f9f9f9f8f8f8fffffff2f2f2fbfbfbfafafaf7f7f7
+fcfcfcfdfdfdfbfbfbf7f7f7f7f7f7fafafafbfbfbf8f8f8efefef030303fffffff4f4f4
+e8e8e8fffffff9f9f9171717fbfbfbf7f7f7000000030303080808e4e4e4fcfcfcffffff
+fbfbfbfbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0404040000000000000e0e0e000000f4f4f4fffffff6f6f6fafafadcdcdcfffffffdfdfd
+f2f2f2f9f9f9ecececf4f4f4ffffffe2e2e2fdfdfdfdfdfdddddddfcfcfcffffffdddddd
+fffffff9f9f90c0c0c000000000000121212090909fffffffefefefefefefffffff9f9f9
+fffffffafafaedededefefeffffffff9f9f9edededfffffff9f9f9f8f8f8e3e3e3f7f7f7
+fefefeecececefefefeeeeeefffffff9f9f9fdfdfdf7f7f7fdfdfdfdfdfdffffffffffff
+f1f1f1fffffffcfcfcfffffff9f9f9eaeaeafffffffffffff3f3f3fdfdfdfffffff1f1f1
+f3f3f3f9f9f9fffffffffffffefefee2e2e2efefeff5f5f5f5f5f5f6f6f6ffffffffffff
+e9e9e9f7f7f7ffffffeaeaeafffffff4f4f4d9d9d9f1f1f1fffffff4f4f4fefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff4f4f4eeeeeef3f3f3ecececffffffdbdbdbfffffff8f8f8f7f7f7f9f9f9ffffff
+fffffffefefefefefefffffffefefef1f1f1f3f3f3ffffffeeeeeefffffffafafaffffff
+fbfbfbfffffff8f8f8eeeeeeeeeeeef9f9f9fffffffdfdfde7e7e7fbfbfbfafafaffffff
+fffffff0f0f0fffffff3f3f3ffffffcacacafffffffbfbfbe2e2e2fbfbfbfffffff3f3f3
+fcfcfcd8d8d8ffffffecececd6d6d6ffffffedededfcfcfcffffffd7d7d7fffffffefefe
+efefeff7f7f7ffffffeeeeeeffffff0000000b0b0b121212050505ffffffe9e9e9ffffff
+fbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffffe4e4e4ffffffffffffeeeeee
+eaeaeafffffff3f3f3f7f7f7fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfdfdfdeeeeeefffffffffffff0f0f0
+fffffff6f6f6ffffffffffffffffffddddddf3f3f3fcfcfcffffffe4e4e4fffffffcfcfc
+fffffff5f5f5ddddddfffffffdfdfdfffffffbfbfbfefefe111111000000000000191919
+f1f1f1fcfcfcfafafafffffffffffff7f7f7ffffffebebebf0f0f0fdfdfdfefefefefefe
+fffffff0f0f0ffffffffffffefefefe6e6e6f6f6f6e4e4e4eeeeeefefefeececece8e8e8
+dededef3f3f3fffffff8f8f8f2f2f2ffffffe1e1e1fffffffffffffffffffffffff5f5f5
+ffffffe7e7e7ffffffe4e4e4f7f7f7fdfdfde6e6e6f8f8f8ebebebfafafaffffffffffff
+f8f8f8fbfbfbfafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefcfcfcfbfbfbfafafafafafafafafaf6f6f6fffffff8f8f8e6e6e6
+f4f4f4f3f3f3fdfdfdf8f8f8f0f0f0fffffff6f6f6f2f2f2fbfbfbd5d5d5ffffffffffff
+fcfcfcf7f7f7f0f0f0fffffffdfdfdf6f6f6fffffffcfcfcf8f8f8f7f7f7191919000000
+181818131313fafafaf9f9f9ffffffeeeeeefffffffafafae1e1e1fffffff5f5f5fdfdfd
+fafafaf0f0f0ffffffedededfffffffffffff8f8f8f2f2f2fdfdfdf1f1f1fefefef2f2f2
+f2f2f2ffffff0000000b0b0b0f0f0f090909f3f3f3eeeeeeffffffffffffe7e7e7f3f3f3
+fffffffdfdfdf2f2f2f4f4f4f1f1f1efefeff7f7f7f9f9f9fefefefafafaf8f8f8ffffff
+eaeaeaf7f7f7f5f5f5f5f5f5fafafa0000001d1d1d000000000000ffffffedededf6f6f6
+f5f5f5ffffff000000060606131313080808fffffff7f7f7e6e6e6ffffffecececffffff
+fffffffffffffffffffcfcfcffffffffffffeeeeeeebebebf2f2f2ffffffecececffffff
+fbfbfbf3f3f3fffffff0f0f0fffffff5f5f5fffffffcfcfcfbfbfbfffffffdfdfdf5f5f5
+e5e5e5fffffff0f0f0ecececfffffffafafaf1f1f1e6e6e6ebebebfbfbfbffffffe8e8e8
+fefefefffffffcfcfcf8f8f8f9f9f9fbfbfbfafafaf6f6f6fffffffbfbfbdfdfdfffffff
+ffffff0000000000000404040e0e0e000000ffffffffffffd2d2d2fffffffefefee9e9e9
+fafafafbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0000000202020d0d0d000000000000f8f8f8fefefeeeeeeefafafaffffffe7e7e7f4f4f4
+f6f6f6e8e8e8fffffffffffffffffffffffffffffffffffffffffffafafaf4f4f4f7f7f7
+eaeaeaeeeeeefffffff8f8f8fffffff7f7f7ffffffe9e9e9fafafafefefef5f5f5f9f9f9
+efefeffffffff1f1f1ffffffeaeaeaffffffffffffe9e9e9ffffffddddddffffffffffff
+fffffffffffffffffffafafafbfbfbf4f4f4f8f8f8f8f8f8f4f4f4f9f9f9f9f9f9fefefe
+f2f2f2ffffffdbdbdbf4f4f4fffffff7f7f7ecececfffffffdfdfde9e9e9f7f7f7ffffff
+f6f6f6fffffff3f3f3f9f9f9eaeaeafffffff8f8f8ffffffffffffe9e9e9fbfbfbffffff
+fbfbfbffffffeaeaeafffffff2f2f2fffffffcfcfcfffffffefefefbfbfbfcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ecececeeeeeefffffffefefef8f8f8ffffffffffffdbdbdbfdfdfdfafafafbfbfbffffff
+fffffffdfdfdfefefefffffffffffffffffff8f8f8fafafaf4f4f4ecececffffffe3e3e3
+f4f4f4fbfbfbf8f8f8f7f7f7f7f7f7f9f9f9fdfdfdf6f6f6fffffff8f8f8f9f9f9eaeaea
+edededfffffffffffffbfbfbdfdfdfffffffdfdfdffffffff8f8f8ffffffefefeff4f4f4
+f8f8f8fefefeffffffffffffffffffe0e0e0fffffff5f5f5f9f9f9fffffff5f5f5f6f6f6
+ffffffffffffe9e9e9fafafaf4f4f4f6f6f6efefefffffffe0e0e0fefefeefefeff6f6f6
+fafafafcfcfcfdfdfdfffffffffffffffffffffffffffffffffffff9f9f9ffffffeaeaea
+ffffffeeeeeefefefef6f6f6fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafffffff2f2f2fffffff9f9f9
+f5f5f5fffffff0f0f0f2f2f2eaeaeafffffffafafafbfbfbf1f1f1e9e9e9fdfdfdf0f0f0
+fdfdfdf0f0f0ffffffedededefefefffffffecececf9f9f9edededfffffff5f5f5fdfdfd
+eaeaeaffffffeeeeeef9f9f9f8f8f8dededefffffffffffff5f5f5eaeaeafafafaf9f9f9
+fafafafffffffbfbfbf7f7f7f7f7f7f5f5f5ffffffe8e8e8ffffffd3d3d3ffffffffffff
+f7f7f7ffffffdbdbdbfffffff1f1f1fcfcfcf7f7f7fffffff3f3f3efefeffdfdfdf3f3f3
+e9e9e9fffffffffffffffffffffffffffffffefefefdfdfdfffffff7f7f7f9f9f9ffffff
+f3f3f3eeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfcf6f6f6e7e7e7eeeeeeffffff
+fafafafffffff3f3f3ffffffebebebffffffeeeeeefffffffffffffefefeebebebfdfdfd
+f9f9f9fafafaedededfffffffbfbfbf5f5f5f5f5f5fffffff5f5f5ffffffe2e2e2ededed
+ffffffeaeaeae7e7e7ffffffecececf2f2f2fffffffffffff3f3f3f7f7f7fefefef5f5f5
+eeeeeeffffffe9e9e9fffffffafafaf7f7f7fefefefffffffefefefffffffbfbfbffffff
+e1e1e1fffffff9f9f9eeeeeefefefef0f0f0f9f9f9f1f1f1ebebebfdfdfdf0f0f0ffffff
+ebebebf7f7f7fffffffffffffcfcfcf5f5f5fffffffffffffffffff2f2f2f2f2f2ffffff
+fafafaffffffe6e6e6f9f9f9fffffffffffff7f7f7fffffff5f5f5fbfbfbfafafaffffff
+fcfcfcfffffffafafafbfbfbedededffffffeaeaeaffffffffffffefefefffffffe8e8e8
+fdfdfdfbfbfbcbcbcbfffffff7f7f7e2e2e2fefefeffffffededede8e8e8f5f5f5e5e5e5
+fffffffffffffdfdfdfbfbfbfefefefbfbfbffffffffffffefefeff4f4f4fefefeffffff
+f7f7f7ffffffdbdbdbffffffeeeeeefffffff8f8f8fffffffffffffafafafdfdfdfdfdfd
+fdfdfdfefefefcfcfcfafafafbfbfbfefefefcfcfcf6f6f6ffffffe5e5e5fffffffcfcfc
+fdfdfdfffffffffffff0f0f0f8f8f8fffffffefefef3f3f3fbfbfbe0e0e0f5f5f5ffffff
+f9f9f9fafafafcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+040404000000000000000000070707f2f2f2fffffff5f5f5fcfcfce7e7e7fffffffefefe
+f3f3f3fffffff0f0f0f8f8f8e3e3e3f4f4f4fffffff6f6f6f4f4f4f9f9f9f8f8f8ffffff
+fdfdfdfefefeedededfffffffdfdfdeeeeeeeeeeeefdfdfdf4f4f4f9f9f9fffffff5f5f5
+f5f5f5fffffff1f1f1fcfcfcf5f5f5ffffffddddddffffffefefeffcfcfcefefeff6f6f6
+f2f2f2fcfcfcf3f3f3ffffffefefeffffffff9f9f9fffffffdfdfdfdfdfdefefefffffff
+fdfdfdf3f3f3f4f4f4fffffff5f5f5f1f1f1fffffff5f5f5f0f0f0fffffffcfcfcffffff
+fffffffffffff7f7f7f2f2f2fffffff1f1f1f0f0f0fafafae8e8e8fdfdfdfbfbfbfbfbfb
+f2f2f2fafafafffffff4f4f4fffffff8f8f8f9f9f9fffffff4f4f4fffffffbfbfbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ffffffffffffedededf7f7f7fbfbfbfcfcfcf8f8f8fdfdfdfffffffdfdfdfcfcfcffffff
+fffffffcfcfcfdfdfdfffffffbfbfbfafafafffffff6f6f6fffffff2f2f2e6e6e6ffffff
+fffffff5f5f5fffffffffffffffffffffffff7f7f7fffffff8f8f8ffffffe4e4e4ffffff
+ffffffe7e7e7f5f5f5edededfcfcfcfbfbfbffffffe5e5e5fffffff5f5f5fafafaffffff
+fdfdfdf9f9f9fdfdfdf3f3f3efefeffefefef5f5f5fefefef6f6f6ffffffe3e3e3fefefe
+fffffff3f3f3fdfdfdfffffff9f9f9f1f1f1ffffffefefeffffffff1f1f1efefeffefefe
+fafafafbfbfbfdfdfdfffffffffffffffffffffffffffffffdfdfdefefeffafafaffffff
+edededfffffffafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbfafafaf8f8f8fefefef5f5f5f5f5f5ffffff
+f2f2f2f3f3f3fffffffbfbfbf9f9f9fffffff5f5f5f5f5f5fafafafffffff6f6f6f4f4f4
+fffffff0f0f0f2f2f2fffffffbfbfbe9e9e9fffffffafafaf8f8f8fffffffffffff4f4f4
+f4f4f4fffffffffffffffffff9f9f9ffffffefefeff8f8f8f9f9f9fffffff7f7f7f5f5f5
+fefefefbfbfbfafafafdfdfdf0f0f0fffffff4f4f4fcfcfcf7f7f7fefefef3f3f3d6d6d6
+fffffff5f5f5fcfcfcfffffffffffffffffffefefef7f7f7f9f9f9fffffff9f9f9e6e6e6
+fbfbfbf4f4f4ffffffecececededede5e5e5fffffffffffff5f5f5efefeffbfbfbf9f9f9
+fdfdfdfefefef6f6f6f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfcfcfcf3f3f3ededed
+fefefeefefeffafafafffffffffffffafafafffffffffffffefefeffffffe9e9e9ffffff
+ecececfffffff7f7f7f8f8f8f6f6f6f2f2f2ffffffe7e7e7fcfcfcecececf2f2f2ffffff
+fbfbfbefefefffffffe6e6e6fffffffefefeebebebfffffff8f8f8fbfbfbfbfbfbfefefe
+fcfcfcfefefefafafaf3f3f3fffffffffffff9f9f9f4f4f4eeeeeefbfbfbfbfbfbfdfdfd
+fffffffcfcfcedededfffffff5f5f5fdfdfdfffffff4f4f4fffffffdfdfdf3f3f3f6f6f6
+fffffff7f7f7f7f7f7efefefffffffececececececfdfdfdebebebfffffffbfbfbffffff
+eeeeeeeeeeeefffffff3f3f3f9f9f9ffffffeaeaeaebebebfffffffffffffafafaf6f6f6
+f1f1f1edededfffffffffffffbfbfbfffffffafafafefefef9f9f9fbfbfbfffffff9f9f9
+f7f7f7fffffffefefef9f9f9efefeffffffffbfbfbe1e1e1fdfdfdfffffffffffffdfdfd
+fdfdfdfbfbfbf9f9f9fefefef1f1f1fffffff1f1f1fcfcfcfffffff9f9f9fefefef5f5f5
+f6f6f6eeeeeefffffff2f2f2fcfcfcffffffecececfcfcfcf9f9f9f4f4f4fefefeffffff
+fbfbfbfcfcfcfcfcfcfbfbfbfefefefffffffefefef7f7f7f3f3f3ffffffdfdfdffbfbfb
+ecececfafafaf7f7f7f8f8f8ffffffedededfffffff8f8f8fffffffffffffffffff7f7f7
+f9f9f9fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000000000000000030303f9f9f9fefefefafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafcfcfcfefefefffffffefefefbfbfbf7f7f7f4f4f4fdfdfdfafafaf8f8f8f9f9f9
+fcfcfcfdfdfdfbfbfbf9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafafafafafafafafafafafafa
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbfafafa989898fffffffefefef3f3f3ffffff
+fffffffffffffffffffcfcfcf8f8f8f7f7f7fafafafdfdfdfafafafbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfffffffefefefdfdfdfcfcfcfafafaf9f9f9f7f7f7f7f7f7
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafaf9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9fbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+f4f4f4f6f6f6fafafafdfdfdfffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefef5f5f5f7f7f7fbfbfbfdfdfdfffffffffffffefefefefefe
+fffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcf8f8f8f9f9f9fbfbfbfdfdfd
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9fbfbfbfdfdfdfcfcfcf9f9f9f8f8f8fafafafdfdfd
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcf0f0f0f4f4f4f9f9f9ffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfafafafafafafcfcfcfefefeffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafafafafa
+fafafafafafafbfbfbfcfcfcfbfbfbfafafaf8f8f8f6f6f6f6f6f6f8f8f8fafafafbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffcfcfcfcfcfcffffff
+fffffffcfcfcfcfcfcfffffff9f9f9fafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafaf8f8f8fafafafcfcfcfdfdfdfdfdfdfcfcfcfafafaf8f8f8
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf4f4f4f7f7f7fbfbfbfefefe
+fefefefcfcfcf9f9f9f7f7f7fcfcfcfbfbfbfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfefefefffffffffffffdfdfdf9f9f9
+c5c5c5fffffffffffff9f9f9fffffffdfdfdfefefeffffff000000000000000000000000
+000000
+000000000000000000000000030303fafafafefefefafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfdfdfdfffffffffffffffffffdfdfdfafafaf8f8f8fffffffcfcfcfbfbfbfcfcfc
+fefefefffffffdfdfdfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff989898f9f9f9fdfdfdf8f8f8ffffff
+fefefefffffffffffffefefefbfbfbfafafafbfbfbfefefefdfdfdfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfafafa
+fafafafbfbfbfefefefffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf9f9f9fbfbfbfefefeffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbf8f8f8f9f9f9fbfbfbfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfefefefffffffffffffcfcfcfbfbfbfdfdfdffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbf8f8f8fafafafdfdfdffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefefefefefefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffbfbfbfbfbfbffffff
+fffffffbfbfbfbfbfbfffffffcfcfcfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfdfdfdfefefefffffffffffffefefefdfdfdfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefef8f8f8fafafafdfdfdffffff
+fffffffefefefcfcfcfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefefdfdfdfbfbfb
+c8c8c8fffffffffffffcfcfcfffffffefefefdfdfdffffff000000000000000000000000
+000000
+000000000000000000000000030303fafafafffffffbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffffffffffffffefefefffffffffffffefefefefefe
+fffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbffffffffffffa0a0a0efefeffcfcfcfefefeffffff
+fbfbfbfdfdfdfffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefafafafbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafa
+fefefefffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfafafafbfbfbfcfcfcfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffefefefdfdfdfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfefefeffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefefffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefcfcfcfcfcfcfefefe
+fefefefcfcfcfcfcfcfefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfdfdfdfefefeffffff
+fffffffffffffefefefdfdfdfbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+cacacafafafafffffffdfdfdfffffffefefefefefefdfdfd000000000000000000000000
+000000
+000000000000000000000000040404fbfbfbfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfffffff4f4f4a4a4a4cececec9c9c9c3c3c3c2c2c2
+c7c7c7c9c9c9cbcbcbcccccccccccccbcbcbcbcbcbcacacacccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcbcbcbcccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccc
+cccccccccccccccccccccccccacacacbcbcbcbcbcbcccccccccccccbcbcbcbcbcbcacaca
+cccccccdcdcdcdcdcdcdcdcdcdcdcdcccccccacacac9c9c9cccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcccccccdcdcdcdcdcdcdcdcdcccccccbcbcbcbcbcb
+cecececdcdcdcdcdcdcdcdcdcccccccccccccbcbcbcbcbcbcccccccccccccdcdcdcdcdcd
+cdcdcdcccccccccccccbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcccccccccccccccccccbcbcbcbcbcbcccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacacacacacacacacacacacacacaca
+cecececdcdcdcdcdcdcdcdcdcccccccccccccbcbcbcbcbcbcecececdcdcdcccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccbcbcbcacacacacacacbcbcbcccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccdcdcdcccccccbcbcbcbcbcb
+cbcbcbcbcbcbcccccccdcdcdcdcdcdcccccccbcbcbcbcbcbcbcbcbcbcbcbcccccccdcdcd
+cccccccccccccccccccccccccccccccccccccccccccccccccdcdcdcccccccccccccdcdcd
+cdcdcdcccccccccccccdcdcdcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcccccccdcdcdcdcdcdcccccccbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcacacacacaca
+cacacacbcbcbcbcbcbccccccc9c9c9cacacacacacacacacacbcbcbcbcbcbcccccccccccc
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacccccccccccccacacac8c8c8c9c9c9cdcdcdd2d2d2
+d0d0d0f5f5f5f8f8f8fafafafffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000000000000000040404fcfcfcfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfefefefffffffffffffffffffefefeffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fafafaffffffe2e2e2fffffffcfcfcfdfdfdffffff
+fbfbfbfcfcfcfdfdfdfffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfefefefffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffefefefbfbfbfcfcfcffffffffffff
+e3e3e3f9f9f9f7f7f7fbfbfbfefefefafafaffffffffffff000000000000000000000000
+000000
+000000000000000000000000050505fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffdfdfdfefefeffffffffffff
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf7f7f7fbfbfb
+fdfdfdfcfcfcfcfcfcfefefefffffffffffffffffffefefefffffffffffffefefefefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+fcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffff
+fffffffffffffefefefdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefefdfdfdfefefefffffffffffffffffffdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfffffffffffffdfdfd
+fdfdfdfffffffffffffdfdfdfffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffefefefefefefefefefefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffefefefefefefdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+f9f9f9fffffffbfbfbfffffffefefef9f9f9fffffffdfdfd000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefefefefefefefefefefffffffffffffffffffcfcfcffffffffffffffffff
+fdfdfdfcfcfcfefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff0f0f0f1f1f1f2f2f2fcfcfcfcfcfcfcfcfcfffffffcfcfc
+fffffffefefefcfcfcfdfdfdfffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfffffffffffffdfdfd
+fdfdfdfffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfbfbfb
+fffffffffffffafafafffffffffffff9f9f9fffffffafafa000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffffffffefefefefefefdfdfdffffffffffffffffff
+fefefefdfdfdfefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfffffff5f5f5fffffffffffff5f5f5
+fffffffdfdfdfafafafafafafcfcfcfefefefefefefcfcfcffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfffffffffffffffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefffffffffffffffffffffffffefefefefefe
+fffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefeffffffffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffcfcfc
+fcfcfcfffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffdfdfdfbfbfbfcfcfcfffffffffffffbfbfbf8f8f8
+fafafaf7f7f7f5f5f5fffffffffffffafafafffffff9f9f9000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffafafaf9f9f9fcfcfcfcfcfcf9f9f9
+fffffffafafaf9f9f9fffffffffffffffffffcfcfcfefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffafafaf9f9f9fcfcfcfcfcfcf9f9f9
+fffffffbfbfbfafafafffffffffffffffffffdfdfdffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffafafafafafafdfdfdfdfdfdfafafa
+fffffffbfbfbfafafafdfdfdfffffffefefefefefeffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffbfbfbfafafafdfdfdfdfdfdfbfbfb
+fefefefcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffbfbfbfbfbfbfefefefefefefcfcfc
+fafafafcfcfcfcfcfcfcfcfcfcfcfcfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffbfbfbfbfbfbfffffffffffffdfdfd
+f6f6f6fbfbfbfefefefcfcfcfcfcfcfefefefffffffefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffdfdfd
+f2f2f2fafafafffffffefefefdfdfdfffffffffffffcfcfc000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffefefe
+f0f0f0fafafafffffffefefefdfdfdfffffffffffffbfbfb000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdfffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffbfbfb
+fefefefffffff8f8f8f9f9f9fcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafa8e8e8ea4a4a4a0a0a09c9c9c989898
+9c9c9c9c9c9c9b9b9b9a9a9a9999999999999898989898989b9b9b9b9b9b9b9b9b9c9c9c
+9c9c9c9c9c9c9d9d9d9d9d9d9999999a9a9a9a9a9a9b9b9b9a9a9a9a9a9a999999999999
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9d9d9d9a9a9a9a9a9a9c9c9c
+9d9d9d9a9a9a9b9b9b9f9f9f9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9b9b9b
+9b9b9b9b9b9b9c9c9c9c9c9c9999999a9a9a9a9a9a9b9b9b9a9a9a9a9a9a999999999999
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9999999a9a9a9b9b9b9c9c9c9d9d9d9c9c9c9a9a9a9999999d9d9d9d9d9d9d9d9d9d9d9d
+9c9c9c9b9b9b9a9a9a9999999b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9c9c9c9c9c9c9b9b9b9a9a9a
+9999999898989898989797979999999898989898989a9a9a9d9d9d9e9e9e9d9d9d9b9b9b
+9999999a9a9a9a9a9a9b9b9b9a9a9a9a9a9a9999999999999b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9999999a9a9a9a9a9a9b9b9b
+9a9a9a9a9a9a9999999999999191919d9d9d939393999999a1a1a19d9d9d8a8a8aa6a6a6
+9a9a9a9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9c9c9c9c9c9c9b9b9b959595929292969696
+9d9d9da0a0a09b9b9b9595959a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9b9b9b9c9c9c9d9d9d9d9d9d9d9d9d9c9c9c9c9c9c9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+aaaaaae9e9e9fcfcfcfbfbfbfffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000000000000000050505fcfcfcfffffffefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffefefefefefe
+fefefefefefefffffffffffffefefefdfdfdfcfcfcfcfcfcf4f4f4f4f4f4f9f9f9ffffff
+fbfbfbfafafafffffffffffffcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5f8f8f8fcfcfca8a8a8e4e4e4f7f7f7fefefefdfdfd
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdffffff
+fffffffefefefffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fefefefefefefdfdfdfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafbfbfbfcfcfcfefefe
+fffffffffffffffffffffffffffffffefefefefefefffffffffffffffffffefefefcfcfc
+fefefefffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfffffff5f5f5ffffffffffffecececfffffffdfdfdf1f1f1
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdf9f9f9ffffffffffffffffff
+fcfcfcf9f9f9fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfcfcfcfdfdfdfefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+c6c6c6fffffffffffffffffffffffffcfcfcfffffffefefe000000000000000000000000
+000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfbfbfbfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefffffffbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefe
+fffffffffffffffffffefefefdfdfdfbfbfbf9f9f9f8f8f8f1f1f1fffffffdfdfdf7f7f7
+f6f6f6e4e4e4f2f2f2fffffffcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbf9f9f9a4a4a4f0f0f0fffffffffffffbfbfb
+fefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfafafafafafafefefefefefefefefefdfdfd
+fcfcfcfafafaf9f9f9f8f8f8fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcf9f9f9fafafafdfdfd
+fefefefbfbfbfcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfefefefcfcfcfdfdfdfefefeffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfbfbfbfbfbfbfbfbfbfefefefcfcfcfbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f7f7f7
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfd
+fcfcfcfbfbfbfafafaf9f9f9ececece9e9e9f6f6f6fefefefbfbfbfafafaffffffe2e2e2
+fdfdfdfdfdfdfdfdfdfcfcfcfbfbfbf9f9f9f8f8f8f7f7f7fffffffcfcfcfafafafbfbfb
+fdfdfdfdfdfdf9f9f9f5f5f5fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfdfdfdfdfdfdfefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ccccccfffffffffffffbfbfbfffffffdfdfdffffffffffff000000000000000000000000
+000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfafafafafafafbfbfbfcfcfc
+fdfdfdfefefefffffffffffff9f9f9fafafafcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f5f5f5f9f9f9f4f4f4f9f9f9
+fffffffffffff7f7f7f2f2f2fcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf6f6f69b9b9bf3f3f3fffffffdfdfdf2f2f2
+fffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfefefefefefe
+fdfdfdfbfbfbfafafaf9f9f9fcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfafafafbfbfbffffff
+fffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfafafafcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfefefefffffffdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfffffffffffffefefefdfdfd
+fbfbfbfafafaf9f9f9f8f8f8fefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfafafaf8f8f8
+fcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd
+fbfbfbfafafafafafaf9f9f9ffffffffffffffffffe6e6e6fffffff0f0f0e9e9e9ffffff
+fcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfafafaf9f9f9f8f8f8fffffffafafaf3f3f3f7f7f7
+fffffffffffff9f9f9f0f0f0fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+c7c7c7f8f8f8fbfbfbf5f5f5fefefeffffffffffffffffff000000000000000000000000
+000000
+010101000000000000000000040404fafafafffffffbfbfbfbfbfbfbfbfbfcfcfcfdfdfd
+fefefefffffffffffffffffff9f9f9fafafafcfcfcfdfdfdfefefeffffffffffffffffff
+fefefefefefefefefefffffffefefefdfdfdfcfcfcfcfcfcffffffe6e6e6fffffff8f8f8
+e1e1e1f3f3f3f9f9f9f9f9f9fcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfb9b9b9bfdfdfdffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8f9f9f9fafafafcfcfcfdfdfd
+fdfdfdfcfcfcfafafaf9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9fafafaf8f8f8fafafafefefe
+fffffffdfdfdfcfcfcfffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffefefefcfcfc
+fbfbfbf9f9f9f8f8f8f8f8f8fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffdfdfdfcfcfcfafafafafafafafafafbfbfbfcfcfcf7f7f7f8f8f8fafafafbfbfb
+fcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbf6f6f6f6f6f6f7f7f7f9f9f9
+fafafafbfbfbfcfcfcfdfdfdfcfcfcfbfbfbfafafafbfbfbfdfdfdfdfdfdfbfbfbf9f9f9
+fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffefefefcfcfcfafafa
+f9f9f9f8f8f8f8f8f8f8f8f8e9e9e9fdfdfdfefefef9f9f9fafafaffffffe9e9e9ffffff
+f8f8f8f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8f4f4f4fafafafffffffdfdfd
+f7f7f7f4f4f4f8f8f8fdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f8f8f8f9f9f9fbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+cfcfcffffffffffffffbfbfbfffffffffffffffffff8f8f8000000000000000000000000
+000000
+010101000000000000000000030303fafafafefefefafafafbfbfbfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefffffffbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefe
+fefefefefefefefefefffffffefefefefefefdfdfdfcfcfcfdfdfdfffffffffffff5f5f5
+ffffffffffffeeeeeefefefefcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff959595fafafaf6f6f6f8f8f8f6f6f6
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafcfcfcfefefeffffff
+fffffffffffffefefefcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcfbfbfbfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfdfdfdfffffffefefefdfdfdfefefefffffffffffffffffffdfdfd
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfc
+fbfbfbfbfbfbfcfcfcfcfcfcffffffeeeeeefffffff3f3f3f8f8f8fbfbfbffffffdedede
+f9f9f9fbfbfbfdfdfdfffffffffffffffffffdfdfdfbfbfbfdfdfdfefefeffffffffffff
+fffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ccccccfefefefffffffdfdfdfffffffffffffffffff8f8f8000000000000000000000000
+000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefefefefdfdfdfbfbfbfafafaf9f9f9f0f0f0ffffffecececfefefe
+fefefeecececffffffedededfcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9ffffffffffff939393fffffffdfdfdffffffffffff
+fbfbfbfbfbfbfafafafafafaf9f9f9f8f8f8f7f7f7f7f7f7f6f6f6f8f8f8fafafafcfcfc
+fbfbfbf9f9f9f7f7f7f5f5f5f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbfafafaf8f8f8f7f7f7f7f7f7f7f7f7f5f5f5f8f8f8fdfdfd
+fffffffcfcfcfbfbfbfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfcfcfcfcfcfcfbfbfb
+fafafaf9f9f9f8f8f8f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfbfbfbfafafaf9f9f9f8f8f8f7f7f7fcfcfcfcfcfcfefefeffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9fcfcfcfbfbfbfafafaf8f8f8
+f6f6f6f5f5f5f4f4f4f3f3f3fcfcfcfafafaf9f9f9fafafafbfbfbfafafaf8f8f8f6f6f6
+f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfbfbfbf9f9f9f7f7f7
+f7f7f7f8f8f8f9f9f9fafafaffffff000000ffffff0a0a0af6f6f6e7e7e7e6e6e6ffffff
+f5f5f5f7f7f7f9f9f9fbfbfbfafafaf8f8f8f6f6f6f4f4f4fffffff9f9f9f2f2f2f6f6f6
+fffffffffffffafafaefefeff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f8f8f8f9f9f9fbfbfbfcfcfcfefefefefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+c4c4c4f8f8f8fefefef9f9f9fffffffffffffffffffefefe000000000000000000000000
+000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fafafafafafafafafafafafa
+fafafafafafaf9f9f9f9f9f9fffffffffffffffffffffffffffffffffffffefefefefefe
+fffffffffffffefefefdfdfdfbfbfbf8f8f8f6f6f6f5f5f5fcfcfcf3f3f3ffffffeeeeee
+0c0c0c000000f7f7f7fcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcffffffffffff909090fffffffafafafcfcfcfdfdfd
+fffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfdfdfdfefefeffffff
+fefefefbfbfbf8f8f8f5f5f5fcfcfcfdfdfdffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf9f9f9f8f8f8fbfbfbffffff
+fffffffffffffefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffefefefcfcfcfafafafefefefefefeffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcf9f9f9f9f9f9fafafafbfbfb
+fcfcfcfdfdfdfefefefefefefffffffffffffefefefdfdfdfdfdfdfcfcfcf9f9f9f6f6f6
+fcfcfcfdfdfdfffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffdfdfdfbfbfb
+fbfbfbfcfcfcfefefeffffffe9e9e9ffffff000000fffffff0f0f0fcfcfcffffffe9e9e9
+fafafafcfcfcfdfdfdfefefefdfdfdfafafaf7f7f7f4f4f4fbfbfbfefefefffffffefefe
+f9f9f9f5f5f5f6f6f6f8f8f8fefefefefefefefefefefefefefefefefefefefefefefefe
+f7f7f7f8f8f8fafafafbfbfbfdfdfdfefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefffffffbfbfbfefefefdfdfdffffffffffff000000000000000000000000
+000000
+040404000000010101070707060606e2e2e2fefefefffffffbfbfbfbfbfbf2f2f2ffffff
+fffffffdfdfdeaeaeaffffffffffffe5e5e5fffffffbfbfbfffffffbfbfbfefefefcfcfc
+fffffffffffffefefef0f0f0fffffffffffffefefefafafafefefef9f9f9ffffffebebeb
+131313060606ffffffefefeff5f5f5f5f5f5fffffff1f1f1f4f4f4fffffffcfcfcfafafa
+fefefeffffffeeeeeefafafafefefefffffffffffff1f1f1f6f6f6fffffffbfbfbffffff
+fbfbfbfffffff7f7f7fffffffffffffffffffffffffffffffefefef3f3f3ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fefefefdfdfdf7f7f7f8f8f8ebebebfffffff1f1f1fffffffcfcfcfffffffafafafdfdfd
+f5f5f5ffffffe9e9e9fefefef3f3f3f7f7f7fffffffffffff9f9f9fffffffbfbfbffffff
+fafafafdfdfdffffffefefeffffffffffffff6f6f6fffffffffffff3f3f3f7f7f7efefef
+fdfdfdfffffffdfdfdfffffffbfbfbfcfcfcffffffffffffffffffe1e1e1fffffff9f9f9
+fdfdfdf2f2f2fdfdfdfffffffffffff0f0f0fffffffefefefffffff0f0f0fbfbfbffffff
+f9f9f9f6f6f6fcfcfcfffffffdfdfdf3f3f3fffffffffffffdfdfdfffffffffffffbfbfb
+f9f9f9fefefefefefeedededfcfcfcfffffff4f4f4fffffffcfcfcfffffff8f8f8f8f8f8
+fffffff6f6f6fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fefefefefefef7f7f7f4f4f4fefefefffffff3f3f3fdfdfdffffffe8e8e8fcfcfcffffff
+fffffffbfbfbfffffffffffffffffff2f2f2fffffffbfbfbf0f0f0fffffffbfbfbffffff
+f6f6f6fffffffdfdfdfffffffdfdfdf7f7f7fffffffbfbfbfffffff2f2f2ffffffffffff
+f4f4f4ffffffeeeeeefffffff0f0f0fffffffefefefbfbfbfcfcfcfffffffafafaf5f5f5
+f6f6f6fffffffafafaf5f5f5fffffff1f1f1f6f6f6fffffff1f1f1ffffffffffffffffff
+f9f9f9efefeffffffff4f4f4fefefefffffffffffffffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffefefefefefefbfbfbfdfdfdfbfbfbffffff
+fcfcfcfcfcfcfffffffdfdfdfffffffffffffffffff4f4f4fdfdfdfffffff2f2f2ffffff
+fffffff8f8f8ffffffe6e6e6f8f8f8f7f7f7ffffffffffffe8e8e8ffffffedededf2f2f2
+fffffffffffffafafafffffffbfbfbfffffff3f3f3fffffff9f9f9fffffff5f5f5fbfbfb
+eeeeeefffffff3f3f3fffffffbfbfbeeeeeefffffffbfbfbfcfcfcfffffff7f7f7f5f5f5
+fffffff2f2f2ffffffffffffedededf2f2f2f8f8f8fffffff8f8f8f7f7f7fffffff7f7f7
+f5f5f5edededfffffffffffff0f0f0fffffff6f6f6fefefef0f0f0fffffffbfbfbf2f2f2
+fffffffefefeeeeeeefdfdfdfffffff4f4f4fffffffffffffdfdfdfdfdfdfbfbfbfdfdfd
+ffffffeeeeeef6f6f6fbfbfbfdfdfdfdfdfdfffffff6f6f6fafafaffffffffffffffffff
+efefefffffffffffffeeeeeefcfcfcefefeffffffffafafaf5f5f5fffffffcfcfcffffff
+eaeaeafffffffffffff3f3f3fffffff7f7f7fbfbfbfffffffffffffffffffdfdfdfefefe
+ffffffe5e5e5fffffff3f3f3fcfcfcfffffffffffffefefef4f4f4ffffffedededf6f6f6
+fffffffffffff3f3f3f7f7f7f9f9f9f8f8f8fcfcfcffffffffffffdfdfdffffffff5f5f5
+f9f9f9fffffffffffffdfdfdfefefeeaeaeafffffff8f8f8fffffff1f1f1fcfcfcfefefe
+eeeeeef9f9f9ffffffffffffe7e7e7f9f9f9ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+020202030303050505000000000000fffffffcfcfcfffffffefefef2f2f21e1e1e000000
+0202021a1a1a040404ebebebebebebfafafaf3f3f3fffffff7f7f7fffffff5f5f5ffffff
+fafafaffffffe9e9e9ffffffecececf8f8f8e9e9e9090909f5f5f5f9f9f9efefeffcfcfc
+000000060606f3f3f3fffffffffffff6f6f6f3f3f3fffffffffffff4f4f4f5f5f5ffffff
+ececececececffffffffffffffffffffffffeaeaeaffffffffffffecececf8f8f8ffffff
+dcdcdcffffffe5e5e5fffffff8f8f8fffffff0f0f0fcfcfcfffffffffffffffffff8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff1f1f1f9f9f9ffffff0000000000001c1c1cf3f3f3f8f8f8fbfbfbfffffff8f8f8
+eaeaeae7e7e7ffffff000000fffffff8f8f8fffffff6f6f6ffffffe6e6e6fffffffbfbfb
+ffffffffffffe4e4e4fffffffcfcfcecececf4f4f4fcfcfcebebebfefefeffffffffffff
+fcfcfcfafafaf1f1f1fdfdfdfffffff8f8f8fafafaffffffe8e8e8fffffffffffff7f7f7
+e7e7e7fffffff8f8f8e0e0e0ffffffefefeffbfbfbfafafae9e9e9ffffffffffffefefef
+fffffffffffff8f8f8f9f9f9fffffffffffff8f8f8eeeeeefafafafffffffbfbfbfefefe
+f2f2f2ffffffedededfffffffffffff3f3f3fefefef5f5f5f4f4f4f2f2f2fdfdfdffffff
+f2f2f2fefefefffffffcfcfcfffffffffffffffffffffffffffffffffffffefefefefefe
+f1f1f1f8f8f8ffffffffffffe4e4e4f7f7f7fffffff0f0f0f4f4f4101010fffffffafafa
+ecececfcfcfcfffffffdfdfdfffffff6f6f6fffffffbfbfbffffffe2e2e2f3f3f3ffffff
+fffffff1f1f1fffffff1f1f1f6f6f6fffffffffffffafafafcfcfcffffffefefeffcfcfc
+f7f7f7f2f2f2f4f4f4ffffff161616000000ffffffffffffe1e1e1fbfbfbffffffffffff
+fcfcfcfffffff8f8f8fdfdfdfbfbfbfffffff7f7f7fefefefffffff3f3f3f1f1f1fcfcfc
+ffffffffffffe5e5e5fffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fdfdfdfefefefffffffffffffffffffffffffefefefefefefffffff9f9f9ffffffededed
+fefefefffffff5f5f5fffffff2f2f2fbfbfbfffffffffffffdfdfdfafafafefefeededed
+f4f4f4fffffff5f5f5fffffff0f0f0ffffffdadada0f0f0f030303edededffffffffffff
+fcfcfcebebebfffffffffffffffffffbfbfbf1f1f1fcfcfcfefefef9f9f9fffffffefefe
+ffffffedededf6f6f6ffffffffffffdcdcdcffffffe8e8e8ffffffe5e5e5010101202020
+e6e6e6ffffffe2e2e2f3f3f3e9e9e9ffffffededede3e3e3e6e6e6fffffff5f5f5000000
+f9f9f9ffffffebebebedededfffffffffffff8f8f8fffffffffffff6f6f6e4e4e4ffffff
+f7f7f7e1e1e1fffffffbfbfbebebebffffffdcdcdcfffffffffffffcfcfcfffffff6f6f6
+f5f5f5efefeffffffffffffffafafafbfbfbe4e4e4fffffffffffff3f3f3f9f9f9ececec
+fefefeffffffe6e6e6ffffffffffffffffffe6e6e6fdfdfdfffffff3f3f3fffffff3f3f3
+ffffffebebebe4e4e4ffffffffffffefefeffffffffdfdfdfefefefbfbfbfbfbfbf3f3f3
+f9f9f9fffffff8f8f8eeeeeef7f7f7ffffff000000fffffffcfcfcefefefffffffffffff
+f8f8f8fcfcfcffffffffffffe8e8e8ffffff000000f6f6f6ebebebfffffff4f4f4fcfcfc
+ecececfbfbfbfbfbfb000000f3f3f3ffffffe9e9e9dededefffffff7f7f7fffffff5f5f5
+000000121212000000f3f3f3ffffffffffffe9e9e9fafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0000000000000a0a0a090909000000f7f7f7dededeffffff0909090e0e0e000000fefefe
+fefefeefefef030303282828050505fffffff7f7f7fffffff8f8f8e0e0e0ffffffdedede
+f6f6f6f2f2f2fffffff9f9f9f8f8f8ffffff181818000000fffffff9f9f9ffffffffffff
+000000090909f9f9f9efefeff1f1f1fffffff3f3f3fcfcfcfdfdfdf3f3f3ffffffe9e9e9
+fffffffffffff2f2f2f5f5f5f7f7f7efefefffffffe7e7e7d5d5d5ffffffffffffeeeeee
+ffffffe4e4e4fffffff5f5f5ffffffe6e6e6fffffff7f7f7ebebebf6f6f6fbfbfbfafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f4f4f4fffffffdfdfdf9f9f90a0a0afffffffffffffdfdfdffffffefefefecececffffff
+eeeeeefdfdfd0b0b0bf6f6f6ffffffe6e6e6efefeffafafaf6f6f6fafafafcfcfcfafafa
+ffffffe0e0e0ffffffdededefffffff5f5f5fffffff0f0f0fafafaf6f6f6f5f5f5f9f9f9
+f6f6f6fffffffffffffdfdfdfffffff4f4f4f9f9f9f3f3f3fdfdfdeeeeeef1f1f1ffffff
+f6f6f6f4f4f4fefefefcfcfcf5f5f5ffffffe2e2e2fffffff9f9f9fdfdfdebebebfbfbfb
+f0f0f0fafafaf6f6f6ffffffffffffd8d8d8fffffffffffff4f4f4ffffffe9e9e9f8f8f8
+eaeaeaf8f8f8f9f9f9e7e7e7f3f3f3fcfcfcfffffffbfbfbffffffffffffedededefefef
+f4f4f4ffffffebebebf8f8f8fcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+fffffffffffff5f5f5f2f2f2fffffffafafaf7f7f7ffffff000000f4f4f4efefefeeeeee
+fffffff2f2f2edededfffffff2f2f2ffffffdfdfdffbfbfbefefefffffffe9e9e9ffffff
+0000000e0e0e020202fdfdfdfffffff8f8f8f1f1f1fffffffbfbfbf2f2f2ebebebfbfbfb
+fffffffffffffafafaf4f4f4ffffff000000f4f4f4f0f0f0ffffffffffffedededfafafa
+ffffffefefeffffffffffffff4f4f4ffffffffffffffffffffffffe6e6e6ffffffffffff
+000000131313252525f2f2f2fcfcfcfdfdfdfdfdfdfefefefefefefdfdfdfdfdfdfcfcfc
+fbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefef0f0f0fffffff5f5f5ffffff
+f5f5f5f3f3f3ffffff000000ffffffe8e8e8070707fbfbfbdadadaffffffffffff000000
+111111010101000000080808000000000000fffffffefefe040404fefefeeaeaeaeeeeee
+e9e9e9fefefef8f8f8fffffffffffff3f3f3eaeaeaffffffe0e0e0eeeeeefffffff5f5f5
+f3f3f3fffffffefefe000000000000141414030303fffffffffffffbfbfbfbfbfb000000
+fcfcfcf7f7f7fffffffafafaf4f4f4dbdbdbfefefefbfbfbfffffff6f6f6ffffff0f0f0f
+f8f8f8eeeeeeffffffe9e9e9f7f7f7f2f2f2f4f4f4fffffff4f4f4f0f0f0fefefef7f7f7
+fbfbfbffffffe9e9e9f9f9f9fffffffdfdfdffffffedededf9f9f9e6e6e6e0e0e0ffffff
+000000ffffffdfdfdfddddddf7f7f7fffffffefefe080808050505000000fefefefbfbfb
+0d0d0d0707070f0f0ff6f6f6e2e2e2fffffff8f8f8fffffffffffff2f2f2fffffff9f9f9
+fffffff9f9f9fffffff4f4f4eeeeeefafafafafafafefefee7e7e7fefefefffffff0f0f0
+fffffff8f8f8f3f3f3fffffffffffffffffffffffff5f5f5ececec131313fffffff1f1f1
+010101ffffffe2e2e2fafafafffffff6f6f6f8f8f8141414fffffff7f7f7f8f8f8f6f6f6
+fffffff8f8f8fefefeffffff050505fffffffafafafffffffafafaffffffe3e3e3fafafa
+fffffff0f0f0070707fffffff4f4f4fffffff7f7f7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0a0a0a000000000000000000000000fcfcfcfffffff7f7f70000000b0b0bfffffff0f0f0
+fcfcfcfcfcfcffffff0000000a0a0af0f0f0f9f9f9fcfcfcfffffff9f9f9fafafaf8f8f8
+ffffffffffffd9d9d9f8f8f8ffffffececec020202060606f7f7f7ffffffe1e1e1f9f9f9
+fffffffffffff4f4f4fffffffffffff4f4f4ffffffeeeeeef0f0f0fffffff5f5f5ffffff
+f9f9f9fafafaf7f7f7f5f5f5ffffffe1e1e1f3f3f3f8f8f8fffffffdfdfde5e5e5ffffff
+fffffffcfcfcf7f7f7fcfcfcf1f1f1ffffffe8e8e8fffffffefefefffffff3f3f3ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fdfdfdeeeeeefffffff3f3f3000000fffffffefefeeeeeeefffffffbfbfbfffffffafafa
+ffffffffffff000000ffffffecececffffffffffffffffffe4e4e4f6f6f6fffffff5f5f5
+f4f4f4ffffffebebebfffffffafafaf6f6f6f3f3f3f9f9f9fffffffffffffffffff8f8f8
+ecececfffffff8f8f8f2f2f2ebebebf2f2f2ffffffe1e1e1ffffffffffffe8e8e8f7f7f7
+fffffffefefefcfcfcf1f1f1f5f5f5efefefffffffe5e5e5fcfcfcf8f8f8ffffffffffff
+ffffffdededefffffff6f6f6eaeaeafffffffafafafcfcfcf1f1f1f9f9f9ffffffffffff
+fffffff8f8f8f5f5f5ffffffffffffe4e4e4f2f2f2ffffffeaeaeafafafaffffffffffff
+ffffffffffffecececfffffffafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+f7f7f7fffffffffffff2f2f2f6f6f6f9f9f9fffffff8f8f8000000fffffffffffffdfdfd
+f7f7f7ffffffffffffefefeffefefee7e7e7fffffffefefefdfdfdf9f9f9edededebebeb
+fffffff9f9f9000000fdfdfde5e5e5fcfcfcf9f9f9fafafae8e8e8ffffffffffffffffff
+ffffffefefeffafafaf1f1f1f6f6f6000000ffffffedededffffffedededffffffdbdbdb
+fbfbfbebebebfffffff9f9f9ffffffdcdcdcfefefeedededf8f8f8ffffffe8e8e8fdfdfd
+fcfcfcebebeb000000f0f0f0fbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+f9f9f9fafafafcfcfcfdfdfdfefefefffffffffffffffffffbfbfbfffffffcfcfcf8f8f8
+fcfcfcfdfdfdfcfcfc040404f4f4f4ffffff060606fafafaf0f0f0ececece7e7e70f0f0f
+fafafaffffff090909fdfdfdfcfcfc000000ffffffeaeaea000000fffffffffffffbfbfb
+fffffffcfcfcebebebf7f7f7e7e7e7ffffffe7e7e7f8f8f8fffffffbfbfbdededef1f1f1
+fcfcfce8e8e81d1d1dfcfcfcfffffff9f9f9f2f2f2000000fcfcfcf5f5f5ffffff030303
+e6e6e6fffffff1f1f1f3f3f3fffffff1f1f1f6f6f6f6f6f6fbfbfbf5f5f5f4f4f4f3f3f3
+fffffffbfbfbf8f8f8fffffff2f2f2efefeffffffff9f9f9fffffffffffffafafaf8f8f8
+fffffff7f7f7fffffff9f9f9fcfcfce7e7e7fafafafffffffffffffffffff4f4f4f6f6f6
+080808fcfcfcfffffffffffff3f3f3f7f7f7ffffffe6e6e6000000000000fffffff0f0f0
+f0f0f0151515e7e7e7fffffffffffff6f6f6ededede9e9e9fcfcfcfcfcfcffffffdadada
+eeeeeefcfcfcf9f9f9fcfcfcfffffffffffff8f8f8fcfcfcffffffe5e5e5ffffffffffff
+f8f8f8fffffff8f8f8eeeeeef1f1f1f3f3f3050505e7e7e7ffffff000000fffffff7f7f7
+010101ecececfffffffffffffafafaf5f5f5fcfcfc000000fffffff9f9f9ffffffffffff
+f4f4f4f0f0f0fafafaeaeaea000000ffffffebebebfdfdfdf2f2f2f5f5f5fffffff1f1f1
+f0f0f0ffffff010101fcfcfcfffffffbfbfbfcfcfce3e3e3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000090909000000020202ededede1e1e1090909131313000000f3f3f3fdfdfd
+dededef5f5f5ffffff0c0c0c000000060606ffffff000000030303000000151515000000
+000000040404131313060606e8e8e80000000d0d0d000000050505060606fefefe000000
+0b0b0b000000fafafaedededfefefe000000000000000000000000010101010101fcfcfc
+ffffff0000001414140a0a0a0c0c0c1717170b0b0b0e0e0e030303fffffffffffff7f7f7
+000000030303000000020202010101000000fffffffcfcfcf3f3f3fffffffffffff1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff2f2f2fffffff0f0f0030303fffffffcfcfcfbfbfbf1f1f1fdfdfde8e8e8ffffff
+f8f8f8ffffff000000ffffffffffffe6e6e6ffffffe9e9e9111111000000f6f6f6f8f8f8
+000000171717f9f9f9f6f6f6eeeeeefffffffcfcfc1414140000000c0c0cf4f4f4fafafa
+fbfbfbfdfdfdf0f0f0060606131313000000f2f2f2131313000000f6f6f6090909111111
+f0f0f0000000000000121212fefefeffffffeaeaeaf1f1f1fdfdfd1a1a1a030303010101
+000000fffffffffffffafafa010101010101efefef101010090909ffffff000000000000
+e7e7e7ffffffefefefffffff0000001c1c1c000000f7f7f7ffffffdcdcdcf8f8f8ffffff
+e8e8e8eeeeeeffffffe4e4e4f9f9f9fafafafbfbfbfdfdfdfefefeffffffffffffffffff
+f6f6f6ffffffededede9e9e9ffffffe8e8e8e0e0e0ededed000000f6f6f6f5f5f5fdfdfd
+edededfefefeffffff0d0d0d020202090909efefef000000000000ffffffebebebffffff
+f6f6f6e7e7e70d0d0defefeffffffffffffff2f2f2ffffffffffff0101010c0c0c000000
+0a0a0afffffffffffffdfdfdfefefe010101ffffff252525000000010101fffffff1f1f1
+e4e4e4f7f7f7fafafa010101191919000000010101fffffff8f8f8fdfdfdffffffffffff
+fffffff9f9f9000000fffffffbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfb
+f9f9f9fafafafcfcfcfdfdfdfefefefffffffffffffffffffbfbfbfffffffcfcfcf7f7f7
+fbfbfbfdfdfdfbfbfb030303f1f1f1fcfcfc080808fcfcfceeeeeefffffffefefe000000
+d4d4d4ffffff020202eaeaeaffffff000000f4f4f4ffffff101010ffffff000000000000
+000000e0e0e0fffffff6f6f6fcfcfce9e9e9ffffff070707000000050505f6f6f6ffffff
+ffffff000000e6e6e6f2f2f2fafafaffffffffffffffffff090909e0e0e0ededed080808
+ffffff000000111111050505fafafafefefeffffffffffff0d0d0d0909090000000a0a0a
+000000ffffffe8e8e8f8f8f8f2f2f2fffffffcfcfc000000000000010101fafafaffffff
+f5f5f5f0f0f0f0f0f0fcfcfc060606000000060606f7f7f7000000f1f1f1f7f7f7000000
+101010000000010101010101fffffff7f7f7ffffffffffff0e0e0effffff000000fcfcfc
+ffffff000000f3f3f3fffffff7f7f7efefef222222030303000000000000fffffffbfbfb
+ffffff000000000000f3f3f3000000040404ededed1a1a1a000000f3f3f3dfdfdfe7e7e7
+f3f3f3000000090909090909fffffffafafaf8f8f8fffffff1f1f1000000ffffffffffff
+030303ffffffe4e4e4f8f8f8f1f1f1fdfdfdf4f4f40c0c0cf0f0f0f1f1f1eeeeeef9f9f9
+fffffffffffffffffffefefe080808fffffff6f6f6ffffffe6e6e6ffffffefefefffffff
+f5f5f5fbfbfb000000f7f7f7fffffffafafaffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0c0c0c000000000000000000010101f3f3f3ffffff010101030303060606fafafaffffff
+fffffffafafae7e7e70e0e0e020202020202eeeeeef9f9f92c2c2c000000fcfcfcfdfdfd
+ffffff000000000000080808f9f9f9ffffff080808111111e3e3e3ffffffdededeffffff
+020202000000fffffffffffff7f7f70707070b0b0bf3f3f3f3f3f30a0a0a030303efefef
+f5f5f5ffffff080808010101e6e6e6efefeffafafa010101000000f4f4f4fdfdfd030303
+141414f7f7f7ffffffffffffffffff0a0a0af4f4f4f4f4f4ffffffe2e2e2f1f1f1ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f8f8f8e7e7e7f5f5f5ffffff0f0f0fffffffeaeaeafffffffffffff0f0f0fffffff0f0f0
+eaeaeaffffff010101f1f1f1fffffffffffffefefef2f2f2ffffff0f0f0ffafafa121212
+e2e2e2ffffff040404efefefffffffeaeaea000000f3f3f3fcfcfcffffff000000f3f3f3
+fcfcfcffffff020202f4f4f4ffffffffffff050505000000fffffffcfcfcededed050505
+141414e2e2e2f9f9f9e4e4e4080808fefefeffffffffffff040404f2f2f2f0f0f0ffffff
+efefef000000f2f2f2f3f3f3f9f9f90e0e0e0c0c0cfafafa101010020202ffffff0d0d0d
+ffffffddddddffffff000000fefefeefefefffffff040404eaeaeafdfdfdfffffffefefe
+f9f9f9fefefefffffff2f2f2fafafafafafafcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffafafaeaeaeafafafae1e1e1ffffffffffff080808fffffff3f3f3ffffff
+eeeeeeeaeaea101010f5f5f5fafafaefefef0c0c0c000000f9f9f9ecececf2f2f2fbfbfb
+fafafafbfbfb000000fffffffafafaf2f2f2fffffffcfcfc000000f9f9f9f3f3f3ffffff
+ffffff000000f6f6f6fffffff3f3f3101010000000e7e7e7ffffffeaeaea000000ffffff
+ffffffffffff000000f5f5f5edededfffffffefefe000000fffffffafafaebebebfafafa
+e6e6e6ffffff000000fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefef0f0f0fffffff4f4f4ffffff
+f4f4f4f1f1f1ffffff000000ffffffffffff000000f8f8f8ffffffe3e3e3fffffffcfcfc
+ffffffe5e5e5080808fffffff0f0f0ffffffe2e2e2efefef0f0f0f000000f1f1f1ffffff
+ffffff0d0d0ddfdfdffffffffffffffbfbfb000000f3f3f3f0f0f0ffffff000000f8f8f8
+f3f3f3000000f7f7f7fffffff8f8f8e4e4e4f2f2f2ffffff000000ffffffffffff000000
+121212ebebebf7f7f7e5e5e5080808fefefef5f5f5efefeff0f0f0e7e7e7ffffffebebeb
+282828eaeaeafafafafefefef4f4f4eaeaea010101f1f1f1ffffffffffff0e0e0ee7e7e7
+f0f0f0ffffffffffff000000ffffffdadadaffffff131313000000fffffffbfbfbfbfbfb
+000000fffffff9f9f9ecececf7f7f7e0e0e0fffffff0f0f0000000f7f7f7030303ffffff
+e2e2e2030303ffffffefefeffbfbfb1c1c1cecececedededfffffffbfbfb000000eeeeee
+f0f0f0ffffff0b0b0b000000ffffff000000070707f7f7f7000000ffffffffffffe0e0e0
+131313fcfcfcf3f3f3f7f7f7000000ffffff010101fffffffafafa000000f9f9f9f5f5f5
+000000e7e7e7fffffffafafaf2f2f2f6f6f6ffffff000000fffffff5f5f5f6f6f6ffffff
+f3f3f3f9f9f9fdfdfdf9f9f9000000f7f7f7f6f6f6ecececffffffffffffefefeff3f3f3
+ffffffffffff000000fafafaf4f4f4fdfdfdeeeeeef4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0202020000000000000a0a0a040404e9e9e9f3f3f30202020a0a0a000000ffffffe7e7e7
+fffffffffffffefefe0505051d1d1d000000ffffffffffff000000030303fdfdfdfcfcfc
+f4f4f4ffffff0505050c0c0ce1e1e1f8f8f8000000070707fffffff1f1f1fefefee4e4e4
+1818180f0f0fd2d2d2fafafa050505050505f5f5f5fffffffffffff7f7f7030303000000
+fdfdfdffffff040404000000fffffffffffff1f1f11a1a1a070707fffffff8f8f8030303
+060606000000070707000000edededfdfdfdfffffffffffffffffffafafafffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffffffffffffffff3f3f3000000fefefefffffffafafaf3f3f3f6f6f6dededeffffff
+f8f8f8000000f2f2f2ffffffe3e3e3fefefeecececfffffffdfdfd000000111111e8e8e8
+ffffffe4e4e4f7f7f7ffffffffffff000000fffffffffffff0f0f0f0f0f0efefef0c0c0c
+f5f5f5000000ecececffffffffffffd3d3d3ffffff101010dfdfdffffffffbfbfb090909
+f4f4f4f6f6f6ffffffffffff000000f6f6f6f2f2f2ecececffffffedededf1f1f1eeeeee
+ffffff323232f3f3f3ffffffffffff000000fffffff8f8f8000000fefefefcfcfc000000
+f4f4f4ffffff000000ffffffffffffefefeff7f7f7ffffff0d0d0deeeeeeffffffffffff
+f8f8f8edededdededefffffffbfbfbfcfcfcfdfdfdfefefefffffffffffffffffffefefe
+ffffffddddddffffffffffffeaeaeafffffff1f1f1000000ffffffefefefeaeaeaf8f8f8
+fefefe0c0c0cfbfbfbfefefef8f8f8fafafaf9f9f91d1d1dedededeeeeeeffffffefefef
+ecececffffff000000fffffff1f1f1ffffffe9e9e9050505fefefeffffffffffffe0e0e0
+ffffffffffff131313e4e4e4ffffff000000ffffffe8e8e8f3f3f3ffffffe1e1e1000000
+ffffffd9d9d9f8f8f8fffffff4f4f4e9e9e9fefefe141414f1f1f1f0f0f0fffffff2f2f2
+ffffffe6e6e6070707f1f1f1fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fdfdfdfefefefffffffffffffffffffffffffefefefefefefffffffafafafefefeececec
+fcfcfcfffffff1f1f1fffffff3f3f3fffffffffffffefefef9f9f9f4f4f4f9f9f9f1f1f1
+f5f5f5e5e5e5080808fdfdfdecececfffffffffffff4f4f4000000fffffffdfdfdf8f8f8
+f1f1f1080808fffffff6f6f6efefef161616f0f0f0fafafaffffffe3e3e3ffffff242424
+ffffff000000ffffffe0e0e0fafafaffffffefefefffffff000000ffffffe1e1e1151515
+f4f4f4f7f7f7fffffffffffffcfcfc000000f5f5f5fffffffdfdfdfffffffcfcfcf0f0f0
+050505fcfcfcf7f7f7f3f3f3ffffff1a1a1afffffffefefedfdfdffffffffbfbfb121212
+e8e8e8ffffff000000ffffffe6e6e6fffffff0f0f0dcdcdc050505ffffffe7e7e7ffffff
+000000fcfcfcf5f5f5fffffffffffff6f6f6fefefeffffff101010ffffffececec020202
+e6e6e60a0a0af7f7f7ffffffffffffd5d5d5fffffff9f9f9f7f7f7ededed101010f5f5f5
+fbfbfbffffff000000ffffffe6e6e6000000ffffffeaeaea121212d2d2d2fafafa000000
+fcfcfcfffffffcfcfcfffffffafafa000000ffffffeeeeeefffffff3f3f3fafafaf9f9f9
+fefefef5f5f5f9f9f9fffffff6f6f6e9e9e9f8f8f8ffffff000000f1f1f1f9f9f9f1f1f1
+f8f8f8f5f5f5ffffffe0e0e0ffffff000000edededfffffff8f8f8edededfffffffdfdfd
+f1f1f1f7f7f7010101fefefef9f9f9fffffffffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000030303030303000000000000fffffff2f2f2070707000000050505fffffffbfbfb
+ecececfffffff3f3f3070707060606080808fafafaf7f7f71616160a0a0af6f6f6f3f3f3
+f4f4f4ffffff050505000000ffffffffffff000000090909fefefef8f8f8e1e1e1ffffff
+000000141414fffffff3f3f3020202030303ecececf7f7f7fafafaf3f3f3090909070707
+ffffffeaeaea050505070707f8f8f8f7f7f7ffffff000000020202fefefef6f6f6fdfdfd
+0606060202020d0d0d1515151010100d0d0df5f5f5eeeeeefffffff0f0f0fffffff3f3f3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ffffffe7e7e7fefefefefefe111111eeeeeefffffff5f5f5fcfcfcfffffffefefef1f1f1
+fdfdfdfdfdfd010101fcfcfcfffffffdfdfde7e7e7fffffffcfcfc060606f1f1f1f5f5f5
+fdfdfdefefeffffffff7f7f7fafafa111111000000090909101010000000141414020202
+ffffff000000fffffff2f2f2e6e6e6fffffff2f2f2000000ffffffefefeff4f4f4050505
+fffffffbfbfbf0f0f0eeeeee070707f6f6f6ffffffffffffffffff010101000000171717
+000000000000ffffffe1e1e1f6f6f6050505fffffffafafa040404ffffffffffff000000
+ffffffefefef070707030303010101181818070707000000000000fffffff6f6f6fefefe
+e6e6e6fffffff0f0f0fdfdfdfcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+f3f3f3fffffffafafae9e9e9ffffffddddddfffffffdfdfd000000fffffffffffff8f8f8
+ffffff0e0e0ef3f3f3f8f8f8f9f9f9fffffffafafa070707f2f2f2fcfcfcddddddf8f8f8
+ffffffd9d9d9262626f5f5f5f7f7f7fffffffefefe060606dededef3f3f3f8f8f8ffffff
+fafafaf4f4f4000000fffffff5f5f50b0b0bebebebfffffffffffffafafaededed191919
+f0f0f0fdfdfdffffff0000001313130000000e0e0e060606ffffffffffffecececffffff
+eeeeeef4f4f40c0c0cf8f8f8fcfcfcfdfdfdfdfdfdfefefefefefefdfdfdfdfdfdfcfcfc
+fffffffffffffffffffffffffffffffffffffefefefefefefcfcfcfefefefbfbfbffffff
+f9f9f9f8f8f8fffffff8f8f8fbfbfbfffffffffffff5f5f5fdfdfdffffffeeeeeefcfcfc
+ffffffffffff030303f5f5f5f3f3f3fffffffffffff5f5f5030303fbfbfbfefefefcfcfc
+fafafa090909e9e9e9fffffff8f8f80101011212120000000d0d0d090909020202000000
+fafafa050505f1f1f1fffffff8f8f8e8e8e8fffffff2f2f2111111f6f6f6ffffff000000
+ffffffefefeffdfdfdf7f7f7f9f9f9151515f2f2f2ffffffeeeeeefdfdfdfdfdfdfdfdfd
+000000fffffff4f4f4fefefeffffff0000000404040000000b0b0b0e0e0e000000000000
+ffffffededed080808dededeffffffe5e5e5fffffff7f7f7fffffff0f0f0eeeeeefdfdfd
+0f0f0febebebfefefee2e2e2fffffffffffff9f9f9f9f9f9000000e6e6e6ffffff000000
+ffffff070707fdfdfdf4f4f4f4f4f4ffffff000000070707151515060606000000ffffff
+f5f5f5fefefe000000fffffff9f9f90a0a0afafafafcfcfc020202fbfbfbffffff000000
+0404040000001313130000000202020b0b0b000000fffffff2f2f2f5f5f5fffffff5f5f5
+fffffffafafaffffffe4e4e4fafafaffffffe8e8e8010101fefefef4f4f4fdfdfdffffff
+f2f2f2ffffffe3e3e3f7f7f7010101f7f7f7f6f6f6f8f8f8f1f1f1fffffff4f4f4fafafa
+fffffff2f2f2050505ffffffffffffe7e7e7fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfb0303030e0e0e000000ededed
+eeeeeef7f7f7ffffff070707000000f8f8f8fffffff3f3f3060606171717f3f3f3fdfdfd
+fafafaffffff0000000d0d0df1f1f1fcfcfc1d1d1d000000e2e2e2fdfdfdf5f5f5f9f9f9
+050505060606f7f7f7ffffff0000000f0f0ffcfcfcfffffffffffff9f9f90a0a0a000000
+ffffffefefef131313121212f5f5f5ecececffffff0606060a0a0affffffffffff000000
+fffffffffffffcfcfc010101010101343434ecececefefefffffffe0e0e0fdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ffffffedededfefefeffffff000000f9f9f9fffffff7f7f7efefeffffffff8f8f8ffffff
+fbfbfbeeeeee080808f0f0f0f3f3f3f2f2f2fbfbfbebebebffffff000000e3e3e3ffffff
+fffffff6f6f6efefeffffffffbfbfb000000fffffff1f1f1ffffffd9d9d9fffffffefefe
+ececec191919eaeaeafdfdfdfffffff9f9f9ffffff040404fbfbfbfefefeffffff101010
+fbfbfbfffffff5f5f5f8f8f8060606fffffff1f1f1fbfbfb0f0f0ff0f0f0fefefef6f6f6
+f4f4f4030303fffffff0f0f0ffffff0f0f0ff5f5f5f2f2f20d0d0deaeaeaf3f3f3121212
+fefefefefefe070707f0f0f0fafafae7e7e7fefefefbfbfbfffffff0f0f0fffffff4f4f4
+fcfcfce8e8e8fffffffafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbfafafaf8f8f8181818e1e1e1f5f5f5ffffff
+ffffff000000ffffffeeeeeef8f8f8fffffff5f5f5010101ffffffebebebf4f4f4ffffff
+ecececffffff000000fffffffafafafffffff0f0f0010101f8f8f8fffffff9f9f9fafafa
+ffffffededed0b0b0be7e7e7f7f7f7000000fffffffefefeedededffffffffffff000000
+fcfcfcffffff000000f4f4f4fffffff9f9f9f7f7f7000000fdfdfdffffffedededf1f1f1
+fdfdfdffffff050505e7e7e7ffffffecececfbfbfbfffffff2f2f2fdfdfddfdfdff4f4f4
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfcfcfcfdfdfdfffffffffffffefefefdfdfdfcfcfc
+ffffffe9e9e9000000ffffffe3e3e3ffffffebebebffffff0a0a0afffffff0f0f0f2f2f2
+eeeeee181818ffffffffffffeaeaea171717e4e4e4ffffffe9e9e9f8f8f8fbfbfbfcfcfc
+fafafa171717f1f1f1ffffffe9e9e9fffffff3f3f3ffffff000000ffffffebebeb000000
+fffffffffffffbfbfbf9f9f9ffffff000000fafafafbfbfbffffffe7e7e7fffffff4f4f4
+000000fcfcfce5e5e5f5f5f5ffffff0d0d0dfafafaffffffffffffe1e1e1fffffff9f9f9
+fffffff2f2f20b0b0bffffffffffffd2d2d2ffffffe7e7e7f5f5f5f9f9f9fffffffdfdfd
+080808fefefef9f9f9ffffffefefeffffffff1f1f1f6f6f61b1b1beaeaeafffffffcfcfc
+000000121212ffffffefefeff5f5f51f1f1fe4e4e4fffffff7f7f7f9f9f91e1e1edddddd
+fefefef0f0f00c0c0cf9f9f9e9e9e91b1b1bf3f3f3fefefe030303fafafaffffff000000
+f3f3f3f3f3f3fefefef5f5f5fcfcfcffffffeaeaeafffffffffffff5f5f5ffffffefefef
+edededfffffff0f0f0f5f5f5ffffffecececececec080808ecececfffffff0f0f0ebebeb
+fefefeffffffffffffffffff030303fffffffffffffffffff8f8f8fafafaffffffefefef
+fffffff3f3f3060606f6f6f6fffffffffffffdfdfdfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfb0b0b0b000000141414ffffff
+ffffffffffff000000000000fffffff3f3f3f7f7f7fefefe111111000000ffffffffffff
+f7f7f7060606040404f5f5f5fffffffefefe0000001e1e1ee9e9e9fffffff2f2f2ffffff
+090909000000fdfdfdf2f2f2ffffff040404010101f5f5f5f5f5f5020202060606ffffff
+f3f3f3fcfcfc000000101010fffffff9f9f9f6f6f6060606080808fefefefbfbfb050505
+f8f8f8f6f6f6ffffffe3e3e3121212000000ffffffffffffe2e2e2fffffff2f2f2f4f4f4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff6f6f6f9f9f9ededed090909fffffff8f8f8fefefeffffffefefeffcfcfcf5f5f5
+fdfdfdf7f7f7000000ffffffe0e0e0fffffffcfcfcffffffffffff000000ffffffd8d8d8
+e4e4e4efefeffffffffefefefbfbfbffffff000000ffffffeeeeeefffffffcfcfc000000
+f7f7f7fdfdfd101010eaeaeafffffffbfbfb0000000b0b0bf4f4f4fcfcfceaeaea040404
+fbfbfbfdfdfdfafafafdfdfd060606f6f6f6fefefef0f0f0000000fffffffefefef8f8f8
+0c0c0c000000f5f5f5fffffffafafa000000ffffffe9e9e9040404fffffffdfdfd000000
+f7f7f7f5f5f5e7e7e7181818ffffffffffffeaeaeaffffff010101fffffff7f7f7f0f0f0
+eeeeee171717000000efefeffbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafa000000fafafaffffffffffff
+f2f2f2ffffff020202fffffffefefef3f3f30b0b0b000000f7f7f7fffffffdfdfdefefef
+fffffff0f0f0000000fffffffcfcfcfefefefffffff5f5f5030303fffffff9f9f9efefef
+f6f6f60b0b0bebebebfffffffbfbfb0d0d0d000000f8f8f8f9f9f9ffffff151515fafafa
+eaeaeaf9f9f9191919ebebebfffffff9f9f9070707010101f8f8f8fffffff9f9f9f8f8f8
+ffffffefefef000000fffffff4f4f4fefefefffffff4f4f4ffffffffffff010101040404
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfcfcfcfdfdfdfefefefefefefefefefdfdfdfcfcfc
+f3f3f3fafafa111111edededfffffffffffff6f6f6f1f1f1000000fefefefdfdfdededed
+ffffff000000ffffffe5e5e5ffffffeaeaea050505f6f6f6f4f4f4ffffffffffff000000
+ffffffeaeaea070707fdfdfdf6f6f6fbfbfbfefefe000000fbfbfbffffffffffff080808
+000000f9f9f9eeeeeefdfdfd000000fffffffffffff1f1f1f0f0f0ffffffe9e9e9ffffff
+060606efefeffffffffffffffdfdfdf3f3f3000000f1f1f1e5e5e5fffffff7f7f7121212
+f4f4f4ffffffffffff000000e8e8e8ffffffe3e3e3ffffff050505fffffff4f4f4f0f0f0
+000000fffffff5f5f5ffffff000000ebebebfffffff1f1f1050505ebebebfefefeffffff
+0f0f0f000000fbfbfbffffffffffff000000fffffff7f7f7f0f0f0000000030303ffffff
+fefefef0f0f0101010ffffffffffff060606e6e6e6fdfdfd000000fbfbfbfefefef1f1f1
+0f0f0ffffffffdfdfdf4f4f4ededed080808000000e3e3e3fffffffefefef0f0f0ffffff
+f9f9f9fefefeecececfffffff8f8f8f9f9f9ffffff000000f4f4f4f6f6f6fefefeffffff
+f8f8f8eaeaeaf8f8f8ededed080808fdfdfdf5f5f5fefefefffffff3f3f3f8f8f8ffffff
+f0f0f0ffffff020202fffffffafafafdfdfdfffffff4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbfcfcfceaeaea0c0c0c000000
+0000000000000d0d0dfffffff7f7f7f1f1f1ffffffededed0a0a0a0f0f0f050505000000
+050505000000ffffffecececfdfdfdf4f4f40404040505050e0e0e000000f3f3f3000000
+0000000e0e0e0e0e0ef7f7f7f9f9f90101010a0a0a0808080808080b0b0b020202fbfbfb
+ffffff0707070000000a0a0a000000ffffff151515000000000000000000ffffff0e0e0e
+050505000000050505101010000000fffffffefefee1e1e1fcfcfceeeeeefffffff1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff0f0f0ffffffffffff000000fffffffdfdfdf3f3f3eeeeeeeeeeeefffffff5f5f5
+ffffffffffff080808f2f2f2ffffffd7d7d7f7f7f7f8f8f80000000d0d0d000000010101
+f1f1f1fffffffafafae5e5e5fffffff4f4f4ededed0303030b0b0b000000000000ffffff
+f6f6f6ebebebffffff0202020000001a1a1afcfcfc000000fffffffafafa0404040d0d0d
+000000fffffff2f2f2141414000000000000fffffffbfbfbffffff1b1b1b0000000f0f0f
+fbfbfb000000070707efefef0606060e0e0e000000ffffff0f0f0f000000f9f9f9090909
+0f0f0feeeeeefffffffefefe000000000000070707070707ecececf0f0f0efefefffffff
+ededed0303031b1b1bf9f9f9fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfdfdfd121212f7f7f7f9f9f9eeeeee
+fffffffefefeefefef0d0d0d0000000a0a0afcfcfc121212ffffffe4e4e4f6f6f6ffffff
+0404040000000d0d0d090909000000fffffff8f8f8fdfdfdf6f6f60101010e0e0e030303
+020202f9f9f9f6f6f6f5f5f5050505000000ffffff030303151515000000fcfcfcfbfbfb
+fffffff9f9f9ffffff0f0f0f000000000000ffffff010101000000fafafaf7f7f7ececec
+0000002b2b2b080808000000141414fafafaf2f2f2ffffffd9d9d9f7f7f7060606000000
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfcfcfc
+0d0d0d191919000000000000070707fafafafafafa060606010101101010f1f1f1ffffff
+000000000000000000fffffff6f6f6f9f9f9f8f8f80000000b0b0b121212000000eeeeee
+f1f1f1fffffffafafa0b0b0b1515150a0a0a0c0c0cf8f8f8f3f3f3f9f9f9020202000000
+ffffff080808000000181818ecececf9f9f9fffffff2f2f2fcfcfcfdfdfdfcfcfcfafafa
+000000ffffffdbdbdbf6f6f6ffffffecececf1f1f11c1c1c070707080808030303f6f6f6
+fefefef9f9f9fbfbfbffffff0404040505050f0f0f000000d9d9d9fffffffbfbfbffffff
+f6f6f61c1c1c0000000a0a0afafafaf6f6f6e5e5e5030303000000141414fcfcfce6e6e6
+fbfbfb000000e5e5e5ffffffe8e8e8ffffff000000070707000000ffffff000000000000
+ffffff212121000000000000fbfbfb0707070f0f0ffefefe0000000a0a0af8f8f8e9e9e9
+ffffff0000001d1d1d121212080808fdfdfdfffffffdfdfdfffffffbfbfbf2f2f2ffffff
+f1f1f1f7f7f7f7f7f7ffffffddddddfafafaf1f1f1000000fffffff6f6f6f6f6f6fafafa
+e9e9e9fdfdfdfffffff0f0f0060606fcfcfcf2f2f2e4e4e4fcfcfcfcfcfcf1f1f1f0f0f0
+ffffffffffff000000ffffffecececedededffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbe9e9e9ffffffebebebe3e3e3
+fffffffcfcfce9e9e9fafafaf7f7f7ecececfcfcfcf2f2f2000000060606fbfbfbffffff
+fffffffcfcfce0e0e0ffffffe2e2e2ffffffdfdfdffdfdfdfffffff3f3f3ffffffffffff
+d8d8d8fffffff1f1f1f9f9f9fffffffafafafefefef6f6f6f5f5f5fafafaf5f5f5fafafa
+ffffffecececffffffe5e5e5ffffffe1e1e1d6d6d6fffffffffffffffffff1f1f1e5e5e5
+f6f6f6f8f8f8fffffff1f1f1e8e8e8f9f9f9fafafafffffffffffff6f6f6f0f0f0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f8f8f8ffffffffffffffffff000000fffffff8f8f8fefefee4e4e4ffffffeeeeeeffffff
+e9e9e9fefefe0a0a0afffffffafafafffffffcfcfcf8f8f8ffffffffffffffffffe5e5e5
+ffffffdfdfdffffffffbfbfbe9e9e9f8f8f8ffffffecececfffffffcfcfcf2f2f2fcfcfc
+fcfcfcfffffff1f1f1fbfbfbffffffddddddffffff0f0f0ff5f5f5dbdbdbffffffdcdcdc
+ffffffd9d9d9fffffff4f4f4ecececfffffff3f3f3e8e8e8f7f7f7f7f7f7fefefef1f1f1
+fffffff9f9f9d8d8d8ffffffffffffe4e4e4eaeaeaf3f3f3fefefef1f1f1f4f4f4ededed
+f2f2f2fefefeecececffffffffffffffffffe1e1e1f6f6f6ffffffe0e0e0fcfcfcfbfbfb
+0e0e0e000000edededfefefefbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffefefefcfcfcfbfbfbfafafafcfcfcfefefeffffff000000f3f3f3f7f7f7ffffff
+edededffffffe7e7e7fdfdfdffffffecececfefefe0a0a0af9f9f9fffffffffffff5f5f5
+f7f7f7ffffffe9e9e9fffffffffffff5f5f5fffffffafafafffffff4f4f4f0f0f0efefef
+fffffff5f5f5f3f3f3fdfdfdffffffe6e6e6f6f6f6ffffffebebebf0f0f0fffffff3f3f3
+f5f5f5ffffffd8d8d8fffffff6f6f6f6f6f6f0f0f0fbfbfbfffffff0f0f0ffffffffffff
+e1e1e1fffffff2f2f2ffffffecececfdfdfdfffffffefefeffffff000000121212ffffff
+fcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+dbdbdbfffffff9f9f9f6f6f6e7e7e7f3f3f3fffffff4f4f4fffffff3f3f3f6f6f6fcfcfc
+e5e5e5ffffffffffffeaeaeafffffff8f8f8fafafafffffff5f5f5ebebebf2f2f2ffffff
+fcfcfcf7f7f7efefeffbfbfbeaeaead8d8d8f3f3f3fffffffdfdfdefefeffafafaffffff
+edededefefeffffffff6f6f6ffffffefefefefefeffcfcfcffffffe8e8e8fffffffcfcfc
+141414f3f3f3fdfdfdffffffd7d7d7ffffffffffffdbdbdbf4f4f4fffffffffffff9f9f9
+f4f4f4fffffffffffff5f5f5efefefe7e7e7fdfdfdf7f7f7fffffffcfcfcefefeff4f4f4
+fcfcfcf2f2f2f6f6f6e4e4e4fffffffbfbfbfcfcfcfffffffefefee8e8e8fffffffcfcfc
+f8f8f8ffffffffffffe0e0e0ffffffe8e8e8ecececfafafafffffff1f1f1f2f2f2f9f9f9
+ffffffebebebfffffffffffff0f0f0edededefefeffffffff0f0f0f5f5f5fbfbfbffffff
+edededfffffffefefeeeeeeefffffff3f3f3000000fffffff9f9f9d4d4d4fcfcfcf7f7f7
+fffffffbfbfbffffffd9d9d9fbfbfbffffffffffff181818f1f1f1fffffff0f0f0f2f2f2
+ffffffededede7e7e7fdfdfd000000e2e2e2fffffffffffffffffffffffffdfdfdfafafa
+fdfdfde9e9e9151515ffffffffffffebebebf7f7f7fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbffffffe4e4e4fefefef5f5f5
+e6e6e6fbfbfbfcfcfcf0f0f0fffffffffffffdfdfdffffff000000131313f8f8f8ffffff
+ffffffeeeeeefffffff5f5f5fffffff0f0f0fffffff7f7f7e3e3e3ffffffebebebf3f3f3
+ffffffe5e5e5fffffffffffff8f8f8fffffffffffff7f7f7f6f6f6fbfbfbfffffff2f2f2
+f0f0f0fffffff4f4f4fffffffffffff9f9f9ffffffeaeaeaefefeff5f5f5edededffffff
+f8f8f8fffffffcfcfcfffffffffffff4f4f4fcfcfcefefeff9f9f9fffffffffffff0f0f0
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+f0f0f0f7f7f7ffffffffffff050505030303000000f7f7f7f2f2f2ffffffdfdfdff4f4f4
+ffffffd8d8d8ebebeb000000cacacaffffffffffffe6e6e6fdfdfdedededf2f2f2ffffff
+ffffffe4e4e4fffffffdfdfdf6f6f6ffffffdcdcdce7e7e7eeeeeef5f5f5ffffffeeeeee
+edededfffffff0f0f0fdfdfdffffffffffff000000f0f0f0f0f0f0ffffffe7e7e7ffffff
+e8e8e8fdfdfdfbfbfbfafafafffffffbfbfbfcfcfcfffffffcfcfcffffffffffffededed
+f4f4f4fffffffffffffafafafbfbfbf7f7f7fffffff6f6f6f1f1f1f4f4f4fffffffbfbfb
+fffffff1f1f1e1e1e1e8e8e8ffffffecececf4f4f4f4f4f4dbdbdbfffffffbfbfbf9f9f9
+0d0d0df0f0f0fefefef9f9f9fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffefefefcfcfcfbfbfbfafafafcfcfcfefefeffffffebebeb111111edededfefefe
+f4f4f4fffffffffffff2f2f2ffffffffffff000000eeeeeefafafafbfbfbfafafaf9f9f9
+fffffff8f8f8fefefee3e3e3fdfdfdf4f4f4f7f7f7f8f8f8efefeff5f5f5fffffff8f8f8
+f4f4f4fafafafcfcfcfffffff9f9f9e8e8e8eeeeeedbdbdbe0e0e0fffffff0f0f0fbfbfb
+f6f6f6fafafaffffffddddddfefefeffffffe8e8e8ffffffedededfdfdfde9e9e9e2e2e2
+ffffffeaeaeaf5f5f5fefefeffffffdbdbdbf2f2f2ffffffe8e8e80f0f0feeeeeee9e9e9
+fbfbfbfbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+ffffffe7e7e7f0f0f0fffffff9f9f9f8f8f8fbfbfbf7f7f7f7f7f7fafafaf7f7f7ffffff
+fafafaeaeaeafffffffcfcfcf4f4f4f8f8f8fffffff0f0f0fffffffffffff4f4f4eaeaea
+fffffffafafaffffffefefeffffffffffffff6f6f6fbfbfbf5f5f5f7f7f7fffffff3f3f3
+f5f5f5fffffff5f5f5ffffffe7e7e7edededfffffffefefef1f1f1ffffffe8e8e8050505
+fefefee1e1e1fdfdfdfefefefffffffbfbfbe4e4e4fffffff9f9f9fffffffdfdfdf0f0f0
+ffffffe7e7e7f8f8f8fffffffffffffcfcfcfafafafefefee5e5e5ffffffffffffffffff
+fafafafffffff6f6f6ffffffd8d8d8f8f8f8e6e6e6fffffff7f7f7fffffff6f6f6ffffff
+f9f9f9e3e3e3fffffffbfbfbe9e9e9fffffff9f9f9fffffff4f4f4fefefef1f1f1ffffff
+ffffffffffffffffffecececfafafafffffffdfdfdf4f4f4fffffff9f9f9fffffff8f8f8
+e9e9e9fafafaffffffebebebfffffff4f4f4fefefef1f1f1f1f1f1fffffffffffff5f5f5
+fffffff4f4f4fbfbfbfffffff0f0f0ececec000000eaeaeaf0f0f0f0f0f0fffffffefefe
+e0e0e0ffffffe4e4e4141414f9f9f9ffffffdbdbdbe2e2e2f1f1f1f7f7f7fdfdfdf0f0f0
+000000141414000000d5d5d5ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbffffffefefefeeeeeeffffff
+fafafaf0f0f0fffffff2f2f2f5f5f5f4f4f4dfdfdf0c0c0c0808080000001010100d0d0d
+eaeaeafffffff3f3f3e0e0e0fffffffafafafafafafcfcfcf8f8f8eeeeeefafafaededed
+f6f6f6fdfdfdf9f9f9f7f7f7ffffffe8e8e8e4e4e4ffffffffffffe5e5e5e9e9e9ffffff
+fffffffdfdfdfdfdfde4e4e4ebebebf9f9f9e9e9e9f4f4f4fffffff2f2f2ffffffe2e2e2
+ffffffe7e7e7fefefef0f0f0f1f1f1e6e6e6fffffff7f7f7f9f9f9f4f4f4fafafaffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+fffffff4f4f4eeeeeef3f3f3ecececffffffdbdbdbffffffffffffeaeaeaeaeaeaffffff
+f2f2f2ffffffffffffe5e5e5ffffffebebebf8f8f8ffffffedededf6f6f6ffffffe3e3e3
+ffffffffffffefefeffffffffffffffafafafbfbfbfffffff8f8f8fffffff1f1f1fcfcfc
+ffffffeaeaea0000000e0e0e0000000d0d0dfffffffefefef2f2f2eeeeeef2f2f2fbfbfb
+f3f3f3fffffff1f1f1f9f9f9fdfdfdeaeaeafbfbfbe7e7e7f6f6f6d9d9d9fffffff0f0f0
+fffffff3f3f3f5f5f5ebebebf5f5f5ffffffd7d7d7fffffffdfdfdffffffc7c7c7fafafa
+f6f6f6f6f6f6ffffffffffffeaeaeafffffffdfdfdffffffffffffffffffffffffeeeeee
+fcfcfcfefefeffffffecececfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfdfdfdffffffe2e2e2fffffff1f1f1
+fffffff7f7f7000000000000000000000000fffffffffffff1f1f1fbfbfbffffffeeeeee
+ededede7e7e7ffffffffffffebebebffffffffffffdededefdfdfdfbfbfbffffffeeeeee
+fffffff4f4f4ffffffeeeeeefbfbfbfffffffffffff0f0f0ffffffefefeffcfcfcffffff
+fffffffbfbfbe6e6e6fffffffefefee1e1e1ffffffe8e8e8f5f5f5ffffffffffffffffff
+d3d3d3f9f9f9fafafaffffffe3e3e3fffffffefefeedededf6f6f6f5f5f5fffffff9f9f9
+fafafafbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f0f0f0e0e0e0ffffffe8e8e8e6e6e6ffffffe4e4e4fcfcfcffffffd1d1d1ffffffeeeeee
+ebebebfffffffbfbfbf9f9f9e4e4e4fffffffbfbfbffffffefefeffafafaf7f7f7fefefe
+e7e7e7fcfcfcfdfdfdf8f8f8e7e7e7fcfcfce6e6e6fbfbfbffffffffffffe6e6e6f9f9f9
+fffffff4f4f4fafafaf0f0f0ffffffedededfdfdfdf5f5f50f0f0f0a0a0a0b0b0bfafafa
+f6f6f6fffffff1f1f1eaeaeafbfbfbfffffff8f8f8fbfbfbfffffff2f2f2ebebebfefefe
+f4f4f4fffffffefefef8f8f8ffffffe2e2e2efefeffffffffffffff0f0f0f6f6f6f7f7f7
+f8f8f8f6f6f6fffffff5f5f5f5f5f5fffffffbfbfbe1e1e1fffffffdfdfdfcfcfce8e8e8
+fffffffafafafffffffdfdfdf3f3f3f0f0f0e5e5e5f5f5f5f3f3f3fffffff4f4f4e8e8e8
+e6e6e6fefefeeeeeeef6f6f6fffffffffffffcfcfcffffffeaeaeafffffffbfbfbededed
+fffffff1f1f1ebebebffffff050505ffffff000000ffffff000000f0f0f0efefefffffff
+e9e9e9f0f0f0f2f2f2fdfdfdffffffffffffdcdcdcfffffffbfbfbfffffff4f4f4f8f8f8
+fdfdfdf9f9f9fffffff8f8f8f2f2f2f8f8f8f7f7f7fffffffafafaf9f9f9fffffffbfbfb
+fefefefefefef0f0f0fffffffbfbfbf4f4f4f9f9f9fafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbfffffff6f6f6ffffffeeeeee
+fefefef2f2f2f6f6f6fafafae6e6e6ffffffffffffe6e6e6fffffffafafaf6f6f6f9f9f9
+ffffffdcdcdcffffffffffffe7e7e7fffffff0f0f0fffffffffffff5f5f5f7f7f7ffffff
+f4f4f4fdfdfdffffffe0e0e0eeeeeefafafafffffff3f3f3f4f4f4fffffffbfbfbefefef
+e5e5e5fffffff7f7f7fffffffffffff2f2f2f1f1f1fffffffbfbfbf7f7f7f3f3f3ffffff
+f3f3f3fffffffefefef5f5f5fffffffffffff2f2f2f0f0f0fffffffcfcfcfdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ecececeeeeeefffffffefefef8f8f8ffffffffffffdbdbdbfffffff0f0f0fffffffefefe
+e6e6e6f1f1f1f0f0f0fafafafbfbfbf8f8f8fbfbfbfffffff7f7f7ffffffe4e4e4ffffff
+f5f5f5dcdcdcfffffff1f1f1fdfdfdf1f1f1ffffffdededeffffffdfdfdffffffff5f5f5
+f5f5f5ffffffffffffe2e2e2ffffffffffffd8d8d8fffffff7f7f7fffffffffffffafafa
+fffffffafafafffffffefefefcfcfcf3f3f3fffffffafafaffffffffffffdadadaffffff
+fffffff0f0f0fffffffffffffffffffafafaededede0e0e0f5f5f5f7f7f7ffffffffffff
+fefefeedededfffffffffffff2f2f2f8f8f8fafafaf4f4f4ffffffe6e6e6f2f2f2fcfcfc
+e8e8e8ffffffefefeffefefefbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafad1d1d1ffffffeeeeeeebebeb
+ffffffe6e6e6fffffff5f5f5fffffff2f2f2edededf6f6f6efefefedededfafafaffffff
+f8f8f8ffffffe8e8e8f0f0f0fffffff6f6f6dfdfdffffffffdfdfdf6f6f6ffffffffffff
+fbfbfbf8f8f8ddddddfffffff5f5f5f9f9f9f3f3f3fffffff7f7f7d9d9d9ffffffeaeaea
+f7f7f7fffffffffffff3f3f3fdfdfdf1f1f1f6f6f6fbfbfbffffffe9e9e9f8f8f8e9e9e9
+ffffffffffffebebebfffffff1f1f1fffffff9f9f9f9f9f9ffffffe9e9e9ecececf6f6f6
+f9f9f9fafafafcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfcfcfc
+f0f0f0fffffff1f1f1ffffffffffffdfdfdff8f8f8fffffff5f5f5ffffffe3e3e3e5e5e5
+fffffffffffff0f0f0ffffffffffffebebebfafafaf6f6f6f7f7f7ffffffefefefffffff
+ffffffedededfffffffefefefbfbfbffffffeeeeeeffffffe8e8e8e3e3e3fffffff0f0f0
+f3f3f3fffffffffffffefefef3f3f3fbfbfbfffffffffffffbfbfbf2f2f2dcdcdcffffff
+f9f9f9fffffffffffff9f9f9f5f5f5fffffff9f9f9f9f9f9eeeeeee0e0e0ffffffffffff
+e9e9e9ffffffedededffffffeaeaeafffffffefefef8f8f8f0f0f0fafafafcfcfcffffff
+fcfcfcfffffffbfbfbf8f8f8ffffffe9e9e9efefeffffffff3f3f3fefefefdfdfdffffff
+e6e6e6ffffffe0e0e0f6f6f6ffffffe5e5e5fffffffbfbfbffffffe9e9e9fffffffcfcfc
+fffffff8f8f8fbfbfbfffffff4f4f4f8f8f8ebebebfafafafffffffffffff7f7f7fafafa
+ebebebfffffff7f7f7e8e8e8f4f4f4fefefef9f9f9f4f4f4f1f1f1fffffffbfbfbf2f2f2
+fafafaffffffffffffffffffe6e6e6eeeeeeffffffe5e5e5f1f1f1fffffff6f6f6ffffff
+fffffff0f0f0f5f5f5fffffff1f1f1fdfdfdfffffff6f6f6f6f6f6ffffffffffffe6e6e6
+f0f0f0f2f2f2fffffff7f7f7f9f9f9fafafafffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbf4f4f4fdfdfde4e4e4f2f2f2
+fffffffffffff6f6f6fbfbfbffffffe4e4e4f6f6f6f9f9f9fafafaffffffe5e5e5fefefe
+f8f8f8fbfbfbf3f3f3fdfdfdf6f6f6eaeaeaffffffd6d6d6f6f6f6f5f5f5fffffff9f9f9
+ebebebffffffefefeffefefefcfcfcfffffff7f7f7f2f2f2f1f1f1f4f4f4fffffff6f6f6
+fffffffcfcfcf6f6f6fafafaddddddfffffffdfdfde7e7e7fcfcfcf6f6f6fffffffefefe
+f7f7f7fffffff2f2f2ffffffecececfefefefffffff8f8f8f9f9f9fbfbfbf4f4f4ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffbfbfbfffffffcfcfc
+ffffffffffffedededf7f7f7fbfbfbfcfcfcf8f8f8fdfdfdfdfdfdfffffff7f7f7f7f7f7
+fffffffdfdfdfffffffcfcfcffffffe4e4e4fcfcfcf9f9f9ffffffecececf4f4f4f2f2f2
+fffffff7f7f7f5f5f5fcfcfcf6f6f6ffffffefefeffffffffefefef4f4f4fffffff0f0f0
+ffffffefefefedededffffffe9e9e9f6f6f6fffffff3f3f3fcfcfcfdfdfdf3f3f3ffffff
+ecececffffffe3e3e3fffffff6f6f6ffffffe4e4e4ffffffffffffe5e5e5fefefef9f9f9
+f5f5f5ffffffe5e5e5fcfcfceeeeeee8e8e8fffffffffffff6f6f6eaeaeaf6f6f6e9e9e9
+fffffff6f6f6fffffffefefefffffff9f9f9e8e8e8fdfdfdf4f4f4fffffffcfcfcffffff
+fbfbfbe9e9e9fffffffefefefbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfbfbfbfafafaf8f8f8fffffffbfbfbf8f8f8ffffff
+fcfcfcf2f2f2fcfcfcf5f5f5e0e0e0fffffff1f1f1fffffff2f2f2fffffff3f3f3fefefe
+f9f9f9eeeeeefafafaf3f3f3fffffffefefefffffff6f6f6fafafafbfbfbf3f3f3ffffff
+eeeeeefffffff0f0f0fffffffdfdfdf4f4f4ffffffe6e6e6fffffffffffff1f1f1ffffff
+ffffffe8e8e8f8f8f8ffffffddddddfefefefdfdfdeeeeeef5f5f5fffffff3f3f3ffffff
+f6f6f6fffffffbfbfbfbfbfbfffffffdfdfdfffffff9f9f9ebebebffffffffffffffffff
+f9f9f9fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfcfcfc
+fcfcfcefefeffefefefdfdfdf3f3f3ecececfffffff4f4f4fffffff8f8f8e8e8e8ffffff
+f7f7f7f5f5f5ffffffe7e7e7f6f6f6f6f6f6fffffff7f7f7fffffffffffff5f5f5f7f7f7
+f5f5f5fffffffdfdfdfbfbfbffffffefefeffbfbfbfefefefffffffafafaf4f4f4f9f9f9
+fcfcfcfffffffffffff5f5f5f1f1f1ffffffe5e5e5f1f1f1fafafafafafaffffffe6e6e6
+fffffff1f1f1e6e6e6ffffffe7e7e7f6f6f6ffffffffffffffffffffffffe8e8e8f5f5f5
+f4f4f4fefefef2f2f2ffffffffffffffffffedededf6f6f6fbfbfbfffffffafafaf2f2f2
+efefeffffffffffffffdfdfdfffffff5f5f5fefefeecececf8f8f8ffffffeeeeeef7f7f7
+ffffffcfcfcffffffff7f7f7eeeeeefffffff2f2f2fcfcfcf9f9f9ffffffe6e6e6ffffff
+fbfbfbfbfbfbfffffffcfcfcf6f6f6fefefefffffff5f5f5fefefefcfcfcfdfdfdfbfbfb
+fffffff2f2f2f6f6f6fffffffbfbfbfffffff1f1f1fffffff9f9f9fcfcfcfffffffefefe
+ffffffe6e6e6fbfbfbf5f5f5f5f5f5fffffffffffffdfdfdefefeffafafafafafaffffff
+f7f7f7f1f1f1fffffffdfdfdf5f5f5fcfcfcfdfdfdfafafafffffffafafaf3f3f3ffffff
+ffffffebebebfdfdfdf4f4f4fffffffcfcfcffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000000000000000010101f6f6f6fbfbfbf9f9f9fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf6f6f6fefefefffffff8f8f8f8f8f8fffffffefefef6f6f6
+fafafafafafafafafafafafafafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbfafafa989898fffffffefefef3f3f3ffffff
+fffffffffffffffffffcfcfcf8f8f8f7f7f7fafafafdfdfdf9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9fefefefefefefefefefefefefefefefefefefefefefefefe
+f6f6f6f7f7f7f8f8f8fafafafcfcfcfefefefffffffffffffcfcfcfbfbfbfafafaf9f9f9
+f8f8f8f7f7f7f6f6f6f6f6f6fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcfdfdfdfafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefef3f3f3f6f6f6fbfbfbffffff
+fffffffffffffefefefdfdfdf5f5f5f7f7f7fbfbfbfdfdfdfffffffffffffefefefefefe
+fffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcf5f5f5f7f7f7f9f9f9fafafa
+fafafaf9f9f9f7f7f7f5f5f5fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefffffffffffffdfdfdfdfdfdfefefeffffff
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fafafafafafafafafafafafa
+fafafafafafafafafafafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfafafafafafafcfcfcfefefeffffff
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f8f8f8fafafafcfcfcfdfdfdfdfdfdfcfcfcfafafaf8f8f8f8f8f8fcfcfcfffffffdfdfd
+f9f9f9f7f7f7fafafafefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f3f3f3fafafafffffffcfcfcf5f5f5f2f2f2f7f7f7fefefef6f6f6fafafafcfcfcfafafa
+f5f5f5f3f3f3f6f6f6f9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f4f4f4f6f6f6fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfefefefffffffffffffdfdfdf9f9f9
+c5c5c5fffffffffffff9f9f9fffffffdfdfdfefefeffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf7f7f7fffffffffffff9f9f9f9f9f9fffffffffffff7f7f7
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff989898f9f9f9fdfdfdf8f8f8ffffff
+fefefefffffffffffffefefefbfbfbfafafafbfbfbfefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefffffffffffffefefefefefefdfdfdfcfcfc
+fcfcfcfbfbfbfafafafafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffefefefdfdfdfbfbfbfbfbfbfdfdfdfefefefffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfafafafcfcfcffffffffffff
+fffffffffffffefefefdfdfdf9f9f9fbfbfbfefefeffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbf9f9f9fafafafcfcfcfdfdfd
+fdfdfdfcfcfcfafafaf9f9f9fefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfefefefefefefcfcfcfcfcfcfdfdfdfefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fbfbfbfdfdfdfefefefffffffffffffefefefdfdfdfbfbfbfbfbfbfefefeffffffffffff
+fcfcfcfafafafdfdfdfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+f8f8f8fdfdfdfffffffffffff9f9f9f8f8f8fbfbfbfffffff9f9f9fdfdfdfffffffdfdfd
+f9f9f9f7f7f7f9f9f9fdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefefdfdfdfbfbfb
+c8c8c8fffffffffffffcfcfcfffffffefefefdfdfdffffff000000000000000000000000
+000000
+000000000000010101000000030303fafafafffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf9f9f9fffffffffffffbfbfbfbfbfbfffffffffffff9f9f9
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbffffffffffffa0a0a0efefeffcfcfcfefefeffffff
+fbfbfbfdfdfdfffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffefefefdfdfdfdfdfdfefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+fffffffefefefdfdfdfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfdfdfdfefefefefefefcfcfcfcfcfcfdfdfdfefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffefefefdfdfdfcfcfcffffffffffffffffff
+fdfdfdfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffdfdfdfdfdfdfefefefffffffcfcfcffffffffffffffffff
+fcfcfcfafafafcfcfcfffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffffffffefefefdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+cacacafafafafffffffdfdfdfffffffefefefefefefdfdfd000000000000000000000000
+000000
+000000000000010101000000050505fcfcfcfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbfffffffffffffdfdfdfdfdfdfffffffffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfffffff4f4f4a4a4a4cececec9c9c9c3c3c3c2c2c2
+c7c7c7c9c9c9cbcbcbcccccccccccccbcbcbcbcbcbcacacacccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cececececececdcdcdcccccccbcbcbcacacacacacac9c9c9cbcbcbcbcbcbcbcbcbcccccc
+cccccccdcdcdcdcdcdcdcdcdcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cdcdcdcccccccbcbcbcbcbcbcbcbcbcbcbcbcccccccdcdcdcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccfcfcfcecececdcdcdcccccc
+cbcbcbcacacacacacacacacacbcbcbcccccccdcdcdcdcdcdcdcdcdcccccccbcbcbcbcbcb
+cecececdcdcdcdcdcdcdcdcdcccccccccccccbcbcbcbcbcbcacacacbcbcbcccccccdcdcd
+cdcdcdcccccccbcbcbcacacacccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcdcdcdcecececdcdcdcccccccbcbcbcccccccecece
+cccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacaca
+cacacacacacacacacacacacacccccccccccccbcbcbcacacacacacacbcbcbcccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcccccccdcdcdcdcdcdcccccccbcbcbcbcbcbcacacacccccccecececdcdcd
+cbcbcbcacacacbcbcbcdcdcdcccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cdcdcdcccccccbcbcbcbcbcbcccccccdcdcdcccccccbcbcbcacacacccccccecececdcdcd
+cbcbcbcacacacbcbcbcdcdcdcccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccdcdcdcdcdcdcdcdcdcdcdcdcccccccacacac9c9c9cacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacccccccccccccacacac8c8c8c9c9c9cdcdcdd2d2d2
+d0d0d0f5f5f5f8f8f8fafafafffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000010101000000050505fcfcfcfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfffffffffffffefefefefefefffffffffffffcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fafafaffffffe2e2e2fffffffcfcfcfdfdfdffffff
+fbfbfbfcfcfcfdfdfdfffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffffffffdfdfdfefefeffffffffffffffffff
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffefefefbfbfbfcfcfcffffffffffff
+e3e3e3f9f9f9f7f7f7fbfbfbfefefefafafaffffffffffff000000000000000000000000
+000000
+000000000000010101000000050505fcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf7f7f7fbfbfb
+fdfdfdfcfcfcfcfcfcfefefefffffffffffffffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfd
+fdfdfdfefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fefefefefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfefefefffffffffffffdfdfdfdfdfdfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffefefefefefefefefefefefefffffffffffffefefefefefefffffffefefe
+fefefefefefefefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdfefefefefefefefefefefefe
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+f9f9f9fffffffbfbfbfffffffefefef9f9f9fffffffdfdfd000000000000000000000000
+000000
+000000000000010101000000040404fbfbfbffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfffffffffffffdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff0f0f0f1f1f1f2f2f2fcfcfcfcfcfcfcfcfcfffffffcfcfc
+fffffffefefefcfcfcfdfdfdfffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffffffffefefefdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefffffffffffffffffffffffffefefeffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfbfbfb
+fffffffffffffafafafffffffffffff9f9f9fffffffafafa000000000000000000000000
+000000
+000000000000010101000000030303fafafafffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfefefefefefefcfcfcfcfcfcfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfffffff5f5f5fffffffffffff5f5f5
+fffffffdfdfdfafafafafafafcfcfcfefefefefefefcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfefefefefefefefefefefefefefefeffffffffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffefefefdfdfdfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffefefefdfdfdfcfcfcfdfdfdfffffffefefefdfdfdfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefefefefefefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffdfdfdfbfbfbfcfcfcfffffffffffffbfbfbf8f8f8
+fafafaf7f7f7f5f5f5fffffffffffffafafafffffff9f9f9000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffafafaf9f9f9fcfcfcfcfcfcf9f9f9
+fffffffafafaf9f9f9fffffffffffffffffffcfcfcfefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffafafaf9f9f9fcfcfcfcfcfcf9f9f9
+fffffffbfbfbfafafafffffffffffffffffffdfdfdffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffafafafafafafdfdfdfdfdfdfafafa
+fffffffbfbfbfafafafdfdfdfffffffefefefefefeffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffbfbfbfafafafdfdfdfdfdfdfbfbfb
+fefefefcfcfcfbfbfbfcfcfcfdfdfdfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffbfbfbfbfbfbfefefefefefefcfcfc
+fafafafcfcfcfcfcfcfcfcfcfcfcfcfefefeffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffbfbfbfbfbfbfffffffffffffdfdfd
+f6f6f6fbfbfbfefefefcfcfcfcfcfcfefefefffffffefefe000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffdfdfd
+f2f2f2fafafafffffffefefefdfdfdfffffffffffffcfcfc000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffcfcfcfcfcfcfffffffffffffefefe
+f0f0f0fafafafffffffefefefdfdfdfffffffffffffbfbfb000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdfffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffefefe
+f8f8f8fffffff6f6f6fffffffffffffdfdfdeaeaeafffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafa8e8e8ea4a4a4a0a0a09c9c9c989898
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9999999a9a9a9b9b9b9c9c9c
+9c9c9c9c9c9c9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a
+9d9d9d9a9a9a9a9a9a9c9c9c9d9d9d9a9a9a9b9b9b9f9f9f9b9b9b9c9c9c9d9d9d9c9c9c
+9a9a9a9a9a9a9c9c9c9e9e9e9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a999999989898979797
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9b9b9b
+9b9b9b9b9b9b9c9c9c9c9c9c9999999a9a9a9a9a9a9b9b9b9a9a9a9a9a9a999999999999
+9c9c9c9898989696969a9a9a9b9b9b9999999a9a9a9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9ba4a4a4979797949494989898a6a6a6a6a6a6959595959595
+9f9f9fa3a3a39d9d9da2a2a29191919b9b9b969696a4a4a49b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+aaaaaae9e9e9fcfcfcfbfbfbfffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000000000000000050505fcfcfcfffffffefefefefefefdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffff8f8f8f7f7f7f8f8f8f4f4f4ffffffffffffe7e7e7fdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5f8f8f8fcfcfca8a8a8e4e4e4f7f7f7fefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfcfcfcfdfdfdfdfdfd
+fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfffffffffffffefefefffffffffffffdfdfdfefefefffffffefefe
+fcfcfcfcfcfcfefefefffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffefefefefefe
+fffffffefefefcfcfcfffffffffffffefefefefefefffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffafafaf4f4f4f2f2f2f7f7f7ffffff
+fdfdfdf7f7f7f1f1f1fafafafefefef8f8f8fdfdfdfffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+c6c6c6fffffffffffffffffffffffffcfcfcfffffffefefe000000000000000000000000
+000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfdfdfdfcfcfcfcfcfcfbfbfb
+fbfbfbfafafaf9f9f9f9f9f9fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefbfbfbfbfbfbfcfcfcfcfcfc
+fdfdfdfefefefefefefefefef9f9f9fafafafcfcfcfefefeffffffffffffffffffffffff
+fffffff1f1f1fdfdfdfffffff7f7f7e7e7e7f3f3f3fefefefdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbf9f9f9a4a4a4f0f0f0fffffffffffffbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefe
+fefefefefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcf9f9f9fafafafdfdfdfefefefbfbfbfcfcfcfffffffdfdfdfefefefffffffefefe
+fcfcfcfcfcfcfefefefffffffbfbfbfcfcfcfcfcfcfdfdfdfefefefdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+fffffffdfdfdfcfcfcfdfdfdfcfcfcf9f9f9f9f9f9fdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffeeeeeefffffff9f9f9f0f0f0ffffffffffffefefeff4f4f4
+fefefeffffffe7e7e7fffffff7f7f7ffffffecececfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ccccccfffffffffffffbfbfbfffffffdfdfdffffffffffff000000000000000000000000
+000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfdfdfdfdfcfcfcfbfbfb
+fafafaf9f9f9f8f8f8f8f8f8fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafbfbfbfcfcfcfefefeffffffffffffffffffffffff
+f9f9f9fffffff8f8f8f7f7f7fdfdfdfffffff9f9f9fffffffcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf6f6f69b9b9bf3f3f3fffffffdfdfdf2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfafafafbfbfbfffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffff
+fefefefdfdfdfffffffffffffafafafbfbfbfcfcfcfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfafafafcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefdfdfd
+fffffffffffffefefefefefefcfcfcf8f8f8f8f8f8fcfcfcfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffe3e3e3f2f2f2ffffffe9e9e9e8e8e8fffffffcfcfc
+cececeffffffffffffedededfafafaf9f9f9fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+c7c7c7f8f8f8fbfbfbf5f5f5fefefeffffffffffffffffff000000000000000000000000
+000000
+010101000000000000000000040404fafafafffffffbfbfbfefefefefefefdfdfdfcfcfc
+fbfbfbfafafaf9f9f9f9f9f9fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfcfefefefdfdfdfcfcfcfafafa
+f9f9f9f8f8f8f9f9f9f9f9f9fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffff5f5f5ffffffe9e9e9f7f7f7ebebebf6f6f6fbfbfbfbfbfbfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfb9b9b9bfdfdfdffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbf7f7f7f8f8f8f9f9f9fafafa
+fbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9
+fafafaf8f8f8fafafafefefefffffffdfdfdfcfcfcfffffffbfbfbfcfcfcfcfcfcfafafa
+f8f8f8f7f7f7f9f9f9fafafaf8f8f8f9f9f9fafafafcfcfcfdfdfdfefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffefefefcfcfc
+fbfbfbf9f9f9f8f8f8f8f8f8fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfcfcfc
+fffffffdfdfdfdfdfdfdfdfdf9f9f9f5f5f5f6f6f6fbfbfbf9f9f9fafafafafafafafafa
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefefffffffffffffffffffefefefafafaffffffebebeb
+ffffffe4e4e4efefeffffffff6f6f6fffffff4f4f4fbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+cfcfcffffffffffffffbfbfbfffffffffffffffffff8f8f8000000000000000000000000
+000000
+010101000000000000000000030303fafafafefefefafafafefefefefefefdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfafafafdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfffffffdfdfdfbfbfbf9f9f9
+f8f8f8f8f8f8f9f9f9f9f9f9fdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fffffff7f7f7fafafaffffffeaeaeafffffffffffffafafafafafafbfbfbfcfcfcfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff959595fafafaf6f6f6f8f8f8f6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefbfbfbfcfcfcfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfb
+fcfcfcfbfbfbfdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fcfcfcfbfbfbfcfcfcfefefefcfcfcfcfcfcfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcf7f7f7f9f9f9fefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff0f0f0ffffffeaeaeafdfdfdffffffdfdfdfeaeaeaffffff
+f2f2f2f7f7f7fffffffdfdfdfcfcfcf3f3f3ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ccccccfefefefffffffdfdfdfffffffffffffffffff8f8f8000000000000000000000000
+000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfbfbfbfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfbfbfbfafafaf9f9f9
+f9f9f9fafafafcfcfcfdfdfdfafafafbfbfbfcfcfcfefefeffffffffffffffffffffffff
+f4f4f4fffffffbfbfbe1e1e1fffffff7f7f7f0f0f0f8f8f8f9f9f9fafafafcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9ffffffffffff939393fffffffdfdfdffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9f9f9f9fafafafcfcfcfdfdfd
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfafafaf8f8f8f7f7f7f7f7f7
+f7f7f7f5f5f5f8f8f8fdfdfdfffffffcfcfcfbfbfbfdfdfdfefefefffffffffffffdfdfd
+fafafaf9f9f9fafafafcfcfcf9f9f9f9f9f9fbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfcfcfcfcfcfcfbfbfb
+fafafaf9f9f9f8f8f8f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfcfcfcf7f7f7f2f2f2f5f5f5fcfcfcfbfbfbfcfcfcfcfcfcfdfdfd
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefeffffffffffffe4e4e4ffffffececec010101
+fbfbfb0a0a0afafafaefefeffffffffffffffbfbfbf4f4f4fefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+c4c4c4f8f8f8fefefef9f9f9fffffffffffffffffffefefe000000000000000000000000
+000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fafafafbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfafafafafafaf9f9f9f8f8f8f8f8f8
+f9f9f9fcfcfcfffffffffffff6f6f6f7f7f7f9f9f9fcfcfcfefefeffffffffffffffffff
+fffffffffffffffffff6f6f6ffffff060606020202fdfdfdf9f9f9fafafafbfbfbfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcffffffffffff909090fffffffafafafcfcfcfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfafafafbfbfbfdfdfdffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfb
+f9f9f9f8f8f8fbfbfbfffffffffffffffffffefefefffffffffffffffffffffffffefefe
+fbfbfbfafafafbfbfbfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcf7f7f7fafafafffffffbfbfbfbfbfbfcfcfcfdfdfd
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeedededfffffff1f1f1fffffffefefee8e8e8fefefef7f7f7
+080808f4f4f4fdfdfdffffffe4e4e4f8f8f8fffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefffffffbfbfbfefefefdfdfdffffffffffff000000000000000000000000
+000000
+0d0d0d000000000000000000000000fafafaffffffeeeeeef5f5f5fdfdfdffffffffffff
+fcfcfcfafafafefefefffffffbfbfbfffffff1f1f1fffffff8f8f8fffffffcfcfcffffff
+f3f3f3fffffffffffff9f9f9f8f8f8fffffffffffffdfdfdf8f8f8fffffff2f2f2ffffff
+f4f4f4fffffff3f3f3ffffffffffffe6e6e6fffffff4f4f4f3f3f3fffffff7f7f7ffffff
+fffffffefefefffffff9f9f9fcfcfcf9f9f9f8f8f8ebebebfcfcfcf5f5f5ffffffffffff
+f0f0f0fbfbfbf4f4f4fffffffffffffffffffffffffcfcfcffffffffffffffffffe9e9e9
+fffffff4f4f4fdfdfdf9f9f9f6f6f6070707020202edededfafafafffffffafafafefefe
+fefefefffffffcfcfcf7f7f7fefefefffffffffffffffffff1f1f1efefeffffffff2f2f2
+fbfbfbf9f9f9f7f7f7ffffffeeeeeeffffffe7e7e7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffcfcfcfffffffcfcfc
+fffffff2f2f2fffffff8f8f8fffffffffffff2f2f2fffffffffffffdfdfdecececffffff
+fffffff9f9f9f0f0f0fffffffffffffafafafafafafefefefefefefffffffffffffefefe
+f9f9f9ffffffffffffedededffffffeeeeeef3f3f3fcfcfcfffffffdfdfdf3f3f3ffffff
+ffffffe8e8e8fffffff0f0f0f8f8f8fbfbfbfffffff6f6f6f4f4f4fefefef4f4f4ffffff
+fffffffffffff4f4f4ffffffedededfffffffdfdfdfffffffffffffffffff2f2f2f9f9f9
+fafafaf6f6f6fffffffffffffcfcfcfbfbfbfffffffdfdfdfdfdfdfffffffffffff9f9f9
+fffffff6f6f6f7f7f7fdfdfdfdfdfdf1f1f1fffffffdfdfdf2f2f2fffffff3f3f3ffffff
+f1f1f1fffffffffffffffffffefefefffffffffffff1f1f1fdfdfdeeeeeeffffffececec
+ffffffe7e7e7fefefefffffff6f6f6fffffffcfcfcfffffffefefeffffffecececf7f7f7
+fafafaf4f4f4fffffffefefeeaeaeaffffffeaeaeaf8f8f8f8f8f8ecececffffffffffff
+ffffffebebebffffffebebebfafafafbfbfbfcfcfcfffffff7f7f7fffffff4f4f4f7f7f7
+fffffff4f4f4ffffffeaeaeaf7f7f7fafafafffffffdfdfdf7f7f7fcfcfcfffffffafafa
+f8f8f8fffffff4f4f4fdfdfdfffffff3f3f3ffffffefefefe8e8e8fffffff5f5f5ffffff
+ffffffebebebfffffffffffffefefefefefefffffff1f1f1fffffff0f0f0fffffffcfcfc
+eaeaeafffffffcfcfcf5f5f5f7f7f7fffffff2f2f2fefefef6f6f6fffffffafafaffffff
+fbfbfbecececfffffffafafafffffffffffffafafafefefefffffffffffff4f4f4ffffff
+fdfdfdfffffff1f1f1fbfbfbffffffe0e0e0fffffffafafafefefefffffffefefeffffff
+f8f8f8fafafaffffffefefeffffffff2f2f2fbfbfbffffffe9e9e9fffffff5f5f5ebebeb
+edededffffffefefeffdfdfdfefefef4f4f4fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0000000909090000000b0b0b020202ffffffdcdcdc0101011010100e0e0e000000ececec
+fffffffefefe0202020000000c0c0ce1e1e1fefefefffffff7f7f7ffffffffffffffffff
+ffffffe8e8e8f6f6f6ffffffeaeaeaf3f3f3ffffffeaeaeaffffffebebebfffffff9f9f9
+ffffffecececfdfdfdeeeeeef3f3f3ffffffeeeeeefffffffefefefffffff2f2f2ffffff
+fffffffffffff5f5f5f8f8f8fffffffdfdfdfdfdfd1b1b1b0000000f0f0f000000151515
+151515010101f3f3f3f2f2f2efefef040404fefefef7f7f7f5f5f5f6f6f6f3f3f3ffffff
+ffffffe8e8e8fffffffffffffcfcfc060606020202fffffff0f0f0f7f7f7eeeeeef8f8f8
+fffffffbfbfbfafafafffffffffffffdfdfdefefefe5e5e5fffffff7f7f7f9f9f9ffffff
+fffffffffffff8f8f8e7e7e7ffffffe6e6e6ffffffe7e7e7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff959595fffffffdfdfdfffffffefefe
+fffffff4f4f4f9f9f9fffffffffffff1f1f1fffffff4f4f4fefefef7f7f7fffffff8f8f8
+efefeff2f2f2fffffff7f7f7fefefefafafafffffffbfbfbfefefefffffffcfcfceaeaea
+fbfbfbfdfdfdfafafaffffffededededededf7f7f7fffffffffffff0f0f0030303ffffff
+f6f6f6ffffffe1e1e1ffffffffffffedededf7f7f7fffffffffffff9f9f9ffffffe5e5e5
+fcfcfcfcfcfcfffffffefefefffffff5f5f5f0f0f0fffffffffffffefefefffffff0f0f0
+fffffff9f9f9eeeeeefafafaffffffffffffe7e7e7f6f6f6fdfdfdf4f4f4fffffff3f3f3
+fafafafefefefffffffffffff4f4f4fafafafffffffdfdfdfffffffdfdfdfafafaefefef
+efefefefefeffffffffefefef6f6f6ffffffffffffefefeffffffff7f7f7eeeeeeffffff
+f6f6f6090909fffffffffffffcfcfcfbfbfbedededfffffffffffff1f1f1fefefeffffff
+ffffff000000030303e8e8e8ffffffe9e9e9fffffffafafaffffffffffffe6e6e6f7f7f7
+f5f5f5fffffff3f3f3fffffffffffffffffff1f1f1fffffff9f9f9edededf6f6f6ffffff
+e9e9e9fcfcfceaeaeaffffff030303000000fefefefcfcfcfffffffffffff2f2f2ffffff
+fffffffdfdfdfbfbfbfdfdfdf3f3f3000000ffffffffffffffffffe5e5e5dededef6f6f6
+f5f5f5fffffffdfdfdfafafaeaeaeafffffffcfcfcf7f7f7fefefef5f5f5fffffff7f7f7
+fffffff4f4f4fcfcfcffffffffffffedededfffffff3f3f3fffffffcfcfcffffffededed
+f5f5f5fffffff9f9f9f8f8f8f5f5f5fffffffafafaebebebffffffefefeffffffff8f8f8
+fffffff2f2f2ffffffdfdfdff1f1f1fffffffafafaffffffffffffffffffe3e3e3eaeaea
+fffffffffffffafafafffffffcfcfcfffffff6f6f6fffffff5f5f5d9d9d9ffffffdfdfdf
+000000fffffffefefef3f3f3fffffffffffff0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+050505030303040404000000000000edededffffffffffff000000060606060606ffffff
+f4f4f4f0f0f0f6f6f6050505fdfdfdf8f8f8fffffffffffff1f1f1f7f7f7ffffffe7e7e7
+fbfbfbedededfcfcfcedededfffffff1f1f1f5f5f5fffffffbfbfbfdfdfdf0f0f0fdfdfd
+fffffff9f9f9fffffffffffffdfdfdffffffffffffe4e4e4fffffffffffff3f3f3ededed
+fdfdfdfffffffbfbfbfffffff0f0f0f4f4f41919190000001d1d1dfcfcfce6e6e6ffffff
+0000000c0c0cfdfdfdffffff0000000c0c0cf2f2f2fffffffffffff7f7f7ffffffebebeb
+edededfffffffffffff6f6f6ffffff000000000000dadadafffffffafafafffffff7f7f7
+f7f7f7fffffffffffff3f3f3f1f1f1ffffffffffffe1e1e1f9f9f9fffffff6f6f6ededed
+f0f0f0fffffffafafafffffffffffffefefee7e7e7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffff959595fffffffdfdfdfffffffefefe
+fffffff1f1f1efefeff1f1f1fffffffffffffffffffafafafafafaf3f3f3f9f9f9fafafa
+fffffffffffff5f5f5f2f2f2e3e3e3fdfdfdfefefef4f4f4fafafaf3f3f3efefefffffff
+fdfdfdfffffff4f4f4f3f3f3fffffffffffffbfbfbf9f9f9ffffff000000fbfbfbfdfdfd
+f7f7f7fbfbfbfffffffdfdfdffffffe7e7e7fffffff3f3f3f0f0f0ffffffe4e4e4ffffff
+f2f2f2ffffffe8e8e8ebebebf0f0f0fffffff9f9f9fafafafafafa080808000000000000
+fdfdfde1e1e1ffffffffffffe6e6e6f7f7f7fffffffffffffefefef5f5f5fdfdfdffffff
+fffffff8f8f8f8f8f8f3f3f3ecececfffffff5f5f5f8f8f8ffffffeeeeeeffffffffffff
+f5f5f5ffffffe0e0e0f8f8f8fffffff4f4f4f4f4f4ffffffe4e4e4fffffff5f5f5dedede
+0c0c0cfbfbfbf1f1f1fefefee7e7e71313130909090000000404040000000000001d1d1d
+f0f0f0f2f2f2020202ffffffefefeffffffff1f1f1ffffffe8e8e8eaeaeae7e7e7ffffff
+fffffffffffffcfcfcd1d1d1efefefffffffebebebffffffffffff030303070707000000
+000000efefeffffffff4f4f4ffffff000000fffffffbfbfbfffffff6f6f6f3f3f3f8f8f8
+ffffffe3e3e3ffffffffffffececec181818ebebebeeeeeef5f5f5f5f5f5ffffffffffff
+eeeeeef4f4f4fefefef9f9f9ffffffecececf6f6f6ffffffe6e6e6eaeaeafffffff7f7f7
+f9f9f9fffffff5f5f5efefeffbfbfbf9f9f9141414e1e1e1fffffffffffff2f2f2ffffff
+ededed000000020202080808fffffffdfdfd0707070c0c0c000000ebebebfafafaf6f6f6
+f0f0f0ffffffefefeffffffffdfdfdf1f1f1f3f3f3fffffff3f3f3fffffffffffffcfcfc
+f5f5f5efefeff9f9f9f7f7f7fffffffbfbfbe6e6e6f4f4f4f9f9f9fffffffffffff9f9f9
+fafafaf1f1f1f9f9f9f9f9f9fefefef8f8f8fffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+040404000000000000000000141414fbfbfbcfcfcfeeeeee1212120000000c0c0c000000
+f6f6f6ffffffefefef161616ecececffffffe1e1e1fafafafffffff6f6f6f4f4f4ffffff
+dfdfdffffffffafafafffffffafafaf7f7f7ffffffefefeff9f9f9ffffffffffffffffff
+f8f8f8f2f2f2ebebebfffffffbfbfbfcfcfcf8f8f8fffffff9f9f9f7f7f7f7f7f7ffffff
+fffffff2f2f2fffffff1f1f1ffffffececec030303151515f4f4f4f1f1f1ffffffeaeaea
+ffffff000000fdfdfdeeeeee040404010101e8e8e8fffffff1f1f1fffffffffffffdfdfd
+fffffffefefefdfdfdeaeaeae9e9e9ffffffffffffffffffe7e7e7fafafaf7f7f7fefefe
+ffffffd5d5d5f2f2f2f3f3f3fbfbfbf7f7f7fefefefcfcfcf8f8f8dbdbdbffffffffffff
+f6f6f6f3f3f3edededefefeff9f9f9fffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffff949494fefefefafafafefefefafafa
+f1f1f1fffffffbfbfbfffffff5f5f5eeeeeefffffff5f5f5f8f8f8ffffffecececffffff
+efefefe8e8e8ffffffffffffffffffeeeeeef1f1f1ffffffffffffffffffeaeaeaf9f9f9
+ecececfffffffefefeffffffe8e8e8fffffff4f4f4f4f4f4e9e9e9111111fdfdfdfefefe
+ffffffececece5e5e5efefeffdfdfde9e9e9fbfbfbffffffecececfbfbfbfffffff4f4f4
+f0f0f0efefeff0f0f0ffffffffffffe7e7e7fcfcfcfffffffefefeffffffeaeaea191919
+edededffffffe1e1e1e3e3e3ffffffedededf5f5f5f1f1f1fffffffefefefefefee4e4e4
+fefefefffffff5f5f5eaeaeaffffffdbdbdbf8f8f8fffffff7f7f7efefeff8f8f8f9f9f9
+ffffffe6e6e6fafafafffffffffffff8f8f8ffffffe7e7e7fffffff4f4f4ebebebffffff
+040404f0f0f0fffffffffffff9f9f9030303e2e2e2f1f1f1040404f2f2f2fdfdfd0d0d0d
+ecececffffff090909c6c6c6ffffffebebebfffffff1f1f1fdfdfdfefefefffffff8f8f8
+f2f2f2fbfbfbf4f4f4fffffffefefeffffffffffffffffff000000ffffffd3d3d3ffffff
+ffffff0f0f0ff3f3f3f4f4f4e2e2e2161616f0f0f0f9f9f9e9e9e9fffffff9f9f9ffffff
+e1e1e1fffffffcfcfcf0f0f0f3f3f3fefefefffffff9f9f9fbfbfbffffffddddddf5f5f5
+ffffffe7e7e7fbfbfbfefefeeaeaeaf1f1f1fdfdfdffffffffffffffffffeaeaeaffffff
+dededefffffffffffffffffff6f6f6ffffff000000fffffff8f8f8e8e8e8fdfdfdeaeaea
+ffffffececec1111110d0d0df0f0f0ffffffffffff000000dbdbdbffffffffffffffffff
+ffffffe6e6e6fffffff3f3f3f6f6f6e4e4e4ffffffdadadaf9f9f9f4f4f4eeeeeef2f2f2
+fffffff2f2f2f8f8f8fffffff1f1f1fffffffffffff7f7f7f9f9f9f8f8f8e8e8e8ffffff
+020202fffffffbfbfbffffffeeeeeef3f3f3fafafafefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0000000808080404040b0b0b000000e6e6e6fffffff4f4f4000000ffffff020202101010
+060606ffffffe7e7e7000000fffffff7f7f7ffffff000000000000191919000000000000
+fdfdfdf2f2f2f3f3f3000000181818040404000000161616010101040404000000020202
+0b0b0b000000fffffff4f4f4e7e7e7ffffff010101000000020202232323000000ebebeb
+fffffff1f1f1fffffff0f0f0fffffff2f2f2050505121212000000000000e7e7e7fbfbfb
+f8f8f8f7f7f7f1f1f10c0c0c090909121212000000000000e7e7e70d0d0d0b0b0b000000
+ffffff000000050505fcfcfc000000010101060606ddddddffffff000000010101000000
+0a0a0a1313131010100808080b0b0bffffffe6e6e6fafafa1313130c0c0c000000000000
+030303fffffff7f7f7ffffffffffffebebebefefeff7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff939393fbfbfbf6f6f6f9f9f9f5f5f5
+fefefefafafafafafa070707000000151515000000f6f6f6f7f7f7e4e4e4fcfcfc010101
+282828ffffffe6e6e6000000000000f9f9f9f3f3f3e1e1e1d9d9d90000001a1a1a000000
+ffffff000000000000f9f9f9fcfcfcffffffe7e7e7ffffff000000fffffff7f7f7fdfdfd
+f2f2f2f2f2f2ffffffffffff020202020202000000ffffffffffffefefefffffff080808
+0e0e0effffffdddddd000000040404f6f6f6f0f0f0fcfcfcffffffecececffffff000000
+fafafaedededfcfcfcffffffefefefececec1818180a0a0a070707000000fffffffafafa
+f1f1f1000000000000ffffff0000000505050a0a0aececececececffffffefefeff9f9f9
+0000000f0f0f000000fefefe030303000000fffffffffffff4f4f4fcfcfcf6f6f6000000
+fcfcfcfffffff1f1f1eaeaeaffffff000000ffffffffffff2a2a2afcfcfcffffff000000
+f4f4f4f3f3f3000000ffffff0707070000000d0d0df2f2f2ffffffe3e3e3eeeeeeefefef
+ffffff000000070707000000ffffffeeeeeee7e7e7010101fffffffbfbfbfffffffafafa
+e2e2e2f3f3f3151515fcfcfcfdfdfd000000ffffff0606060c0c0c000000ffffffeeeeee
+ffffffdadada0101010e0e0e0f0f0f000000151515f2f2f2e1e1e1f8f8f8fffffff8f8f8
+f4f4f41c1c1c000000202020f5f5f5ffffffeaeaeaddddddfdfdfdf5f5f5151515000000
+121212ececec181818d8d8d8fafafa080808090909000000191919111111ffffffe4e4e4
+fffffff9f9f90a0a0affffff000000fcfcfcf4f4f4000000ffffffe9e9e9eeeeeef4f4f4
+0000000303030202020f0f0ffffffffffffff5f5f5111111161616fbfbfb0000001a1a1a
+f1f1f10a0a0a0f0f0fdfdfdffffffff7f7f7f1f1f10000000a0a0a030303fffffff9f9f9
+f8f8f8f4f4f4f4f4f4edededfffffffefefefffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0c0c0c000000000000000000060606f1f1f1efefeffafafa020202ffffff0000001d1d1d
+000000f5f5f5ffffff000000fdfdfdd7d7d70000000e0e0effffffebebebffffff212121
+0a0a0aedededfefefeeeeeee000000111111f6f6f6f7f7f7000000000000fffffff3f3f3
+202020101010eeeeeeffffffffffff000000000000f2f2f2f3f3f3ffffff171717080808
+fffffffffffff5f5f5fffffff8f8f8fefefe1c1c1c0000001212121515152020200b0b0b
+060606ffffffffffffeaeaea010101000000fffffffdfdfdf2f2f2fefefe000000090909
+0000000e0e0e050505fffffff6f6f61b1b1b000000fffffffdfdfdf8f8f8151515000000
+e5e5e5fffffff1f1f1080808000000d1d1d1ffffff000000040404fdfdfde8e8e8ffffff
+080808000000101010fcfcfcefefeffffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff929292fbfbfbf6f6f6f9f9f9f4f4f4
+f3f3f3efefef000000fffffffffffff2f2f2fefefe020202f2f2f2fffffff4f4f4e8e8e8
+000000f3f3f30b0b0bfefefeffffff070707fefefeffffff1a1a1ae3e3e3f3f3f3ffffff
+000000171717fffffffffffff1f1f1f3f3f3ffffffe6e6e6131313e2e2e2f7f7f7fbfbfb
+f7f7f7eeeeeeececec000000f6f6f6ffffffffffff000000ebebebfffffffbfbfbdbdbdb
+020202efefef111111fffffff3f3f3121212ffffffffffffe5e5e5ffffffdedede000000
+ffffffffffffc5c5c5fdfdfdfafafa212121dcdcdcecececfffffff2f2f20a0a0aeeeeee
+ffffffffffff000000020202dcdcdcffffffffffff060606ffffffe3e3e3ffffff070707
+e8e8e8fffffff2f2f20b0b0b222222f9f9f9f2f2f2fffffffffffff6f6f6ffffff181818
+fffffff5f5f5f3f3f3ffffffffffffe7e7e7f3f3f3e9e9e9000000fffffff5f5f5fdfdfd
+efefeff5f5f50c0c0c000000e1e1e1fffffff1f1f1060606fcfcfcfffffff7f7f7ffffff
+000000f2f2f2f7f7f7fcfcfc090909fcfcfcffffff131313f8f8f8f4f4f4f2f2f2fafafa
+fffffff9f9f90f0f0ff5f5f5ffffff0f0f0f000000fffffff7f7f7f5f5f5030303f6f6f6
+ecececf7f7f7fffffffafafaf7f7f7ffffff000000fffffffffffff3f3f3f9f9f9ffffff
+000000ffffffffffffe2e2e2000000e4e4e4ffffffffffffe8e8e80b0b0be9e9e9ffffff
+ececec0b0b0b000000fffffffefefef2f2f2070707fffffff1f1f1e3e3e3f1f1f1ffffff
+ebebebf3f3f3000000fafafa000000fffffffbfbfb050505e0e0e0ffffffe6e6e6101010
+ffffffffffffffffffffffff000000ffffffefefeff4f4f4000000000000ffffff000000
+0f0f0ff2f2f20f0f0ff9f9f9f7f7f7e3e3e3080808ffffffd6d6d6ffffff090909e8e8e8
+010101fffffff7f7f7fcfcfcfdfdfdfbfbfbf0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000161616000000010101ffffffd9d9d9fefefe181818e7e7e7ffffff000000
+080808000000f6f6f6080808fefefeffffffebebebefefef0000001a1a1a050505000000
+000000ffffffecececffffff0000000b0b0bfffffff7f7f7202020000000fdfdfdf4f4f4
+000000171717edededf0f0f00000001f1f1ff9f9f9ffffffffffffe6e6e6000000020202
+fcfcfcfcfcfcf2f2f2f8f8f8fffffffffffffdfdfd1818180000000b0b0b000000000000
+1313130a0a0aebebebffffff000000151515fcfcfcd3d3d3fffffff7f7f7020202020202
+ffffffe2e2e2020202fffffff4f4f41c1c1c030303ffffffe2e2e2ffffff000000060606
+ffffffecececf4f4f40e0e0e050505ffffffececec000000303030eeeeeeffffffefefef
+1c1c1c040404eaeaeafffffff6f6f6eeeeeefffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff939393fdfdfdf9f9f9fcfcfcf8f8f8
+ffffff212121fffffff6f6f6dbdbdbfffffffffffffafafa000000f4f4f4efefefffffff
+0606060b0b0bfffffff4f4f4ffffffe6e6e6f4f4f4000000dcdcdcfffffffdfdfde4e4e4
+ffffff000000fffffffafafafefefef2f2f2ffffff0f0f0ff6f6f6f1f1f1fffffff2f2f2
+ffffffffffff101010f9f9f9f5f5f5f7f7f7ecececffffff151515ecececf0f0f0ffffff
+030303000000fffffffffffff6f6f6f7f7f7f1f1f1ebebebfffffff1f1f1ffffff040404
+fffffff5f5f5fbfbfbffffffffffffd9d9d9fffffff5f5f5f6f6f6efefef181818f7f7f7
+fcfcfcfefefe000000fffffffffffffbfbfbffffff000000e8e8e8ffffff000000fdfdfd
+f2f2f2fdfdfdffffffe9e9e9000000fffffff1f1f1efefeffafafaf9f9f9101010ececec
+f0f0f0fffffffafafae8e8e8fdfdfdffffffe0e0e0ffffff030303ffffffe9e9e9ffffff
+ffffffeeeeee101010f4f4f4fdfdfdffffffffffff000000eeeeeef5f5f5fbfbfb000000
+ffffffffffffe1e1e1ffffffeeeeee000000ffffff000000eeeeeefffffffffffff8f8f8
+e5e5e5ffffff000000fffffff6f6f6030303ffffffe7e7e7f2f2f2ffffffebebeb171717
+f5f5f5ffffffdadadafafafae9e9e9fcfcfc000000f3f3f3fafafaf4f4f4fcfcfc000000
+ffffffffffffecececf5f5f5fefefe0b0b0bf9f9f9fefefe000000f8f8f8fffffffefefe
+ffffffececec0e0e0efcfcfcf1f1f1ffffff040404dadadafffffffffffffbfbfbf5f5f5
+fffffff2f2f20d0d0df7f7f7fefefe0f0f0ff6f6f60d0d0dfbfbfbf8f8f8fffffffcfcfc
+fffffff2f2f2f6f6f6f9f9f9171717f9f9f9ffffffffffff070707fffffffafafa000000
+ffffffffffff000000fffffffafafa171717f9f9f9fcfcfcfafafafcfcfce8e8e8121212
+fefefef3f3f3f3f3f3fffffffafafaf2f2f2fffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+0707070000000000000c0c0c000000ebebebffffffffffff000000fffffff2f2f2ffffff
+0606060e0e0e000000090909fbfbfbececec1c1c1c1212120b0b0bf3f3f3f2f2f2030303
+161616ecececf4f4f4f7f7f7030303080808f0f0f0fdfdfd0000000e0e0efffffff2f2f2
+303030000000fffffff5f5f51212120000000a0a0a000000010101131313000000090909
+f0f0f0f7f7f7fffffffbfbfbf8f8f8f2f2f2f4f4f4ecececffffffe9e9e9ffffff020202
+0d0d0d0b0b0bf0f0f0ffffff121212000000fafafafffffff3f3f3fefefe010101040404
+f0f0f0ffffffedededf6f6f6ffffff0000000a0a0af7f7f7ffffffe1e1e1020202000000
+f4f4f4fefefefcfcfc000000080808f5f5f5ffffff080808040404f5f5f5f8f8f8ffffff
+0000001d1d1dfefefeeeeeeefffffff5f5f5fffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffff959595fffffffcfcfcfffffffdfdfd
+f7f7f7000000fffffffffffffffffff5f5f5fffffffbfbfb000000fffffffdfdfde7e7e7
+030303f6f6f6eeeeeefffffff5f5f5ffffffffffff000000ffffffd2d2d2ffffffededed
+ffffff0e0e0efcfcfcf0f0f0eaeaeaffffffdfdfdf070707fffffff4f4f4f3f3f3ffffff
+fcfcfce8e8e8000000040404080808000000040404010101000000fffffffffffff5f5f5
+010101ffffffe1e1e1fefefef6f6f6fefefeeeeeeefffffff9f9f9efefefffffff080808
+f5f5f5f7f7f7fcfcfcecececedededffffff0000000101010f0f0f101010000000fdfdfd
+f4f4f4fbfbfb090909fffffff1f1f1f0f0f0f7f7f7030303ffffffe9e9e9060606f5f5f5
+fafafaf6f6f6f3f3f3ffffff121212e9e9e9ffffffffffffedededf8f8f80c0c0cf3f3f3
+fffffff7f7f7fbfbfbffffffedededecececfffffffdfdfd070707f5f5f5fffffff5f5f5
+f3f3f3f8f8f8101010fcfcfcf5f5f5fcfcfce9e9e9050505fffffffafafafefefe080808
+000000090909191919010101000000090909f0f0f0111111ffffffeaeaeafafafaffffff
+ffffffffffff000000f1f1f1ffffff000000fffffffffffff9f9f9ecececffffff020202
+fffffffafafafffffffffffff6f6f6eaeaea202020f7f7f7f4f4f4ffffffffffff090909
+0202020000001010100d0d0d030303111111f2f2f2fbfbfb0c0c0cf2f2f2f9f9f9f5f5f5
+d4d4d4fffffff0f0f0eaeaeaf9f9f9fcfcfc121212ffffffdbdbdbfffffff7f7f7fcfcfc
+ffffffececec050505ffffffffffff000000ffffff030303eeeeeef0f0f0f4f4f4ffffff
+000000090909050505000000090909fcfcfcfdfdfdeaeaea010101ffffffececec060606
+fffffffafafa030303f5f5f5e9e9e91313130101010707070000000f0f0f060606000000
+121212eeeeeefffffffbfbfbfffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000090909000000000000101010f6f6f6e9e9e9fcfcfc0d0d0df1f1f1ffffffffffff
+1010100000001f1f1f050505fdfdfdfdfdfd030303000000fafafaffffffeeeeee050505
+000000fdfdfdf4f4f4ffffff000000070707e1e1e1fdfdfd0707070b0b0bffffffffffff
+0000000e0e0effffffeaeaea080808080808f1f1f1fffffff0f0f0ebebebfffffffcfcfc
+ffffffeaeaeafffffff0f0f0fffffff5f5f5000000fffffff4f4f4fcfcfce3e3e3f6f6f6
+050505000000f2f2f2ffffff070707000000fbfbfbf7f7f7e7e7e7ffffff000000020202
+dededefffffff5f5f5fdfdfdffffff000000070707f8f8f8ffffffededed131313000000
+fffffff6f6f6ffffff0303030c0c0cf9f9f9fffffff9f9f9000000131313000000040404
+000000ffffffeaeaeafcfcfcfffffff0f0f0f8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffff939393fbfbfbf5f5f5fafafaf7f7f7
+e2e2e2171717eaeaeaffffffe4e4e4efefeff6f6f6fdfdfd000000f5f5f5fcfcfcfafafa
+0c0c0cfcfcfcfdfdfdf1f1f1f6f6f6fdfdfdffffff0c0c0cf6f6f6f8f8f8ffffffe8e8e8
+fafafa050505f9f9f9ecececfcfcfcffffff010101edededf1f1f1fffffffefefefcfcfc
+ffffffededed000000fffffffcfcfcfbfbfbfdfdfdfffffff6f6f6ffffffe1e1e1ffffff
+000000f3f3f3f7f7f7fdfdfdfffffff3f3f3ffffffe1e1e1fffffffffffff4f4f4000000
+fdfdfdf3f3f3ffffffefefefffffff020202f4f4f4fbfbfbe9e9e9ffffff000000efefef
+f7f7f7fbfbfb0d0d0debebebfffffff6f6f6ffffff0a0a0ae7e7e7f3f3f30e0e0efcfcfc
+f9f9f9f7f7f7fdfdfde8e8e8000000fffffffffffffcfcfcf3f3f3090909fefefeffffff
+fcfcfcffffffecececfffffff0f0f0f8f8f8fffffff7f7f7060606f6f6f6fffffffafafa
+fefefeffffff020202fbfbfbf9f9f9fffffff1f1f1060606dcdcdcf2f2f2ffffff000000
+fdfdfdf9f9f9f5f5f5fefefefbfbfbf8f8f8fefefe000000f1f1f1fffffff3f3f3fdfdfd
+ffffffebebeb1d1d1df3f3f3f3f3f30f0f0ffefefeecececfcfcfcf9f9f9ffffff000000
+fafafaf8f8f8f5f5f5f6f6f6ffffffffffff000000ffffffffffffe9e9e9ffffff000000
+ffffffffffffe5e5e5f8f8f8fffffffdfdfdedededfefefe050505f4f4f4ffffffe2e2e2
+fefefef5f5f5ffffffedededf8f8f8ffffff000000fcfcfcfcfcfcefefeffffffffafafa
+d8d8d8f8f8f8070707fcfcfcf1f1f1ffffff000000070707fbfbfbecececffffff0e0e0e
+e1e1e1fffffff2f2f2f7f7f7010101fffffffffffffcfcfc040404f1f1f1ffffff0c0c0c
+e9e9e9ffffff000000fffffff6f6f60b0b0bfcfcfcfafafafbfbfbfffffffffffff3f3f3
+f0f0f0fefefeeaeaeafffffff4f4f4fdfdfdffffffe8e8e8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+060606000000000000000000020202f6f6f6fffffffdfdfd070707fbfbfbecececf7f7f7
+ececec040404020202000000f8f8f8ffffff020202161616090909000000141414161616
+080808fffffff0f0f0f2f2f2000000030303ffffffe8e8e8030303000000fafafaf4f4f4
+212121000000f6f6f6ffffff000000090909000000f7f7f7f0f0f0fffffff6f6f60c0c0c
+d7d7d7fcfcfcfffffffdfdfdf3f3f3f1f1f10f0f0febebebfefefefefefeffffff1b1b1b
+0000001c1c1cf7f7f7fdfdfd0000000c0c0cfffffffdfdfdf8f8f8fafafa070707080808
+ffffffffffffdcdcdcf3f3f3f3f3f3040404111111f5f5f5ecececffffff000000000000
+f8f8f8e3e3e3f9f9f9121212000000ffffffe8e8e8eeeeee141414efefeffffffff5f5f5
+f6f6f6f9f9f9efefeffffffffffffff7f7f7fffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffff949494fcfcfcf7f7f7fcfcfcf9f9f9
+ffffffededed0d0d0dfcfcfcf4f4f4ffffffffffff010101f9f9f9fffffffffffffbfbfb
+000000f8f8f8f1f1f1ffffffffffffe0e0e0f2f2f2fbfbfb000000f7f7f7efefefffffff
+121212000000ffffffffffffd5d5d5ffffff000000fffffff7f7f7ffffffecececffffff
+dfdfdfffffffffffff000000ffffffedededfefefef5f5f5080808f4f4f4ffffffdfdfdf
+000000fffffffefefef2f2f2fafafaf0f0f0e9e9e9fefefee7e7e7ecececfdfdfd171717
+eaeaeafffffffbfbfbfffffff2f2f2000000fffffffffffffafafa030303171717ffffff
+f6f6f6fcfcfc070707fffffff8f8f8f5f5f5ffffff000000fdfdfdffffffcdcdcd000000
+fffffff5f5f5fcfcfc0b0b0b1d1d1dfbfbfbf3f3f3ffffffffffff000000ecececffffff
+edededfffffff6f6f6ffffffeeeeeeffffffe2e2e2fafafa080808fffffffdfdfde8e8e8
+ffffffffffff000000fffffff3f3f3fffffffbfbfb000000ffffffebebebfcfcfcfbfbfb
+0c0c0ceeeeeefffffffcfcfcf7f7f7060606fdfdfdf1f1f1050505fffffff8f8f8f3f3f3
+f0f0f0000000ebebebffffffffffff000000000000ffffffe5e5e5fcfcfc0e0e0effffff
+fffffff2f2f2fffffffbfbfbe7e7e7ffffff000000fbfbfbe8e8e8fffffff4f4f4ffffff
+0e0e0ed6d6d6ffffffffffffffffff000000fffffff3f3f3fdfdfd000000f3f3f3ffffff
+ecececffffff000000fcfcfcfefefefdfdfd141414f7f7f7f8f8f8ffffff000000ffffff
+fffffff7f7f7111111f1f1f1ffffffffffff050505060606f7f7f7ffffffffffff000000
+ffffffedededffffff000000050505f1f1f1fffffffefefe1e1e1ef5f5f5f7f7f7080808
+e4e4e4ffffff000000eaeaeaffffffe0e0e00c0c0cfffffff6f6f6efefeffbfbfb080808
+0b0b0becececffffffe8e8e8f9f9f9f0f0f0f6f6f6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000060606111111000000000000ffffffcdcdcd070707090909000000fffffff3f3f3
+fffffff8f8f8020202040404ffffffdbdbdb171717000000090909000000ffffff000000
+000000000000ffffff000000181818020202000000ffffff0505050b0b0b040404ffffff
+0000001b1b1b0e0e0ee3e3e3f7f7f70d0d0d000000101010000000000000000000050505
+ffffffeeeeeeebebebfffffff5f5f5f0f0f01414140d0d0d000000181818000000000000
+2b2b2bf4f4f4f5f5f5ffffff0505050b0b0b0000000d0d0dffffff0000000000000c0c0c
+000000eaeaeafffffff7f7f70202021c1c1c0000000c0c0cfbfbfb0101010b0b0b0b0b0b
+000000ffffff020202000000151515000000f1f1f1ffffff0d0d0d0a0a0a000000020202
+010101000000fffffffdfdfdeeeeeeffffffecececffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefeffffff949494fdfdfdf9f9f9fefefefcfcfc
+f8f8f8fdfdfdffffff0000000e0e0e141414010101f1f1f1f2f2f2fafafae8e8e8131313
+010101080808242424e3e3e3e8e8e8fffffffffffff9f9f9ffffff0000000000000b0b0b
+ffffff060606f6f6f6fbfbfbfefefe080808f2f2f2efefefeeeeeef0f0f0ffffffeeeeee
+fefefeffffffdcdcdcffffff0606061c1c1c000000040404ffffffe9e9e9ffffff0e0e0e
+070707000000191919eeeeeefffffff7f7f7fdfdfdffffffffffff131313060606070707
+050505050505ecececf9f9f9fefefeffffff000000010101070707e8e8e8050505000000
+ffffff050505000000040404fffffff7f7f70505050a0a0a020202f8f8f8ffffffececec
+0000000c0c0c000000f9f9f9000000eeeeeefcfcfce7e7e7050505fffffffafafaf7f7f7
+ffffffdededefffffff3f3f3ecececfefefe0b0b0b0606060000000b0b0b000000ffffff
+f3f3f30606060d0d0d020202edededffffff050505000000000000fafafaffffffeeeeee
+f6f6f61313130000000c0c0c080808fefefef6f6f6fffffff5f5f50202020c0c0c070707
+000000edededf5f5f5e9e9e9000000000000f8f8f8000000010101000000e7e7e7f9f9f9
+f8f8f8e9e9e9efefeffefefef7f7f7f9f9f9161616e8e8e8fffffff0f0f0ffffffffffff
+ededed080808000000000000000000fffffff6f6f6f1f1f1fbfbfbffffff0000000b0b0b
+0909090b0b0bf9f9f9fdfdfdf8f8f8fefefefbfbfb0000000707070d0d0dfdfdfdfefefe
+cacaca000000040404101010f1f1f1ffffffffffff000000fffffff0f0f0e1e1e1ffffff
+030303000000000000ffffff000000030303ffffff0000000000000d0d0dfdfdfd080808
+171717f5f5f5070707080808f8f8f8ffffffffffff0000000606060e0e0e000000ffffff
+fcfcfcfffffff6f6f6f9f9f9ffffffffffffeeeeeee8e8e8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+1313130000000202020e0e0e000000e9e9e9fffffffcfcfcfefefef9f9f9fdfdfdf6f6f6
+d5d5d5fdfdfdfdfdfdf0f0f0e7e7e7fffffffafafaf9f9f9ffffffffffffebebebffffff
+fffffff6f6f6e8e8e8fcfcfcf8f8f8ffffffffffffffffffe1e1e1ffffffeeeeeeffffff
+f3f3f3ffffffe6e6e6ffffffefefeff9f9f9fffffff4f4f4efefeffffffffffffffcfcfc
+efefefe0e0e0f9f9f9f4f4f4ebebebfffffff9f9f9f4f4f4fcfcfcffffffffffffffffff
+fcfcfcfffffff9f9f9f4f4f4fcfcfceeeeeeefefefeeeeeeeaeaeafffffffffffff4f4f4
+fdfdfddededefdfdfdffffffebebebdcdcdcffffffe7e7e7fffffffefefeefefefeaeaea
+ffffffe1e1e1e4e4e4ffffffefefeffffffffdfdfd000000000000fefefeffffffffffff
+090909020202ebebebfcfcfcfdfdfdeaeaeafbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefeffffff959595fffffffbfbfbfffffffefefe
+fffffffafafafcfcfcfffffff7f7f7edededf3f3f3fffffffffffffffffff7f7f7fbfbfb
+eeeeeeffffffe0e0e0fefefefefefeeaeaeaefefeffcfcfcdcdcdcfffffff0f0f0f5f5f5
+efefef050505f8f8f8e9e9e9ffffff101010ecececfffffffffffffffffff3f3f3fefefe
+f0f0f0fafafafffffffffffff3f3f3efefeffffffff5f5f5fbfbfbf9f9f9f4f4f4fbfbfb
+e2e2e2ffffffe7e7e7fffffffffffffcfcfcdededefbfbfbf3f3f3d2d2d2f7f7f7f6f6f6
+fffffff5f5f5fffffff7f7f7fffffff3f3f3edededfffffff8f8f8fffffff2f2f2ffffff
+f1f1f1f9f9f9ffffffffffffd6d6d6f7f7f7fffffffefefef5f5f5f2f2f2f8f8f8ffffff
+f1f1f1ecececffffffffffff050505fcfcfcedededffffff080808f5f5f5ffffffcbcbcb
+e9e9e9fffffff8f8f8fefefeefefeffdfdfde1e1e1fffffff8f8f8fefefeffffffebebeb
+fffffff7f7f7ffffffe2e2e2ffffffdededeeeeeeefffffffefefefffffffbfbfbffffff
+f8f8f8fffffffffffff4f4f4f6f6f6fdfdfdfffffff9f9f9fffffff3f3f3ecececf4f4f4
+fffffff0f0f0fafafaf9f9f9fefefefffffff4f4f4fffffffcfcfcf6f6f6ffffffe8e8e8
+ffffffe8e8e8ffffffeeeeeef5f5f5ffffff030303fffffffffffff1f1f1f4f4f4e8e8e8
+ffffffffffffffffffffffffffffffeaeaeafefefefffffff5f5f5f7f7f7f4f4f4f6f6f6
+f6f6f6f9f9f9fffffff1f1f1f3f3f3f8f8f8f8f8f8f2f2f2ffffffdededeffffffe8e8e8
+fffffffffffff4f4f4f9f9f9f5f5f5f7f7f7fffffffffffff0f0f0ffffffffffffececec
+fffffffafafafffffff8f8f8e3e3e3fafafaf3f3f3fcfcfcffffffecececffffffe4e4e4
+eeeeeeffffffe6e6e6ffffffedededefefeffffffffffffffffffff3f3f3f7f7f7fcfcfc
+000000f5f5f5fffffffcfcfcfffffff0f0f0fbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000020202000000000000fefefefffffffafafae6e6e6fffffff3f3f3f9f9f9
+ffffffe5e5e5fffffffffffff5f5f5fbfbfbfffffffafafaf7f7f7f1f1f1fcfcfcf5f5f5
+f2f2f2fffffffefefee1e1e1fffffffcfcfcefefefe2e2e2ffffffefefeffefefef4f4f4
+fffffff6f6f6ffffffe8e8e8fffffffcfcfce9e9e9fffffffbfbfbffffffdededefafafa
+f4f4f4fffffffcfcfce6e6e6fffffff6f6f6f1f1f1fcfcfcfffffff9f9f9d9d9d9ffffff
+e9e9e9fafafafffffff0f0f0eeeeeefffffffdfdfdffffffffffffd7d7d7f7f7f7ffffff
+fffffff9f9f9e8e8e8f2f2f2fffffff3f3f3f6f6f6fdfdfdf3f3f3fbfbfbfcfcfcffffff
+f1f1f1fffffffffffffafafafefefed2d2d2ffffff0d0d0d030303ffffffedededf2f2f2
+000000131313f9f9f9fffffff6f6f6ffffffffffffeaeaeaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfdfdfdffffff959595fffffffbfbfbffffffffffff
+f7f7f7f9f9f9ffffffefefeffffffffffffff4f4f4e8e8e8f6f6f6fbfbfbf8f8f8f7f7f7
+fffffff2f2f2ffffffeaeaeafffffffffffff1f1f1fffffffcfcfcf1f1f1fafafaf9f9f9
+181818fbfbfbf8f8f8fffffff3f3f3efefeffffffff4f4f4e2e2e2cececeffffffffffff
+fffffff3f3f3fffffffffffffbfbfbffffffe9e9e9efefeffffffff1f1f1fffffffdfdfd
+fffffff1f1f1fefefeffffffeaeaeafdfdfdfffffff6f6f6fffffffffffffdfdfdfdfdfd
+fffffffffffff0f0f0fefefedededeffffffffffffededede8e8e8ffffffe5e5e5ffffff
+fdfdfdfcfcfcfbfbfbecececffffffe8e8e8fffffff8f8f8fffffff0f0f0f9f9f9f0f0f0
+fffffff4f4f4f8f8f8020202ffffffefefeff8f8f8e8e8e8e5e5e5ffffffe9e9e9ffffff
+fbfbfbf9f9f9e6e6e6f9f9f9fafafaeeeeeeffffffefefeffffffff7f7f7fffffffafafa
+d5d5d5fffffff4f4f4fffffffbfbfbffffffffffffdbdbdbfafafafefefef5f5f5f5f5f5
+fdfdfdf9f9f9f1f1f1f9f9f9fffffff1f1f1fcfcfcf1f1f1f6f6f6fbfbfbfffffffcfcfc
+f1f1f1f4f4f4fffffffefefeffffffe9e9e9f2f2f2fcfcfce6e6e6f9f9f9fcfcfcfbfbfb
+fbfbfbf7f7f7f8f8f8fffffff5f5f5010101ecececebebebf6f6f6ebebebffffffffffff
+edededfdfdfde9e9e9e0e0e0f6f6f6f9f9f9fbfbfbeeeeeef2f2f2f3f3f3f2f2f2ffffff
+fdfdfdffffffc5c5c5f4f4f4fffffff9f9f9f3f3f3fffffff6f6f6ffffffecececffffff
+ebebebfdfdfdf5f5f5f9f9f9ffffffeaeaeaffffffffffffe9e9e9f0f0f0e7e7e7fefefe
+fffffff1f1f1dededeffffffffffffffffffe6e6e6fdfdfdfffffffefefeffffffffffff
+fefefefffffffffffffffffff7f7f7f8f8f8fbfbfbf6f6f6edededf5f5f5ffffffffffff
+ffffffefefeff9f9f9fffffff3f3f3ffffffffffffe8e8e8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000050505030303060606ededededededfbfbfbffffffdededeffffffeaeaea
+fefefeffffffeaeaeaf1f1f1fffffff1f1f1efefeff9f9f9fdfdfdf4f4f4ffffffe7e7e7
+f8f8f8eeeeeef0f0f0fffffffffffff2f2f2fbfbfbfffffff5f5f5f5f5f5f6f6f6fafafa
+f3f3f3fbfbfbfdfdfdf8f8f8ffffffeeeeeefffffffcfcfcffffffdbdbdbffffffeeeeee
+e9e9e9ffffffe4e4e4f3f3f3f5f5f5fafafaf5f5f5fffffff0f0f0f7f7f7fffffff0f0f0
+fcfcfcfcfcfcfffffffffffff5f5f5f9f9f9edededecececfdfdfdffffffe8e8e8f3f3f3
+ecececfbfbfbfffffff7f7f7fffffff8f8f8fafafaf8f8f8fffffffffffff6f6f6fafafa
+f5f5f5f6f6f6f1f1f1e4e4e4fcfcfcffffffecececededed1e1e1e070707000000111111
+111111ebebebffffffe2e2e2ffffffedededf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefeffffff959595fffffffbfbfbffffffffffff
+e8e8e8fffffffbfbfbfffffff0f0f0fcfcfcf9f9f9fefefefffffff5f5f5f6f6f6ffffff
+f1f1f1fffffff6f6f6fffffff6f6f6f7f7f7fdfdfde0e0e00000000000000a0a0a1c1c1c
+d5d5d5ffffffe4e4e4fbfbfbfffffff7f7f7fefefef7f7f7fffffffffffff4f4f4fbfbfb
+edededffffffffffffedededfafafae3e3e3fffffff5f5f5fffffffbfbfbffffffd6d6d6
+e0e0e0e0e0e0fffffffffffff9f9f9fafafaffffffedededebebebffffffd9d9d9fbfbfb
+eaeaeaeeeeeefffffff9f9f9fffffff4f4f4f0f0f0efefeffffffff0f0f0fafafaf8f8f8
+ffffffe5e5e5fffffff0f0f0ecececffffffecececf9f9f9f2f2f2e1e1e1ffffff000000
+070707030303000000fefefeedededf6f6f6fffffffffffffefefeffffffe8e8e8fcfcfc
+fdfdfdd5d5d5fffffff9f9f9fafafafffffff0f0f0f9f9f9ffffffe3e3e3e8e8e8ffffff
+fcfcfcfafafaecececf8f8f8ecececffffffe7e7e7ffffffefefefebebebfffffff6f6f6
+ffffffeaeaeafffffff2f2f2fcfcfcf5f5f5efefeffffffffffffffefefefafafaeeeeee
+ffffffedededffffffe9e9e9f3f3f3f5f5f5ffffffffffffefefefffffffe6e6e6ffffff
+fffffff4f4f40000000f0f0f0a0a0aecececfffffff8f8f8fffffff9f9f9f8f8f8f4f4f4
+efefeffbfbfbfffffff3f3f3fdfdfdfffffff0f0f0f5f5f5ffffffffffffedededfafafa
+ffffffd9d9d9fffffffffffffefefef7f7f7ffffffecececebebebefefefffffffe9e9e9
+f5f5f5fffffff8f8f8ffffffefefeffcfcfce0e0e0fffffffffffffffffffffffffbfbfb
+f8f8f8fffffffffffff8f8f8f5f5f5eeeeeef9f9f9fffffff0f0f0fffffff2f2f2f8f8f8
+f2f2f2f5f5f5f9f9f9fffffffffffffafafafefefef8f8f8fffffff0f0f0000000fafafa
+000000ffffff000000fbfbfbfbfbfbeaeaeaffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+050505010101000000000000000000eeeeeefbfbfbffffffdededefffffffefefef4f4f4
+f5f5f5fcfcfcfcfcfcfffffff5f5f5f9f9f9ffffffebebebfffffff3f3f3ffffffeeeeee
+fffffff4f4f4ffffffffffffeeeeeefdfdfdffffffebebebf9f9f9ffffffffffffe5e5e5
+fffffffafafafafafafffffffffffff6f6f6fcfcfcfdfdfdebebebebebebfefefef2f2f2
+fffffff4f4f4f0f0f0ffffffeeeeeefffffffdfdfdebebebf7f7f7f6f6f6fffffff6f6f6
+fefefefafafaf1f1f1fefefef5f5f5edededfffffffffffff9f9f9fffffff3f3f3ffffff
+ffffffe5e5e5f1f1f1fcfcfcfdfdfdf9f9f9ffffffefefeffffffff9f9f9f8f8f8ffffff
+fffffffafafaf5f5f5fffffff3f3f3f7f7f7f7f7f7f4f4f4e8e8e8f4f4f4ffffffffffff
+fffffff5f5f5f8f8f8fffffff7f7f7fefefeffffffecececffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefeffffff959595fefefefafafafffffffdfdfd
+ffffffeeeeeefcfcfcf7f7f7f7f7f7fffffff0f0f0fffffffdfdfdf8f8f8ffffffffffff
+e3e3e3f8f8f8e2e2e2fffffff4f4f4fafafafffffff2f2f2ffffffffffffe3e3e3f2f2f2
+ffffffefefefffffffe9e9e9fbfbfbf7f7f7fffffff3f3f3f3f3f3ffffffe6e6e6ffffff
+f6f6f6fefefed8d8d8ffffffffffffebebebfffffffcfcfcdcdcdcfefefef4f4f4ffffff
+fffffffffffffbfbfbf7f7f7fffffff5f5f5eeeeeefefefeffffffdcdcdcfefefeffffff
+eaeaeaffffffe3e3e3f7f7f7dbdbdbfafafaf3f3f3ffffffebebebfcfcfcfffffff0f0f0
+f9f9f9f7f7f7f3f3f3fefefee2e2e2f6f6f6fffffff9f9f9fafafafffffff4f4f4f6f6f6
+e9e9e9ffffffeeeeeefdfdfdfefefefffffff0f0f0ffffffdededefafafaffffffe9e9e9
+fbfbfbffffffe8e8e8f7f7f7fcfcfce6e6e6fffffffffffff3f3f3ffffffffffffebebeb
+fafafae9e9e9fffffffafafaffffffefefefffffffdfdfdfffffffffffffe2e2e2ffffff
+f5f5f5ffffffe8e8e8f8f8f8fdfdfdffffffffffffe9e9e9fafafaf2f2f2fbfbfbffffff
+f9f9f9f5f5f5e8e8e8ffffffebebebffffffebebebffffffefefeffffffff7f7f7eeeeee
+f2f2f2ffffffeaeaeafefefeffffffe7e7e7f7f7f7edededf0f0f0ffffffefefefffffff
+ffffffeeeeeeebebebfffffff5f5f5fffffffcfcfcf7f7f7f7f7f7f1f1f1f4f4f4fdfdfd
+ffffffffffffeeeeeee7e7e7fafafaefefeff9f9f9fffffffffffff9f9f9e8e8e8ffffff
+ffffffecececfafafaffffffeaeaeaffffffeeeeeefffffff1f1f1ecececfffffff2f2f2
+fefefef3f3f3f9f9f9fafafafffffffbfbfbfcfcfcfbfbfbf9f9f9fffffff8f8f8ffffff
+f4f4f4fefefefffffffcfcfcedededf7f7f7ecececfafafae9e9e9fffffff1f1f1ededed
+e9e9e9fffffff4f4f4fffffffffffffefefefafafaffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+020202000000000000040404030303fcfcfcffffffebebebffffffeaeaeaffffffffffff
+fafafaf5f5f5ffffffe4e4e4fbfbfbfffffff4f4f4f3f3f3ffffffedededf3f3f3ffffff
+f4f4f4f7f7f7f7f7f7f4f4f4fffffffdfdfdfbfbfbfafafafffffffafafafffffff5f5f5
+ebebebfafafafffffff1f1f1eaeaeafffffffcfcfcfbfbfbf8f8f8ffffffe9e9e9ffffff
+f8f8f8f3f3f3fffffff7f7f7fcfcfcfdfdfdf9f9f9fffffffefefef4f4f4f8f8f8ffffff
+f8f8f8f2f2f2ffffffe2e2e2ffffffffffffeeeeeefffffff4f4f4dfdfdffffffffafafa
+e5e5e5fefefefffffff6f6f6f8f8f8fcfcfcf0f0f0fffffffefefeefefeffefefeffffff
+dfdfdff3f3f3ffffffe4e4e4fefefefdfdfdebebebfffffff4f4f4fcfcfcf6f6f6f8f8f8
+e5e5e5ffffffecececf2f2f2fffffffdfdfdfcfcfcffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefeffffff949494fdfdfdf9f9f9fefefefcfcfc
+f7f7f7f7f7f7fffffff7f7f7fffffffdfdfdf4f4f4f9f9f9fdfdfdf2f2f2fffffff7f7f7
+fffffffdfdfdffffffeeeeeeffffffeeeeeef9f9f9f2f2f2fdfdfde3e3e3fffffff3f3f3
+f3f3f3f3f3f3f2f2f2ffffffdededef7f7f7f8f8f8fefefefdfdfdf4f4f4ffffffeeeeee
+fffffffdfdfdfffffff1f1f1f8f8f8fefefefcfcfcfdfdfdfffffffbfbfbfffffff5f5f5
+e7e7e7fefefef5f5f5fcfcfcf8f8f8fffffffffffffdfdfdf2f2f2fffffff4f4f4fafafa
+f7f7f7fefefef6f6f6fffffff3f3f3fffffff1f1f1f0f0f0fffffff1f1f1f1f1f1fcfcfc
+f6f6f6fffffff2f2f2f1f1f1fffffff2f2f2f9f9f9f6f6f6f9f9f9fffffff3f3f3ffffff
+fcfcfce5e5e5fcfcfcf8f8f8f9f9f9f5f5f5fbfbfbfffffffffffffcfcfce6e6e6ffffff
+eeeeeeffffffeaeaeafcfcfcfffffff9f9f9ecececfffffffefefef7f7f7fbfbfbf8f8f8
+ffffffffffffdbdbdbfffffffcfcfcfafafaf9f9f9fdfdfdf9f9f9efefeffffffff1f1f1
+eaeaeafffffffbfbfbeeeeeefffffff2f2f2f0f0f0fffffff9f9f9f9f9f9edededffffff
+efefeffffffff7f7f7fafafafefefef5f5f5f3f3f3f9f9f9fefefef1f1f1f9f9f9ffffff
+ffffffe1e1e1ffffffe5e5e5ffffffffffffe8e8e8ffffffffffffe3e3e3fffffff6f6f6
+f5f5f5f6f6f6fffffff1f1f1f9f9f9fcfcfcfffffffbfbfbfbfbfbfefefeffffffe3e3e3
+eaeaeafcfcfcfffffffffffff3f3f3ffffffe0e0e0fbfbfbeeeeeefffffffdfdfdf6f6f6
+fafafafefefef3f3f3fffffff6f6f6f6f6f6fafafaf8f8f8fcfcfcffffffedededf2f2f2
+ffffffe5e5e5fffffff3f3f3fffffffcfcfcf1f1f1fefefefffffff1f1f1f3f3f3ffffff
+f0f0f0ffffffedededfafafaf6f6f6fffffffffffff3f3f3ffffffc5c5c5fffffffcfcfc
+fffffffffffff6f6f6fafafafffffff7f7f7fbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+cacacafefefefbfbfbfffffffafafafffffffbfbfbffffff000000000000000000000000
+000000
+000000000000000000000000030303f9f9f9fefefefafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfafafaf9f9f9f9f9f9f9f9f9f8f8f8fafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafaf9f9f9fdfdfdfffffffefefefafafaf8f8f8fbfbfbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbfafafa989898fffffffefefef3f3f3ffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f7f7f7fdfdfdfffffffdfdfdf4f4f4f0f0f0f4f4f4fafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf6f6f6f8f8f8fcfcfcfefefefefefefcfcfcf8f8f8f6f6f6
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfafafafafafaf9f9f9
+f3f3f3fafafafffffffcfcfcf5f5f5f2f2f2f7f7f7fefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf5f5f5f9f9f9fcfcfcfbfbfbf7f7f7f5f5f5f8f8f8fcfcfc
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafafafafafafafafafafafafafafafafafafafafafa
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf5f5f5f7f7f7fafafafdfdfd
+fdfdfdfafafaf7f7f7f5f5f5fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fefefefefefefefefefefefe
+fefefefefefefefefefefefef6f6f6f7f7f7f7f7f7f8f8f8f9f9f9fafafafbfbfbfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfefefefffffffffffffdfdfdf9f9f9
+c5c5c5fffffffffffff9f9f9fffffffdfdfdfefefeffffff000000000000000000000000
+000000
+000000000000000000000000030303fafafafefefefafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafdfdfdfffffffffffffbfbfbf9f9f9fcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff989898f9f9f9fdfdfdf8f8f8ffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fbfbfbfffffffffffffffffff9f9f9f6f6f6f9f9f9fdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefafafafbfbfbfefefefffffffffffffefefefbfbfbfafafa
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfcfcfc
+f8f8f8fdfdfdfffffffffffff9f9f9f8f8f8fbfbfbfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefef9f9f9fdfdfdfffffffefefefafafaf9f9f9fbfbfbffffff
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefef9f9f9fbfbfbfdfdfdffffff
+fffffffdfdfdfbfbfbf9f9f9fefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefefdfdfdfbfbfb
+c8c8c8fffffffffffffcfcfcfffffffefefefdfdfdffffff000000000000000000000000
+000000
+000000000000000000000000030303fafafafffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfefefefffffffffffffcfcfcfbfbfbfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbffffffffffffa0a0a0efefeffcfcfcfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffdfdfdfcfcfcfdfdfdfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfefefefffffffffffffefefefdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfefefefffffffffffffdfdfdfdfdfdfefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfffffffffffffffffffdfdfdfbfbfbfefefeffffff
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+cacacafafafafffffffdfdfdfffffffefefefefefefdfdfd000000000000000000000000
+000000
+000000000000000000000000040404fbfbfbfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffffffffefefefdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfffffff4f4f4a4a4a4cececec9c9c9c3c3c3c2c2c2
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccbcbcbcbcbcbcbcbcbcccccccdcdcdcccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacacacbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccbcbcbcbcbcb
+cdcdcdcccccccbcbcbcbcbcbcccccccdcdcdcccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcacacacccccccecececdcdcdcbcbcbcacacacbcbcbcdcdcd
+cccccccccccccccccccccccccccccccdcdcdcdcdcdcdcdcdcbcbcbcbcbcbcbcbcbcbcbcb
+cbcbcbcbcbcbcbcbcbcbcbcbcccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcbcb
+cbcbcbcccccccccccccccccccbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccbcbcbcbcbcbcbcbcbcccccccccccccdcdcdcdcdcdcdcdcd
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacccccccccccccacacac8c8c8c9c9c9cdcdcdd2d2d2
+d0d0d0f5f5f5f8f8f8fafafafffffffcfcfcffffffffffff000000000000000000000000
+000000
+000000000000000000000000040404fcfcfcfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fafafaffffffe2e2e2fffffffcfcfcfdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffffefefefbfbfbfcfcfcffffffffffff
+e3e3e3f9f9f9f7f7f7fbfbfbfefefefafafaffffffffffff000000000000000000000000
+000000
+000000000000000000000000050505fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf7f7f7fbfbfb
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfdfdfdfdfdfdfffffffffffffffffffdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffefefefefefefefefefefefefdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffefefefefefefdfdfd
+fdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfdffffff
+f9f9f9fffffffbfbfbfffffffefefef9f9f9fffffffdfdfd000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff0f0f0f1f1f1f2f2f2fcfcfcfcfcfcfcfcfcfffffffcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfbfbfb
+fffffffffffffafafafffffffffffff9f9f9fffffffafafa000000000000000000000000
+000000
+000000000000000000000000050505fdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefffffffefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfffffff5f5f5fffffffffffff5f5f5
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfffffffffffffffffffcfcfcfbfbfbfcfcfcfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffefefefdfdfdfcfcfcfdfdfdfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefdfdfd
+fffffffffffffffffffffffffefefefefefefefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfefefefefefe
+fefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffdfdfdfbfbfbfcfcfcfffffffffffffbfbfbf8f8f8
+fafafaf7f7f7f5f5f5fffffffffffffafafafffffff9f9f9000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfffffffffffffcfcfc
+fdfdfdfffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfffffffffffffcfcfc
+fdfdfdfffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfffffffffffffdfdfd
+fcfcfcfffffffffffffcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffdfdfd
+fcfcfcfffffffffffffcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffdfdfd
+fcfcfcfffffffefefefbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffdfdfd
+fcfcfcfefefefefefefbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd
+fcfcfcfefefefefefefafafafafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd
+fcfcfcfefefefdfdfdfafafaf9f9f9fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000a0a0a000000080808000000f6f6f6fffffff8f8f8f2f2f2fffffffafafaffffff
+fffffffefefefbfbfbfffffff9f9f9ffffffeeeeeef2f2f2fffffff9f9f9ffffffffffff
+fffffffffffff9f9f9fafafafffffff5f5f5fffffffcfcfcfbfbfbf4f4f4fffffffcfcfc
+fbfbfbfffffff7f7f7fefefef8f8f8fdfdfdffffffe9e9e9ffffffffffffe3e3e3ffffff
+f9f9f9f7f7f7fffffff5f5f5f5f5f5fbfbfbfafafafffffff9f9f9fffffff3f3f3fefefe
+ffffffedededfffffffffffffffffff4f4f4fffffffffffff8f8f8fefefeffffffffffff
+fefefef2f2f2fffffffffffff8f8f8f8f8f8fffffffefefefbfbfbfffffff2f2f2ffffff
+f7f7f7fffffffdfdfdfefefefcfcfcf4f4f4fefefefffffff4f4f4f3f3f3fffffff5f5f5
+f9f9f9fdfdfdf4f4f4fffffffffffffbfbfbfffffff2f2f2fdfdfdf2f2f2fffffff6f6f6
+f7f7f7fefefeffffffedededf5f5f5ffffffffffffeeeeeefffffffbfbfbfdfdfdfbfbfb
+f5f5f5fffffff4f4f4fdfdfdfffffff6f6f6fefefefffffff9f9f9f1f1f1fffffffdfdfd
+fffffffdfdfdfffffff2f2f2fffffffffffffefefefefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcf0f0f0fffffff4f4f4
+fffffffafafaf7f7f7fffffffafafafffffff8f8f8e8e8e8fffffffefefee6e6e6f9f9f9
+f7f7f7ffffffe5e5e5fffffffefefef5f5f5fffffff8f8f8fbfbfbfefefeeeeeeeffffff
+f5f5f5fffffff3f3f3ffffffffffffecececfffffffffffff7f7f7fcfcfcfffffffbfbfb
+fffffffffffffefefefdfdfdfffffffffffffffffffffffffffffffefefef2f2f2ffffff
+ffffffe7e7e7fffffffbfbfbfffffffffffffffffffffffffffffffffffffefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf6f6f6fefefe
+fffffffdfdfdfcfcfcfffffffdfdfdfafafaf8f8f8f9f9f9fcfcfcfdfdfdfbfbfbf8f8f8
+fffffff6f6f6fffffffcfcfcefefeffffffffcfcfcfafafafffffff6f6f6fffffff8f8f8
+fffffffffffff9f9f9fffffffefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffafafafcfcfcfffffffffffffafafafcfcfcfbfbfbf8f8f8fffffff9f9f9f8f8f8
+fffffff8f8f8fbfbfbfefefefffffffcfcfcfffffffffffffcfcfcfefefefffffffdfdfd
+f7f7f7fffffff8f8f8fdfdfdf6f6f6ffffffe2e2e2ffffffffffffebebebfffffffefefe
+fbfbfbfffffffffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000000000000000a0a0a0a0a0afffffffffffffffffffffffff1f1f1f7f7f7ffffff
+f3f3f3f6f6f6fffffff6f6f6ffffffeeeeeefffffff8f8f8fffffffdfdfdfbfbfbeeeeee
+f4f4f4fffffffffffffffffff4f4f4fdfdfdfdfdfdf9f9f9fefefefffffff9f9f9fafafa
+fffffff5f5f5f8f8f8f8f8f8fffffff2f2f2f9f9f9ffffffe8e8e8fafafafffffffbfbfb
+ffffffffffffddddddffffffffffffffffffefefeffcfcfcfffffffbfbfbf1f1f1f7f7f7
+f9f9f9fffffffbfbfbeaeaeafcfcfcfffffff0f0f0fcfcfcfdfdfdfdfdfdf5f5f5f0f0f0
+f7f7f7ffffffebebebfffffffffffffefefefffffffdfdfdf7f7f7fdfdfdfffffffbfbfb
+f9f9f9fefefef7f7f7fffffffbfbfbffffffefefeffdfdfdf4f4f4fffffffffffffefefe
+fffffff8f8f8fffffff3f3f3f6f6f6f8f8f8fbfbfbfffffff9f9f9ffffffe7e7e7eeeeee
+ffffffe0e0e0fffffffffffffffffffffffff0f0f0fefefef7f7f7fefefef9f9f9ffffff
+fdfdfdeeeeeefffffffffffffffffffcfcfcefefefeaeaeafffffffffffff0f0f0f3f3f3
+fbfbfbf8f8f8efefeffffffffffffffefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffbfbfbfbfbfb
+f3f3f3fffffffafafafcfcfcffffffe3e3e39f9f9f9494949e9e9e9696968e8e8ea7a7a7
+f3f3f3f2f2f2fffffff1f1f1ebebebfffffff2f2f2f9f9f9ffffffffffffffffffe8e8e8
+fffffffcfcfcffffffecececfafafafdfdfdf6f6f6fffffffffffffffffffffffffefefe
+fefefefefefefefefefefefefffffffffffffefefefdfdfdfefefefefefef9f9f9f3f3f3
+ffffffffffffefefeffffffffefefefefefefffffffffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafcfcfcfffffff8f8f8
+fffffff6f6f6fefefef9f9f9fffffff1f1f1ddddddcececec8c8c8ccccccd4d4d4dadada
+eeeeeefcfcfcffffffecececffffffe7e7e7fbfbfbfcfcfcfdfdfdfffffff2f2f2f9f9f9
+fdfdfdfafafafffffffdfdfdfcfcfcfffffffffffffffffffffffffefefeffffffffffff
+efefeffffffff1f1f1fefefef5f5f5ffffffeeeeeefffffffbfbfbfbfbfbfffffffcfcfc
+fcfcfcfcfcfcf8f8f8fdfdfdfffffffbfbfbfffffffffffffbfbfbfefefefffffffcfcfc
+fffffffffffff8f8f8ffffffe5e5e5e5e5e5fffffffbfbfbeeeeeef9f9f9f7f7f7ffffff
+f9f9f9f9f9f9fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+070707040404000000000000000000f0f0f0e8e8e8fafafaf9f9f9e8e8e8fffffff2f2f2
+fffffff3f3f3fffffffafafafbfbfbfbfbfbececececececfffffff8f8f8ffffffffffff
+ffffffedededfafafaf0f0f0fffffff6f6f6fefefeffffffe6e6e6ebebebfdfdfdffffff
+f1f1f1f0f0f0ffffffffffffe9e9e9ffffffe6e6e6fffffffdfdfdfefefefbfbfbe3e3e3
+e5e5e5f4f4f4fffffff8f8f8dbdbdbefefeffffffffbfbfbffffffeaeaeaffffffffffff
+e9e9e9030303101010fefefeeeeeeeffffffecececfcfcfcfcfcfcfdfdfdfefefeffffff
+f9f9f9fffffff8f8f8f7f7f7f1f1f1fcfcfce7e7e7fffffff5f5f5f6f6f6fffffff5f5f5
+ffffffffffffecececf9f9f9f5f5f5f6f6f6fdfdfdfffffffffffffffffff5f5f5f0f0f0
+fafafaf4f4f4fcfcfceeeeeefffffffafafaf5f5f5f3f3f3f7f7f7efefeffbfbfbffffff
+e8e8e8fffffff8f8f8f9f9f9eaeaeaebebebfefefefffffffefefeedededeeeeeeeeeeee
+ffffffebebebfefefef7f7f7fbfbfbfafafaffffffffffffebebebf2f2f2ffffffffffff
+f8f8f8fffffffffffff1f1f1fdfdfdfefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7f1f1f1fbfbfb
+fffffff9f9f9fdfdfdffffff7a7a7aa1a1a1fffffff9f9f9ffffffedededfffffffdfdfd
+a0a0a0828282fcfcfcfefefefffffff2f2f2fffffffffffff6f6f6e7e7e7fafafaffffff
+e1e1e1f2f2f2fffffff6f6f6fdfdfdfffffff6f6f6fffffffffffffefefef7f7f7fbfbfb
+fcfcfcfcfcfcfdfdfdfefefefefefefdfdfdfcfcfcfcfcfcfffffff8f8f8ffffffffffff
+efefeff8f8f8fefefefffffffcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffffbfbfb
+f9f9f9fffffff8f8f8ecececd2d2d2dcdcdcecececf8f8f8fcfcfcf9f9f9f3f3f3efefef
+cfcfcfdcdcdcfafafaeaeaeafffffff8f8f8e7e7e7ffffffe9e9e9fcfcfcffffffffffff
+fdfdfdf1f1f1f7f7f7fdfdfdf6f6f6fbfbfbfffffffdfdfdf8f8f8f6f6f6fafafaffffff
+fcfcfceeeeeefdfdfdffffffdadadafcfcfcfffffffffffff9f9f9efefeffbfbfbffffff
+f9f9f9fffffffffffffcfcfcfffffffafafafefefefffffffafafafcfcfcfffffffbfbfb
+fffffff5f5f5f2f2f2fffffffffffffdfdfdffffffe1e1e1fbfbfbfffffff1f1f1fdfdfd
+fffffffffffffafafafafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000606060a0a0a000000000000fffffff8f8f8fffffffbfbfbfffffffefefef2f2f2
+eaeaeafefefeeeeeeefafafafffffffdfdfde3e3e3fffffffffffff5f5f5f7f7f7ececec
+fffffffafafafdfdfdfffffff3f3f3f8f8f8eaeaeafffffffffffff0f0f0fcfcfcf0f0f0
+f0f0f0fffffffdfdfdffffffeaeaeaffffffffffffffffffecececefefeffffffffcfcfc
+ffffffe8e8e8fffffffdfdfdfcfcfcfffffffefefef8f8f8fffffff7f7f7f1f1f1fdfdfd
+fcfcfc010101010101f1f1f1f1f1f1fbfbfbfdfdfdfffffffafafaf3f3f3e8e8e8e7e7e7
+f2f2f2f8f8f8fffffffffffffffffffffffff5f5f5fffffffffffffffffff7f7f7f4f4f4
+fbfbfbfefefeeeeeeefdfdfdf7f7f7ffffffebebebf6f6f6e8e8e8eeeeeefffffff9f9f9
+fcfcfcffffffedededf3f3f3fffffff6f6f6ffffffffffffffffffdcdcdcfffffffbfbfb
+cfcfcffffffff4f4f4f2f2f2fffffff5f5f5fffffff9f9f9f8f8f8fafafafffffff3f3f3
+fefefefffffffafafafffffff9f9f9dfdfdff4f4f4e8e8e8fbfbfbffffffffffffe2e2e2
+fffffff1f1f1f6f6f6fdfdfdfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff1f1f1fffffffcfcfcffffff
+e4e4e4e9e9e9ffffff8c8c8cfffffff5f5f5e9e9e9ffffffe0e0e0fffffff1f1f1f1f1f1
+f3f3f3ffffffb6b6b6f9f9f9f8f8f8f2f2f2dbdbdbf7f7f7f0f0f0fffffff0f0f0f0f0f0
+ffffffffffffe5e5e5f0f0f0f7f7f7eaeaeafffffff6f6f6e9e9e9efefeff7f7f7ffffff
+fcfcfcfcfcfcfcfcfcfbfbfbfafafafafafafcfcfcfdfdfdffffffe2e2e2ffffffffffff
+efefefffffffe4e4e4d7d7d7fafafafbfbfbfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffedededffffff
+f4f4f4ffffffececece4e4e4e9e9e9f1f1f1fcfcfcffffffffffffffffffffffffffffff
+ffffffcececeb8b8b8ffffffefefefebebebfffffff1f1f1ffffffedededf2f2f2fafafa
+e5e5e5fffffff9f9f9fffffff6f6f6f8f8f8fafafaf9f9f9f7f7f7f6f6f6f8f8f8fafafa
+fcfcfcfefefefbfbfbfafafaffffffe3e3e3f9f9f9fcfcfcf3f3f3ffffffefefefffffff
+fffffff6f6f6efefefe8e8e8fefefef9f9f9fdfdfdfffffff9f9f9fbfbfbfffffffafafa
+fafafafdfdfdfffffff8f8f8f1f1f1f5f5f5eeeeeeffffffffffffebebebfffffff6f6f6
+f4f4f4fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000000000303030000000c0c0cfffffffdfdfdfcfcfcffffffe7e7e7151515000000
+1b1b1b0d0d0d000000fffffff4f4f4fffffffffffff2f2f2e2e2e2ecececfffffff8f8f8
+f1f1f1f0f0f0fdfdfde9e9e9ffffffffffffffffffedededeaeaeafefefefafafaf2f2f2
+fffffff8f8f8e8e8e8fdfdfdf9f9f9f9f9f9f5f5f5f0f0f0fffffff8f8f8f7f7f7fbfbfb
+fffffff4f4f4eeeeeefffffff7f7f7eaeaeaf1f1f1ffffff000000fffffffffffff5f5f5
+ffffff1f1f1f000000ffffffffffffe4e4e4fcfcfcf3f3f3f8f8f8fffffffffffffdfdfd
+fffffffdfdfde8e8e8f8f8f8f6f6f6e3e3e3ffffffe8e8e8d4d4d4fbfbfbe8e8e8ffffff
+f9f9f9fafafaf7f7f7ffffffffffffe9e9e9ffffff0c0c0ce7e7e7fffffff7f7f7ffffff
+eeeeeefffffffefefefffffffafafaf4f4f4ecececefefeff3f3f3f4f4f4f2f2f2e5e5e5
+ffffffe2e2e2fffffffefefefafafae9e9e9e8e8e8f9f9f9f3f3f3fffffffbfbfbeaeaea
+f7f7f7fffffff5f5f5fdfdfdfffffffffffff6f6f6fffffffdfdfde6e6e6f2f2f2ffffff
+fefefeefefeffbfbfbfffffffafafafbfbfbfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafafafaf2f2f2
+fffffff5f5f5808080f7f7f7dededefbfbfbfcfcfcf7f7f7f2f2f2f5f5f5fffffff6f6f6
+ffffffe6e6e6fdfdfdd5d5d5eaeaeafffffffffffffbfbfbf5f5f5fffffff6f6f6ffffff
+d5d5d5fafafaf6f6f6ffffff0606060b0b0be9e9e9fbfbfbfffffffffffffafafaefefef
+fdfdfdfcfcfcfbfbfbf8f8f8f5f5f5f7f7f7fcfcfcfffffffffffffbfbfbf6f6f6f7f7f7
+000000000000fffffffafafaf9f9f9fafafafcfcfcfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9f3f3f3ffffff
+fbfbfbf3f3f3e8e8e8ecececfffffffffffffcfcfcf3f3f3ececececececf1f1f1f6f6f6
+f3f3f3ffffffe0e0e0808080fffffffefefefffffffcfcfcf2f2f2fcfcfcfffffff5f5f5
+ffffffebebebe4e4e4eaeaeafefefefbfbfbf9f9f9fafafafdfdfdfefefefcfcfcf9f9f9
+f9f9f9f8f8f80000000f0f0fe8e8e8fffffff8f8f8f9f9f9fafafaeaeaeafffffffbfbfb
+000000090909fffffffffffffefefef8f8f8fcfcfcfffffff9f9f9fbfbfbfffffffafafa
+ffffffffffffe6e6e6ffffffecececfefefefffffff5f5f50202020e0e0ef0f0f0ffffff
+fffffffffffffafafaf4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+060606000000000000000000000000dededeffffffffffff0a0a0a000000090909ffffff
+f0f0f0f2f2f20f0f0f000000070707f1f1f1e3e3e3fffffffdfdfdfefefefbfbfbe5e5e5
+fffffffffffffdfdfdf8f8f8fcfcfce3e3e3fffffffffffffefefefdfdfde9e9e9ffffff
+f8f8f8efefefffffffedededffffffe8e8e8f4f4f4fffffffafafaedededf4f4f4fefefe
+f6f6f6fafafaf2f2f2efefeffdfdfdf5f5f5ffffff1111111e1e1ee8e8e8eeeeeefcfcfc
+e5e5e5060606131313e3e3e3f5f5f5eaeaeafefefefafafaeeeeeef3f3f3f3f3f3f0f0f0
+f8f8f8e3e3e3fffffffdfdfdf2f2f2fffffff7f7f7fffffffffffffffffff3f3f3ffffff
+f9f9f9fffffffdfdfdf7f7f7ffffffd9d9d90909090a0a0afffffffbfbfbe8e8e8e6e6e6
+ffffffe5e5e5fefefef3f3f3f0f0f0fffffffafafaffffffefefeffffffffcfcfceeeeee
+f5f5f5f1f1f1fcfcfce6e6e6fffffff4f4f4fffffff9f9f9ffffffe2e2e2ffffffffffff
+fbfbfbedededfbfbfbecececfafafaffffffe1e1e1fafafafffffff9f9f9f1f1f1ffffff
+ecececfffffffffffffffffff9f9f9fafafafcfcfcffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff3f3f3fcfcfc
+f2f2f2a2a2a2ffffffffffffffffffffffff0000000000000d0d0d000000040404030303
+f3f3f3fffffffdfdfdffffffeeeeeef7f7f7ffffffeeeeeefdfdfdefefeffbfbfbffffff
+ffffffeeeeeeefefeff3f3f3060606000000fffffff8f8f8f4f4f4fcfcfcfffffffefefe
+fcfcfcfdfdfdfbfbfbf8f8f8f5f5f5f6f6f6fbfbfbfffffff7f7f7ffffff0000000d0d0d
+0404040f0f0fedededf3f3f3f9f9f9fafafafcfcfcfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff0f0f0fffffff5f5f5
+ffffffd1d1d1edededfdfdfdf2f2f2f8f8f8fffffffffffffffffffffffffdfdfdfafafa
+e3e3e3fffffffffffffefefefbfbfbf5f5f5fffffffffffffbfbfbfbfbfbdbdbdbffffff
+e9e9e9f9f9f9fffffff8f8f8fffffffafafaf6f6f6f8f8f8fdfdfdfffffffbfbfbf5f5f5
+ffffff000000060606050505f0f0f0e6e6e6e2e2e2fffffff8f8f8fffffff5f5f5fbfbfb
+090909000000f6f6f6f2f2f2fefefef8f8f8fdfdfdfffffff9f9f9fbfbfbfffffffafafa
+f5f5f5fdfdfdffffffd9d9d9fffffff9f9f9000000222222070707000000fffffffafafa
+f6f6f6fcfcfcfffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000020202000000030303020202eaeaeaffffffcfcfcf030303111111ffffffe3e3e3
+fffffffdfdfdf9f9f9080808000000f7f7f7ffffffebebebf9f9f9fcfcfcf5f5f5fefefe
+e0e0e0ffffffdbdbdbfffffff1f1f1fbfbfbfbfbfbf7f7f7eeeeeef7f7f7fffffffafafa
+e9e9e9e8e8e8efefefffffffedededfffffff4f4f4ffffffe6e6e6fefefefffffff8f8f8
+fffffffffffffefefefffffff3f3f3fffffff3f3f3000000000000f6f6f6fffffffcfcfc
+f4f4f4fdfdfdf4f4f4f4f4f4eaeaeaffffffdfdfdffffffffffffffffffff4f4f4f8f8f8
+fbfbfbfffffff8f8f8fcfcfcf3f3f3ffffffd3d3d3f8f8f8ffffffdededefffffff1f1f1
+efefeff9f9f9fdfdfdffffffe6e6e6ffffff090909000000fffffffffffff4f4f4ffffff
+fefefeedededffffffffffffffffffe3e3e3fdfdfdd5d5d5f3f3f3fafafafdfdfdffffff
+e9e9e9f5f5f5fdfdfdffffffeaeaeafafafaf5f5f5eeeeeef8f8f8fffffffffffff4f4f4
+fffffff3f3f3fffffffcfcfcf5f5f5dbdbdbfffffffcfcfcfafafafffffff4f4f4e8e8e8
+fffffff7f7f7eaeaeafbfbfbf8f8f8f9f9f9fcfcfcfffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaf1f1f1fcfcfcffffff
+f3f3f3888888f5f5f5dededeffffff0000001212120e0e0e0000001111110000000a0a0a
+1e1e1ef7f7f7f5f5f5fdfdfdf8f8f8030303000000111111080808181818000000000000
+fcfcfcffffffeeeeeeffffff0a0a0a000000fffffff9f9f9f5f5f5f9f9f9f7f7f7fdfdfd
+f8f8f8fcfcfcfefefefcfcfcf8f8f8f7f7f7fafafafefefef6f6f6d8d8d8fffffffbfbfb
+000000151515ebebebfffffffafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefef7f7f7fffffff2f2f2
+f2f2f2d7d7d7f0f0f0fffffffffffffdfdfdfafafaf9f9f9fafafafdfdfdfefefefefefe
+fefefeedededdcdcdcffffffffffff000000131313000000171717000000060606000000
+fefefef9f9f9f8f8f8e6e6e6fbfbfbf7f7f7f5f5f5f6f6f6f8f8f8f9f9f9f7f7f7f3f3f3
+eeeeeee8e8e8010101262626f1f1f1ffffffffffffe9e9e9fafafafffffff1f1f1ffffff
+050505030303fffffff6f6f6fffffff9f9f9fdfdfdfffffffafafafcfcfcfffffffbfbfb
+fbfbfbf8f8f8e7e7e7fffffff3f3f3fbfbfbffffffe6e6e6141414000000fffffff8f8f8
+fefefefffffffcfcfcf8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000d0d0d0000000000000c0c0cf9f9f9e2e2e21e1e1e000000000000fdfdfdfdfdfd
+ebebebf6f6f6f8f8f80000000b0b0b020202f6f6f60505050b0b0b080808040404040404
+0d0d0d000000030303010101f2f2f2f7f7f7f9f9f90c0c0c0505050000000000000c0c0c
+efefefffffff000000000000070707ededed000000030303fafafaffffff050505010101
+0000000a0a0a000000f7f7f7fffffff5f5f50101010d0d0d101010000000000000f9f9f9
+101010000000151515f6f6f6f5f5f5f1f1f10000000101010000000c0c0c0101010c0c0c
+f4f4f4ffffff0000000f0f0f0a0a0a0000001212120909090202021d1d1df6f6f6f7f7f7
+fffffffafafaf1f1f1fffffff1f1f1080808000000121212050505121212e3e3e3fbfbfb
+0000000a0a0a000000000000101010040404fffffffffffff8f8f8fbfbfbe8e8e8eaeaea
+ffffff000000000000000000ffffffebebeb0909091a1a1a000000ffffffecececffffff
+0303030000000000000303030e0e0e010101fffffff5f5f5ffffff0000001212120d0d0d
+000000080808f4f4f4fffffff7f7f7f9f9f9fcfcfcfffffffffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffafafaf8f8f8
+9b9b9bf0f0f0fffffff5f5f51111110000000e0e0e0707071818180000000a0a0a0f0f0f
+000000111111e8e8e8f3f3f3fefefeffffff0000001e1e1ef8f8f8f7f7f7131313000000
+000000ffffffeaeaeaf4f4f40101010e0e0ef2f2f2f6f6f6fafafafcfcfcf1f1f1fdfdfd
+f5f5f5fbfbfbfffffffffffffcfcfcf9f9f9f9f9f9fbfbfbfefefeffffffe2e2e2f3f3f3
+131313070707edededfafafafafafafbfbfbfcfcfcfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9f9f9f9
+dcdcdcf8f8f8eeeeeefefefefcfcfcf9f9f9f7f7f7f8f8f8fbfbfbfcfcfcfafafaf7f7f7
+ffffffedededfffffffffffff7f7f7fcfcfc040404060606ececec1111110000001e1e1e
+000000f3f3f3fffffffffffffafafafbfbfbfbfbfbfafafaf9f9f9f8f8f8f8f8f8f8f8f8
+fcfcfcffffff090909000000ffffffe2e2e2fefefeefefeffffffff5f5f5f9f9f9ffffff
+000000080808fffffff9f9f9fffffffafafafefefefffffffafafafcfcfcfffffffbfbfb
+fdfdfdf8f8f8ffffffeaeaeaffffffffffffe6e6e6ffffff0000000d0d0df6f6f6f9f9f9
+fcfcfcfdfdfdf4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000000000121212000000f2f2f2ffffff0000000f0f0f040404fcfcfce2e2e2
+fffffffefefee9e9e90000000a0a0a000000fbfbfbffffff000000050505fbfbfbededed
+ffffff0c0c0c080808070707ffffffffffff0000001a1a1aecececfdfdfdffffff030303
+000000fdfdfdededed0e0e0e0000000a0a0a000000020202ffffff000000000000ffffff
+fffffff4f4f4070707000000fffffff5f5f5e7e7e7121212070707e1e1e1fffffffdfdfd
+f3f3f30e0e0e000000ecececf8f8f8ffffff000000020202fafafaffffff060606000000
+fffffff8f8f8f6f6f6020202040404f7f7f7f0f0f0ffffff000000000000f2f2f2fdfdfd
+fffffff4f4f4fcfcfcfffffffefefeffffff000000000000fcfcfce9e9e9f3f3f3ffffff
+040404000000fcfcfcffffff000000030303ffffffe6e6e6e0e0e0fffffffffffff6f6f6
+efefefffffff0d0d0d010101f8f8f8fffffff5f5f5060606000000fefefee9e9e9090909
+171717fffffffffffff3f3f3f2f2f2030303fffffff7f7f7000000040404fffffff8f8f8
+ffffff090909000000fffffffcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbf2f2f2
+929292fffffff6f6f6fbfbfb0303030505050000000000000f0f0f000000090909000000
+030303010101fffffff8f8f8dfdfdfffffff0c0c0c020202ffffffe9e9e9151515030303
+0b0b0be6e6e6ffffffffffffffffffffffffffffffeeeeeef4f4f4f5f5f5fffffff4f4f4
+fffffffffffffcfcfcf7f7f7f6f6f6fdfdfdfefefeefefeffdfdfde0e0e0f5f5f5ffffff
+010101000000fffffffffffff8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffff4f4f4
+c7c7c7fffffff4f4f4f3f3f3f7f7f7f8f8f8fdfdfdfffffffefefef8f8f8f9f9f9fdfdfd
+fffffff8f8f8ebebebfffffff5f5f5fafafa1b1b1b070707f5f5f5fbfbfb000000050505
+000000fffffff1f1f1fffffffbfbfbe4e4e4fffffffffffff5f5f5fefefeffffffeeeeee
+fcfcfcf4f4f40a0a0a121212edededf6f6f6fffffff8f8f8fffffff9f9f9ecececefefef
+efefeffffffffdfdfdfefefefafafafafafaf7f7f7fffffff4f4f4fffffff9f9f9efefef
+ffffffe7e7e7e9e9e9fffffffbfbfbe5e5e5fffffff9f9f9111111020202fffffff0f0f0
+fcfcfcfffffff7f7f7f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0707070c0c0c000000000000000000ffffffffffff0a0a0a0b0b0b000000ffffffffffff
+e9e9e9fffffff8f8f81515150c0c0c000000f1f1f1ffffff020202191919fcfcfcffffff
+edededfbfbfb000000000000fefefe0d0d0d111111f7f7f7fffffff8f8f8e8e8e8070707
+1a1a1aeeeeeeffffff000000000000fffffffbfbfb000000fffffffafafaffffff000000
+0707070000000f0f0f000000fffffff3f3f3ffffff000000121212ecececfcfcfcededed
+f9f9f91111110c0c0cf3f3f3f9f9f9171717000000ffffffefefefecececffffff080808
+000000edededffffff000000171717ffffffe2e2e2fdfdfd1616160a0a0afdfdfdf6f6f6
+fbfbfbf8f8f8fffffffefefeedededfbfbfb121212020202f0f0f0ffffffffffff000000
+020202ffffffe2e2e2dfdfdffefefe0f0f0f1b1b1bfcfcfcffffffebebebf8f8f8fafafa
+ffffffe8e8e8000000040404ffffffdbdbdbffffff050505080808ffffffffffff050505
+0505050000000b0b0b080808fffffff2f2f2fdfdfd0c0c0c171717fafafaebebebfafafa
+f7f7f7000000111111fbfbfbfcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff8f8f8ffffff
+a0a0a0f0f0f0fcfcfcffffff0505050505051313130e0e0e000000191919000000070707
+121212000000f3f3f3fffffffbfbfbe8e8e8050505060606ffffffe7e7e7000000111111
+020202f5f5f5fefefe070707070707000000fbfbfbf6f6f6030303151515040404000000
+0000000000000e0e0e010101f3f3f3f3f3f3ffffff090909030303202020000000010101
+070707000000fffffff8f8f8f8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfafafafdfdfdffffff
+d6d6d6e9e9e9fffffffffffff8f8f8f8f8f8fbfbfbfffffffefefefafafaf9f9f9fcfcfc
+fbfbfbf0f0f0fffffff9f9f9fcfcfcfafafa0f0f0f000000ffffffe4e4e40b0b0b0f0f0f
+000000f1f1f1fffffffdfdfdfafafaf6f6f6101010010101000000050505060606fafafa
+f6f6f6ffffff0000000000000d0d0d000000131313000000000000fefefeffffff050505
+161616000000fffffff8f8f80606060f0f0f0f0f0f0000000a0a0a0000000101010c0c0c
+fffffffffffffafafa0000000202020909090909090000000000000b0b0bfafafaffffff
+fcfcfcf6f6f6f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+0000000505050d0d0d070707000000f7f7f7d2d2d20606060f0f0f0f0f0ff1f1f1ffffff
+f7f7f7f3f3f3f0f0f0000000050505090909fcfcfcf2f2f2070707000000fffffffbfbfb
+ffffffededed040404111111eeeeee0606060505050000000000000e0e0e090909030303
+0d0d0df4f4f4efefef080808070707f5f5f5fafafaffffffe6e6e6000000121212000000
+f7f7f7ffffff000000050505fefefefafafadbdbdb000000000000fffffffefefee8e8e8
+ffffff000000000000ffffffffffff000000060606f4f4f4f0f0f0fefefeffffff010101
+000000fffffff0f0f0050505080808f3f3f3ffffffdadada000000000000fdfdfdffffff
+fffffffafafafffffff6f6f6ffffffffffff000000080808ffffffdcdcdcf1f1f1080808
+0c0c0cdcdcdcfefefeffffffffffff000000000000f4f4f4f4f4f4fffffff1f1f1ffffff
+dbdbdbffffff0a0a0a0a0a0afafafafcfcfce3e3e3080808000000e7e7e7fbfbfbf1f1f1
+1111110d0d0d000000020202000000161616f8f8f80000000000000d0d0d000000000000
+050505151515000000fffffffcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf3f3f3fffffffbfbfb
+a3a3a3f1f1f1fcfcfcfcfcfc0101010303030c0c0c000000070707131313060606181818
+0e0e0e0b0b0bfffffff6f6f6f2f2f2ffffff0000000000000505050f0f0f0d0d0d000000
+fafafaf8f8f8fffffff1f1f1020202121212fafafaf3f3f3ffffff0000000f0f0ff2f2f2
+ffffffededed0c0c0c000000fffffffcfcfcf4f4f4000000000000ffffffefefeffefefe
+0b0b0b040404fffffffbfbfbf8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefef4f4f4ffffffffffff
+ccccccf2f2f2fcfcfcfffffffbfbfbf8f8f8f9f9f9fefefefffffffcfcfcfafafafbfbfb
+fffffff6f6f6f1f1f1f3f3f3edededffffff0c0c0c000000f2f2f2ffffff0000000f0f0f
+f5f5f5f1f1f1fffffff8f8f8ffffff0000000c0c0cf1f1f1fdfdfdfafafa000000060606
+fbfbfbffffff010101080808fffffff6f6f6f8f8f8000000171717020202fdfdfdffffff
+0000000f0f0ff1f1f1ffffffffffff000000000000fffffffffffff2f2f2090909010101
+eaeaeae9e9e9fcfcfc000000000000fefefeedededffffff030303000000ffffffe4e4e4
+fdfdfdfffffff9f9f9f2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+080808000000000000000000000000ffffffffffffebebeb000000000000020202f4f4f4
+ffffffeeeeeeffffff040404000000fcfcfcfffffff4f4f4080808000000f2f2f2eeeeee
+fefefeebebeb242424000000fcfcfc1a1a1a000000ffffffffffffeeeeeef3f3f3f5f5f5
+f6f6f6ffffffe8e8e81d1d1d0a0a0afdfdfdffffffe8e8e8ffffff0b0b0b020202ffffff
+e9e9e9ffffff000000050505fafafaf3f3f3ffffff0000000d0d0deeeeeef1f1f1ffffff
+fbfbfb111111030303e1e1e1ffffff000000060606fffffff0f0f0f1f1f1ffffff000000
+000000f9f9f9f2f2f20000000d0d0ddededef7f7f7ffffff131313000000fffffff9f9f9
+f8f8f8efefefecececf9f9f9e8e8e8fafafa070707020202eaeaeafffffffafafa030303
+040404fdfdfdf1f1f1fdfdfdebebeb0d0d0d131313f5f5f5fffffff2f2f2f5f5f5f6f6f6
+f2f2f2fefefe000000000000edededffffffffffff050505000000fffffffdfdfd000000
+fafafaf9f9f9ffffff040404101010000000ffffff0b0b0b171717ffffffe0e0e0ffffff
+ffffffe4e4e4efefeff9f9f9fcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcf5f5f5fdfdfdf3f3f3
+8b8b8bffffffefefeff4f4f4030303090909070707101010020202090909000000040404
+0e0e0e000000fffffffffffffafafaf6f6f60000001d1d1debebebe3e3e3000000020202
+0d0d0d000000f2f2f2ededed141414070707fbfbfbf8f8f8f0f0f00a0a0a000000ffffff
+efefefffffff000000000000f0f0f0ffffff0101010a0a0affffffe4e4e4fffffff9f9f9
+030303080808f5f5f5fffffff8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fffffff9f9f9
+b5b5b5fffffff2f2f2f2f2f2fdfdfdf8f8f8f7f7f7fdfdfdfffffffefefefbfbfbfbfbfb
+fefefeffffffe4e4e4fffffffffffffdfdfd1010100303030c0c0c000000fffffff6f6f6
+ffffffffffffeeeeeeffffff000000000000ecececf4f4f4f5f5f5ffffff0a0a0a000000
+fefefeeaeaea0e0e0e000000eeeeeefdfdfdecececffffff0000000d0d0df6f6f6fdfdfd
+000000000000f8f8f8fafafaffffff1818181b1b1be1e1e1fefefeffffff000000030303
+fffffff5f5f50000001f1f1ffffffff0f0f0fcfcfcf0f0f0010101030303ffffffeeeeee
+fefefef8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+040404000000010101070707000000edededf2f2f2fbfbfb0000001a1a1a000000ffffff
+fefefeeaeaea000000191919ffffffffffffecececdadada1a1a1a141414e6e6e6ffffff
+f9f9f9000000121212ffffffffffff0b0b0b000000010101eeeeeeffffffe8e8e8ffffff
+000000f6f6f6ffffff000000000000fffffff7f7f7f4f4f4f6f6f6010101060606060606
+0707070000001515150b0b0bfdfdfdf7f7f7e9e9e9060606121212f3f3f3efefeff4f4f4
+e6e6e6040404050505fffffffdfdfdffffff040404000000e9e9e9ffffff0d0d0d0a0a0a
+f5f5f5ffffffffffff000000181818fffffffefefef3f3f3000000000000ffffffe4e4e4
+fefefefdfdfdf7f7f7ffffffffffffe8e8e80f0f0f111111ebebebfffffff1f1f1ffffff
+060606000000fffffffcfcfc212121000000ffffffffffffeaeaeafffffffffffffcfcfc
+e1e1e1ffffff000000010101151515000000000000070707000000f7f7f7ebebeb050505
+fafafaffffffe3e3e3ffffff000000000000ffffff000000060606000000fffffff7f7f7
+ebebebffffff141414fdfdfdfcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaffffffefefeffefefe
+959595fdfdfdefefeffdfdfd0f0f0f0303031515150000001212120f0f0f212121000000
+0606060d0d0defefeffcfcfce6e6e6ffffff141414000000f6f6f6ffffffdfdfdf0a0a0a
+000000000000fffffffafafa070707000000fffffffffffffbfbfb1f1f1f000000f8f8f8
+d5d5d5ffffff0000001b1b1bfffffff0f0f0010101010101f1f1f1f5f5f5eaeaeaffffff
+0505050a0a0affffffecececf8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff6f6f6
+c7c7c7eeeeeefdfdfdf1f1f1fffffff9f9f9f8f8f8fcfcfcfffffffefefefcfcfcfcfcfc
+f9f9f9fafafafbfbfbf5f5f5f7f7f7ebebeb060606080808fcfcfc090909070707010101
+fffffff7f7f7f8f8f8e8e8e80000001f1f1f0505051515150b0b0b0000000707070f0f0f
+dbdbdbffffff000000010101ffffffedededfbfbfbfcfcfc141414020202fcfcfcf9f9f9
+101010080808dededeffffffefefef080808000000ffffffeaeaeaf6f6f60101010b0b0b
+e5e5e5ffffff040404000000e5e5e5fffffff4f4f4fbfbfb0000000a0a0ad6d6d6ffffff
+fffffff0f0f0fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202000000000000010101000000fffffffbfbfbfffffffcfcfcf2f2f20f0f0f060606
+010101181818000000eaeaeafffffff8f8f8fffffffafafa0000001515150a0a0a000000
+0c0c0c1f1f1fedededf0f0f0fffffff0f0f01f1f1f0000000000000404040a0a0a000000
+121212f6f6f60000000f0f0f0f0f0f030303e9e9e9ffffffffffff0000000c0c0c000000
+030303ffffff222222000000101010fefefef4f4f40d0d0d000000090909181818f1f1f1
+0b0b0b1e1e1e000000000000ebebebe9e9e90202020b0b0b1616160000000000000b0b0b
+fffffff2f2f2000000060606090909020202efefef0000000c0c0c0b0b0b000000ffffff
+fffffff4f4f4f5f5f5f0f0f0f4f4f4ececec0000000202020b0b0b060606efefeff7f7f7
+0808080000001212120000000e0e0e000000ffffffebebebffffffefefefe2e2e2ffffff
+f6f6f6e8e8e8ffffff0202020000001c1c1cf6f6f61d1d1d1717170e0e0ef6f6f6040404
+0606060b0b0b181818000000141414f5f5f5e8e8e8fcfcfc050505141414080808000000
+010101000000000000fffffffcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafefefefcfcfcebebeb
+e3e3e39e9e9efffffffffffffcfcfc000000030303141414000000000000000000121212
+000000ffffffe6e6e6fffffff6f6f6fbfbfb000000131313f2f2f2ebebebf8f8f8000000
+060606020202e9e9e9f2f2f2000000131313ffffffeeeeeef5f5f51010100c0c0cefefef
+fffffff5f5f50e0e0e000000ededede9e9e9000000111111fffffffafafaf3f3f3ededed
+010101111111e9e9e9fbfbfbf8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fffffff9f9f9ffffff
+f7f7f7b5b5b5fffffffbfbfbfefefefafafaf9f9f9fdfdfdfffffffdfdfdfcfcfcfefefe
+f9f9f9f8f8f8ffffffebebebe9e9e9ffffff000000090909fbfbfbffffff000000000000
+131313fbfbfbf8f8f8ffffff020202000000fbfbfbddddddfffffffcfcfcfffffffefefe
+ffffffffffff000000161616e5e5e5ffffffffffffeaeaea0000000e0e0efefefee1e1e1
+000000111111fcfcfceeeeeeffffff010101101010ebebebfcfcfcffffff000000090909
+f7f7f7f8f8f8000000000000fffffffffffffbfbfbf4f4f4040404000000fffffff7f7f7
+fffffffefefef2f2f2f3f3f3ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000060606000000010101000000fffffffbfbfbf4f4f4ffffffe5e5e5f7f7f7f4f4f4
+ecececf9f9f9fffffff3f3f3efefeff7f7f7f5f5f5ffffff020202000000fffffffafafa
+f0f0f0f3f3f3fffffffffffffbfbfbf4f4f4ecececf7f7f7fbfbfbf3f3f3fbfbfbf6f6f6
+f0f0f0fffffffcfcfcf7f7f7ecececf8f8f8ffffffe0e0e0f4f4f4fffffff6f6f6ffffff
+f8f8f8e4e4e4f5f5f5eeeeeeffffffedededfdfdfdf9f9f9f5f5f5ffffffe7e7e7fdfdfd
+ffffffedededdfdfdffffffff3f3f3fffffff5f5f5ffffffe4e4e4fffffffffffffbfbfb
+f7f7f7e6e6e6fffffff2f2f2f9f9f9f1f1f1f1f1f1fffffff9f9f9f6f6f6fffffff9f9f9
+f4f4f4ffffffffffffffffffefefeff5f5f5fffffffffffffffffff5f5f5fafafaf5f5f5
+f5f5f5ffffffeaeaeaffffffe5e5e5fffffffffffff1f1f1ebebebf2f2f2ffffffffffff
+f5f5f5f1f1f1e6e6e6fcfcfcfffffffffffff3f3f3e8e8e8f8f8f8e8e8e8fffffff4f4f4
+ffffffedededffffffedededfffffffffffff4f4f4fffffffafafaf4f4f4eeeeeeffffff
+fffffffffffff7f7f7fffffffcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeedededffffffe2e2e2
+ffffff919191e9e9e9fcfcfcf0f0f0ffffff000000121212161616111111060606000000
+fefefee5e5e5fbfbfbfffffff2f2f2ffffff000000090909fffffff9f9f9000000161616
+070707fffffffffffff0f0f01c1c1c000000eeeeeefdfdfdffffff0000000b0b0bffffff
+e3e3e3f6f6f6131313212121f5f5f5f6f6f61f1f1f0000000909090000001c1c1c1d1d1d
+010101000000fffffff9f9f9f8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffff4f4f4ffffff
+ffffffc1c1c1f3f3f3f7f7f7fdfdfdfbfbfbfcfcfcfefefefdfdfdfbfbfbfcfcfcffffff
+f2f2f2f9f9f9fffffff1f1f1ffffffdcdcdc000000000000dededef3f3f31515150d0d0d
+000000f8f8f8fffffff1f1f1070707000000000000fffffffefefeebebebfefefe000000
+e7e7e7f5f5f5040404090909fdfdfdf3f3f3fafafa1a1a1a080808f3f3f3fdfdfdffffff
+000000000000fffffff8f8f8efefef0303031e1e1eebebebfffffff8f8f8191919000000
+fefefeffffff141414000000030303000000000000191919060606030303fafafafcfcfc
+f6f6f6fcfcfcf8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000060606000000050505000000f8f8f8f6f6f6f5f5f5fbfbfbfafafafafafaffffff
+f4f4f4f6f6f6fffffffafafaf6f6f6fffffffcfcfce3e3e30505050c0c0cedededffffff
+ffffffefefeff9f9f9fdfdfdf7f7f7f9f9f9fffffff7f7f7f3f3f3fffffffcfcfcfdfdfd
+fffffff6f6f6e9e9e9fffffffffffff6f6f6fafafafffffffffffff7f7f7fbfbfbf0f0f0
+ffffffedededfffffffdfdfdf4f4f4fbfbfbfffffff8f8f8f5f5f5fefefefffffff2f2f2
+eeeeeefafafaf9f9f9f6f6f6ecececf0f0f0fbfbfbfafafaf7f7f7ffffffe4e4e4ffffff
+fffffffbfbfbf7f7f7fbfbfbfcfcfcffffffffffffeaeaeae4e4e4fffffff3f3f3ffffff
+eeeeeefefefef2f2f2f9f9f9ffffffddddddfafafaf3f3f3f8f8f8ecececfffffff8f8f8
+f4f4f4fcfcfcffffffd5d5d5fefefefffffff4f4f4fffffffbfbfbfcfcfce8e8e8fdfdfd
+f6f6f6fffffffcfcfcfbfbfbf5f5f5f9f9f9fffffffefefefbfbfbf1f1f1f5f5f5fefefe
+f9f9f9e9e9e9fffffffffffff5f5f5e8e8e8f5f5f5fdfdfdf4f4f4fffffffafafae5e5e5
+fdfdfdd7d7d7fffffffefefefcfcfcf8f8f8f9f9f9fefefefffffffffffffefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fcfcfcffffff
+efefefe9e9e9b3b3b3fefefef0f0f0e7e7e7ffffffdcdcdcffffffebebebfffffffbfbfb
+fffffffbfbfbf6f6f6bbbbbbfdfdfd0707071919190000000000000c0c0c0000000d0d0d
+fafafaebebebf2f2f20606060000002a2a2a070707f8f8f8080808090909060606050505
+fafafa1b1b1b0000001111110a0a0af4f4f4e6e6e60c0c0c050505090909000000f0f0f0
+0707070c0c0c000000fdfdfdf8f8f8fafafafcfcfcfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefbfbfbf5f5f5ffffff
+f1f1f1ffffffc8c8c8e8e8e8fcfcfcfcfcfcfdfdfdfffffffcfcfcf9f9f9fcfcfcffffff
+fefefeeeeeeeffffff919191f3f3f30a0a0a0101010505050a0a0affffffe1e1e1050505
+1d1d1d1212120b0b0bfafafafefefe000000070707000000000000181818020202050505
+fffffff8f8f81414140000001d1d1d000000000000060606fffffffdfdfdffffff000000
+0f0f0f0b0b0b0f0f0ffafafa0000001010100000000f0f0fececec000000060606000000
+000000f3f3f3fcfcfc0404040d0d0d1010100b0b0bededed1616160000000a0a0affffff
+f8f8f8fffffffffffff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fdfdfdfbfbfbf7f7f7f7f7f7f7f7f7f7f7f7
+f7f7f7f7f7f7f7f7f7f7f7f7fffffffcfcfcffffff0000000c0c0c080808000000000000
+f7f7f7f9f9f9fcfcfcfefefefefefefbfbfbf7f7f7f4f4f4f8f8f8f9f9f9f9f9f9f9f9f9
+fafafafbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafafafafafafafafafafafafa
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f8f8f8fafafafcfcfcfbfbfbf8f8f8f7f7f7f9f9f9fcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f8f8f8fafafafcfcfcfdfdfdfdfdfdfcfcfcfafafaf8f8f8fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf9f9f9fafafafafafafafafafbfbfbfcfcfcfcfcfcfcfcfc
+f7f7f7f9f9f9fbfbfbfdfdfdfdfdfdfdfdfdfbfbfbfafafafafafafafafafafafafafafa
+fafafafafafafafafafafafaffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfbfbfbfbfbfb
+fafafaf3f3f3e7e7e7dededef7f7f7fbfbfbfffffffffffffffffffcfcfcf5f5f5f0f0f0
+ffffffebebebd7d7d7dededef7f7f7fffffffffffff6f6f6fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafcfcfcfefefefdfdfd
+fafafaf9f9f9fbfbfbfefefefbfbfbfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff3f3f3ffffffffffff
+f0f0f0fffffff0f0f09b9b9bfffffffffffffcfcfcf6f6f6f9f9f9fffffffffffffdfdfd
+ffffffd5d5d5c6c6c6e6e6e6fffffff9f9f9f1f1f1f8f8f8fbfbfbf4f4f4f4f4f4fbfbfb
+fbfbfbf4f4f4f4f4f4fbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fafafafafafafafafafafafafafafafafafafafafafafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000020202f8f8f8fefefefcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfde5e5e5f0f0f0ffffffe6e6e6fffffffdfdfde7e7e7ffffff
+fafafafcfcfcfefefefffffffffffffcfcfcfafafaf8f8f8fbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafcfcfcfefefefdfdfdfbfbfbfafafafcfcfcfefefefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfcfcfcfefefefffffffffffffefefefcfcfcfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+f8f8f8fafafafcfcfcfefefefefefefdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfcfcfc
+fefefefdfdfdf7f7f7f1f1f1d5d5d5dcdcdce7e7e7f3f3f3fbfbfbffffffffffffffffff
+b7b7b7d1d1d1f0f0f0fffffffffffffcfcfcf9f9f9f9f9f9fdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfdfdfdfffffffefefe
+fcfcfcfbfbfbfcfcfcfefefefcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefef1f1f1ffffffffffff
+f2f2f2ffffffffffffe5e5e5898989afafafddddddf7f7f7fdfdfdfbfbfbf5f5f5f0f0f0
+a1a1a1b7b7b7dededefffffffffffff8f8f8f5f5f5fcfcfcfffffff9f9f9f9f9f9ffffff
+fffffff9f9f9f9f9f9fffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000030303f9f9f9fefefefcfcfcffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcffffffefefeffffffffafafafcfcfcf3f3f3fefefe
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfffffffffffffffffffefefefdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+fbfbfbfcfcfcfefefefffffffffffffefefefdfdfdfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfdfdfd
+fffffffffffffffffffffffff9f9f9fbfbfbfffffffffffffffffffffffffffffffdfdfd
+fcfcfcfffffffffffffffffffafafaf8f8f8fefefefffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fdfdfdfdfdfdfefefefffffffdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fdfdfdffffff
+f5f5f5f3f3f3fffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffafafa
+ebebebf9f9f9fffffffbfbfbf7f7f7fbfbfbfffffffefefefffffffcfcfcfcfcfcffffff
+fffffffcfcfcfcfcfcfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000030303fafafafffffffdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffff1f1f1fffffff8f8f8f4f4f4fcfcfcffffffffffffefefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfcfcfc
+fefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfc
+fffffffefefef6f6f6f9f9f9fffffffffffffffffff9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffffffffffdfdfdfefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf8f8f8fdfdfd
+fffffff7f7f7f5f5f5fefefefcfcfcf4f4f4edededeeeeeef8f8f8fffffffffffffefefe
+fffffffffffffdfdfdf7f7f7fefefefffffffefefeecececfffffffbfbfbfbfbfbffffff
+fffffffbfbfbfbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000040404fafafafffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff0f0f0fffffffffffffffffff6f6f6fffffff3f3f3
+fffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfd
+fefefefefefefdfdfdfbfbfbfafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+edededf3f3f3fbfbfbfffffffffffffffffffefefefdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffafafafafafa
+fffffffffffffcfcfcfefefefffffffffffffffffffffffffbfbfbf4f4f4f6f6f6fbfbfb
+ecececf2f2f2f9f9f9fffffffffffffbfbfbf8f8f8f7f7f7fefefefcfcfcfcfcfcfefefe
+fefefefcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000040404fbfbfbffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffeeeeeefcfcfcfbfbfbf4f4f4fdfdfdf9f9f9ffffff
+fefefefefefefefefefdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffffffffffffffdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfcfcfcfefefeffffff
+fffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefefdfdfd
+fffffffffffffffffffbfbfbf6f6f6f7f7f7fefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefefefe
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff2f2f2fffffffffffff8f8f8
+fcfcfcfffffffffffffffffffcfcfcf8f8f8f7f7f7fafafafcfcfcfdfdfdffffffffffff
+fffffffffffffffffffffffff8f8f8f2f2f2f8f8f8fffffffffffffefefefefefeffffff
+fffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000040404fbfbfbffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff0f0f0fefefefffffffefefef6f6f6fffffff6f6f6f1f1f1
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfefefeffffffffffff
+fffffffffffffffffffffffff2f2f2f4f4f4f6f6f6f9f9f9fdfdfdffffffffffffffffff
+f2f2f2f2f2f2f4f4f4fbfbfbfffffffffffffdfdfdf7f7f7fefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfdfdfd
+fffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffffffffafafa
+f6f6f6f9f9f9fdfdfdfdfdfdfffffff8f8f8f6f6f6fffffffffffffffffff4f4f4e8e8e8
+fbfbfbf6f6f6f6f6f6fffffffffffffffffffafafaf8f8f8ffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000000000010101000000050505fcfcfcfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefffffffffffff4f4f4fffffff7f7f7ffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffefefefffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffffffffffffffefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfdfdfdfefefefffffffefefefffffffffffffffffffffffffefefefdfdfdfdfdfd
+fffffffffffffffffffffffffefefefcfcfcfdfdfdfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfdfdfd
+fffffffffffffefefefcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8f9f9f9ffffff
+fffffffffffffffffff7f7f7fffffffefefefefefefffffffefefef8f8f8fafafaffffff
+fffffffffffffffffffbfbfbfafafafdfdfdfffffffffffffdfdfdfffffffffffffdfdfd
+fdfdfdfffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfafafafbfbfbfcfcfcfcfcfcfafafafafafafcfcfcfdfdfd
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fffffffdfdfdfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfbfbfbf9f9f9f9f9f9fafafafcfcfcfdfdfdf8f8f8f9f9f9fafafafcfcfc
+fefefefefefefffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefafafafafafafafafafafafaf9f9f9f9f9f9f9f9f9f9f9f9
+fefefefcfcfcfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfafafafafafafbfbfbfdfdfdfefefef7f7f7f8f8f8fafafafcfcfc
+fdfdfdfefefefefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fdfdfdfbfbfbfbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfbfbfbfcfcfcfdfdfdfefefef8f8f8f9f9f9fbfbfbfcfcfc
+fdfdfdfefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfbfbfbfafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfafafafbfbfbfcfcfcfdfdfd
+fefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8
+fbfbfbfafafafafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafafcfcfcfcfcfcfdfdfdfefefe
+fefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfb
+fbfbfbfafafafafafafbfbfbfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffeeeeeefcfcfcffffff4c4c4c8282826161616d6d6d6f6f6f696969646464676767
+6f6f6f7171716c6c6c656565686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+6868686868686868686868686e6e6e6e6e6e7070706868686a6a6a7171716a6a6a686868
+5c5c5c787878dfdfdffafafafffffffdfdfdfdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f5f5f5fffffffefefe6a6a6af1f1f1f9f9f9fbfbfbfcfcfcfbfbfbfbfbfbfefefe
+fffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff4f4f4fafafafcfcfcf7f7f7fcfcfcfffffffdfdfdffffff
+f2f2f2dcdcdcfffffffbfbfbfbfbfbfefefefcfcfcfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fffffffffffff3f3f3666666fffffffffffff9f9f9f9f9f9fcfcfcffffffffffff
+fdfdfdfcfcfcfefefefffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9fdfdfdfffffffffffffcfcfcfefefefafafaf6f6f6fafafa
+ffffffe0e0e0fbfbfbf1f1f1fafafafffffffffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff9f9f9fefefefcfcfc6b6b6bf1f1f1f0f0f0e7e7e7ffffffffffffffffffffffff
+fdfdfdfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff4f4f4fffffff6f6f6f6f6f6f7f7f7f3f3f3fafafafdfdfd
+f3f3f3d9d9d9fffffffffffffffffffffffffafafaf8f8f8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff8f8f8fcfcfcfefefe6e6e6ef5f5f5ffffffffffffcccccccbcbcbcacacac8c8c8
+c7c7c7c7c7c7c7c7c7c8c8c8c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c6c6c6cdcdcdcacacad6d6d6d3d3d3d7d7d7f8f8f8fbfbfb
+ffffffe2e2e2fffffffefefefcfcfcfafafaf8f8f8fdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffff8f8f8636363f3f3f3fcfcfcf7f7f7c9c9c9ccccccd1d1d1d4d4d4
+d5d5d5d4d4d4d4d4d4d3d3d3cccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccfcfcfcdcdcdcdcdcdd5d5d5b1b1b1b1b1b1eeeeeeefefef
+fdfdfdd6d6d6f5f5f5f2f2f2fafafafffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f0f0f0fafafafffffffdfdfd6c6c6cfdfdfdfffffff3f3f3d0d0d0dededef0f0f0fafafa
+fcfcfcfafafaf9f9f9fafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfffffffbfbfbacacaca2a2a2f9f9f9fbfbfb
+ffffffddddddfffffffffffffffffffffffff9f9f9f8f8f8ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefef8f8f8fdfdfdfbfbfb6d6d6df9f9f9fefefefbfbfbbbbbbbd3d3d3f1f1f1ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdf4f4f4fffffffcfcfc9696968d8d8dfbfbfbffffff
+f6f6f6d8d8d8fffffffdfdfdfbfbfbf6f6f6f7f7f7ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdcccccce1e1e1fffffffafafa
+fffffffdfdfdf7f7f7f8f8f8f3f3f3fffffffcfcfcf7f7f7fafafaffffffebebebfcfcfc
+fffffffafafafafafafffffffefefef4f4f4fffffffefefefffffff4f4f4fdfdfdfefefe
+fcfcfcf9f9f9ffffffeeeeeef2f2f2fffffff6f6f6fffffffffffff8f8f8ffffffffffff
+fefefefffffffbfbfbfafafaf9f9f9fffffffffffffafafafefefefffffffffffffcfcfc
+fffffffafafae3e3e3fffffffdfdfdfffffff7f7f7ffffff929292929292f9f9f9f2f2f2
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc8c8c8c7c7c7fcfcfcfafafa
+e8e8e8f6f6f6f9f9f9ffffffffffffefefeffffffffffffffafafaf7f7f7fffffff8f8f8
+fdfdfdfffffffefefefbfbfbecececfffffffcfcfcf8f8f8edededf9f9f9fffffffbfbfb
+fffffff2f2f2fdfdfdfffffffffffff8f8f8fbfbfbf8f8f8f2f2f2e3e3e3fffffffcfcfc
+f8f8f8f5f5f5f6f6f6fffffff8f8f8fcfcfce7e7e7fffffffffffffdfdfdfcfcfcffffff
+e7e7e7f6f6f6fffffff1f1f1fffffff8f8f8fdfdfdf9f9f9a3a3a3a9a9a9ffffffffffff
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc9c9c9cacacaf3f3f3fafafa
+fffffffefefef5f5f5fcfcfcebebebfafafaf5f5f5fdfdfdf7f7f7fffffffcfcfcf1f1f1
+f6f6f6ebebebfffffffdfdfdfffffff3f3f3e9e9e9fffffffbfbfbffffffecececfbfbfb
+f8f8f8ffffffe6e6e6f1f1f1f8f8f8fefefefffffffffffffdfdfdffffffefefeffcfcfc
+fffffff5f5f5f4f4f4f4f4f4f1f1f1fffffff6f6f6fffffff0f0f0f5f5f5fdfdfd000000
+fffffffcfcfce3e3e3fffffffdfdfdf5f5f5ffffffefefef9c9c9c949494e4e4e4e7e7e7
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc1c1c1d7d7d7ffffffe4e4e4
+efefefeeeeeefffffff5f5f5fffffff9f9f9fdfdfdf4f4f4ffffffedededf8f8f8f3f3f3
+fffffffcfcfcececece4e4e4f7f7f7fefefef9f9f9fbfbfbefefeff2f2f2fffffff1f1f1
+ffffffeeeeeefdfdfdfefefef7f7f7f7f7f7fdfdfdefefefffffffe5e5e5ffffffffffff
+f9f9f9f8f8f8fffffff7f7f7fefefeecececf6f6f6f3f3f3f5f5f5fffffffefefe000000
+edededfffffffdfdfdfffffffafafafffffff8f8f8f2f2f2979797989898fbfbfbffffff
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdd4d4d4bcbcbcffffffffffff
+e9e9e9ffffffe8e8e8ffffff0c0c0c0000000a0a0a000000f0f0f0f6f6f6ffffffffffff
+f0f0f0ffffffeaeaeafffffff4f4f4f6f6f6efefeff6f6f6fefefef0f0f0fbfbfbfefefe
+f6f6f6f8f8f8fffffff3f3f3fefefeffffffebebebfffffff3f3f3f9f9f9ffffffffffff
+fffffff7f7f7e9e9e9f7f7f7fffffff4f4f4fffffffcfcfcfbfbfbe8e8e8f1f1f10a0a0a
+f2f2f2ffffffe2e2e2f5f5f5f3f3f3ffffffefefefffffff9d9d9d989898f8f8f8efefef
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdcbcbcbd1d1d1ffffffececec
+fffffff2f2f20a0a0a020202f9f9f9ffffffe9e9e9f5f5f5111111f4f4f4fffffffbfbfb
+fbfbfbedededeeeeeef2f2f2fefefef6f6f6fffffff1f1f1fffffff5f5f5fbfbfbfdfdfd
+f2f2f2f5f5f5fafafaefefeffcfcfcd4d4d4ffffff030303ecececf5f5f5f6f6f6e5e5e5
+efefeffffffffbfbfbf4f4f4e4e4e4efefeff8f8f8f1f1f1f8f8f8fcfcfcffffffffffff
+e9e9e9ecececffffff010101fcfcfcf7f7f7ebebebfdfdfd9898989f9f9ffffffff7f7f7
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdd5d5d5ccccccf7f7f7fcfcfc
+e9e9e9040404070707e1e1e1f9f9f9ffffffffffffd9d9d9202020f1f1f1f8f8f8fefefe
+ffffffe0e0e0fffffffefefeeeeeeef9f9f9fefefefffffff9f9f9fefefeffffffe7e7e7
+fffffff7f7f7f8f8f8fffffffdfdfdfffffff1f1f10a0a0af7f7f7fffffffffffff3f3f3
+f8f8f8e4e4e4ffffffe9e9e9fefefefafafaf6f6f6ffffffffffffe7e7e7fffffff3f3f3
+fdfdfdfcfcfcffffff0b0b0bffffffe0e0e0fffffff6f6f68b8b8b8d8d8dffffffffffff
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdd4d4d4c8c8c8fffffffbfbfb
+ffffff050505f3f3f3fffffffdfdfdf0f0f0ebebebfffffffbfbfbfdfdfd060606040404
+f1f1f1020202000000fcfcfcfffffff6f6f6020202080808050505f9f9f9f3f3f3ffffff
+000000080808030303f8f8f8f9f9f9f7f7f70505050404040d0d0d000000fffffff5f5f5
+ffffff0000000505050e0e0ef5f5f5fefefef2f2f2fdfdfdf4f4f4ffffff000000101010
+fefefefdfdfd0d0d0d0000000000000c0c0cecececefefefa7a7a79c9c9cfbfbfbfbfbfb
+fbfbfbebebebfafafafffffffefefefffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdd0d0d0c5c5c5fefefeffffff
+e8e8e8080808f6f6f6fdfdfdffffffe7e7e7fcfcfcf9f9f9f4f4f4ebebebfefefe000000
+121212f2f2f2f5f5f5fefefee9e9e9000000ffffffe4e4e4f7f7f7000000ffffff000000
+000000fefefefbfbfb191919ffffffe4e4e4ffffff0a0a0ae7e7e7fafafaeeeeeef3f3f3
+020202f6f6f6f6f6f6fafafa0a0a0afbfbfbffffffe0e0e0fffffffcfcfcededed030303
+fefefee2e2e2ffffff040404ffffffe6e6e6fffffffefefe9b9b9b9c9c9cf9f9f9fefefe
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc0c0c0e1e1e1ffffffe7e7e7
+ffffff000000fffffff2f2f2f5f5f5e9e9e9fafafafffffffcfcfcfffffff0f0f00c0c0c
+fffffff4f4f4eeeeeeffffff000000ffffffedededf9f9f9ffffff010101f0f0f0ffffff
+ffffffe9e9e9282828000000fefefefffffffbfbfb000000ffffffffffffffffff080808
+f4f4f4ffffffe6e6e6fafafa040404fbfbfbdfdfdfffffffffffffdfdfdfffffff0f0f0f
+fafafafbfbfbdcdcdc060606f0f0f0ffffffe6e6e6ffffffa1a1a1909090fbfbfbfdfdfd
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfddcdcdcbababaf8f8f8f3f3f3
+f8f8f8030303f2f2f2fffffff1f1f1ffffffe7e7e7ebebebffffffe3e3e3d4d4d4070707
+f1f1f1fffffff0f0f0f2f2f2020202000000000000010101080808000000f6f6f6ffffff
+0b0b0b030303fefefe1b1b1bf3f3f3f0f0f0ffffff020202ebebebecececefefef090909
+0a0a0a000000060606161616000000fbfbfbf4f4f4f2f2f2f0f0f0ffffffefefef000000
+fffffffefefef1f1f1020202f3f3f3ffffffe8e8e8fcfcfc9e9e9e979797efefefffffff
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc5c5c5c7c7c7ffffffffffff
+f3f3f30000000f0f0ffefefee6e6e6efefeffffffff6f6f6010101fffffffbfbfb050505
+f9f9f9e9e9e9f5f5f5f8f8f8020202fffffff8f8f8fffffff2f2f2fffffff8f8f8040404
+e5e5e5f4f4f4f9f9f9000000fefefefbfbfbdcdcdc050505f6f6f6fbfbfbffffff000000
+fdfdfdeeeeeeffffffedededfcfcfcfcfcfcfffffff8f8f8ffffffd3d3d3ffffff0b0b0b
+fafafaecececf8f8f8000000e6e6e6f0f0f0fefefeffffffa2a2a29a9a9ae8e8e8fbfbfb
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc8c8c8e8e8e8e9e9e9d7d7d7
+fffffff0f0f0020202000000ffffffedededf5f5f5f5f5f5101010ecececf5f5f5000000
+fffffffffffff7f7f7ffffff000000020202fcfcfcfbfbfbffffff000000ffffff040404
+ffffffffffff060606101010fffffff8f8f8ffffff000000f8f8f8ffffffebebeb0b0b0b
+000000ffffffeaeaeafdfdfd161616f7f7f7fafafaf8f8f8efefeffffffffefefe0b0b0b
+eaeaeaf5f5f5ffffff000000ffffffebebebe9e9e9eeeeee969696858585fffffff0f0f0
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdcdcdcdc8c8c8ffffffffffff
+dadadaffffffebebebfbfbfb070707030303010101000000fffffff2f2f2141414080808
+000000fffffff8f8f8fcfcfcffffff000000000000000000000000fffffffcfcfcffffff
+000000111111ededed080808000000f9f9f9ffffff0000000000000f0f0fffffffeaeaea
+0000000e0e0e000000090909efefeff9f9f9ebebebffffffffffffeeeeee070707000000
+131313f2f2f2fbfbfb020202000000040404ffffffffffff9d9d9da5a5a5dededeffffff
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdc6c6c6d5d5d5fefefef6f6f6
+f5f5f5f4f4f4ebebebfffffffbfbfbfffffff9f9f9fafafafffffff9f9f9f3f3f3f7f7f7
+fffffff5f5f5fcfcfcececececececfffffff6f6f6fffffffdfdfdffffffffffffeeeeee
+fdfdfdfcfcfce5e5e5ffffffffffffffffffe4e4e4f9f9f9ffffffe1e1e1f2f2f2ffffff
+ffffffe8e8e8fefefefefefef8f8f8ffffffffffffe8e8e8fffffffffffffbfbfbf2f2f2
+efefeff9f9f9fcfcfcfdfdfdffffffedededf7f7f7fefefea3a3a3868686fffffff2f2f2
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffcfcfc6c6c6cf9f9f9fffffffdfdfdd6d6d6c0c0c0fffffffdfdfd
+fffffffffffff9f9f9f2f2f2efefeffffffff9f9f9ffffffe9e9e9f8f8f8fafafafcfcfc
+f7f7f7fffffffffffffffffffffffff9f9f9edededf0f0f0fafafafffffffcfcfcffffff
+fffffffcfcfcfffffffafafafefefef4f4f4fffffffffffffdfdfdfdfdfdffffffeeeeee
+fcfcfcffffffecececf4f4f4f9f9f9f3f3f3f2f2f2fffffff6f6f6fffffff8f8f8ffffff
+fffffff2f2f2fffffff6f6f6ffffffe9e9e9fffffff7f7f7989898989898edededffffff
+fefefee4e4e4fffffffdfdfdfffffffcfcfcfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f8f8f8fdfdfdfffffffafafa6c6c6cf5f5f5f9f9f9fdfdfdccccccd7d7d7f3f3f3ffffff
+fffffffbfbfbfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fcfcfcfefefefdfdfd
+fafafaf9f9f9fbfbfbfdfdfdfdfdfdfffffffffffffffffffefefefafafaf5f5f5f1f1f1
+fbfbfbfcfcfcfffffffffffffefefefbfbfbf6f6f6f3f3f3fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfffffffefefe9b9b9b919191fffffffbfbfb
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff9f9f96e6e6ef8f8f8fdfdfdffffffc7c7c7d5d5d5f1f1f1ffffff
+f4f4f4f1f1f1fdfdfdfffffff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8
+fefefefefefefefefefefefefefefefefefefefefefefefefbfbfbfefefefffffffefefe
+fcfcfcfbfbfbfdfdfdfffffffdfdfdfefefefffffffffffffffffffdfdfdfafafaf8f8f8
+f2f2f2f4f4f4f7f7f7fafafafbfbfbfafafaf8f8f8f7f7f7f8f8f8f8f8f8f8f8f8f8f8f8
+f8f8f8f8f8f8f8f8f8f8f8f8ffffffffffffffffffffffff9f9f9f939393fdfdfdf6f6f6
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffcfcfcf3f3f36a6a6af7f7f7fbfbfbfefefecacacad5d5d5f2f2f2ffffff
+fffffff8f8f8f9f9f9f6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffff
+fefefefdfdfdfefefefffffffcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf9f9f9f3f3f3a2a2a29c9c9cfdfdfdfbfbfb
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdf9f9f9f2f2f26a6a6af7f7f7f9f9f9fafafad9d9d9bcbcbca7a7a7a0a0a0
+9b9b9b9e9e9ea3a3a39e9e9e9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9b9b9b9c9c9c9c9c9c9c9c9c
+9b9b9b9b9b9b9b9b9b9c9c9c9b9b9b9a9a9a9a9a9a9b9b9b9b9b9b9c9c9c9d9d9d9e9e9e
+9a9a9a9999999999999898989898989898989898989999999a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9aa3a3a3a0a0a0a1a1a1ababab8686869a9a9af9f9f9ffffff
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefef8f8f8707070fbfbfbfafafaf9f9f9c8c8c8a8a8a8909090888888
+8787878e8e8e959595909090959595959595959595959595959595959595959595959595
+999999999999999999999999999999999999999999999999979797979797969696969696
+979797979797979797969696989898979797969696959595959595969696979797979797
+989898979797959595949494929292929292929292929292959595959595959595959595
+9595959595959595959595959292928d8d8d8d8d8d9e9e9e939393aaaaaaedededefefef
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffff8f8f86e6e6ef7f7f7f7f7f7f7f7f7efefefeeeeeefcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafafafafa
+fcfcfcfcfcfcfbfbfbfafafafefefefdfdfdfcfcfcfbfbfbfafafafafafafafafafafafa
+fffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfbfffffff7f7f7f7f7f7ffffffffffff
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfcfcfcfefefef5f5f5686868f1f1f1f5f5f5f8f8f8fffffffafafafefefefefefe
+f2f2f2f0f0f0fafafafefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefafafafcfcfcfbfbfbfffffffdfdfdf8f8f8fdfdfdf4f4f4
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff6f6f6686868f2f2f2f8f8f8fffffffffffff5f5f5f8f8f8ffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbf9f9f9fafafa
+fcfcfcfdfdfdfcfcfcf9f9f9f9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfcfbfbfbfbfbfb
+fcfcfcfcfcfcfdfdfdfefefefefefefdfdfdfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbfffffffffffffffffffffffffdfdfdffffffffffff
+fdfdfde3e3e3fefefefcfcfcfffffffbfbfbfffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000070707000000030303030303fffffffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffff5f5f5ffffff818181d2d2d2ebebebe0e0e0e1e1e1e1e1e1e1e1e1e1e1e1
+e1e1e1e1e1e1e1e1e1e1e1e1e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e3e3e3e3e3e3e3e3e3e3e3e3e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0
+ecececf0f0f0f6f6f6fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+080808000000000000000000000000fffffff7f7f7fffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfdfdfdf4f4f4ffffffd6d6d6fefefefffffffbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+f6f6f6f8f8f8fbfbfbfefefefefefefdfdfdfcfcfcfafafafefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefe000000000000000000000000
+000000
+0000000707070a0a0a000000000000fffffff3f3f3f6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdf6f6f6fbfbfbfffffffffffff8f8f8fffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000
+000000050505040404000000070707f6f6f6fffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefffffffbfbfbf3f3f3ffffffeeeeeeeaeaeafbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefdfdfdfdfdfdfdfdfdfefefefffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd000000000000000000000000
+000000
+070707000000000000090909000000111111000000000000010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+030303040404020202020202000000000000010101050505020202020202020202020202
+020202020202020202020202030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+000000000000000000000000000000010101030303040404010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101000000000000000000000000
+000000
+050505000000000000050505060606000000080808090909000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0202020000000000000808080000000d0d0d0a0a0a000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+0000000303030c0c0c010101010101010101040404000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000010101000000060606000000000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202010101010101010101010101010101010101010101010101
+020202020202010101010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+020202000000030303000000000000080808000000050505000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000404040202020000000303030000000000000c0c0c000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000010101010101010101000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe5.gif b/lib/orber/doc/src/dataframe5.gif
new file mode 100644
index 0000000000..80e17945a2
--- /dev/null
+++ b/lib/orber/doc/src/dataframe5.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe5.ps b/lib/orber/doc/src/dataframe5.ps
new file mode 100644
index 0000000000..5a4ea7b29a
--- /dev/null
+++ b/lib/orber/doc/src/dataframe5.ps
@@ -0,0 +1,3800 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe5.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 148 327 464 464
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 948 string def
+
+% define space for color conversions
+/grays 316 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+148 327 translate
+
+% size of image (on paper, in 1/72inch coords)
+316.00800 137.01600 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+316 137 8 % dimensions of data
+[316 0 0 -137 0 137] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0505050000000c0c0c000000090909000000030303000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+010101010101010101010101010101010101020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000050505020202050505000000000000020202060606
+000000000000000000000000
+0303030404040000000000000000000b0b0b050505000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101010101010101010101
+010101010101010101010101020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+030303030303030303030303030303030303030303030303030303020202020202020202
+020202010101010101020202000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000303030c0c0c030303000000
+000000000000000000000000
+0202020101010000000a0a0a000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000d0d0d030303000000000000000000101010
+000000000000000000000000
+0202020000000606060808080505050000000909090b0b0b010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404030303030303030303030303020202030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303040404040404040404010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+020202020202020202020202010101010101010101010101040404040404040404040404
+040404040404040404040404020202030303030303030303030303040404040404040404
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404030303030303030303030303030303010101030303040404020202
+020202040404050505030303010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101111111000000000000000000070707000000000000000000
+000000000000000000000000
+0202020000000b0b0b000000000000080808020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101010101000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000010101010101
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101000000000000000000000000000000000000000000000000000000000000000000
+000000000000010101000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000080808000000000000000000212121000000
+000000000000000000000000
+010101070707000000000000090909f2f2f2ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfbf6f6f6fcfcfcfdfdfdf8f8f8
+f9f9f9fffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffdfdfdf050505
+000000000000000000000000
+0000000707070000000b0b0b020202fffffff7f7f7eeeeeefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcf7f7f7fefefefffffff9f9f9
+fafafafffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffefefef5f5f5f2f2f2ffffffffffff0d0d0d
+000000000000000000000000
+060606000000030303000000000000fdfdfdf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafafafafafafafafafafafafa
+f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9f6f6f6fdfdfdfefefef8f8f8
+f9f9f9fffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf6f6f6fffffffffffff9f9f9ffffff000000
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefeffffffffffffffffffe1e1e1eeeeeeffffffe6e6e6
+f3f3f3fffffff0f0f0fffffffffffffffffff4f4f4f0f0f0fdfdfdeeeeeeffffffe8e8e8
+f5f5f5fffffffafafae7e7e7f8f8f8fefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffefefefafafafffffffffffffffffffdfdfdffffffffffffffffff
+fffffff1f1f1fffffffffffffffffffffffff8f8f8f9f9f9fdfdfdfffffff6f6f6f9f9f9
+ffffffd2d2d2fffffff0f0f0fffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fafafafdfdfdfffffff2f2f2f6f6f6ffffffefefeffffffff3f3f3ecececffffffe3e3e3
+eeeeeeffffffeaeaeafefefefefefefbfbfbfcfcfcfffffffffffffdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfffffff9f9f9e3e3e3f8f8f8
+fdfdfde3e3e3f0f0f0efefefffffffeaeaeaf5f5f5fffffff2f2f2fffffff3f3f3fcfcfc
+fdfdfdf0f0f0f9f9f9fffffff6f6f6fffffff1f1f1fffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfdfdfd
+fffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfefefeffffffffffff
+fffffffffffffffffffffffff9f9f9fdfdfdfefefefbfbfbfafafafcfcfcfefefefcfcfc
+eeeeeeffffffeaeaeaf1f1f1fefefedfdfdffffffff1f1f1f8f8f8f9f9f9ffffffe4e4e4
+fdfdfdfefefef3f3f3fffffffcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfcfcfcfbfbfbfdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+f9f9f9fffffff2f2f2fcfcfcfffffff4f4f4fcfcfceeeeeefffffffefefee5e5e5ffffff
+f2f2f2dfdfdffffffffdfdfdfffffffcfcfcfdfdfdfffffffffffffefefefefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefcfcfcfafafaf7f7f7f6f6f6fefefef5f5f5fffffffbfbfb
+dededeffffffffffffebebebf9f9f9f9f9f9edededfdfdfde9e9e9e0e0e0f5f5f5ffffff
+fffffffbfbfbffffffe4e4e4fefefefffffff3f3f3fefefefefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfcfcfcfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffefefefffffffefefefcfcfcfdfdfdfffffffffffffafafa
+ffffffd9d9d9ffffffffffffffffffffffffe5e5e5fdfdfdffffffeaeaeafcfcfcffffff
+f5f5f5ffffffe7e7e7edededf9f9f9fafafafcfcfcfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfc
+f9f9f9fffffff7f7f7f9f9f9ffffffffffffefefef161616000000f8f8f8fbfbfbe0e0e0
+fffffffffffff2f2f2efefeffffffffdfdfdfdfdfdfffffffffffffefefefefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffefefefbfbfbf7f7f7f5f5f5fafafaf6f6f6fffffff5f5f5
+222222000000181818000000dfdfdfffffffeaeaeafbfbfbffffffffffffe6e6e6090909
+0000000303030101010c0c0cf9f9f9eeeeeeffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffefefefefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffefefefffffffffffffefefefbfbfbfefefefffffffffffff9f9f9
+fefefefefefef6f6f6fefefef3f3f3f2f2f2000000070707000000000000212121000000
+0d0d0d0000001b1b1bfcfcfcfbfbfbfcfcfcfefefefffffffffffffefefefdfdfdfcfcfc
+fafafafbfbfbfcfcfcfefefefffffffffffffffffffffffffdfdfdfdfdfdfefefeffffff
+fffffffffffffefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffe8e8e8fefefeffffffeaeaeae7e7e7fefefe0303031c1c1c000000edededffffff
+fdfdfdecececf0f0f0fffffffffffffcfcfcfcfcfcfffffffffffffcfcfcfcfcfcffffff
+fffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffffffffffffffefefefcfcfcfafafafdfdfdfbfbfbfbfbfbececec
+fdfdfdffffff050505232323121212dadadaffffffe9e9e9fefefeffffffeeeeeef8f8f8
+f6f6f6010101ffffffe6e6e6fafafaffffffe7e7e7fdfdfdfffffffffffffffffffefefe
+fdfdfdfcfcfcfbfbfbfbfbfbf7f7f7f8f8f8fafafafcfcfcfcfcfcfafafaf8f8f8f7f7f7
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfcfcfcfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcf9f9f9f7f7f7fafafafdfdfdfafafaf4f4f4
+ffffffedededfffffff0f0f0f4f4f4000000161616000000fffffff4f4f4e5e5e5ffffff
+f2f2f20000000e0e0efdfdfdfafafafbfbfbfdfdfdfefefefffffffefefefdfdfdfcfcfc
+fefefefffffffefefefefefefcfcfcfafafaf8f8f8f7f7f7fbfbfbfcfcfcfcfcfcfdfdfd
+fdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfb
+f5f5f5ebebebffffffeeeeeeecececfffffff6f6f6000000000000fffffffffffff7f7f7
+f1f1f1ffffffe5e5e5efefeffcfcfcf9f9f9f9f9f9fcfcfcfcfcfcf9f9f9f9f9f9fcfcfc
+fefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffbfbfbfffffffcfcfcffffff
+ffffffffffff000000000000030303000000ffffffeeeeeef1f1f1fffffff8f8f8ffffff
+ffffff000000edededfffffff9f9f9fffffffffffff1f1f1fffffffefefefdfdfdfcfcfc
+fbfbfbfafafaf9f9f9f9f9f9f5f5f5f7f7f7fbfbfbfdfdfdfdfdfdfbfbfbf7f7f7f5f5f5
+fafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbf9f9f9f9f9f9fafafafbfbfb
+fcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfbfbfbf8f8f8f9f9f9fdfdfdfcfcfcf7f7f7
+f8f8f8ffffffeaeaeaffffff141414020202000000fbfbfbf8f8f8ebebebfffffff2f2f2
+efefefffffff010101fbfbfbf8f8f8f9f9f9fbfbfbfcfcfcfefefeffffffffffffffffff
+fafafafbfbfbfcfcfcfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8fbfbfbfbfbfbfbfbfbfcfcfc
+fbfbfbfafafafafafaf9f9f9fefefefdfdfdfbfbfbf9f9f9f7f7f7f5f5f5f3f3f3f2f2f2
+fffffff4f4f4fafafaf5f5f5fffffff1f1f1fffffffefefef8f8f8ffffffffffffe5e5e5
+fefefef4f4f4fdfdfdf9f9f9fbfbfbf8f8f8f8f8f8fbfbfbfafafaf7f7f7f7f7f7fafafa
+fbfbfbfbfbfbfbfbfbfafafaf9f9f9f8f8f8f8f8f8f8f8f8f8f8f8f9f9f9fafafafbfbfb
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffeeeeeefcfcfcffffff
+f3f3f3f8f8f8040404f4f4f40707070e0e0efcfcfcffffffeaeaeaefefeffbfbfbefefef
+fafafa000000fdfdfdfbfbfbdbdbdbf8f8f8fffffff9f9f9fafafafafafafafafafafafa
+fafafafafafafafafafafafaf9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfbfbfbf9f9f9
+fafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfcf9f9f9fafafafbfbfbfcfcfc
+fcfcfcfcfcfcfcfcfcfbfbfbf9f9f9fdfdfdfffffffbfbfbfafafafdfdfdfefefefcfcfc
+e9e9e9fdfdfdf9f9f9dadada080808090909f7f7f7fffffff9f9f9ffffffe4e4e4eaeaea
+fcfcfcffffff000000fffffffbfbfbfafafafbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+f5f5f5f6f6f6f9f9f9fcfcfcfefefefefefefefefefdfdfdfbfbfbfcfcfcfcfcfcfcfcfc
+fcfcfcfbfbfbfafafaf9f9f9fefefefdfdfdfcfcfcf9f9f9f7f7f7f4f4f4f3f3f3f2f2f2
+fffffffffffff5f5f5f0f0f0fffffff9f9f9f9f9f9f6f6f6fffffff1f1f1ffffffffffff
+fcfcfcecececfffffff2f2f2fcfcfcf9f9f9f8f8f8fbfbfbfafafaf7f7f7f7f7f7f9f9f9
+fcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8fafafafbfbfbfbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffffffff1f1f1ffffffedededfbfbfb
+fffffff2f2f2000000ffffff0000000c0c0c000000fdfdfdfffffff9f9f9f3f3f3ffffff
+ffffff000000ffffffeaeaeafffffff6f6f6e5e5e5fffffff5f5f5f6f6f6f7f7f7f8f8f8
+f9f9f9fbfbfbfcfcfcfcfcfcf9f9f9fafafafafafafafafafafafafafafafafafaf9f9f9
+fbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfafafafbfbfbfcfcfcfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcf3f3f3f9f9f9fcfcfcf8f8f8f6f6f6f8f8f8fbfbfbfbfbfb
+fffffff1f1f1f8f8f8ffffff020202000000fffffff4f4f4fefefeedededfffffffafafa
+fffffffbfbfbfffffff3f3f3fffffffffffffdfdfdfbfbfbfafafafafafafbfbfbfbfbfb
+fcfcfcfdfdfdfefefefffffffefefefcfcfcf9f9f9f7f7f7fdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfbfbfbfafafafafafafefefefefefefdfdfdfcfcfcfafafaf9f9f9f8f8f8f8f8f8
+ffffffefefefe9e9e9fffffff2f2f2e9e9e9fffffff1f1f1fbfbfbfffffff3f3f3f2f2f2
+fdfdfdffffffecececfffffffdfdfdfafafaf9f9f9fcfcfcfbfbfbf8f8f8f7f7f7fafafa
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfefefefefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffff
+fffffff7f7f7020202f3f3f3f5f5f50b0b0b050505060606f7f7f7f6f6f6f6f6f6ffffff
+ffffff010101fafafafffffffefefeedededfdfdfdf0f0f0f6f6f60d0d0d0000000c0c0c
+0b0b0b000000050505f4f4f4fafafaf0f0f0fffffff9f9f9f9f9f9171717030303ededed
+f3f3f30c0c0c000000111111000000f9f9f9ecececf1f1f1131313000000090909ffffff
+fffffff3f3f3f5f5f5f2f2f2fffffffffffffafafa0909090b0b0b101010000000040404
+fefefefffffffffffff1f1f10303030a0a0a000000fefefef4f4f4eeeeeefffffffbfbfb
+fcfcfcfafafaefefeff2f2f2f2f2f2fffffffdfdfdf8f8f8efefef0303030c0c0c060606
+000000020202ebebebffffffececece7e7e7fffffffdfdfd000000242424f1f1f1ffffff
+0000000303031515150606060000000b0b0b000000000000040404fefefeffffff000000
+0000000d0d0d070707000000eeeeeefffffff3f3f3020202040404fefefee5e5e5ffffff
+f5f5f5f7f7f7ffffff0000000b0b0b000000101010fbfbfbf5f5f5fefefee2e2e2ffffff
+f7f7f7ffffff0000000000000f0f0f0707070f0f0ffffffff6f6f6f9f9f9f9f9f9f3f3f3
+fdfdfdfcfcfcf8f8f8fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffff9f9f9050505f6f6f6ffffffffffff000000050505fffffffffffff3f3f3fafafa
+f7f7f7000000ffffffe9e9e9f7f7f7fffffff8f8f80a0a0a131313efefeffffffff1f1f1
+ffffff020202070707191919dfdfdfffffffe9e9e9222222010101000000040404070707
+010101070707141414060606000000ffffff0000001515150000001a1a1a1f1f1f000000
+fffffffffffffbfbfbfafafaf0f0f0f5f5f5000000000000dededeffffffffffff000000
+000000fcfcfcf0f0f0ffffff0b0b0b0000000a0a0a111111fffffff9f9f9f9f9f9fbfbfb
+fefefeffffffffffffefefeffbfbfbecececffffffffffff050505090909f8f8f8e5e5e5
+ffffff0e0e0e050505f7f7f7fdfdfdededed0c0c0c000000141414010101ececec000000
+1b1b1b111111000000ffffffffffff000000161616f3f3f3ecececfcfcfcfcfcfcdfdfdf
+fbfbfb0d0d0dffffffefefefffffff0000000e0e0e0a0a0a000000fffffffffffffbfbfb
+fffffff6f6f6000000080808fffffff8f8f8161616000000141414eaeaeafffffffafafa
+f1f1f1000000060606fffffff6f6f6f2f2f2121212000000ffffffebebebfffffff8f8f8
+e8e8e8fffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefffffffefefefefefeffffff
+fffffffbfbfb070707f9f9f9e8e8e8f8f8f80303030000000e0e0ef4f4f4edededffffff
+ffffff0b0b0bfffffff0f0f0f9f9f9fdfdfdfbfbfb000000000000fffffffdfdfdf7f7f7
+e5e5e5ffffff090909000000e9e9e9f5f5f5fafafaecececf9f9f9191919090909f5f5f5
+f4f4f4ffffffeeeeeee6e6e60c0c0c141414ffffffedededf8f8f8ffffffcbcbcb080808
+131313f6f6f6f1f1f1fefefefafafa0b0b0b121212e8e8e8fffffff1f1f1e0e0e0ffffff
+0b0b0b000000fffffff2f2f2f4f4f4000000090909000000080808000000010101ffffff
+f7f7f7ffffffe8e8e8fbfbfbffffffeeeeeeffffff0c0c0c000000e7e7e7ffffffffffff
+f7f7f7ececec000000060606ffffffffffffd8d8d8ffffff0000001b1b1b0b0b0bfdfdfd
+fdfdfdfdfdfd191919edededf5f5f5090909000000fffffff9f9f9ffffffffffffffffff
+fefefe000000ffffffeaeaeaf8f8f8fffffffbfbfb070707000000ffffffebebebffffff
+fcfcfc131313000000f8f8f8f6f6f6f6f6f6000000222222000000fffffffefefee6e6e6
+0404041d1d1dfcfcfcf3f3f3f7f7f7fffffff4f4f40c0c0c000000fffffff5f5f5f2f2f2
+fffffffafafafffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfefefe
+fffffffafafa070707fafafaefefeffffffffcfcfc0303030a0a0a090909eeeeeefefefe
+f2f2f2060606e4e4e4f9f9f9ffffffefefeff9f9f9fffffffffffffafafaf1f1f1f3f3f3
+ffffffe9e9e9000000202020ffffffefefeff9f9f9fffffff0f0f0000000020202f7f7f7
+fcfcfcfcfcfcffffffefefef040404020202e4e4e4fffffff4f4f4f4f4f4ffffff080808
+090909f8f8f8fdfdfdefefeffbfbfb000000efefeff4f4f4eeeeeef3f3f3fffffff2f2f2
+0f0f0f000000eeeeeef9f9f9ffffffffffff000000282828000000181818090909000000
+111111040404fffffff8f8f8f4f4f4efefeffbfbfb040404fffffffffffff0f0f0f2f2f2
+ffffffe7e7e70c0c0c000000f9f9f9f3f3f3fffffff2f2f2000000050505f6f6f6efefef
+ffffffffffffebebebf8f8f8f1f1f1f9f9f9151515000000e9e9e9f0f0f0f8f8f8fcfcfc
+050505101010f7f7f7ffffffededede7e7e7ffffff080808050505eeeeeefffffff8f8f8
+ffffff000000fdfdfdfffffff6f6f6ffffff0a0a0a111111070707e6e6e6eeeeeef3f3f3
+040404f1f1f1fffffff7f7f7f0f0f0fffffffefefe050505060606f7f7f7fffffff9f9f9
+f6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9fcfcfc
+fefefef8f8f8060606f9f9f9fdfdfde8e8e8f8f8f8ffffff000000080808fffffff2f2f2
+f7f7f71c1c1cfcfcfcfffffffffffffffffff3f3f3f5f5f5f3f3f3fffffffffffffafafa
+030303040404000000040404fcfcfcf4f4f4f1f1f1fcfcfcffffff0f0f0f0c0c0cf2f2f2
+ecececf6f6f6f3f3f3ffffff0000001b1b1bfefefefffffffffffffcfcfce7e7e7040404
+000000fffffff2f2f2ffffff0a0a0a000000ffffffeeeeeefffffff8f8f8fafafaefefef
+0202020f0f0ffcfcfce7e7e7fffffff5f5f5fefefee9e9e9ffffff0000000000001c1c1c
+0606060000000f0f0ffdfdfdfffffff5f5f50000000d0d0dffffffebebebf4f4f4ffffff
+e2e2e2ffffff000000000000fdfdfdf0f0f0fffffffafafa101010030303f9f9f9ffffff
+e8e8e8f3f3f3fffffffefefef3f3f3fbfbfb000000000000f7f7f7ffffffeeeeeeffffff
+000000f7f7f7fcfcfcf1f1f1fffffffffffff2f2f2000000010101f6f6f6fcfcfcf3f3f3
+000000252525fcfcfce9e9e9f0f0f0f6f6f6efefeff2f2f2f4f4f4fffffff5f5f50b0b0b
+101010ffffffffffffd8d8d8fffffff1f1f1ffffff000000050505f6f6f6fffffff8f8f8
+f5f5f5fffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfbfbfbfafafaf8f8f8fafafa
+fdfdfdf7f7f7050505f9f9f9fffffffefefef9f9f9e8e8e8141414000000000000ffffff
+ffffff000000ffffffdcdcdcf1f1f1f2f2f2d7d7d7ffffffffffff0000000d0d0d000000
+ffffffffffff090909131313fffffff3f3f3f9f9f9fefefee3e3e30000001e1e1efbfbfb
+ffffffedededeeeeeee0e0e0191919000000edededfbfbfbfdfdfdedededffffff1c1c1c
+000000eaeaeafcfcfcf0f0f00303030606060000001111110000000b0b0b0000000b0b0b
+060606010101ffffffffffffd6d6d6fcfcfcfffffffbfbfbf5f5f5f1f1f1ffffffe3e3e3
+101010060606060606ffffffeaeaeaffffff000000020202000000070707000000000000
+0b0b0b000000010101101010f9f9f9ffffffe7e7e7ffffff080808000000ffffffebebeb
+fffffffafafafffffff4f4f4e7e7e7ffffff050505000000ffffffe3e3e3f4f4f40e0e0e
+080808ffffffeaeaeafffffff5f5f5f7f7f7ededed131313121212fafafafffffff9f9f9
+0d0d0d050505eeeeeef1f1f1fffffffcfcfcffffffe7e7e7ffffffe5e5e5eaeaea070707
+0505050000001f1f1f1212120e0e0e0f0f0f0000002e2e2e000000fffffff5f5f5f1f1f1
+fffffff7f7f7fdfdfdf2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfdfdfdfcfcfcf9f9f9fbfbfb
+fdfdfdf7f7f7050505f9f9f9ebebebffffffecececffffffececec000000101010000000
+fdfdfd000000ebebebfffffff0f0f0ffffffffffff0000000f0f0ff4f4f4efefeff8f8f8
+fbfbfbf2f2f2181818000000e4e4e4ffffffe8e8e8e2e2e2ffffff0e0e0e000000f5f5f5
+e3e3e3fefefefffffffefefe080808060606fffffffbfbfbf2f2f2fdfdfdf7f7f7000000
+101010fffffff8f8f8f8f8f8000000000000fffffff6f6f6eaeaeaffffffddddddffffff
+fcfcfcf1f1f1f4f4f4fdfdfdfffffff2f2f2f4f4f4edededf6f6f6fdfdfdeeeeeeffffff
+e1e1e1f8f8f80b0b0b040404f9f9f9fefefe060606000000ffffffeaeaeaffffffffffff
+f8f8f8f7f7f7ffffffefefefefefeff7f7f7fefefefefefe000000000000ffffffeeeeee
+f2f2f2e9e9e9fffffffffffffbfbfbffffffe6e6e60a0a0a000000fefefefbfbfb050505
+f5f5f5fdfdfdf9f9f9efefeff8f8f8dbdbdbffffff050505000000ffffffedededf7f7f7
+1b1b1b000000ffffffffffffe9e9e9f3f3f3ffffffffffffe4e4e4fbfbfbffffff000000
+0f0f0fffffffe1e1e1fdfdfdf4f4f4eaeaeaffffffe5e5e5ffffffefefeffffffff9f9f9
+e9e9e9fffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfafafafffffffdfdfdfbfbfbfcfcfc
+fefefef8f8f8060606f9f9f9ffffffecececfefefef4f4f4f5f5f5fbfbfb000000080808
+fcfcfc010101ffffffd5d5d5fffffffafafa000000141414f4f4f4f7f7f7fffffff7f7f7
+fdfdfdffffff0202020c0c0cf6f6f6fcfcfcf9f9f9ffffffececec0000001b1b1bfcfcfc
+ffffffebebebfefefefafafa0000000f0f0ffdfdfdfafafaf2f2f2f1f1f1ffffff000000
+000000fcfcfcf9f9f9f4f4f40e0e0e020202fdfdfdf9f9f9fcfcfcffffffffffffe4e4e4
+f5f5f5fdfdfdf9f9f9e6e6e6000000ffffffe9e9e9fffffff6f6f6fffffff9f9f9f6f6f6
+fffffff9f9f9101010060606ffffffdcdcdc060606191919dededefdfdfdf5f5f5ffffff
+ffffffefefeff7f7f7fffffffffffff1f1f1fcfcfcececec0101011d1d1df6f6f6f6f6f6
+fffffffdfdfdfefefeefefefeeeeeeffffffffffff141414000000fffffffcfcfc050505
+fffffffffffff0f0f0fdfdfdf6f6f6ffffffffffff000000151515e4e4e4ffffffffffff
+0000001d1d1de5e5e5f9f9f9fdfdfdfffffff3f3f3fbfbfbfffffffdfdfdf8f8f8040404
+020202fffffffcfcfcefefeffffffff9f9f9f2f2f2fdfdfdfdfdfdfffffffefefef8f8f8
+fffffffffffff9f9f9fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefeffffffffffffffffffe2e2e2ffffffefefeff4f4f4
+ffffffe8e8e8131313fdfdfdfafafafafafaf2f2f2fffffff1f1f1eaeaea242424000000
+000000121212edededffffffe4e4e4ededed111111000000fffffff5f5f5fdfdfdfafafa
+f7f7f7ffffff000000101010fffffff5f5f5fafafafbfbfbffffff0f0f0f000000ffffff
+ffffffffffffe4e4e4ffffff080808020202ffffffe7e7e7f2f2f2ffffffdedede141414
+000000fffffffdfdfdfafafa010101050505fdfdfdffffffe4e4e4fcfcfcffffffeaeaea
+fbfbfbfffffffcfcfceaeaea000000ffffffe9e9e9f7f7f7f7f7f7fffffffcfcfceeeeee
+fbfbfbfefefe000000151515ffffffeaeaea0f0f0f060606fdfdfdf8f8f8fffffff1f1f1
+eeeeeeffffffdfdfdffafafafffffff3f3f3fdfdfdffffff0000000a0a0afffffff7f7f7
+f2f2f2ffffffdededefffffffcfcfcecececfefefef5f5f5000000ffffff000000fafafa
+fffffffffffff5f5f5fcfcfce9e9e9ffffffdfdfdf0c0c0c0b0b0bfafafaf7f7f7f1f1f1
+000000000000e5e5e5fefefefffffff7f7f7f9f9f9f9f9f9fffffff0f0f0fcfcfc040404
+050505f9f9f9ffffffffffffeaeaeafdfdfdf7f7f7fbfbfbffffffe7e7e7ffffffffffff
+e8e8e8f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfffffff1f1f1ffffffffffff
+f9f9f9f9f9f9000000fffffff0f0f0fcfcfcfbfbfbecececffffffe3e3e3e1e1e1020202
+0c0c0c000000ffffffdededefffffff5f5f5080808141414fffffffcfcfcfffffff5f5f5
+fffffff1f1f10202020c0c0cf1f1f1ffffffebebebeaeaeaf1f1f1000000161616ffffff
+d5d5d5fafafaf3f3f3ececec0b0b0b030303f5f5f5ffffffffffffe4e4e4ffffff000000
+050505ffffffcececeffffffffffff000000030303e4e4e4ffffffededede0e0e0ffffff
+fbfbfbfffffff3f3f3fdfdfd141414f1f1f1fffffff9f9f9fefefefafafaf7f7f7ffffff
+e7e7e70101011a1a1aeeeeeefcfcfcf0f0f0ffffff121212080808f5f5f5efefeffafafa
+f9f9f9e3e3e3fffffff6f6f6fdfdfdf6f6f6fffffff2f2f2121212000000fffffff9f9f9
+fcfcfcf6f6f6fffffff0f0f0f4f4f4ffffffefefefffffff0e0e0e000000080808f5f5f5
+fdfdfddadadaf7f7f7ffffffe8e8e8f4f4f4ffffff000000080808fffffff9f9f9eeeeee
+ffffff0f0f0f111111f4f4f4fefefee9e9e9f3f3f3fffffff1f1f1fffffff3f3f3f6f6f6
+0c0c0c000000ebebebf7f7f7ffffffffffffeeeeeefefefee1e1e1ffffffebebebebebeb
+ffffffefefefe5e5e5fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefcfcfcfafafaf7f7f7f6f6f6fafafafffffffdfdfdf5f5f5
+edededf3f3f3050505ffffffffffffebebebfdfdfde0e0e0fffffffffffffffffff4f4f4
+0a0a0a030303e5e5e5ffffffdededeffffff070707000000080808fcfcfcf0f0f0ffffff
+000000141414202020000000fafafaf7f7f7ffffffeeeeeeffffff1c1c1c0e0e0eededed
+ffffffdcdcdcfffffff9f9f90a0a0a010101f5f5f5f9f9f9ecececfefefefefefe090909
+010101ebebebffffffefefeff3f3f31919190b0b0b030303f4f4f4fffffff3f3f3d0d0d0
+f7f7f7222222ddddddf1f1f1040404101010dbdbdbf9f9f9ffffffdfdfdfffffffeaeaea
+0a0a0a000000000000fffffffdfdfdfffffff8f8f8000000080808171717ffffffffffff
+f4f4f4ffffffffffff0d0d0de7e7e7f6f6f6fffffff8f8f8000000161616f5f5f5ffffff
+fcfcfcf2f2f2f7f7f7f4f4f4f9f9f9f0f0f0f9f9f9eeeeee0c0c0c0404040b0b0bf9f9f9
+f7f7f7fffffff0f0f0dbdbdbfffffffafafafcfcfc000000010101fdfdfdefefefffffff
+e3e3e3000000030303070707f1f1f1ffffffffffffffffff000000f3f3f3fdfdfdfafafa
+000000000000171717f4f4f4f5f5f5fffffffbfbfbfafafa050505ecececffffffdedede
+f5f5f5fffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffefefefbfbfbf7f7f7f5f5f5ffffffdfdfdffffffff2f2f2
+141414101010000000111111000000fbfbfbedededfffffffdfdfde5e5e5fffffff1f1f1
+090909000000ffffffebebebefefeffcfcfcf5f5f50d0d0d0000000c0c0c000000010101
+ffffffebebeb0000000e0e0e0e0e0e020202f2f2f21313130303030000000000001b1b1b
+000000fffffff3f3f31515150000000e0e0e121212000000fffffff9f9f9000000050505
+0707070f0f0f000000fffffff8f8f8fbfbfbf1f1f10000000d0d0d090909000000070707
+0c0c0cd2d2d2fffffff9f9f90303030000001919190808080000001414140e0e0e111111
+000000ffffffffffffd4d4d4f5f5f5edededf1f1f1ffffffffffff000000000000090909
+0e0e0e000000000000fffffffdfdfdffffff000000020202111111000000000000000000
+f5f5f5ffffffeaeaeaf5f5f5f3f3f3ffffffecececfffffff0f0f0000000ebebebffffff
+ecececf9f9f9f4f4f4fffffff6f6f61b1b1b0000001212120000000b0b0b191919dadada
+f8f8f8ffffff000000040404010101000000080808000000fffffffffffff5f5f5ececec
+ffffffebebeb0101011a1a1a000000010101000000121212f5f5f5ffffffe5e5e5f7f7f7
+fffffff4f4f4fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffffffffffffffefefefcfcfcfafafaf0f0f0fffffff2f2f2ffffff
+eeeeeefffffffffffffdfdfdfdfdfdfffffff8f8f8f2f2f2fffffffffffff7f7f7ffffff
+fdfdfdf2f2f2f5f5f5f4f4f4fffffff2f2f2fffffffefefefefefef7f7f7fffffff7f7f7
+f7f7f7fffffff7f7f7f5f5f5ecececffffffe9e9e9fffffff4f4f4fffffffdfdfdf7f7f7
+ffffffeaeaeaf8f8f8fafafafdfdfdeeeeeefffffff7f7f7fafafafbfbfbfffffff4f4f4
+fffffffffffff0f0f0fefefef6f6f6fefefefffffffffffff5f5f5fafafafffffff3f3f3
+ffffffecececfafafafdfdfdefefeff8f8f8f3f3f3fefefefcfcfcffffffe2e2e2fbfbfb
+fffffff9f9f9fffffffffffffffffff7f7f7fffffff6f6f6e9e9e9ffffffeaeaeaffffff
+fafafaffffffffffffe0e0e0f8f8f8ffffffecececfbfbfbf4f4f4fffffffefefeffffff
+f5f5f5fffffff8f8f8fffffffffffff0f0f0ffffffe7e7e7ffffffffffffffffffe7e7e7
+fffffffffffffdfdfdf5f5f5ffffffeeeeeef3f3f3ffffffffffffe7e7e7ffffffffffff
+e9e9e9fcfcfcfafafafffffffffffffffffff4f4f4fffffff7f7f7f9f9f9ffffffffffff
+ebebebfffffff2f2f2ebebebfffffffffffffdfdfdefefeff5f5f5f7f7f7ffffffffffff
+f0f0f0f8f8f8fffffff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffffffff3f3f3fffffffffffff9f9f9
+fffffff9f9f9f4f4f4fffffff4f4f4e7e7e7fffffffefefef9f9f9fefefefafafaf2f2f2
+fdfdfdfffffffcfcfcf8f8f8edededfffffff5f5f5ffffffffffffffffffe6e6e6f2f2f2
+fffffffdfdfdfffffffffffffffffff7f7f7fffffffefefefefefef2f2f2ffffffffffff
+f9f9f9fdfdfdfffffff3f3f3fffffff2f2f2f8f8f8ffffffffffffdbdbdbf8f8f8ffffff
+dfdfdfffffffffffffffffffffffffeaeaeaf5f5f5edededffffffe9e9e9fffffff5f5f5
+f1f1f1fffffff3f3f3f7f7f7fffffff2f2f2ffffffdbdbdbefefeff0f0f0ffffffffffff
+fbfbfbffffffd9d9d9fffffffffffffffffffffffff9f9f9f2f2f2fcfcfcfcfcfce7e7e7
+fffffff9f9f9eaeaeafffffffafafafffffffafafafffffffffffffffffff4f4f4e7e7e7
+fffffff6f6f6f1f1f1eeeeeef5f5f5f7f7f7efefeffffffff4f4f4e9e9e9f2f2f2ffffff
+f7f7f7edededfffffffcfcfcf1f1f1fffffffafafaf6f6f6f3f3f3fafafaf3f3f3ffffff
+fffffff2f2f2fcfcfcf9f9f9fdfdfde9e9e9fafafaebebebffffffebebebf3f3f3fdfdfd
+f0f0f0fffffff9f9f9ffffffffffffefefeffffffffdfdfdfffffff9f9f9fdfdfdf8f8f8
+fcfcfcfffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffd8d8d8fcfcfcffffff
+f9f9f9fffffffffffff4f4f4ffffffffffffefefeff8f8f8f7f7f7ffffffffffffffffff
+f4f4f4f8f8f8fdfdfdf9f9f9ffffffffffffe5e5e5fffffff1f1f1fefefeffffffffffff
+fffffff5f5f5eeeeeefcfcfceaeaeafffffff6f6f6e9e9e9ffffffffffffecececfefefe
+f7f7f7fffffffffffff2f2f2fffffffefefef5f5f5fbfbfbeeeeeefffffffffffff5f5f5
+fffffff7f7f7ffffffecececf1f1f1f9f9f9fffffffffffffffffffdfdfddfdfdfffffff
+fffffff4f4f4f9f9f9fefefeffffffeeeeeeebebebfffffffffffff3f3f3fcfcfcffffff
+fffffff8f8f8ffffffe6e6e6fefefeffffffebebebfcfcfcfcfcfcffffffffffffffffff
+fffffff5f5f5fffffffffffff2f2f2fafafaffffffebebebfefefeffffffecececffffff
+f3f3f3fffffffffffffffffffffffffffffffffffff5f5f5efefeffffffff3f3f3ffffff
+fffffffffffffffffffefefef7f7f7fdfdfdecececffffffffffffffffffffffffe8e8e8
+ffffffe9e9e9fffffffffffffffffff2f2f2fffffffffffff5f5f5fbfbfbfffffff5f5f5
+fffffff1f1f1ffffffe1e1e1fffffff5f5f5efefeffffffffdfdfdfffffff7f7f7fafafa
+fefefef6f6f6f6f6f6f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010103000004000005030408fbfcfefefffdfefffafffffbfffffdfffeffffffff
+fffffffefffffcfffbfcfffbfefffdfefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffdfffefdfffefefffffefffffefffffefffffefffffefffffeffff
+fcfefdfefffff7f9f8fefffff7f9f8f6f8f7fefffffafcfbfefffff2f4f3fefffff7f9f6
+fefff7f9faf4fffeffedecf1fffffbf0f1e9fffff8f2f3eefffffffcfcfef6f6f4fefffd
+f1f3f0fefffdfefffffafcfbfeffffe6e8e7fefffffeffffe3e5e4fefffff1f3f2feffff
+fdfffefcfefdfcfefdfbfdfcfdfffefefffffefffffefffffefffff1f3f2f7f9f8feffff
+feffffeaece9fefffbfcfff8fbfef7fefffaedf0e9fcfef9fefffdedefeefeffffeaebed
+f6f7fbfefffffffffffefffff7f8f3f7faf1fffff8edf0e9edededfeffffebebe9fefffb
+f9faf4fbfef7fafafafffffffcfcfef1f1f1fffffffffffdf8f9f4f8f9f4fefffaefefed
+fdfdfdfffffffdfdfff4f4f6fbfbfbfffffdf4f4f2fffffdfbfbfbfdfdfdfffffff6f6f4
+fffffbf3f4effafbf6fbfbf9fffffdfcfcfcfdfdfdf4f4f4fffffff8f8f8eeeeeeffffff
+f5f7f2fefffbf9fbf8fefffdfdfffefefffffefffff4f6f3fafcf9eff1ecf8faf5fefffb
+f4f6f3fdfffcfeffffeceeedfafcfbfefffdedefeef4f6f3fefffff7f9f6fefffff7f9f8
+f3f5f4fefffffcfefdfeffffeef0effafcfbfefffff6f8f7fafcfbfefffff7f9f8feffff
+f2f4f3e9ebeafeffffedefeefefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffffffffffffffefefefffffdfffffdfcfefdfefffffbfcff010103
+000000010000010000010000
+00000000000400000c00000e00010df3f8fef9fff9fcfff4fdfdf1fdfdf5fffbfcfdfbff
+fafbfff7fdf9f4fff2f4fff0fafffafbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfff7
+fcffeafdffeffdfbfffefcfffffff5ffffecffffecfffff3fdfdfffdfcfffcfef9fbfff7
+fbfff9fcfffbfbfffdfbfffffbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fcfffdfcfffdfcfffdfcfffdfcfffdfcfffdfcfffdfcfffdfafffbfafffbfafefffafeff
+fafefdfafff9fafff2faffeffaffebfaffebfaffeffbfff5fbfffafcfffffcfffffcffff
+fcfffffcfffffefffffbfffcfdfff2faffeafcffeafaffeffdfffcfbfffefdfff9fbfff2
+fdffecfbfff0fdfffcfdfefffefffffefffffefffdfefff8fefff4fefff3fefff6fefffa
+fefffffefffffefefffefffffefffffefffbfefff8fefff8fdfefffdfefffdfffcfdfff7
+fdfff3fdfff3fdfff5fdfff7fdfffafdfffcfdfffefdfffefdfffcfdfffefdfffefdfffc
+fcfff6fcfff4fcfff8fcfffafcfffdfcfffdfcfffdfcfffbfcfff8fcfff6fcfff6fcfff6
+fcfffafcfffbfcfffffcfffffcfffdfcfffbfcfffdfcfffbfcfffdfcfffbfcfffdfcfffd
+fbfffcfbfffcfbfffcfbfffcfbfffefbfffefbfffefbfffefbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefafefdfafefdfafefdfafefd
+fafefdfafefdfafefdfcfefdfffefffefdfbfdfef8fdfffaf8fcfdfbfffff7faff000007
+010000030000040000040000
+00010000010300020e000010000311f3fbfefbfff6fdffeeffffedfffff1fffefbfffdff
+fffffffbfffdf8fff3f8fff1fafff9fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfdfff3
+fcffe3feffebfefafffefafffffef5ffffe9ffffeafffff1fffdfffffdfffffffdfefff6
+fefff6fcfff8fcfffbfcfffdfbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfff9fbfffafbfffcfbfffc
+fbfffcfbfff9fbfff5fbfff2faffedfaffebfaffedfafff1fbfff7fbfffcfcfffffcffff
+fefffffdfefffdfefffcfefbfcfff2fcffebfcffeafdfff0fcfdfffcfcfffcfefbfcfff4
+fcffedfcffedfcfff6fcfefbfcfcfcfcfcfafcfdf5fcfef0fcffecfcffeafcffeefcfef1
+fcfdf7fcfcfcfcfcfefcfcfefcfcfafcfdf5fcffeefcfef1fefefefefdfffefefefefff9
+fefff5fefff2fefff2fefff3fefff7fefffafefefcfefefefefefcfefefcfefffafefff9
+fbfff1f9fff0fbfef3f9fef7fbfdfaf9fefafbfdfaf9fef8fbfef5f9fff1fbfff1f9fff3
+fbfef5f9fef8fbfdfcf9fdfcf9fef8f9fef7f9fef7f9fef7f9fef7f9fef7f9fef7f9fef7
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffcfbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfcfffdfcfffdfcfffdfcfffd
+fcfffdfcfffdfcfffdfefffbfffef7fffdf4fdfff2fcfff6f8fefcf9fffffafcff01010b
+030002040000060000060000
+01030001040000030800010a00060cf7fdf9fcffeffeffe4fdfadbfef8e0fff5ecfef4f3
+fbf5f7f7f8f3f4fbebf4fbe9fffff6fffff8fffff8fffff8fffff8fffff8fffff8fffff8
+fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff8fffff8fffff8fffff8
+fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff3
+ffffe7ffffecfffbfffffbfffffefbfffff3fffff3fffefafffafffff9fffffcfffffef9
+fffff2fefff1fefef6fefdf8fffffafffffafffffafffffafffffafffffafffffafffffa
+fffffafffffafffffafffffafffffafffffafffffafffff8fffff6fffff6fffff4fffff4
+fffff8fffffbfffefffffefffffffdfffff8fffff3fffff1fffff3fffff8fffefffffffd
+fffff4fffff4fffef9fefcfdfffdfffffefffffff6fffffbfffcfffffbfffffcfffffeff
+fffffbfffff3ffffeaffffeafffff1fffff3fffff1ffffedffffecffffeaffffecffffed
+fffff1fffff3fffff4fffff4fffff3ffffefffffecfffff1fffefdfffdfffffdfffffdff
+fffefdfffff8fffff3ffffeffffff3fffff6fffefbfffefffffefdfffffafffff4fffff3
+fffff4fffff6fffffafffffbfffefffffefffffefffffffdfffffafffff8fffff8fffff8
+fffffafffffdfffefffffffdfffff8fffff4fffff4fffff4fffff4fffff4fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff8fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8f9f9f1f9f9f1f9f9f1f9f9f1
+f9f9f1f9f9f1f9f9f1f9f9edffffecffffe7ffffebfefff1f8fff8f9fffff9fbff01010b
+030002040000060000060000
+010200010200010204000104020804f8ffeffeffe0feffcfffffcdffffd1fffedbfffce2
+fffee9ffffe7ffffe0ffffdcfcfcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6
+fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd6fefcd6fefcd6fefcd6
+fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd3
+fefccbfefbd0fff9e3fff8e6fffaddfffbd8fffbd6fffadcfffbeffffcf1fffce9fffede
+ffffd3ffffd2fffed9fffeddfefbdafefbd8fefbd8fefbd8fefbd8fefbd8fefbd8fefbd8
+fdfad7fdfad7fdfad7fdfad7fdfad7fdfad7fdfad7fdfad7fffdd6fffdd4fffed0fffed0
+fffdd6fffbdefff9e9fff9edfef8eafef9e3fefbdafefcd3fffed2fffdd6fffcddfffbe0
+fffcddfefbd8fcfad1fcfad3fcf8dbfdf9defffcd9fffde2fff8f5fff8f6fffbe7fffcdf
+fffddefffddaffffd1ffffcffffed1fffed1fffed1fffed1ffffcfffffcfffffcfffffcf
+fffed1ffffcffffed1fffed1fffed1ffffcfffffcffffed5fffbdefff9e6fff8ebfff8eb
+fff9e6fffbdefffdd4fffecefffdd0fffdd4fffbddfffae0fffae0fffcd9fffdd0fffece
+fffed5fffdd8fffddafffcdcfffcdefffcdefffcdefffcdcfffddafffdd8fffdd8fffdd8
+fffdd8fffddafffcdcfffcdcfffed7fffed5fffed5fffed5fffed5fffed5fffed7fffed7
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6ffffddffffddffffddffffdd
+ffffddffffddffffddffffdaffffd3ffffd5ffffe0feffecf6fef3f9fffff7faff000009
+030004040000060000060000
+030100010100000100000100020800f8ffdefdffc7fbfeb1ffffa8ffffa9fffcb0fffcb7
+fffcbefffebcffffb7ffffb0ffffa8ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5
+ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa5ffffa5ffffa5ffffa5
+ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa3
+ffffa4ffffa6ffffafffffb0ffffabffffa7ffffa2ffffa6fffeadfffdb1fffeacffffa3
+ffff98ffff98fffea3fffda9ffffaaffffa8ffffa8ffffa8ffffa8ffffa8ffffa8ffffa8
+ffffa9ffffa9ffffa9ffffa9ffffa9ffffa9ffffa9ffffa7ffffa5ffffa1ffff9cffff9c
+ffffa5ffffb0ffffbeffffc5ffffc8ffffbfffffb1ffffa7ffffa3ffffa3ffffaaffffb7
+ffffc7ffffbbffff98ffff8cffff95ffff9dffffa3ffffb1ffffc2ffffbdffff9dffff94
+ffffa2ffffadffffb6ffffb4ffffa5ffffa0ffffa2ffffa4ffffa5ffffa5ffffa5ffffa2
+ffffa0ffff9dffff9bffff9bffff9effffa0ffffa4ffffa7ffffb0ffffb5ffffbeffffc0
+ffffbcffffb3ffffa7ffffa0ffff9effffa1ffffacffffb0ffffb0ffffa8ffff9effff9a
+ffff9dffff9effffa0ffffa0ffffa0ffffa0ffffa0ffffa0ffff9effff9dffff9dffff9d
+ffff9dffff9dffff9effff9effffa0ffffa2ffffa2ffffa2ffffa2ffffa2ffffa2ffffa2
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5fffea1fffea1fffea1fffea1
+fffea1fffea1fffea1fefea4f8faa7f9fcb7fcffcefdffe2f6fdedf9fffbf7faff000008
+010005030004040000040000
+030000010000000000000100030700f8fecefbffaef7fb8dedec6ef0ec67f4ea6ef5eb72
+f4eb76f2ed75f0f171f0f26ae8ea58eaea54eaea54eaea54eaea54eaea54eaea54eaea54
+eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaea54eaea54eaea54eaea54
+eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54e8eb54
+e9eb59e8ec59e9eb59e7eb56e7ec54e7ec51e7eb4ce7eb4cf3f661f4f665f6f662f6f75d
+f8f953f8f955fbf667f9f56deae959e8eb56eaea56e8eb56eaea56e8eb56eaea56e8eb56
+ebeb57e9ec57ebeb57e9ec57ebeb57e9ec57ebeb57e9ec55ebec52e9ed4eebee49e9ee4a
+ebec52e9eb5cebe76ae9e671ede775eae86fecea63eaec5aeced54e9ed52ebeb57e9e963
+e9e577e9e76ce9ef45e9f235e8ef3de8ee46e7eb4ce7e95ae6e36ee6e566e6ec40e6ee38
+e6ea4be6e859e6e664e6e662eaea56eaeb52eaea58eae95beae861eae861eae85feae959
+eaea54eaeb4feaec4beaec4deaeb51eaea56eae95beae95deceb5decea61ece86aece86d
+ece86aecea63ecec58eced51ecee4deced51ecec58eceb5beceb5becec58ecee4decee4b
+ebeb4debeb4febeb4debeb4debeb4bebeb4bebeb4bebeb4bebeb4bebeb4bebeb4bebec49
+ebec49ebec49ebec48eaec4beaeb51eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54efef59efef59efef59efef59
+efef59efef59efef59ecef62ecf078eff496f7fcbcfbffd9f7feecfbfffbfafeff04050a
+010007030007040002040000
+030002030002010004010000040700f9fdc0faff96f5fa6ceff148f3f13af7f139faf13a
+f9f33df6f53bf5f837f5f932fcff32fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2f
+fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2ffcff2ffcff2ffcff2f
+fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff32
+fafe37f8ff35faff2af7ff24f7ff26f7ff24f6ff1ff6ff1fedf41aeef51cf0f51df1f71b
+f3f817f4f81df7f530f7f435fcff34fbff30fcff30fbff30fcff30fbff30fcff30fbff30
+fdff31fcff31fdff31fcff31fdff31fcff31fdff31fcff30fcff2bfbff28fcff24fbff26
+fcff29fbff30fcfe39fbfe3ffdfd43fcfe43fdff3cfbff36fcff30faff2efbff2efaff33
+fafd3cfbff38fcff23fcff1cfbff24f8ff26f6fd24f4f82ff8f848f8f943f8ff25f8ff1c
+f8fe2af8fd2ff8fe2cf8fe2afeff2ffeff32feff3bfeff41fefe46fefe48fefe44feff3f
+feff36feff31feff2dfeff2dfeff32feff3afeff41feff3ffcff34fcff32fcfe38fcfe3b
+fcfe3bfcfe38fcff30fcff2dfcff29fcff29fcff2dfcff2ffcff2ffcff2ffcff2bfcff2b
+ffff2fffff2fffff2dffff2affff28ffff28ffff28ffff2affff2affff2bffff2bffff2a
+ffff28ffff26ffff24ffff28ffff2ffeff32feff31feff31feff31feff31feff31feff31
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ff6fa29f6fa29f6fa29f6fa29
+f6fa29f6fa29f6fa29f3f839e7ee52ecf47df8fcaffdffd7fbffeafcfffaf9fefa020307
+000009030009040005040004
+040008030007010009010000070800fbfeb9faff87f5fa58f3f530faf720fcf61afdf818
+fef919fdfc18fbff15fbff12fcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0e
+fcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0efcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0efcff0efcff0efcff10fcff0e
+fcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff12
+f8fb16f5fb11f5fe05f5ff00f3fe02f2fc05f2fc08f2fb0af2fb0cf4fb0df5fd0af8fe08
+fbff06ffff0efffe1ffffe20fcfe14fbff0efbff0efbff0efbff0efbff0efbff0efbff0e
+f9fe0cf9fe0cf9fe0cf9fe0cf9fe0cf9fe0cf9fe0cf9fe0cf9ff09f9ff07f9ff07f9ff05
+f9ff07f9ff0bf9fe0ef9fd12fafd16fafd18f9fc19f9fc17f8fc12f8fc0ff7fc0af7fc0c
+f7fa15f8fb14faff08faff06f9fe0cf5fa0af1f703eff309f8f828f8f826f8fd0df8fe06
+f8fc11f8fc12f8fe0af8fe06fafe0bfafd0efafc15fafa1cfaf922faf923fafa20fafb1b
+fafc13fafd0cfafe09fafe0bfafd10fafb17fafa1efafb1bf9fc0ff9fd0af9fc0df9fc0f
+f9fc0ff9fc0ff9fc0ff9fc0df9fd0af9fd06f9fd06f9fd08f9fd08f9fc0bf9fc0ff9fb11
+fafc12fafc12fcfc0efafe0bfcfe07fafe07fcfe07fafe09fcfd0cfafd0efcfc0efafd0c
+fcfd0bfafe07fcfe03faff05fafd0cfafd10fafd0efafd0efafd0efafd0efafd0efafd0c
+fcff0efcff0efcff0efcff0dfcff0dfcff0dfcff0dfcff0dfcff0dfcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0e
+fcff0efcff0efcff10fcff0efcff10fcff0efcff10fcff0efbfe0ffbfe0dfbfe0ffbfe0d
+fbfe0ffbfe0dfbfe0ff8fc1febf33bf0f86efcffabffffd6fbffeafafff8f5faf3000100
+00000901000b030009040007
+06000d03000b02000d010000050500ffffbfffff8cf2f54cfbfb2bfffd15fffa0bfffa06
+fffa06fdfb06fbfd04fbfd04fcfc06fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06
+fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfb06fdfb06fdfb06fdfb08fdfb06
+fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fcfb0a
+fcfc0eedee00f9fe02edf300ffff17ebf107f8fb26eef023f1f326feff2ce4e606ebed04
+ffff1ffbf911ebe509ffff23fffe0efafc05f7f902ffff15eef000f0f200f2f400ffff0f
+f1f300ffff0df2f400f5f700fdff08f1f300f8fa03ffff0cfeff09eff100fbfd06fafc03
+ffff0aeaed00f4f600fdff06fafc03ffff0ff9f90ff3f20cf6f50dffff19eef000ffff0f
+fefe22e4e408fcff12f4f805fdff15fbfd13fafe0bfeff14f5f420ffff2bf3f50bf4f706
+eced09ffff22e2e400fcff10f5f700fdff06ffff0effff12efee06fbfa14ffff1df2f204
+feff0bf1f300f5f800f5f700ffff0affff0fedec04f9f90dffff0df0f300fdff04f4f600
+f7f900ffff0df1f201fdfe0df9fa06f9fb02ffff09f2f500f2f500ffff0ef8f80ef8f713
+fffe1af3f20cf6f40bfeff0ef7f703ffff0affff0eedee00fdfb10fbfa12f5f20dffff18
+eae800f8f907ffff0cffff09fefe0afefc0bfdfb0afefc0bfffd0afffd0afefc09fcfa07
+fdfb08fdfb06fdfb06fdfc04fdfc04fdfc04fdfc04fdfc04fdfc04fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfb06
+fdfb06fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06
+fdfb08fdfb06fdfb08f9fb14f4fb31e7ee52ffffaafbfdcefdffedfcfffafbfff8000200
+00000901000c03000b030009
+06000d03000b04000d010004060400ffffc2ffff8ff2f550fcfa2bfffb13fffa09fffa04
+fffa04fffb04fcfc04fdfd05fdfc04fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb04fffb04fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb06
+efed00ffff0cffff0df7f902f3f50bf9f929faf64cf2ed55f0eb51e2de35f8f534fdfb2c
+f2ee1dede717ffff38e0da00f5f406ffff14f6f600f0f000f4f400ffff19fefe08f8f802
+f5f500f8f802f6f600f9f903fdfd07ffff11ffff12f4f400f8f706ffff15ffff11f9f903
+f3f400ffff0cffff05eced00feff04f3f300fffe15ffff24fcf914fcfa0ff4f400f7f605
+f1ee13fffd28f2f012fcfa1cefeb16ffff2ef6f221f6f02aede333f9f03df1ec1fffff2a
+fffe1ff0ef0bffff1affff16fdfe03ffff04f8f900efef00ffff0ef4f400f8f804ffff0b
+f5f600ffff04ffff0af9fa00f5f500ffff0bffff13ffff14feff04f6f700f8f900ffff10
+efef00fffe0dffff1deae800fcfb0af9f903f1f200ffff09ffff0bf3f300fdfa15fffc1e
+f7f315f2f10dffff16fbfc0affff11f5f700f7f701ffff15fbf910f4f30ffffc1bffff21
+f7f50dffff19eeee00ffff0afffd0afffb0bfffa0afffb0bfffc0afffd0bfffb09fefa05
+fffb06fffb04fffb04fffb02fffb02fffc01fffb02fffb02fffb02fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb04
+fffb04fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fbfb0ff6fc26e8ef47ffffa7fdfcd0fdffeffcfffafbfff4000200
+00000701000e03000c03000b
+06000703000704000d010005060300ffffc9ffff9af2f35afcf837fff91ffff717fff712
+fff614fff814fefa15fdfb12fdfb0afffb06fffa08fffb06fffa08fffb06fffa08fffb06
+fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb06fffb06fffb06fffa08fffb06
+fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06
+ffff0dffff08f2f200eeee04e8e711fdfa4bdace5efbec99fbed95f4ea7bf7f25affff56
+ede640f0e83dfffe44fef72bfdfa17faf90bfffe10ffff19eceb00ebea00f3f204fefd0f
+ffff1cf1f002fdfc0effff14f2f103eeed00f2f103f4f209fffd1ceae706f7f50df5f404
+ffff0ae7e800f8f900ffff0af2f101fffd15fffb1df9f518fffd1cf9f70ff8f706fdfc0c
+ffff1fffff30fbf82fdfda1effff54f7ee4bf3e659f1e168f9e67ff4e272fff965cdc70f
+f6f618ffff16fdff13e1e400fdff04fcff00ffff03f4f700ffff0ff5f800f3f600f8fb00
+f6f800fdff08fdfe0afbfc0af3f400f5f602fdfe0aedef00ffff09ffff06ffff0fe8e800
+ffff1ef7f516e1df01fefc1bf3f309ffff11f9fa06eeef00eeef00fbfa12ffff23f6f31a
+faf819f9fb12ffff12fbff08dadc00ffff07f4f600fafe09ffff1feced0beeec0df3f414
+ffff1fe8eb00ffff0afeff09fffc0dfffa0efff90dfff90dfffc0dfffd0efffb0bfffa0a
+fffa08fffb06fffb06fffb04fffb04fffb02fffb04fffb04fffb04fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb06
+fffb06fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06
+fffa08fffb06fffa08fcfa0ff7fd1febef42ffffa8fefad5fefef2fcfffbfbfff3000300
+00000701000e03000e03000c
+06000003000202000a010005050300fffeceffffa1f2f163faf63ffff728fff61efff51a
+fff61bfff61dfdf91cfefb18fefb0cfefd05fffc07fefd05fffc07fefd05fffc07fefd05
+fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc07fefd05
+fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc07fffc05
+f5f000f4f000ffff1ce6e500ffff33faf551251600311f001c0c002318002824001c1800
+211900f3ea5df9f24cece729f8f51afdfc14fbf911f9f810faf810ffff19ffff18fffe16
+fffd15f2f109ffff19ffff1bfffd15fcfb13f9f70fffff25fffc2affff2dfffe1be9ea00
+ffff10fcfd09f8f60df0ee10ffff2dfffb2aede715f1ee13fffc19f6f60cffff15f9f90d
+edee0af0ef23fffb58fff663e1d83f271d00372a002d1d00261300362400faeb76f0e74a
+eaeb14ffff16eff306ffff18ffff11f2f601ffff07f2f800ecef00f6fc00ffff08f8fd03
+ffff12f9fb14f6f413ffff22fbfa16f1f309ffff11f6fa05eef000eef100ffff23faf827
+eee822fffe37fffe2dfcfc20fdfc14ecef02ffff1bffff18fffe1dffff24ece90ef9f91d
+fcfe1fffff20ffff17f6fc06e8ef00ffff15ebf100faff0fe8eb08edee14ffff38e2e30c
+f1f316fdff1be2e700fdff0efefd0dfdfa0bfef90afdfa0bfffb0cfffe0dfffc0cfefc09
+fffc07fefd05fffc05fefd05fffc03fefd03fffc03fefd03fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05
+fffc07fefd05fffc07fdfc0cf8fd1aecef3effffacfef9dbfefdf8fcfffdfcfff1000400
+00000500000e01000e03000e
+050200030000020008010004050300fffed2ffffa4f2f067f8f643fdf729fff61ffff61a
+fff61bfef81cfdfb1dfbfd16fdfd07fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00
+fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefd02fdfe00
+fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fefe00
+ffff05fffd04e9e700ffff1aebee0beae937f7eb950f0000221600e3dc8cf0f368ffff6e
+2a2300221800f4ee5cfaf845f6f521ffff1bf5f40eeff10affff20f0f20be6e500ffff1b
+e9e802feff19fefd17edef08fefd17ffff1ef5f40ef4f418e5df1bf5f229ffff18ffff14
+e6e800f6f80ffffb35ffff4fece03cfff84dfbf52fffff2dfbfb0fedf100ffff1be9eb02
+f6fb1affff45e0d361201000342a00e6e044fbf650fffd57f7f1552f2600281b00fff56f
+f9fa34fdff1de4ea04e9ee0bf5f718f5f815ffff19ffff11f8fe00ffff0af2f600ffff19
+f1f019f5f428f6f22ff6f430f1ee23f1f21bffff1fffff19ffff16ffff23e7e226ffff59
+f7ed50fffd55fbf733f0f215fdff15f3f70cf2f216eeee1aefed1ef2f21ef5f614fdff1b
+e9ee15edf41bf4fd1ae0ea00ffff22eef905d5df00feff22f7fd27eef327f2f630ffff3d
+f5fa2cf8fe28e8f00feef40afdfe0dfcfc06fbf904fbfb03fefd05ffff05ffff05feff03
+fefd02fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00
+fefd02fdfe00fefd02fcfe07fafd18eeee40ffffb1fff7e2fefcfdfcfffffcffed000500
+00000200000c01000e030010
+050300030000020005010004050300fdfed2ffffa4f0f165f7f53efcf823fdf818fff812
+fdf914fcfb15fbfd16fbff12fdff06feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01ffff01
+fffd04fef804ffff15e7e700f8ff11ffff41ece783291e00180f00f2f194e1ea51e2e94e
+f6f28e1d16001a1600ebe949ffff3ae9eb0cfcfc1effff22f5f517f5f718ffff2aeef011
+f5f517ffff25f2f214f1f314f0f012dee001efef11ffff34fef744f6f336f0f20bdae100
+ffff1cebec15e9df40f0e265251400f3e663fbf443e7e810ecef00eff500fcfe17ffff28
+eaef19f3f24a2a1900301f00fff875f5f545e1e31dedf222f4f631f6f54b1f1500fffa76
+e0e21cebf40fffff36f3f727fcfc3cf6f634f5f823eaef0cf3fa0cecf305d2d700ffff31
+f7f63cfef953fffb62f4ee52fffa54ffff4ee5e61edcdf0adce101e6e71dffff6bf3e76f
+170a00f3e965eae831fdff28f4fb0ffaff1ae0e117fcfb3ffefc45e5e620ffff21fbff1e
+f6fc3af8fd48f5fc3af4fd32dbe513ecf623f6ff34f2f939f4f947f1f44fe4e647f3f556
+262900e2e637feff4af6fb2dfbfd14fcfc06fafa04fafa02fcfc04ffff05ffff05ffff04
+feff01feff01feff01feff00feff00feff00feff00feff00feff00feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01fdff08fafd16eeee42ffffb7fff5e9fffbfffefffffcffed000600
+00010000000c01000e030010
+050400030100020003000002030400fdffd0ffff9feff35ef6f833f9fa16fcfb0afdfc04
+fcfc04faff05faff06f9ff07fbff04fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fefe06
+fffd0ff5ed06fffe19f9f90ffcff0ee8f11ee6e66a2624001a1a00e6ee75f1ff4fd1de37
+f6f59b170f002d2900eeec65fbfb43ebed1dfefe2eeff121eeee1ef7f929ffff39dcde0e
+fbfb2bf9fb2bebeb1bffff37f7f727e6e818ffff39e3e321ffff67e2de34ffff27e8f100
+e9ed03ffff49ecdd6a2b17002c1300fff098f0e74cfdff30ffff1bf3fb07e0e107f0f127
+f9fc3becea572d1b00150500e4e04be4eb21fbff24f0fc16ecf415ffff44251f00e0df49
+ffff36e2ef02e9ee22f3f343f4f158d4ce38ffff5eedee30f5f82bfdff33ffff46e8e63b
+f3ec60eadf69f7ea82e9dc73faf077f7ef66d0cc2bffff4ff6f930f5f444f8ec801a0700
+301c00f5e687f8f552fcff30f9ff1ae8ee12eceb39f2ed51f2ed53eceb39e9f00ef9ff26
+f6f660f6f479e8e961f2f462f9fc63ebee55fafc6bdcdc58f8f580e3de76f7f191231d00
+161100f4f17effff84dede40fafb24fbfc0af8f907f9fa06fbfc08feff09ffff08ffff08
+fdff04fdff04fdff03fdff01fdff01fdff01fdff00fdff00fdff01fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdfe0afafd18efed43fffebcfff5ecfffafffefffffcffec000600
+00010000000b01000e030010
+050400030100020003010002030300fdffd0ffff9ff0f35cf6f72ffbfa14fdfb08fdfc02
+fdfc04fcfe07fbff0bfbff09fdff06feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04fffd0a
+fff712fffc1bffff18fafd0eedf800eaf31efafb7b141300141800ebf280e9f75adfe857
+f9f6a7150e00232100e2e64bebed30feff3af6f542fffe4ef2f23a303100272800ffff48
+f0ee41fefd4beaed22f6f92ee8e734ffff54f3f23f2b2900201800fef864eaec27ffff29
+f6fd23eded3d251800240f001d06001d0a001b1600e9ec19fbff10f2f804ffff28eeee2e
+f9fc4d1d1a00281b00eadd8ffdfd61f5fa2ef1f91ae6f006f2fc12f9ff2bfdfc54f5f849
+e6f20ae9f612ffff63ede96b302800201900efe961f4f156e5e72cedf02deaeb372a2900
+271e00130700322700271d00271d001b1500312f00e1e23ff9fb40f6f54f221500251400
+1c0a002b2000272800e2e82cecf334feff4ffeff65282500252100f9f65bf5fb29e0e819
+242500292600252100191600faf887242300151400353300181400fffda2181100181000
+302800201a001e1c00f9fa5efafa26fcfb0af9f807f9f905fcfc08ffff09ffff08ffff09
+feff04feff04feff03feff01feff01feff01feff00feff01feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04fdfe0cfbfc1af0ec43fffebafff4ebfffbfffefffffcffec000600
+00020000000901000c03000e
+040200030100050004030004030000fffed7ffffa6f0ef5ff9f637fcf81bfff80ffff90b
+fff712fef919fdfb1dfefc1bfefd0cfffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffc0c
+f7ef12fffe21eeed00feff0bf1fa09edf32defee781410001d1a00e6e497e7e689f8f598
+1a1200241f00e5ea38f5ff25e3ed13ffff49e9e55f292300302e00f8f955f7f94e222100
+261f00eee967f6fd33f3fa30ece863282000211d00ece95ef7ed7a191000242300f0f445
+f4ff39eff74adfdb7a2317002e2000e7db91e0df37fbff20f5fb03ffff0ef7f316faf537
+fdfe621b1c00342f00ebe577eae651faf947e8e923fcfd26ecef0cf8fd1cfdff33e8ee1a
+f5ff0ff1fd311d1700211400ede672fffe7b1a0c003a2f00eff03decf125ffff46e3e34f
+100800120700efed7ee1e167e1dd7a312f001e2000ebf055ebef38eeed45f2ea7f231700
+1a1100f9f699e7f059ecf657f4f7841a1c00191c00e0e25df9f383211c00ffff4cedf031
+e2e6472e2e001d1700fdf5aceae58aece980212000f2f276e2e361eaea6ef6f487211b00
+1f1600e7e18be1e550f6fc38f8fa13fbfa02fbfa02fdfc02fffe04fffe04fefd02fcfb00
+fffe03ffff01ffff01ffff00ffff00ffff00ffff00ffff01fffe03fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffd0cfffb1ef2eb45fffdb4fff4defffbf0fdfff5f9ffea000600
+00020000000501000b03000c
+030200030000030007010005030000fffed7ffffa6f0ef5ff9f635fdf81afff80ffff80b
+fff712fff819fefa1dfefc1bfffd0afffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffd0a
+fff917f9f412fcfe07f2f900ffff1cf3fa3aeeeb80353000130f00221e00100d00262100
+f6eca5e4de70eef430faff1cf9ff25ced523ede489312800dbd952e7ed45e2e63ae4e657
+241800efe88eedf339eaf336f3ea8b231a00f8f479eceb5df9f570fffb81201a00eceb6d
+e9f14ce6f053edef8a231f00100900efea8efbff47f9ff15d8dd00fcfc0effff25f5ef35
+e2e35b222400131000f8f37becea48f6f739f7f62af3f41affff1ef1f50be3e90dfbff2b
+dce711ecf2502a2100e4daa9f9f474ebe656f0e3831c1000ffff66dade27e7ed33f3f661
+1f1700191200f2f572eff766e1e3780c0d00282b00f8fc74e3e730f5f547f8f083170e00
+1d1600edef8ef2ff67deea5a0909001f1c00fdff9eebea7ef4ed93231b00191400ffff5d
+f2f84eeef2601d1800160d00fff6b1363100121300ecf156edf54aeaef54faf887231d00
+110900ffff98dae330effa18fbfc0bfcfb00fefb00fdfc01fffe03ffff02fffd00fdfd00
+fffe01ffff01fffe00ffff00fffe00ffff00fffe00ffff01fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffd0cfffb20f2ea47fffdb4fff4dcfffbeffdfff3f9ffef000500
+000200000004010007030007
+00020000010001010b000007000100feffd5ffffa1eef158f7f92cfbfb0ffffb06fffb02
+fffb04fefc07fdfe0afeff09feff03feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff04
+fffd0cffff13fcff05f7ff03e5f000dfe829faf8940e0700151100faf8abe7e97ee7e67c
+140c00262000e7ea41f4fe2ce4f11dffff660f0200221500e8ea58ebf731ffff4ddce149
+1d1100120800feff67dee446211700180e00eaeb61e3eb35d2d91aeff152261e001d1500
+f7f880eef470e2e57e131300161300eff078e0ec1eedf806f3f913ffff25f0eb16fdf747
+ffff920f0c00352d00ebe779f7fd3be7f003f2fa09f9ff0bfeff0afcff13edf21cfeff4e
+f7f8700f0d001f1c00ebe984f9fc57f2f448fffc801f1800221c00eded67f2f850f3f860
+1f1b00181600dee750e6f250ecf179343700080800eff088fbff47edf236cac359221900
+181200e6e78adcea4de3f160201f000b0300231d00221d001f15002e22002e2200fdf974
+ebf244e7f047e6e770130d00110600130d00e7ee50f6ff34f8ff2dd0dc24e5e283231b00
+2f2b00f5f873ddeb22e5f403fbff08fcfd00fdfd00fdfe00ffff02ffff02ffff02fdff00
+ffff00feff00ffff00feff00ffff00feff00ffff00feff00ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01fefd0cfffa22f2ea4afffcb9fff3e3fffaf7fdfffef9fff9000400
+000100000004010004030002
+00020000010000010d000009000200fbffd3ffff9eedf355f5fb29f9fc0bfdfc02fffc00
+fdfd00fdff00fdff00fcff00fdff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff01
+f7f800ffff09f7fc00ffff11e6f401f7ff43f1ed92150d001f1900e9ea8de0e65ee0e35e
+272000241c00faf96ddfe430effa31f7fc611c0e002f2200eff555ecfc20c6d500f9ff5b
+1a1000312500e4e856e5e9540f06002f2600e6eb50f0fc30fbff32e3e63f271d00160a00
+f1f181cad04af4f784212300171500ffff89f9ff39f3ff12edf114ffff2af5f120fcf743
+e5e4661412001f1300f2eb93e6eb2ffaff11f4fe00f0fa00e5ed00e0e60affff4ae0e044
+e7e473373200202000eef073f9ff50e6eb36dedc55302c00130d00ffff92e6ec4ae5eb55
+100e000e0c00f0fb5fd2df3af0f787151600181700e0e086e6ea3bebef38faf388191000
+1e1900e7e988f2ff5cf3ff69161400221b00e4dfa5e1de8fe6e088e4dc7afffb8ee0dc57
+e7ee46f9ff57e3e85aeeec87281e00f3eca8f9ff65d7e713e9fd10faff41f7f590211900
+110d00e3e75fffff3ff2ff0cfbff07fdfe02fcfd01fdfe02ffff04ffff05ffff03ffff02
+feff01feff01feff01feff01feff01feff01feff01feff01feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00fefe0afefb22f0ea4cfffcbdfff2e9fef9fffdfdfff9feff000104
+000104000002010000030000
+00020000020200020e000009000300faffd1ffff9eecf355f5fb29f9fc0dfdfc02fffc00
+fdfd00fdff00fbff00fcff00fdff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+ffff07f3f600fdff08edf501fcff17feff4ccac372292000191300f1f28aeaf24deaf24f
+ffffa61f1600e0d96efcfc6af5ff3eecf34e120800140b00faff50f1ff19e1f20df3fc49
+2e27000e0600f9ff61f4fb56241e001a1500edf547dbe815e4ec27eeee58271d001b1200
+eff368e6f14de9ef67292a00171000dcd877e2e733faff25e9ed10fefe24fefa29fcfa36
+f5fc4cf9fb7c1f1200140400f6f463e4e919ffff1beaf201f8f931ffff5b1c1600ece95c
+fbfb69242600191700e0e06ef2f752e3e73bfffd7a242000302c00e7e868e1e842f8fd6b
+2520001e1900d9e253f3fd68e6e8940d0a00393802e2e28af3f45bf0f14df6f17c261f00
+171200feff90d7e536dcec431415000d0b00ecef7ce5eb57ffff5becf13dedef43ffff5e
+f4f760d2d641f6fc5e2c2e00191200170f00f3f27cf4fb56f0ff28f2ff33dedf5f2e2800
+191200fbf988e3ef2be2f102fbff0dfdfd07fcfc06fcfc06fefe06ffff08ffff08ffff07
+feff04feff04feff03feff03feff03feff03feff03feff03feff01feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00fdfe0afcfc22efeb4cfffdbdfff2ecfef8fffbfcfff9fcff00000b
+000007000002010100030100
+00020000020200020d000107000300fbffd1ffff9fecf358f5fa2ef9fb12fdfb08fffb02
+fffb02fdfe03fdff04fcff04feff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff03
+ffff0cf7f804fdff0cf0f600f2fc08e5ea2efff8a91204001c1300fbfa86e6f133e8f132
+e2dd67120600403200ede671e9ed3efaff5bfdf4a51c1300fafe61eaf52ff8ff3de3e846
+1a1300ffffa3e0e63afaff51f0ec80211c00ffff66f2f647f3f355fff876211600e9e27a
+ebf244f9ff44ebf055181600170e00fff9aaedec53f1f429ffff22ffff1fe5e20bffff34
+d8e011ffff66120500120000ffff9ef9f45ce2e21efdfb37d7ce35fff5752d2200f4ed69
+e5e73cf0f24f221e00fcf793e8e856f7f85febe66e2c2800f8f67be9ed5bf6fe53e5e85d
+0e04000f0400dce065eaef6fece8a9241c00080600f9f999eeed55f4f24ff7f06c211b00
+0f0800f5f384e7f143f4ff52ffff8f201d00f8f87ef3f661d5d92aeef337edec39f7f457
+e7e26cf1ef781b1f00ffff6be7e27a160e00221900e1dd71f7fe50dfe82df4f664171300
+2e2300f5ee96e1e73dffff2efcfe14fdfd09fcfa09fbfb07fefc09ffff0bfffe0bffff09
+fffd08fefe06fffe06fefe06fffe06feff04fffe06feff04ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01fdfe0afbfd20eeec49fffebbfdf3eafcf8fffbfbfff9fbff000010
+00000b000000030100030300
+000200000100010109000005000200fdffd1ffffa3edf15ef6f737fbf81dfff812fff90d
+fff90dfefb0efefd0dfeff0bfffe06fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffd0c
+f1ec0cfffe1dfafb07ffff0cf7fe01f6f833f5e6952613001e0f00eee86ee1e91affff2e
+f3f151392e00281500efe083eeed57eced53fbf48c150b00160d00f1ea7ffcf781191300
+342c00e5e166e3e92de7ee2fffff7e150d001d1500fcf38ce2d56f160800241b00f5f350
+f6ff26f5ff22edf03f2923001a0a00fff6b4fdf473f9f53cf2f311fbfc0beae706fefb24
+f0f51df5f942f8ef7a3625002d1800281200e6d464fbeb72fae683e8d3761c0a00fff878
+e1e225ffff4f1d14001c1000fffc88f3ed73221900191100edea5df1f352d5d82ffdfd7b
+170800221100f9f498f0ec8be1d6a8261a001d1600eeeb76ffff55ecea33ebe5471e1600
+4f4300e6de7cffff64dee43ceeea6f120900312700ede18bfff791fef37d413400f3e771
+fffab0140400f9f26de4e04bfef67aebdc87271000291300ebe172ffff6aece94e150d00
+382400ebd8a0ebe462e8e72dfffb1efdfb0afdf809faf807fef909fffd0cfffd0dfffe0b
+fffc0afffd08fffd08fffd08fffd08fffe06fffd08fffe06fffd04fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fefd0cf9fe1becee43ffffb4fcf5e3fcf9fffbfcfff9fbff000012
+00000b000000030200040300
+010100010000020107000002030100ffffd1ffffa3eef061f7f63cfcf624fff61afff614
+fff712fffa12fefc11fffe0dfffd06fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffc0c
+fffb1cfffe1efcfb0af5f700ffff11ffff39190c003b2b00241800312c00ecf11be0e407
+f9f442f4e95b2513002f1f002d2700edeb49f1ec5afffc7af0e677302500292000f6ef6d
+f9f26ee5e247ffff3feaef23f6f54dfffa70f4eb76261900352300f6e66dfff958dedc15
+fbff17e2ea01fdff3cfef864392a00190800352900fffd47ffff1bf1f100ffff17faf714
+fdff20f5f82bfffb52d5c943feea892b1300341e003722003f28001e0a00fff274ffff62
+f0ef21e5e620fffb6ff9ee78201800332c00f0e766fffa71edec42ffff48f2f73b242400
+281c00241600171100efea74251b001811002926002c2a00ebe730ffff3ef3f033fffd5d
+231600221700292600ffff51f1ec5cffff8a2315002e1e002817003a2c00e0d347feef6e
+230f004131002a2200eee943f2ec502519002d17001600002d2000f4ed56fffe4ff2ec50
+241400211000403700f2ec36fffa1cfffa08fdf607fbf604fef806fffb09fffc0afffd08
+fffc08fffd06fffc08fffd06fffc06fffd06fffc06fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fefd0cf9ff19ebef40ffffadfcf6dcfcfbf9fbfdfff9fcff000010
+00000b010000030300040400
+0600000702000702080300000a0400ffffd1ffff9ff3f061f9f33dfff426fff61cfff617
+fff715fffa13fffc0dfffd0afffa01fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa01
+fdf904fcfa09fdfa0bfdfb13fcf721f9f32df4ed3df2ea3df8f536f8f72df9f728f9f62f
+fbf141fbf048fbf046f9f144fffa4cfcfb41f9fb2bf6f924f5f62cf5f62cf6f926f7f929
+f9f937f9f937f8fb28f7fb20f7fb1ef6fa21f5f72af7f338f7ee4bfbf049fdf634fefb22
+fcfe17fbfc1af8f729f6f23bfbf154f7ec54f5ea40f7ef2cfbf813fefc07fcfa05f9f706
+f7f610f6f717f8f81afcf823fff732fff543fff254fff158fbed46faf037faf426faf61b
+f9f718f7f71bf7f526f6f527fafa28f7f929f6f72ff6f72df6f924f6fa1df6fd19f7fc23
+f1f137efee3ceeef32eef130eff233f0f235eff138eeee34faf333fbf428fbf91bfbf726
+faf14afaf252faf63bfbf837e7e230efe93df7ef44f6ef3ef3ec2af2ec24faf22dfff83e
+fff54dfbf348f8f431f8f628fbf831fcf63ef9ef50f6ec4ffffa49fcf835fbf928fefc2d
+fcf73bf6f036f5f12dfbf722fcf60afdf800fff802fffa01fffa02fffc03fffc04fffd03
+fffb02fffc00fffb02fffc00fffc00fffc00fffc00fffc00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fffa01fffb01fffa01fffb01
+fffa01fffb01fffa01fdfb08edf410f0f946fbfc9fffffd8f9fbedf9fdfef6faff00000d
+000009010000030300040400
+0700000a0001090007060000090400ffffcdffff9cf6f064f8f13efcf328fff31efff618
+fff714fffa10fdfc0bfdfd07ffff0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0c
+fffd0afffe0dffff11fffe1bfffa2cfdf72ffbf726f7f71bfdff18fdfe1efdfb2dfff838
+fff73afff836fffa2cfffb2af4f22df3f224f2f60cf1f701f1f604f2f804f3fa00f4fa02
+feff20feff28fdfe26fcff1cfcff0afbff04faff0cfafd1af2ed22f4ee28f5f11ef7f419
+f7f516f3f317f2f01ff0ed22fefb34fcf630f8f22af9f524fefa1ffffe15fffe06fbfb05
+faf817f8f919f8f80af7f804f5f501f2ef0af0e825efe52cfdf532fdf823fdfb10fdfc0e
+fcfa1cfafa1efcfc10fafe0bf4f907f2f90df3f613f1f616f3f515f1f711f2f80ef2f90d
+fcff17faff16f9fe1bfaff1afaff10fbff17faff27f9fb2cf6f124f7f21df6f50ff5f314
+f4ed2df1ec30f1ef1ef1f01af5f227faf730fefb30fffb26fbfa12fafa0efffc1bffff27
+f3ef1ef1f01cf3f015f1f113f1ee17efee18f1ed18efee18faf621f4f31cf5f217f6f715
+f7f709f0f306f1ef10f5f211fcf708fef804fef804fff905fffa04fffb05fffb05fffc06
+fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe13f3fa20f5fe53fdffa3ffffd5faffe4fafff4f4fafa000009
+000009010000040200040400
+080000090002090008060000080300fffecbffff9bf6f366f8f242fcf52bfdf621fff81b
+fefa15fcfc10faff08faff08f9f90dfaf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf714
+f6f318f7f516f5f809f6f80ef5f41ef3f122f1f019eff112f3f515f3f41af3f226f4f126
+f4f31cf4f418f4f41af3f41af8fa1df7fc1cf7fc1bf8fd1af9ff19faff13fbff07fcff0c
+f3f815f3f71cf2f61bf1f711f1fa01f0f900eff60af1f313f9fb1efbfa23fcfb27fdfb2a
+fdfc26fbfb27faf92df9f82af4f619f2f311eff00ef0f016f3f029f4f223f5f605f2f301
+fbfa26fbfa2efcfb25fcfd1bfcff0efbfe11fafa20f9f62df2ec32f2ee2df2f218f2f216
+f2ee2af1ef2af2f214f1f50afbff17f9ff1ffafc2df8fb30f9fb2bf9fd2af9fc2ffaff29
+f1fa0df0fa06eef60feff710f1fa09f1f90ef0f423f0f223fcff1cfdfe1afcfb25fcf930
+fbf638f9f730f9fc17f8fc11f3f41cf5f42af6f430f6f32af4f416f3f50ef4f513f5f519
+faf922fdfe27ffff26fdfe26faf82af7f725fbfc1afdff1bfefe22fbfc25fbf92afcfd25
+fdff0ff9ff0bfafa1cfcfc22fbf815fbf910fcfa11fdfb12fdfb10fefc11fffd12fffd12
+fefd0ffefd0ffefd0dfefd0dfefd0dfefd0dfefd0dfefd0ffaf80ffaf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810f8f60ef8f60ef8f60ef8f60e
+f8f60ef8f60ef8f60ef5f519f1f932f3fc63fcffa9ffffd5fbffdef9ffebf4fbf4000005
+000009010002040100060200
+070000080004080009040002060300fefdcdfefea4f5f676f3f14ff5f33cf9f436f9f62f
+f8f72bf6fb25f2ff1cf2fe1efcff2ffdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe38
+fbfa3dfafc39fbff2cfbff2efbfc3cf9fa3df8fa35f7fa31f9fc33f9fb38f9f943f9f93f
+f9fc2ff9fd2cf9fc33f9fb35ecf027edf12beff136f1f338f2f630f2f826f2f91ff2f822
+fbfe3bfafc3ffafd3cfafe35f9ff29f9ff29f8fc35f8fb38f0f32af0f32af1f234f2f336
+f2f431f1f232f0f03af0f036fbfe33f9fd2af7fc26f7f933f9f74cfaf949fafe2bf8fd27
+ebeb31eceb3beeee34f1f330f3f62bf4f72af5f82df6f739f9f64ff9f64ff9fa3df9fa3d
+f9f64ff9f74df9fb36f8fd2df0f42bedf233edef43ecee43ecf135edf236edf041eef23d
+f5fd2cf3fd22f2fa29f3fb2cf4fd2af5fc30f6f83bf5f839eef420eff322f0f038f1f040
+f1f03ef2f335f3f724f3f724fcfd3ffbfa48faf84bf9f845fafc37fafd34f9fb38f7f838
+f2f335f5f636f6f832f5f732f3f437f2f333f3f62bf5f929f1f32df1f232f1f235f2f42e
+f2f71ef1f71bf1f42bf2f333f9fa34fafb31fcfb31fbfc32fdfc32fcfe31fefd31fcfe31
+fdfc30fbfd2efdfc2efbfd2dfdfd2dfbfd2dfdfd2dfbfd2efffe34fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fefc35fcfd33fefc35fcfd33
+fefc35fcfd33fefc35fafc3fedf24deff577f7fab3fcffd8f7ffdafaffe7f5fdf2000104
+00000c030005040000060100
+04000004000304000a010005020400f8fcd7fcffb4f5fb8ff1f36ef4f462f5f45ef6f55c
+f3f75af1f954edfe4deffd4ee9ef4feaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed56
+e9ee56e9ee56eaef54eaef57e9ec5de9ec5de9ec53e9ed50e9ed52e9ec57e9ea5ee9eb5c
+e8ed52e8ee4ce8ee50e8ed55eef061efef6befec77f0ee73f0f35ef0f455eff358eff160
+ecec6aeceb6decec66eced61ebed5eebec60ebeb65ebec64eef260eef25deff360eff45c
+f0f553f0f455eff160eff064ecef5aebef54e9ef4de9ee54eaec65eaec65eaf052eaf04e
+f0f35ef1f362f0f55df0f461eff06eeef06bedf258ecf157eaec64eaec67eaee5ceaed5e
+eaeb69eaec65ebef54eaf04eeef25decf067ecee71ebee6becf156edf353edf063eef166
+ebf056eaf050e8ee4ce9ef51ebef5aebef5cebee55e9ef51edf351edf257edf061eef162
+f0f457f1f556f1f55af1f362ebeb69eae96ae8e95fe9ec57eaef55ebef5aeaec65e8e967
+eff169edf15fecf252edf44eeff650f0f656eef25decf05eedf15eeef359eef54feef649
+eef64beff650eff459f0f35ce8eb56e8eb56eaea56e8eb54ebeb55e9ec55ebeb55e9ec53
+eaeb52e8eb52eaeb52e8ec51eaeb51e8ec51eaeb51e8ec51eced54eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54eded57ebee55eded57ebee55
+eded57ebee55eded57eaed60f2f37bf2f59af7f9cafbffe2f7ffdefaffe5f5fdf0000104
+01001003000c040000060000
+01000000000000000a000007000501f5fde5f9ffc9f7feaefaff9bfcff94fdfe98feff99
+fbff9af8ff98f5ff93f5ff93fcff9bffff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9efdff9b
+fdff96fdff98fdffa3fdffa8feffaafeffa6ffff9dffff9affff9bffff9cffffa2ffffa2
+fdff9efdff9bfdff9bfdffa0ffffaeffffb2ffffb5ffffacffff96ffff95ffffa7fffdb2
+ffffb6ffffb1ffffa5ffffa1ffffacffffb1ffffb5ffffb1ffffa5ffffa0ffff9effff9d
+ffff99ffff9bffffa0ffffa2ffffa4ffffa1ffff9fffff9efeffa5ffffa6ffffa5ffffa4
+ffffa4ffffa2ffff9dffffa5ffffb7fdfeb2fcff96fbff90ffffa5ffffaaffffa1ffffa1
+ffffaaffffa8ffff9affff9affffa6ffffaefeffadfdffa4feff98ffff97ffffa1ffffa3
+ffffa2ffff9effff9bffff9effffa7ffffa8ffff9dffff97ffff9dffff9fffffa5ffff9e
+ffff8fffff91ffffa2fffeacffffaeffffa9ffff9cffff99ffffa2ffffa8ffffb0ffffb0
+ffffaffdffa3fbff9afdff94ffff92ffff98ffffa3fdffa7fcffa6ffffa0ffff90fdff89
+fdff8effff97ffff9ffdffa2ffffa7ffffa7ffffa8ffffa7ffffa7ffffa7ffffa7ffffa5
+ffffa4ffffa2ffffa4ffffa2ffffa2ffffa0ffffa2ffffa0ffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffffa0ffff9effffa0ffff9e
+ffffa0ffff9effffa0ffffa5fffeaefdfcc3fdfde5fdfff1f8ffe2faffe7f5fdf0000005
+010015030012060000060000
+00030000020000020800020b000709f2fef2f8ffe0f8ffceffffc7ffffc7ffffd1ffffd8
+feffddfdffe0faffdbfaffd9fbffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffcc
+fbffbefaffc5fbffdefafce6fcfce0fdfedcfeffd5ffffd2fdffd0fdffd0fdfed2fdfed6
+fcfdddfcfddbfcffd4fcfed7fffee5fffde0ffffcafeffbcfeffb5feffc3fffae7fff9f1
+fffcdfffffceffffbaffffbaffffcffffddcfffbe5fefde1feffd6feffcffdffcffdffd5
+fefddefefedcffffd0ffffcbffffcfffffd6feffddfeffd9fbffcefbffcffbffe2fdffe9
+fafbdcfcfcd8fcffd4feffd8fdffe5fdffdcfdffc0fdffbefcffd6fcffdbfcffcffcffcb
+feffd4feffd6ffffd2ffffd4ffffe0feffddfdffccfdffcafefed8fefedaffffcfffffcc
+ffffd0feffd5fcfdd5fffdd6ffffd8ffffd8fffed5fdfed4ffffd7fdffd9ffffd7feffd0
+feffc3fdffc7fdfcdefdfbe2feffd3ffffc9ffffc4ffffcbfeffe0fefee2fdffd3feffd1
+feffd8feffdffefee2feffddffffd2ffffcfffffd6ffffddfbfbe3ffffe5ffffd5fbffc6
+fbffc3feffcbfeffddfafadefafbdbfafcd7fafbd9fafcd7f9fbd6f9fbd6f9fbd6f9fbd4
+f9fbd4f9fbd3f9fbd4f9fbd3f9fbd3f9fcd1f9fbd3f9fcd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3feffd3ffffd8fffde3fffbfafdfdfdf6ffe7f8ffe9f5fdf2000009
+010019030017060004060000
+00030000030000030600020900070cf3fef8f8fff0faffe6f9fedefafde0fafbe9fbfbf3
+f9fbf8f7fbfaf5fef9f5fff6fdfff3fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2feffec
+fdffe0fcffe4fcfefbfbfbfffdfdfffdfef9fffff5fffff3fefff1fefff1fefff1fefef4
+fdfdfdfdfdfdfdfef6fdfef6fffefffffef9feffdffbffd1fdffd3fdffe5fffbfffffcff
+fffcf7fdffe3ffffd5fdffd5fffee9fdfdf5fffbfffefcfdfffff3feffeefdffedfdfff4
+fefcfffefcffffffeeffffeafeffebfffff3fefefefdfef9fbffe9fbffeafcfdfffefeff
+fdfcfffffefafefff5fffff6fdfffcfdfff3fcffdbfbffdafcfff2fcfff8fcffebfcffe8
+fdffeffdfff2fefff1fefef4fcfcfafcfdf5fbffe2fbffe4fcfbf9fcfafbfdffeafdffe7
+fffff1fffff5fefdf8fffef9fffff6fffff6fffff8fefef6fcfdf5fbfef5fdfff4fdffef
+ffffe7ffffedfffefffffefffcfee9feffe2ffffe2feffeafbfbfdfafafcfaffe9fcffe6
+f7f9ecfbfbf9fefdfffdfcfffafcf1f9fcebfcfef0fffffafcfbfffffefffffffafbfeeb
+fafee5feffecfefefcf9f8fdfffffdfffffbfffffbfffffbfffffbfffffbfffffafffffa
+fffff8fffff8fffff8fffff8fffff8fffff6fffff8fffff6fefff3fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fdfff1fdfff1fdfff1fdfff1
+fdfff1fdfff1fdfff1fefff1fffeeffff9f1fcf7fefaf9fef5fcecf9ffeff8fdf7000007
+010013030013040004040000
+000100000100000002000104010506f8fcfbfefffafcfff6fcfef3fcfef3fcfdf7fcfcfa
+fcfcfcfbfdfcfbfdfcfbfdfafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef8
+fdfff2fdfff4fdfdfdfdfdfffdfdfdfdfdfbfdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfdfdfdfdfdfdfdfbfdfdfbfdfdfdfdfdfbfefef4fdffeffefff1fdfef6fefcfffdfcff
+fefdfbfcfef3fdfef0fbfdeffcfcf4fcfcfafefcfdfdfdfdfffffbf9faf4fffffaeeefea
+fffffff7f7f7fffffafffff8fffffaf2f3eefffffff3f3f1fffff8f1f2ecfffffff1f0f5
+f5f5f7fffffdfffffbfffffbf0f0f0fffffbeceee1fbfdf0f4f5f0fefefcf4f5effffff8
+fcfdf7fefffafdfef9fafbf6f7f7f7fffffdf7f9eefbfcf4fffffffffffff3f4eefffff8
+fcfdf7fffffbf7f7f5fffffdfffffbf8f9f4fbfaf8fffffdfcfcfafafaf8fffffbf4f5ef
+f7f8f0fffffaf9f9f9f6f6f6fffffafffff6fefff5fdfef6fdfdfdfefefefefff9fffff8
+fdfef9fdfdfdfdfdfffdfdfffdfef9fdfef8fdfef9fdfdfbfdfdfffdfdfffdfdfbfdfef8
+fdfef6fdfef8fdfdfdfdfdfffdfdfdfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfef9fdfdfbfdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfcf7fcfbf7fefcfffffffffafcf7fefffafafcf9000002
+000007010007010002010000
+000000000000000000000000040404fbfbfbfffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9f9f9f9fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfffffffafafafffffff9f9f9
+ffffffe7e7e7f1f1f1fdfdfdfafafae6e6e6fffffffbfbfbfcfcfcf0f0f0f6f6f6ffffff
+fffffffbfbfbf2f2f2f7f7f7fffffff3f3f3fdfdfdffffffffffffffffffe5e5e5ffffff
+fcfcfcfffffffffffff5f5f5fdfdfdf5f5f5f8f8f8eeeeeef6f6f6f4f4f4f7f7f7ebebeb
+ddddddfffffffafafae6e6e6f7f7f7f1f1f1fffffffafafaffffffecececfafafaebebeb
+fffffffdfdfddcdcdcfffffffcfcfcfbfbfbfbfbfbfafafafafafafafafafbfbfbfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfdfdfdfffffffcfcfcfffffffbfbfb000000
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfcfcfcfefefefffffffffffffffffffffffffefefefdfdfdf8f8f8f8f8f8ffffff
+efefefffffffffffffefefeff4f4f4fffffff3f3f3efefefffffffffffffffffffeeeeee
+fcfcfcffffffffffffffffffd7d7d7f6f6f6f5f5f5fcfcfce9e9e9f6f6f6fffffffefefe
+f3f3f3edededffffffebebebf9f9f9fffffffffffffefefefffffffbfbfbedededffffff
+ffffffeeeeeefffffffffffffefefef3f3f3fffffffcfcfcfefefeffffffffffffe8e8e8
+ffffffe8e8e8fffffff6f6f6fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfffffffcfcfcfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffffffffdfdfdfcfcfcfffffff7f7f7fffffffefefe
+ffffffe2e2e2edededffffffffffffdededefffffffffffff3f3f3fefefeecececffffff
+f5f5f5fffffff7f7f7f9f9f9ffffffffffffeaeaeafffffffffffff7f7f7f6f6f6fefefe
+fffffffbfbfbfffffffffffffffffff9f9f9ebebebfffffff8f8f8fdfdfdffffffe9e9e9
+eaeaeaf7f7f7fffffffcfcfcfffffff6f6f6f6f6f6fefefefefefef7f7f7edededfefefe
+edededffffffebebebfefefefffffffefefefefefefefefefefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfefefefffffffcfcfcfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfdfdfdfefefefefefefcfcfcf9f9f9f6f6f6f4f4f4f7f7f7fffffffbfbfbf6f6f6
+0707071d1d1d161616131313000000141414080808000000ffffff000000090909010101
+131313ecececffffffe6e6e6f3f3f3ffffff0b0b0b000000000000111111ffffff000000
+070707090909000000070707050505fafafafffffff1f1f10202020000000f0f0f080808
+0606060e0e0e0808080000000808080000001717170d0d0d080808ebebeb141414020202
+010101050505eaeaeafdfdfdfbfbfbfafafafafafafafafafbfbfbfcfcfcfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfefefefffffffdfdfdfffffffcfcfc020202
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfafafaf7f7f7f6f6f6fcfcfcf5f5f5fefefef2f2f2
+e7e7e70000000f0f0fedededf3f3f3ffffff000000000000ffffffefefef070707000000
+000000080808ecececfffffff7f7f7f0f0f0060606131313040404e2e2e2fffffffefefe
+010101030303ffffff0606060a0a0a161616eeeeeeffffff000000f9f9f9efefef0a0a0a
+000000ffffffe8e8e8010101ffffff000000050505000000fcfcfcffffffffffff000000
+101010ffffffffffffecececfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefefffffffdfdfdfffffffcfcfc020202
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfbfbfbf8f8f8e7e7e7
+ffffff000000000000fffffffdfdfdfefefeebebebffffffebebebffffff0b0b0b030303
+0000000f0f0fffffffd7d7d7ffffff0d0d0d010101070707000000f7f7f7f7f7f7ffffff
+050505000000efefeff9f9f90000000c0c0c000000ffffff000000ffffffffffff000000
+000000fffffffbfbfb040404dadadaffffff000000111111f4f4f4fffffff5f5f5020202
+fafafaf6f6f6ebebebfffffffefefefefefefdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfffffffffffffdfdfdfffffffdfdfd020202
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffe6e6e6fffffffffffff8f8f8
+e7e7e7000000020202f7f7f7f7f7f7020202fffffffbfbfbf7f7f7ececec070707ffffff
+0f0f0f000000000000fffffff9f9f9040404ffffff0000000d0d0dfffffffffffffbfbfb
+000000000000f6f6f6fdfdfd121212000000010101f7f7f7fffffff7f7f7ebebeb0b0b0b
+080808f0f0f0ffffffebebebfcfcfce7e7e7111111000000111111f0f0f0000000ffffff
+f6f6f6fefefefbfbfbf2f2f2fafafafafafafafafafbfbfbfbfbfbfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfffffffffffffdfdfdfffffffdfdfd020202
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffff9f9f9f8f8f8f9f9f9
+ffffff0b0b0b000000090909191919000000fffffffefefee3e3e3ffffff090909fdfdfd
+121212000000040404fbfbfb000000111111f8f8f8050505020202f4f4f4f2f2f2ffffff
+040404040404ffffff000000040404040404fffffffdfdfde4e4e4ffffffffffff000000
+000000fffffffefefeefefeffdfdfdffffffdfdfdf070707010101050505161616fcfcfc
+eeeeeefcfcfcfefefefbfbfbfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdf8f8f8ffffffebebebffffff
+e5e5e50000001d1d1de9e9e9ffffff070707ecececfffffffffffff5f5f5000000fdfdfd
+ffffff0606060b0b0bf4f4f40f0f0ffbfbfbffffff000000030303f4f4f4ffffffe9e9e9
+0707070000000000001c1c1c000000e0e0e0fdfdfddfdfdfffffffe8e8e8f5f5f5040404
+101010fdfdfde4e4e4fffffffdfdfdeaeaeafffffff4f4f40909090b0b0bddddddefefef
+ffffffe9e9e9fffffff6f6f6fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdf1f1f1f1f1f1fefefeefefef
+ffffff000000191919ffffffe8e8e8ffffffeaeaeafdfdfdedededf2f2f2080808ffffff
+e7e7e7131313000000121212060606fefefeffffff010101000000ffffffc3c3c3f9f9f9
+0404041f1f1fffffffefefeff4f4f4ffffffd9d9d9fdfdfdfffffffffffff1f1f1000000
+000000f1f1f1ffffffeeeeeeffffffd1d1d1fbfbfbeaeaea000000010101ffffffe7e7e7
+fdfdfdf7f7f7fffffffcfcfcfafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfcfcfcfefefefffffff4f4f4ededed
+f8f8f8161616000000efefeff5f5f5f8f8f8ffffff000000fffffffbfbfb151515f0f0f0
+ffffff0000000b0b0b000000040404f5f5f5f0f0f00202020f0f0ff0f0f0f1f1f1ffffff
+000000000000fffffffefefef9f9f9eeeeeeffffffffffffd8d8d8f8f8f8ececec1b1b1b
+090909f2f2f2e0e0e0f4f4f4fbfbfbfffffff4f4f4ffffff0d0d0d040404e3e3e3fbfbfb
+fafafafffffff2f2f2f0f0f0fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfbffffffeeeeeefffffffbfbfb
+ffffff000000030303fffffff0f0f0ffffff000000101010fefefeffffff000000fbfbfb
+f0f0f0ffffff000000131313f4f4f4fbfbfbffffff000000000000ffffffe9e9e9fcfcfc
+020202000000ffffffdadadafffffffffffff2f2f2f5f5f5fffffff5f5f5ffffff000000
+0a0a0aeeeeeefffffffbfbfbfbfbfbfffffff4f4f4eaeaea000000050505fffffff2f2f2
+fffffff6f6f6fffffffefefefefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf8f8f8e6e6e6fffffff1f1f1
+0f0f0f0606060707070000002424240000000e0e0e0d0d0deaeaea0606061717170c0c0c
+f4f4f4fbfbfb040404000000ffffffffffff000000171717171717080808ffffff040404
+0303030d0d0d000000fffffff0f0f0fffffff8f8f8ffffffe5e5e5ffffff0000000e0e0e
+0202021e1e1ee2e2e2f4f4f4fdfdfdf7f7f7ffffff030303121212121212000000ffffff
+f2f2f2edededfafafafafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9fffffffffffff0f0f0f9f9f9
+fcfcfcf7f7f7f8f8f8ffffffdbdbdbffffffffffffefefefffffffebebebfffffff0f0f0
+fffffff2f2f2ffffffe8e8e8fffffff8f8f8f7f7f7fffffff7f7f7fbfbfbe7e7e7ffffff
+fffffffffffffbfbfbefefeffffffff3f3f3fbfbfbe4e4e4fdfdfdfcfcfcfffffffafafa
+f5f5f5f0f0f0fffffffffffffffffff1f1f1f3f3f3f1f1f1f2f2f2e7e7e7ffffffffffff
+eeeeeefffffffbfbfbf9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f4f4f4fffffff8f8f8e9e9e9
+fffffff1f1f1fefefef7f7f7f6f6f6fffffff9f9f9ffffffe7e7e7ffffffeaeaeafdfdfd
+fefefef6f6f6f0f0f0fbfbfbf1f1f1fffffffffffff8f8f8fdfdfdedededfffffff6f6f6
+fcfcfcedededfffffff3f3f3f8f8f8f1f1f1f7f7f7fffffff7f7f7efefeffafafafdfdfd
+fffffff9f9f9f6f6f6f6f6f6fafafafffffff8f8f8fffffffffffff8f8f8f4f4f4f8f8f8
+f9f9f9eaeaeafffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafaf6f6f6f7f7f7f7f7f7f8f8f8
+f9f9f9fafafafbfbfbfbfbfbf9f9f9fdfdfdfffffffdfdfdf9f9f9f7f7f7f9f9f9fdfdfd
+fbfbfbfcfcfcfefefefffffffffffffefefefcfcfcfbfbfbf6f6f6f8f8f8fafafafbfbfb
+fbfbfbfafafaf8f8f8f6f6f6fffffffefefefbfbfbfcfcfcfefefefdfdfdf9f9f9f5f5f5
+fffffffefefefdfdfdfcfcfcfafafaf9f9f9f7f7f7f7f7f7fffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafaf8f8f8f8f8f8f9f9f9f9f9f9
+fafafafbfbfbfcfcfcfcfcfcf8f8f8fcfcfcfefefefcfcfcf8f8f8f6f6f6f9f9f9fcfcfc
+f9f9f9f9f9f9fafafafbfbfbfbfbfbfafafaf9f9f9f9f9f9f8f8f8f9f9f9fbfbfbfcfcfc
+fcfcfcfbfbfbf9f9f9f8f8f8f5f5f5f7f7f7f9f9f9fafafafafafafafafafafafafbfbfb
+fdfdfdfdfdfdfcfcfcfbfbfbfafafaf8f8f8f8f8f8f7f7f7fffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefdfdfdfbfbfbfbfbfbfafafafafafafbfbfbfbfbfb
+fcfcfcfdfdfdfdfdfdfefefef9f9f9fbfbfbfdfdfdfcfcfcf8f8f8f7f7f7f9f9f9fbfbfb
+f9f9f9f9f9f9fafafafafafafafafafafafaf9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfd
+fdfdfdfcfcfcfbfbfbfafafaf1f1f1f5f5f5fafafafbfbfbf8f8f8f8f8f8fbfbfbffffff
+fbfbfbfbfbfbfbfbfbfafafafafafaf9f9f9f9f9f9f9f9f9fffffffefefefdfdfdfcfcfc
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefefefefefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfd
+fefefefefefefffffffffffffbfbfbfdfdfdfefefefdfdfdfafafaf9f9f9fafafafcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefeffffff
+fffffffefefefdfdfdfcfcfcfafafafdfdfdfffffffefefefcfcfcfafafafbfbfbfcfcfc
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefdfdfdfefefefefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefdfdfdfdfdfdfdfdfdfefefefffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffefefefffffffffffffffffffcfcfcf9f9f9
+fdfdfdfefefefefefefefefefefefefffffffffffffffffffffffffefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfffffffcfcfcfffffffcfcfc010101
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfafafafcfcfcfffffffffffffdfdfdf9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfdfdfdfffffffcfcfcfffffffcfcfc020202
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfbfbfbfcfcfcfdfdfdfefefefffffffefefefdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfafafafcfcfcfefefefcfcfcfffffffcfcfc020202
+000000000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffbfbfbfffffffffffffffffffdfdfdfbfbfbfdfdfdffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fcfcfcfcfcfcfbfbfbfafafafafafafafafafcfcfcfefefefcfcfcfffffffcfcfc020202
+000000000000000000000000
+020202010101000000000000030303f9f9f9fcfcfcf9f9f9fffffff8f8f8fdfdfdf7f7f7
+f2f2f2fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfcfcfcfefefefffffffffffffffffffefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfffffffffffffafafaf9f9f9fffffffdfdfdfefefefefefeffffffeeeeee
+fffffffffffff5f5f5f5f5f5fbfbfbfefefefffffffbfbfbf7f7f7f6f6f6fcfcfcffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfdfdfdfefefefefefefffffffefefefefefefdfdfdf1f1f1fffffffffffff7f7f7
+f8f8f8f9f9f9fffffff4f4f4fefefefcfcfcfdfdfdfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfceeeeeef0f0f0ffffffffffff
+fffffffffffffefefefafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff9f9f9fefefefffffffefefefffffffffffffcfcfcfffffffbfbfbffffffffffff
+f5f5f5e3e3e3f5f5f5fffffffcfcfcfdfdfdfffffffffffffffffffdfdfdfafafaf9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefffffffffffffffffffefefefefefefefefefdfdfdfafafafbfbfb
+fffffffefefef3f3f3fbfbfbfbfbfbf9f9f9fafafafdfdfdfcfcfcfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000060606fdfdfdfffffffffffffffffffffffffcfcfcf8f8f8
+f2f2f2f2f2f2fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff9f9f9fcfcfcfffffffdfdfdfffffffffffff7f7f7fffffffffffff7f7f7ffffff
+f7f7f7ffffffffffffeeeeeef9f9f9f7f7f7f6f6f6fafafafffffffffffffdfdfdf8f8f8
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfefefefefefefefefefdfdfdfdfdfdfcfcfcfffffff2f2f2f3f3f3f7f7f7
+fffffff8f8f8d8d8d8fffffff9f9f9f8f8f8f9f9f9fcfcfcfcfcfcfffffffdfdfd010101
+000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffdfdfdf1f1f1fcfcfcf9f9f9ffffff
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffffffffffbfbfbfefefefffffff7f7f7f8f8f8fefefefdfdfdffffff
+fbfbfbeaeaea7f7f7f5e5e5e6f6f6f6b6b6b6767676767676b6b6b6e6e6e6d6d6d6c6c6c
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6b6b6b6c6c6c6c6c6c6c6c6c6c6c6c6b6b6b6a6a6a6a6a6a6060606e6e6e7d7d7d686868
+585858626262767676f2f2f2fbfbfbfafafafbfbfbfefefefdfdfdfffffffdfdfd010101
+000000000000000000000000
+010101010101000000000000030303f9f9f9fdfdfdfafafaf4f4f4fffffffafafaf8f8f8
+fefefef7f7f7fcfcfcf8f8f8fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefdfdfdfdfdfdfdfdfd
+fcfcfcfbfbfbfbfbfbfbfbfbfefefefdfdfdfcfcfcfbfbfbfafafafbfbfbfdfdfdfefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefdfdfdfffffffdfdfdf5f5f5fafafafffffff6f6f6fffffff1f1f1f2f2f2f8f8f8
+fffffff2f2f2767676ebebebfffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfffffffffffffcfcfcfcfcfc
+ffffffffffffd0d0d0fefefefffffffefefefefefefffffffefefefffffffcfcfc000000
+000000000000000000000000
+020202010101000000000000020202f8f8f8fcfcfcf8f8f88c8c8cb4b4b49b9b9b8c8c8c
+9090908d8d8d9e9e9e9a9a9a9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9e9e9e9e9e9e9d9d9d9d9d9d
+9c9c9c9b9b9b9b9b9b9a9a9a9b9b9b9a9a9a9a9a9a9a9a9a9b9b9b9b9b9b9c9c9c9d9d9d
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9999999a9a9a9e9e9e9c9c9c9696969c9c9c9d9d9d909090f2f2f2f1f1f1fffffffdfdfd
+fffffffefefe595959fffffff3f3f3f6f6f6fbfbfbfffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf9f9f9fffffff7f7f7f5f5f5
+eaeaeaf9f9f9dbdbdbfffffffffffffffffffffffffffffffefefefffffffbfbfb000000
+000000000000000000000000
+010101000000000000000000040404fafafafefefefbfbfb979797efefeff9f9f9fbfbfb
+fffffffdfdfdfffffffafafafbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefefdfdfdfdfdfdfcfcfc
+fbfbfbfafafafafafaf9f9f9f5f5f5f6f6f6f8f8f8f9f9f9fafafafbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fafafaf7f7f7fafafafafafaf9f9f9fefefef3f3f3d9d9d9fdfdfdfffffffdfdfdebebeb
+ecececffffff686868fafafafffffffefefefafafafbfbfbfefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf9f9f9fcfcfceaeaeaffffff
+fefefeffffffe1e1e1efefeffffffffffffffefefefffffffefefefffffffcfcfc000000
+000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefe919191f9f9f9fffffffafafa
+f9f9f9f0f0f0fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdf6f6f6f8f8f8fafafafdfdfdfefefefffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcfcfcfcfefefeffffffffffffecececc6c6c6fafafaf3f3f3f4f4f4ffffff
+f8f8f8fdfdfd6e6e6efbfbfbffffffeeeeeed7d7d7cbcbcbcacacacdcdcdcdcdcdcacaca
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cccccccdcdcdcdcdcdcccccccbcbcbcacacac8c8c8c8c8c8cfcfcfd5d5d5c9c9c9ffffff
+f1f1f1f9f9f9efefeffffffffdfdfdfcfcfcfcfcfcfffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f99b9b9bfdfdfdfbfbfbfefefe
+fffffffffffffefefefffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf8f8f8f4f4f4fffffff1f1f1
+f8f8f8fdfdfde0e0e0fcfcfcffffffe8e8e8eeeeeef9f9f9f7f7f7fffffff5f5f5ffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffbfbfbfffffff9f9f9fffffffefefed1d1d1fcfcfcfefefef9f9f9fdfdfd
+f9f9f9fcfcfc6d6d6dfefefefdfdfdfefefec7c7c7b6b6b6d5d5d5d2d2d2c2c2c2d9d9d9
+dbdbdbcfcfcfcfcfcfc2c2c2cdcdcdc7c7c7d2d2d2d1d1d1cdcdcdcececececececfcfcf
+cfcfcfcececececececdcdcdcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+d0d0d0cfcfcfcfcfcfcecececfcfcfcfcfcfd0d0d0d0d0d0cfcfcfc2c2c2d2d2d2c5c5c5
+c6c6c6d4d4d4c5c5c5d3d3d3cececececececececececececececececececececececece
+cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcccccccdcdcdcececececece
+cdcdcdcdcdcdd0d0d0d2d2d2cacacacacacacacacacacacacacacacacacacacacacacaca
+cececed0d0d0d1d1d1d0d0d0cccccccbcbcbcccccccecececececeb0b0b0a8a8a8fcfcfc
+fffffffdfdfdeaeaeaf7f7f7fefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f99d9d9dfefefefbfbfbfcfcfc
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaffffff
+ffffffe0e0e0ffffffececece8e8e8fcfcfcfffffff2f2f2f1f1f1f8f8f8fdfdfdf0f0f0
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffbfbfbfffffffafafafffffffefefed0d0d0fcfcfcfefefef9f9f9fdfdfd
+fafafafcfcfc6d6d6dfefefef0f0f0ffffffd8d8d8d5d5d5efefeff5f5f5fffffffafafa
+f5f5f5efefefeaeaeafffffffffffffffffff3f3f3fbfbfbfcfcfcfcfcfcfdfdfdfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefefbfbfbfffffffafafaffffff
+fffffff8f8f8fffffff7f7f7fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefffffffffffffdfdfd
+fbfbfbfafafafbfbfbfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafcfcfcfefefefdfdfdfbfbfbfbfbfbfdfdfdffffffebebebaeaeae999999f6f6f6
+fefefef8f8f8e5e5e5fefefefefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+010101000000000000000000030303fafafafefefefafafa9e9e9efefefefbfbfbfbfbfb
+fbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefdfdfde9e9e9fafafa
+f6f6f6eeeeeefffffff5f5f5fafafaffffffeeeeeefffffff7f7f7f1f1f1ffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffcfcfcfffffffafafafffffffefefed0d0d0fcfcfcfffffffafafafefefe
+fafafafdfdfd6d6d6dfdfdfdfffffff4f4f4bfbfbfd7d7d7fefefef7f7f7fffffff2f2f2
+f9f9f9ffffffffffffffffffe6e6e6f5f5f5f8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbf7f7f7fcfcfcf8f8f8
+f8f8f8fafafaf4f4f4f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffa3a3a38a8a8af5f5f5
+fffffff9f9f9e2e2e2fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfb9c9c9cfefefefcfcfcfdfdfd
+fcfcfcfefefefdfdfdfffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefedadadafffffff8f8f8
+ffffffffffff050505010101060606000000121212fffffffffffffffffffcfcfce8e8e8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffcfcfcfffffffafafafffffffdfdfdcececefcfcfcfffffffbfbfbffffff
+fbfbfbfdfdfd6c6c6cfcfcfcfafafaf2f2f2d3d3d3d7d7d7fffffff3f3f3fcfcfcffffff
+f2f2f2f3f3f3f4f4f4f5f5f5ffffffffffffffffffefefeffefefefefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfffffffbfbfbfffffffcfcfc
+fdfdfdfffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfafafafcfcfcfefefefefefe
+fefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfc9898988a8a8afafafa
+ffffffffffffe2e2e2fefefefefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfc989898fdfdfdfefefeffffff
+fefefefdfdfdfbfbfbfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefeefefefffffffededede5e5e5
+fbfbfbedededdededeffffff000000ffffffe5e5e5f2f2f2f0f0f0ffffffeeeeeeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfffffffbfbfbfffffffcfcfccdcdcdfdfdfdfffffffcfcfcffffff
+fcfcfcfdfdfd6c6c6cfbfbfbf5f5f5fbfbfbe0e0e0bdbdbdfffffffffffff3f3f3f7f7f7
+fffffff4f4f4ebebebfdfdfdfffffff9f9f9f5f5f5fffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfceeeeeef4f4f4f7f7f7fdfdfd
+fefefef9f9f9f7f7f7f2f2f2fefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfefefeffffffffffff
+fffffffffffffffffffffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fefefefdfdfdfdfdfdfefefefffffffffffffffffffffffff7f7f7979797969696fafafa
+ffffffffffffe4e4e4fafafafefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfd959595fcfcfcffffffffffff
+fffffffcfcfcf9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf8f8f8d9d9d9fdfdfde5e5e5
+fffffff9f9f9fffffff8f8f8121212f9f9f9f7f7f7fcfcfcf6f6f6f0f0f0f9f9f9f0f0f0
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfffffffbfbfbfffffffbfbfbccccccfdfdfdfffffffcfcfcffffff
+fdfdfdfefefe6c6c6cfbfbfbfffffff3f3f3cacacab6b6b6fffffff8f8f8f3f3f3ffffff
+f9f9f9fffffff9f9f9ffffffefefeffdfdfdf4f4f4f7f7f7fbfbfbfafafaf8f8f8f7f7f7
+f7f7f7f8f8f8fafafafbfbfbf8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8
+f9f9f9f9f9f9fafafafbfbfbfafafaf8f8f8f6f6f6f5f5f5ffffffeaeaeaffffffe9e9e9
+e8e8e8ffffffe7e7e7fffffff7f7f7f7f7f7f8f8f8f9f9f9f9f9f9fafafafafafafbfbfb
+fafafafafafafafafafafafafafafafafafafafafafafafaf8f8f8fafafafcfcfcfcfcfc
+f9f9f9f7f7f7f6f6f6f6f6f6fefefefefefefefefefefefefefefefefefefefefefefefe
+f4f4f4f3f3f3f3f3f3f6f6f6f9f9f9fbfbfbfcfcfcfbfbfbfdfdfd9c9c9ca0a0a0f6f6f6
+f1f1f1ffffffe5e5e5fbfbfbfefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefe979797fdfdfdffffffffffff
+fdfdfdfbfbfbf9f9f9fdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafaffffffeeeeeeffffffffffff
+fbfbfbe6e6e6fcfcfce8e8e8000000eaeaeafefefefffffffffffffafafafffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffcfcfcfffffffbfbfbcbcbcbfdfdfdfffffffdfdfdffffff
+fefefefefefe6b6b6bfafafaf3f3f3efefefd1d1d1d7d7d7ffffffddddddffffffe1e1e1
+fefefeefefefffffffe7e7e7ffffffecececfffffffbfbfbfefefefcfcfcfbfbfbf9f9f9
+f9f9f9fbfbfbfcfcfcfefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfdfdfdfefefefffffffefefefcfcfcf9f9f9f8f8f8f6f6f6f3f3f3fbfbfbf8f8f8
+f7f7f7f9f9f9f0f0f0f2f2f2f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfafafafcfcfcffffffffffff
+fcfcfcfafafaf9f9f9f9f9f9f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7
+fafafaf8f8f8f7f7f7f8f8f8fbfbfbfdfdfdfbfbfbfafafaffffff989898a1a1a1f8f8f8
+eeeeeeffffffe4e4e4fefefefefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefe999999fefefefffffffefefe
+fafafaf9f9f9f9f9f9fffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefafafaffffffe4e4e4fdfdfd
+f6f6f6ffffffecececfdfdfd010101fafafafcfcfcfefefeeaeaeafffffffbfbfbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffcfcfcfffffffbfbfbcbcbcbfdfdfdfffffffefefeffffff
+fefefefefefe6b6b6bfafafafafafaffffffc6c6c6ccccccfffffff7f7f7f5f5f50b0b0b
+0000001f1f1fedededf8f8f8ffffff000000000000070707fdfdfdfbfbfbf9f9f9f8f8f8
+f8f8f8f9f9f9fbfbfbfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfdfdfdfefefefefefefdfdfdfbfbfbf8f8f8f7f7f7fafafafcfcfc000000020202
+030303020202fffffffefefef8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf5f5f5f8f8f8fcfcfcfdfdfd
+fcfcfcfbfbfbfbfbfbfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffcfcfcf9f9f9f8f8f8f9f9f9f8f8f8f4f4f4f1f1f1fefefe8d8d8d9e9e9efefefe
+f5f5f5ffffffe2e2e2fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd979797fffffff5f5f5f9f9f9
+ffffffefefefffffffe9e9e9ffffffeeeeeeffffffefefefffffffffffffefefefffffff
+fffffffbfbfbe0e0e0ffffffe5e5e5f9f9f9fefefeffffffecececfffffff7f7f7fefefe
+f7f7f7e6e6e6ffffffefefef0a0a0afffffffcfcfcf5f5f5fafafafcfcfcffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffff8f8f8ccccccd1d1d1fbfbfbfffffffbfbfbffffff
+020202020202f2f2f2fffffffbfbfbf9f9f9050505fafafafdfdfdefefefefefeffdfdfd
+fffffffafafaeeeeeeffffffffffffe4e4e4f7f7f7f2f2f2fffffffffffff4f4f4ffffff
+f6f6f6fdfdfdf2f2f2fdfdfdfbfbfbfafafafafafaf3f3f3151515020202fafafaf2f2f2
+fffffff2f2f2030303fcfcfcebebebffffffe7e7e7fcfcfcfffffffafafae8e8e8fefefe
+f3f3f3fffffff4f4f4e9e9e9fffffffffffffffffff0f0f0f2f2f2171717fbfbfbfafafa
+f0f0f0f3f3f3ffffffecececffffffe3e3e3f1f1f1f4f4f4f3f3f3fbfbfbfcfcfcfefefe
+dadadafffffffffffff5f5f5030303f9f9f9f8f8f8fffffff8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd9b9b9beeeeeeffffffffffff
+fffffff2f2f2f4f4f4fdfdfd0404040101010e0e0e070707fafafaf3f3f3fffffff9f9f9
+010101000000fffffff2f2f20606060d0d0df9f9f9eeeeeefdfdfdf5f5f50f0f0f000000
+000000ffffff000000030303080808fefefefdfdfdf6f6f6fbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffff9f9f9ccccccd1d1d1fafafafffffffbfbfbffffff
+0909090f0f0f0b0b0be4e4e4fafafae9e9e91a1a1af3f3f3fafafaf1f1f1fffffff1f1f1
+f0f0f0e8e8e8ffffffeaeaeae6e6e6ffffffedededfdfdfdfffffff8f8f8fefefef8f8f8
+ffffffcfcfcfffffffecececfefefeebebebffffff000000000000fffffff3f3f3ffffff
+edededffffff060606fefefef8f8f8edededf8f8f8ffffffefefeff3f3f3fffffffbfbfb
+ffffffdededeffffffffffffe0e0e0f5f5f5e4e4e4ffffffffffff000000fafafaf8f8f8
+ffffffffffffdbdbdbfffffff8f8f8fffffffcfcfcfbfbfbfcfcfcf5f5f5fefefefafafa
+ffffffe8e8e8f3f3f3ffffff090909f8f8f8f8f8f8fffffff8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd9a9a9af6f6f6fefefef6f6f6
+e9e9e9ffffffffffff010101ecececfdfdfdfffffff6f6f6000000f0f0f0fffffff9f9f9
+f5f5f5060606f4f4f4000000fdfdfdffffff000000ffffffffffff000000fafafaffffff
+ffffff000000010101ffffff060606fdfdfdfdfdfdf8f8f8fdfdfdfefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffff9f9f9ccccccd1d1d1fafafafefefefbfbfbffffff
+000000ffffff090909f7f7f7ffffffffffff000000ffffffefefeffbfbfbffffff000000
+1616160f0f0fffffff000000050505000000fafafaffffff000000e3e3e3ffffff050505
+000000000000ffffffecececf1f1f1fbfbfbe4e4e4080808fbfbfbfffffff0f0f0f6f6f6
+fffffff0f0f0e6e6e6f6f6f6f9f9f9fdfdfd0c0c0c0a0a0a010101fefefef4f4f4fefefe
+020202080808000000141414000000141414ffffffd6d6d60000000909090b0b0b000000
+f9f9f9eeeeeeffffff040404030303000000ffffff090909040404000000ffffff101010
+000000000000ffffff0000000000001f1f1f131313ecececf8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd848484ffffffeaeaeaffffff
+fcfcfcf0f0f0000000ffffffffffffe9e9e9f4f4f4ffffffefefef0b0b0be2e2e2ffffff
+efefef171717030303fdfdfdfffffff6f6f6ffffffe9e9e90c0c0cffffffffffffe7e7e7
+f8f8f8ffffff000000ffffff040404fcfcfcfdfdfdfafafafffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffff9f9f9ccccccd1d1d1fafafafefefefafafaffffff
+1a1a1adededef5f5f5000000efefefffffff1b1b1bedededffffffffffff000000fafafa
+fefefef6f6f6000000ffffff040404ffffffffffffe8e8e8060606050505fffffff0f0f0
+0b0b0bf3f3f3f0f0f0fffffffffffff7f7f7ffffff000000ffffffe3e3e3fffffffbfbfb
+f0f0f0fffffffefefefefefef1f1f1161616eaeaeaf2f2f2f4f4f40c0c0cfefefefefefe
+ffffff060606ffffffe8e8e8ffffff0b0b0beaeaeafffffff6f6f60f0f0ff6f6f6ffffff
+fdfdfdffffff000000f1f1f1ffffffffffff161616f6f6f61414140c0c0cf2f2f2eeeeee
+030303ffffffe0e0e0ffffff191919e9e9e9fbfbfbfffffff8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd9b9b9befefeffcfcfcededed
+ffffffffffff000000ffffffe1e1e1f6f6f6f2f2f2fffffff3f3f3000000ffffffeeeeee
+ffffff000000ddddddfffffff1f1f1fffffffffffff9f9f9000000fcfcfcedededffffff
+fcfcfcfefefe090909f3f3f3020202fbfbfbfdfdfdfafafafffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffffafafacdcdcdd1d1d1fafafafefefefafafafefefe
+030303ffffffffffff0d0d0d050505f1f1f1101010e2e2e2fdfdfd171717eaeaeaffffff
+ebebebffffff0d0d0de3e3e3030303000000f5f5f5ffffff1212120c0c0cd6d6d6fcfcfc
+0c0c0cfffffff0f0f0f5f5f5ecececfffffff2f2f21d1d1dffffffe3e3e3fffffffbfbfb
+f0f0f0fffffffefefefefefe0a0a0af0f0f0f0f0f0ffffffffffffd5d5d50c0c0cfcfcfc
+ebebeb010101e3e3e3ffffffe9e9e9040404fffffffffffff1f1f1040404fffffffefefe
+f5f5f5000000fffffff9f9f9f9f9f9fafafa000000f4f4f4f9f9f9000000f6f6f61b1b1b
+fbfbfbfffffff6f6f6f5f5f5010101f0f0f0fffffff0f0f0f8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd9d9d9dfbfbfbfcfcfcffffff
+fdfdfdfafafa0b0b0bfffffff6f6f6ffffffededede9e9e9fefefe080808e7e7e7fbfbfb
+ffffff000000fffffffefefeebebebe8e8e8ffffffffffff181818fbfbfbffffffdcdcdc
+fffffff2f2f2060606ffffff020202fbfbfbfdfdfdfafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffffafafacdcdcdd1d1d1fafafafefefef9f9f9fefefe
+000000fffffff6f6f6f5f5f5000000ffffff000000ffffffffffff000000161616020202
+0101010f0f0f111111fffffff4f4f4191919ffffff000000fbfbfb000000ffffff000000
+efefeffffffff2f2f2efefeffffffffafafaf5f5f5000000fbfbfbfffffff0f0f0f6f6f6
+fffffff0f0f0e6e6e6f6f6f6000000ffffffffffffefefefe6e6e6ffffff000000ffffff
+fefefe000000ffffffedededfdfdfd000000fffffff6f6f6f7f7f7020202f1f1f1f4f4f4
+ffffff0b0b0b070707000000000000050505040404fffffffcfcfcffffff0b0b0befefef
+e0e0e0fffffff1f1f1fdfdfd191919f9f9f9fafafafffffff8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfda1a1a1fffffff8f8f8f7f7f7
+e6e6e6fffffff2f2f2000000ffffffffffffe7e7e7f9f9f9040404fffffffefefeffffff
+eeeeee161616efefeffffffffffffff2f2f2f4f4f4f2f2f2ededed000000eeeeeeffffff
+ffffff000000000000eeeeee030303fbfbfbfcfcfcf9f9f9fefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffffbfbfbcdcdcdd1d1d1fafafafdfdfdf9f9f9fdfdfd
+1c1c1cf2f2f2edededffffff101010000000151515f3f3f3fdfdfd000000fffffffafafa
+dcdcdcfcfcfcf0f0f0fdfdfdffffff000000ffffff0b0b0bf0f0f00c0c0cececec020202
+ffffffefefeffdfdfdf0f0f0fffffffafafaf7f7f7101010000000fffffff3f3f3ffffff
+edededffffff060606fefefe010101fefefefffffffcfcfcf2f2f2e8e8e8000000f5f5f5
+efefef010101fffffffdfdfdffffff0d0d0df3f3f3ebebebf6f6f61c1c1cf3f3f3f4f4f4
+fbfbfb000000ebebebfffffffffffffffffff7f7f7fcfcfcfefefe000000efefef050505
+fffffffefefeecececf2f2f20a0a0af7f7f7d7d7d7f5f5f5f8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfd959595ffffffefefefffffff
+fffffff5f5f5ffffffffffff000000020202141414020202fafafafafafae8e8e8fdfdfd
+0000000e0e0e0a0a0a000000fffffffafafaffffffffffffffffffededed0e0e0e000000
+030303f9f9f9111111fcfcfc030303fbfbfbfcfcfcf8f8f8fdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfffffffafafafffffffbfbfbfefefecacacafdfdfdfffffffbfbfbffffff
+fcfcfcfdfdfd6c6c6cfcfcfcfffffffbfbfbcdcdcdd1d1d1fafafafdfdfdf9f9f9fdfdfd
+0b0b0bf1f1f1fefefefafafaededed141414101010f2f2f2ebebeb131313000000fafafa
+ffffffffffff040404ffffffffffff060606000000000000f2f2f2ffffff010101060606
+f1f1f1fcfcfcf2f2f2fffffff5f5f5f3f3f3fffffff3f3f3151515020202fafafaf2f2f2
+fffffff2f2f2030303fcfcfcf8f8f80c0c0ce5e5e5fafafaffffff000000ffffffffffff
+f7f7f71e1e1ee1e1e1fcfcfcfefefe000000ffffffffffffffffff000000fffffffcfcfc
+f7f7f7111111000000e8e8e8fdfdfdffffff090909eeeeee121212f4f4f4ffffff000000
+000000eeeeeeffffffe9e9e9060606edededffffffeeeeeef8f8f89e9e9e989898fbfbfb
+fdfdfdfdfdfde4e4e4fffffffefefefdfdfdfefefefffffffbfbfbfffffffbfbfb010101
+000000000000000000000000
+000000000000000000000000050505fdfdfdfffffffefefe939393fdfdfdffffffffffff
+fafafaf7f7f7f9f9f9fffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfbfafafaf9f9f9
+f7f7f7fbfbfbfffffffefefefafafaf7f7f7f7f7f7f8f8f8fbfbfbf2f2f2e3e3e3ffffff
+f6f6f6ffffff000000fefefe121212fffffff4f4f4e4e4e4ffffffeaeaeaffffffeeeeee
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffcfcfcfdfdfdf9f9f9fffffffdfdfdc6c6c6fdfdfdfffffffefefeffffff
+fefefefefefe6b6b6bfafafafffffffefefec1c1c1ddddddfafafaf4f4f4f2f2f20d0d0d
+080808000000ffffffe5e5e5fffffff4f4f40d0d0dfefefefbfbfbffffff0606060d0d0d
+0b0b0b000000fafafaf0f0f0f9f9f9f2f2f2000000ffffffdfdfdffcfcfc0b0b0bf8f8f8
+fdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9f8f8f8fdfdfdf5f5f5080808010101
+0202020b0b0bf9f9f9ffffffffffffececec0f0f0f090909000000fffffff8f8f8fbfbfb
+040404191919000000efefef1414140f0f0f000000ffffffececec0202020202020a0a0a
+f8f8f8fbfbfb0d0d0d0101010000000e0e0ef6f6f60000000606060b0b0bf2f2f2050505
+000000161616fffffffafafa060606040404161616fefefeffffff9797979c9c9cf7f7f7
+f9f9f9ffffffdadadafffffffefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+000000000000000000000000050505fcfcfcfffffffefefe979797fdfdfdffffffffffff
+fdfdfdfcfcfcfbfbfbfefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfafafaf9f9f9f9f9f9
+f5f5f5f8f8f8fbfbfbfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfffffffffffffefefef4f4f4
+f7f7f7171717ffffffececec000000fffffff6f6f6fffffffffffffffffff2f2f2ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfffffffcfcfcfdfdfdfafafafffffffdfdfdc8c8c8fdfdfdfffffffdfdfdffffff
+fefefefefefe6b6b6bfafafafafafafafafad0d0d0dadadafefefefbfbfbffffffdedede
+f0f0f0fafafafdfdfdfffffff7f7f7efefeff6f6f6fcfcfcf8f8f8eaeaeafcfcfcededed
+eeeeeefefefeecececfcfcfcfffffff6f6f6ffffffffffffffffffe6e6e6f0f0f0ffffff
+fafafafafafafafafafafafaf9f9f9f8f8f8f6f6f6f6f6f6f0f0f0f1f1f1f7f7f7f9f9f9
+fafafafafafaf5f5f5f4f4f4f5f5f5fafafaf0f0f0f5f5f5fdfdfdfffffff9f9f9f9f9f9
+dededef3f3f3fffffffcfcfceeeeeeefefeffbfbfbfffffffffffff8f8f8ffffffe3e3e3
+ffffffffffffe9e9e9fffffffbfbfbf8f8f8fffffffffffffafafaf3f3f3ffffffffffff
+ffffffdbdbdbf8f8f8ffffffe0e0e0f9f9f9e8e8e8ffffffe3e3e38787879c9c9cfdfdfd
+fdfdfdffffffe2e2e2fcfcfcfefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfd9b9b9bfdfdfdfcfcfcfefefe
+fffffffffffffdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfbfbfbfafafafafafaf9f9f9f9f9f9
+f8f8f8f8f8f8f9f9f9fcfcfcfefefefefefefcfcfcfafafae5e5e50000000404041f1f1f
+000000d8d8d8020202161616131313000000101010fbfbfbf0f0f0f5f5f5fbfbfbf8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfffffffcfcfcfefefefafafafffffffdfdfdcacacafefefefffffffdfdfdffffff
+fdfdfdfefefe6c6c6cfbfbfbffffffffffffd2d2d2bfbfbff2f2f2e6e6e6dededeffffff
+ffffffe4e4e4fdfdfdfafafae5e5e5ffffffffffffefefeff5f5f5fffffff5f5f5ffffff
+fffffffbfbfbfffffffefefef5f5f5eeeeeefdfdfde6e6e6f1f1f1fdfdfdffffffdadada
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaf9f9f9fffffff5f5f5fffffff3f3f3
+f3f3f3fffffff8f8f8fffffff6f6f6fefefefffffff9f9f9fbfbfbe8e8e8f1f1f1ffffff
+ffffffffffffeaeaeafafafaf3f3f3ffffffeeeeeee0e0e0f3f3f3ffffffe5e5e5fcfcfc
+e5e5e5efefeffffffff4f4f4fffffff8f8f8f4f4f4e9e9e9fffffff6f6f6f4f4f4f3f3f3
+fbfbfbfffffff4f4f4e4e4e4fffffffefefefffffff2f2f2ffffffa1a1a1a3a3a3f6f6f6
+e9e9e9fcfcfceaeaeafffffffefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfc9b9b9bfefefefdfdfdffffff
+fffffffffffffefefefffffffdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfb
+fffffffcfcfcfafafafcfcfcfefefefefefefafafaf6f6f6fffffff8f8f8fefefefefefe
+eaeaeaffffffe7e7e7fdfdfdffffffffffffedededfbfbfbfffffff9f9f9f4f4f4ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfffffffafafafffffffafafacacacafefefefffffffcfcfcffffff
+fdfdfdfefefe6d6d6dfcfcfcf7f7f7ffffffd1d1d1bfbfbfffffffffffffe7e7e7ffffff
+f5f5f5e9e9e9fafafafffffffffffff7f7f7e9e9e9fffffff3f3f3fcfcfcf3f3f3fcfcfc
+fdfdfdf4f4f4fdfdfdf4f4f4fcfcfcfffffff1f1f1f6f6f6fffffffbfbfbe9e9e9ffffff
+fafafafafafafafafafafafafafafaf9f9f9f8f8f8f7f7f7eaeaeaf8f8f8f2f2f2ffffff
+fffffff3f3f3fafafaedededefefeffffffff3f3f3f5f5f5f5f5f5fffffff9f9f9eeeeee
+f8f8f8fffffffdfdfdfffffffafafafffffffbfbfbfffffff8f8f8f5f5f5eeeeeeffffff
+efefefefefeff7f7f7fafafafcfcfceaeaeaf9f9f9ffffffe6e6e6f5f5f5fffffff6f6f6
+e0e0e0ebebebffffffecececffffffefefefebebebfffffff4f4f48f8f8f979797fcfcfc
+f3f3f3fcfcfce9e9e9f6f6f6fefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000040404fafafafffffffbfbfb999999fefefeffffffffffff
+fdfdfdfefefefefefefffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfd
+fffffffdfdfdfbfbfbfcfcfcfefefefefefefbfbfbf8f8f8f0f0f0f1f1f1fdfdfdf3f3f3
+fefefef4f4f4fbfbfbf5f5f5ffffffe7e7e7fffffffffffffffffffcfcfcffffffdfdfdf
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffafafafbfbfbf7f7f7c9c9c9fefefefffffffcfcfcffffff
+fcfcfcfefefe6d6d6dfefefefafafaffffffd2d2d2cacacaf6f6f6fffffff6f6f6f9f9f9
+fafafafffffff5f5f5eaeaeafefefefafafaf6f6f6fefefefffffff2f2f2ffffffededed
+edededffffffefefeffffffffefefefafafafffffffffffff3f3f3f0f0f0fcfcfcffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff1f1f1fffffff5f5f5
+f6f6f6fffffff2f2f2fffffffffffffbfbfbfefefeeeeeeeffffffefefeffbfbfbffffff
+f6f6f6fbfbfbfffffff2f2f2fafafaf8f8f8fffffff9f9f9ffffffffffffedededeeeeee
+f6f6f6fffffff9f9f9ebebebffffffffffffebebebfffffff1f1f1fffffff2f2f2fdfdfd
+ffffffeaeaeaffffffefefeffefefefffffff2f2f2f8f8f8fafafa969696959595ffffff
+fffffffdfdfde9e9e9fbfbfbfefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000030303fafafafefefefafafa979797fdfdfdffffffffffff
+fcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfbfbfbfbfbfbfcfcfcfefefefffffffffffffefefef6f6f6ffffffe5e5e5ffffff
+ffffffebebebfffffff9f9f9fffffffffffffffffff4f4f4f0f0f0fdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffafafafafafaf6f6f6cbcbcbfefefefffffffbfbfbffffff
+fcfcfcfefefe6e6e6efffffff9f9f9fcfcfcc3c3c3d7d7d7edededf5f5f5fffffffefefe
+f7f7f7e6e6e6fffffff2f2f2f1f1f1fffffff5f5f5fffffff1f1f1fdfdfdf9f9f9ffffff
+fffffff9f9f9fefefef1f1f1fffffffbfbfbf0f0f0ffffffe8e8e8fffffffffffff3f3f3
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfffffff1f1f1fffffff9f9f9
+f9f9f9fffffff1f1f1fffffff4f4f4f6f6f6fffffffbfbfbffffffeaeaeaf4f4f4fefefe
+fffffffefefeecececfffffff2f2f2fffffff1f1f1ffffffeaeaeafffffffffffffafafa
+fffffff4f4f4fffffffffffffafafaffffffffffffe9e9e9fffffffcfcfcfffffff9f9f9
+fdfdfdfafafafcfcfcfefefef0f0f0fbfbfbfffffff1f1f1fcfcfca9a9a9999999fdfdfd
+fefefef6f6f6e7e7e7fffffffefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9999999fbfbfbfafafafbfbfb
+fcfcfcfffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfdfdfdfefefefdfdfdfdfdfdfdfdfdfffffffffffff7f7f7fffffffbfbfbf6f6f6
+fffffff6f6f6ebebebfffffff8f8f8ffffffeeeeeeffffffffffffffffffe7e7e7fdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefcfcfcfffffffbfbfbfafafaf8f8f8cfcfcffefefefffffffbfbfbffffff
+fcfcfcfefefe6f6f6ffffffffffffffdfdfdbcbcbcb8b8b8afafafa8a8a89f9f9f979797
+a0a0a0939393979797a5a5a59191918585859b9b9b9e9e9e9f9f9f9797979a9a9a929292
+9292929b9b9b989898a1a1a19595959d9d9da6a6a6929292a4a4a48d8d8d999999a5a5a5
+9a9a9a9b9b9b9b9b9b9c9c9c9c9c9c9c9c9c9b9b9b9b9b9b9292929b9b9b9494949d9d9d
+9d9d9d9393939b9b9b919191979797a5a5a59393938c8c8c898989a1a1a19e9e9ea2a2a2
+8a8a8a9d9d9da9a9a98b8b8b929292999999a4a4a49292928a8a8a9696968686869e9e9e
+a0a0a08d8d8d9393939191919b9b9b858585919191aaaaaa9191918c8c8c989898a0a0a0
+9090909f9f9f9b9b9ba0a0a0a0a0a09b9b9bababab959595a0a0a0888888929292fafafa
+fffffffefefee2e2e2f7f7f7fefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f99c9c9cfafafaf5f5f5f8f8f8
+fefefefffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffbfbfbfafafafcfcfcfffffffffffff1f1f1fafafaffffff
+f9f9f9fffffffffffff9f9f9fffffffcfcfcfffffffffffff9f9f9fafafafffffff1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfbfbfbfbfbfbfffffffcfcfcfbfbfbfafafad3d3d3fefefefffffffbfbfbffffff
+fbfbfbfefefe6f6f6fffffffedededffffffcdcdcda4a4a48a8a8a939393898989999999
+929292989898929292979797a1a1a19b9b9b949494949494939393a0a0a09191919e9e9e
+9d9d9d8f8f8f9d9d9d9090909494949a9a9a979797989898919191999999949494909090
+969696979797979797989898989898989898979797979797999999979797989898969696
+969696989898979797999999939393999999989898959595a1a1a19c9c9c959595949494
+9393939393939c9c9c9696969d9d9d939393979797939393a2a2a29292929898989c9c9c
+878787a5a5a59898989b9b9b9e9e9e9696969999999696969999999999999b9b9b8c8c8c
+9d9d9d9595959b9b9b8a8a8aa1a1a1919191909090a2a2a29696969c9c9ca1a1a1f4f4f4
+ffffffffffffeaeaeafffffffefefefcfcfcfcfcfcfffffffdfdfdfffffffcfcfc000000
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdb1b1b1c1c1c1cdcdcdcccccc
+c7c7c7c8c8c8cacacac9c9c9cccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbefefeff1f1f1ffffffffffff
+fffffffcfcfc707070edededfefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfffffff6f6f6fdfdfdffffff
+fffffff8f8f8e9e9e9fffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdeaeaeaf5f5f5fcfcfcfafafa
+f7f7f7f9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefef7f7f7f5f5f5f3f3f3
+f0f0f0fefefe606060fffffffafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fdfdfdfdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9f9f9f9fffffff9f9f9fefefefefefe
+fffffff6f6f6e8e8e8fdfdfdfffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfbfbfbfffffffffffffdfdfd
+fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcffffff565656fdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffff7f7f7fbfbfbfafafa
+fcfcfcf5f5f5e9e9e9fdfdfdfffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfdfdfdfcfcfcfafafaf8f8f8
+fafafafdfdfdfefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf0f0f0f3f3f3f8f8f8fcfcfc
+f7f7f7f7f7f7737373e0e0e0e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e5e5e5e5e5e5e5e5e5e4e4e4e4e4e4e3e3e3e3e3e3e3e3e3e8e8e8e1e1e1e6e6e6e4e4e4
+e9e9e9e6e6e6dcdcdcf0f0f0fffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfffffffffffffdfdfdffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffff
+ffffffffffffe0e0e0fffffffdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfffffffafafafffffffcfcfc
+fffffffffffff6f6f6fffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfdfdfdfafafafbfbfbffffff
+fffffffdfdfdfafafafbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbf7f7f7f9f9f9f4f4f4
+f5f5f5f2f2f2fffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfafafafffffff9f9f9
+fcfcfcfbfbfbeeeeeefefefefffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfffffffdfdfdfefefeffffff
+fffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffff5f5f5fffffffffffffffffffffffffefefefefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff3f3f3fffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfefefefafafafbfbfbfefefe
+fdfdfdf8f8f8fbfbfbfffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffffffffbfbfbfbfbfb
+fefefeffffffedededfffffffffffffffffffffffffffffffffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafafafafffffffcfcfc
+fffffffffffff2f2f2fffffffffffffefefefffffffffffffdfdfdfffffffcfcfc010101
+000000000000000000000000
+000000070707000000030303030303fffffffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff6f6f6fffffffffffff9f9f9060606
+000000000000000000000000
+080808000000000000000000000000fffffff7f7f7fffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffbfbfbf5f5f5fffffffffffffcfcfcfdfdfd000000
+000000000000000000000000
+0000000707070a0a0a000000000000fffffff3f3f3f6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7fffffffffffffffffff3f3f3ffffffffffff030303
+000000000000000000000000
+000000050505040404000000070707f6f6f6fffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffff6f6f6fcfcfcffffffffffffefefef000000
+000000000000000000000000
+070707000000000000090909000000111111000000000000010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101000000000000050505040404000000000000161616050505
+000000000000000000000000
+050505000000000000050505060606000000080808090909000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000606060000000000000000000c0c0c000000000000000000
+000000000000000000000000
+0000000303030c0c0c010101010101010101040404000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000909090606060000000000000505050707070a0a0a
+000000000000000000000000
+020202000000030303000000000000080808000000050505000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000101010000000a0a0a0000000000000b0b0b000000
+000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe6.gif b/lib/orber/doc/src/dataframe6.gif
new file mode 100644
index 0000000000..fb1c5d7827
--- /dev/null
+++ b/lib/orber/doc/src/dataframe6.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe6.ps b/lib/orber/doc/src/dataframe6.ps
new file mode 100644
index 0000000000..b2ff88e288
--- /dev/null
+++ b/lib/orber/doc/src/dataframe6.ps
@@ -0,0 +1,6653 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe6.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 148 230 478 464
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 990 string def
+
+% define space for color conversions
+/grays 330 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+148 230 translate
+
+% size of image (on paper, in 1/72inch coords)
+329.97600 234.00000 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+330 234 8 % dimensions of data
+[330 0 0 -234 0 234] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0303030000000c0c0c0000000a0a0a000000040404000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000000000000000000000000000000000000000000000
+000000000000010101010101010101010101000000000000010101010101010101010101
+010101010101010101010101020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000000000000000000000000000000000000000000000020202030303010101000000
+000000000000000000000000000000000000000000000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000000000000000000000
+000000000000000000000000010101000000000000000000000000000000000000010101
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202000000060606000000090909
+000000060606000000010101000000000000
+0101010202020000000000000000000a0a0a050505000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202020202020202010101
+010101020202020202030303000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000030303030303030303030303030303030303030303030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000020202010101080808060606
+090909000000000000080808000000000000
+0101010000000000000a0a0a000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101010101020202020202020202020202010101010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000020202000000
+000000000000000000050505000000000000
+0404040000000808080a0a0a0707070000000b0b0b0d0d0d010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101020202020202020202020202020202020202020202020202
+030303030303020202020202020202020202030303030303020202020202020202020202
+020202020202020202020202010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101030303040404040404040404
+030303030303020202020202020202030303040404020202000000000000020202040404
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101020202030303040404050505050505040404030303020202
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+0101010101010101010101010101010101010101010101010000000e0e0e000000000000
+000000121212000000000000000000000000
+0303030000000c0c0c010101000000090909030303000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000010101010101
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0f0f0f000000000000161616000000000000
+000000050505000000000000060606efefefffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffdfdfdfbfbfbfafafafffffffffffffefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffffffff
+f7f7f70e0e0e000000000000000000000000
+0000000707070000000a0a0a010101fffffff4f4f4ecececfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7
+fcfcfcfafafaf9f9f9f7f7f7f7f7f7f9f9f9fafafafcfcfcfafafafafafafafafafafafa
+fafafafafafafafafafafafafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffff
+fffffffefefefcfcfcfafafafbfbfbf7f7f7f6f6f6f8f8f8fcfcfcfcfcfcf5f5f5eeeeee
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfffffffffffffdfdfdfbfbfbfbfbfbfdfdfdffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffafafafffffff6f6f6
+ffffff0000000b0b0b131313000000000000
+090909000000060606000000000000fffffff5f5f5ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafafafafafafafafafafafafafafafafafafafafafa
+fffffffffffffefefefcfcfcfcfcfcfefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffcfcfcfafafaf8f8f8fffffffcfcfcf9f9f9fcfcfcfffffffffffff5f5f5ebebeb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefafafaf8f8f8f8f8f8fafafafefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffbfbfbffffff
+ffffff0101010a0a0a000000000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefeefefeffffffff9f9f9eeeeeefffffff8f8f8fffffffbfbfb
+f3f3f3f7f7f7f7f7f7eaeaeafffffffefefef1f1f1ffffffeeeeeeffffffe0e0e0ffffff
+f4f4f4fffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfffffffffffffdfdfdfdfdfdfffffffffffffdfdfd
+fffffffffffffefefefefefefffffffffffffffffffefefefffffffffffffbfbfbffffff
+fffffffbfbfbdfdfdffcfcfcffffffecececfffffff9f9f9fffffff6f6f6ffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfdfdfdffffffffffff
+fffffffefefef6f6f6efefefffffffebebebf9f9f9f6f6f6fffffffffffff9f9f9fdfdfd
+fffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefefefee8e8e8f7f7f7ffffffe3e3e3f0f0f0fffffff3f3f3
+fafafafffffff3f3f3ffffffeeeeeef5f5f5fffffffefefefffffff6f6f6fefefef4f4f4
+ebebebffffffe8e8e8f4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffefefefefefefffffffffffffefefe
+fffffffffffffefefefefefefffffffffffffffffffffffffefefef6f6f6fbfbfbf7f7f7
+fffffff7f7f7ffffffe8e8e8e0e0e0fffffff7f7f7fdfdfdf3f3f3f7f7f7e2e2e2f3f3f3
+fdfdfdfcfcfcfcfcfcfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfbfbfb
+fcfcfcfdfdfdfbfbfbf9f9f9f4f4f4f0f0f0ffffffffffffcfcfcff4f4f4fefefeffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfdfdfdfdfdfdfdfdfdfefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefef9f9f9fffffffffffffafafafdfdfdffffffe9e9e9ebebeb
+ffffffefefeff9f9f9fbfbfbd9d9d9ffffffffffffe2e2e2fdfdfdfefefeecececffffff
+fefefef3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffefefefdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffffffffefefefefefeffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffffffff4f4f4fffffff8f8f8
+f6f6f6ebebebf6f6f6fefefef0f0f0f4f4f4f2f2f2e9e9e9fffffff5f5f5fffffff5f5f5
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfafafa
+fbfbfbfdfdfdfdfdfdfdfdfdfffffffafafaedededf5f5f5ffffffe0e0e0fffffff2f2f2
+fbfbfbfcfcfcfefefefffffffffffffffffffffffffffffffefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefef0f0f0f9f9f9ebebebf8f8f8fffffff5f5f5fdfdfdffffff
+efefefefefeffffffffcfcfcfffffff3f3f3dfdfdff3f3f3edededffffffefefefffffff
+ebebebfffffffcfcfce6e6e6ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffffffffefefefefefeffffff
+fffffffffffffffffffefefefdfdfdfefefefffffffffffffefefefdfdfdffffffffffff
+f5f5f5fffffff3f3f3e8e8e8fffffff5f5f5f6f6f6fffffff1f1f1fbfbfbf4f4f4e3e3e3
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefcfcfcfdfdfdffffffffffff
+fffffffefefefbfbfbf9f9f90d0d0d0d0d0dffffffffffffdcdcdcfffffff2f2f2fdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefeeaeaeafffffff3f3f3ffffffe8e8e80f0f0f000000050505
+000000f5f5f5f4f4f4e8e8e8f3f3f3fffffffbfbfbfdfdfd0505050b0b0b050505000000
+0a0a0affffffe8e8e8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfcfcfcfffffffffffffcfcfcfcfcfcffffff
+fffffffffffffffffffefefefcfcfcfcfcfcfffffffffffffdfdfdfffffffdfdfdf0f0f0
+ffffffeeeeeedcdcdc1010100000000000000e0e0e000000111111131313020202000000
+fcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfdfdfdffffffffffff
+fffffffdfdfdfafafaf8f8f80000001a1a1a000000fcfcfcfffffff5f5f5fafafaffffff
+fffffffffffffffffffcfcfcf9f9f9f8f8f8f7f7f7f7f7f7ffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefefefefffffff9f9f9f2f2f2fcfcfcfafafaffffff000000
+1010100b0b0bfafafafffffffafafae9e9e9fffffff5f5f5fffffff6f6f6080808ffffff
+f4f4f4e5e5e5fefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfefefefffffffafafafafafafafafafafafa
+fafafafafafafafafafafafafffffffafafafafafafffffffffffffafafafafafaffffff
+fbfbfbfefefefffffffffffffcfcfcfbfbfbfdfdfdffffffddddddfffffff4f4f4f6f6f6
+ffffffffffff101010000000070707fdfdfdffffffffffffffffffdbdbdb060606171717
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfffffffffffffefefefefefefefefefefefe
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfafafafafafafdfdfdfdfdfdfdfdfdfbfbfb
+f9f9f9f9f9f9fcfcfcffffff0000000f0f0ff8f8f8fcfcfcffffffedededf9f9f9e4e4e4
+fcfcfcfbfbfbfafafaf9f9f9f8f8f8f9f9f9fafafafbfbfbfdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefdfdfdfffffffefefefffffffffffff0f0f0f9f9f9000000
+060606030303000000f6f6f6f5f5f5f8f8f8f2f2f2fffffff9f9f9fbfbfb080808fdfdfd
+fafafafffffff3f3f3efefeffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f5f5f5f7f7f7fafafafdfdfdfefefefdfdfdfcfcfcfbfbfbf6f6f6f6f6f6f6f6f6f6f6f6
+f6f6f6f6f6f6f6f6f6f6f6f6fefefef7f7f7f7f7f7fefefefefefef7f7f7f7f7f7fefefe
+f7f7f7fcfcfcfffffffffffffcfcfcf9f9f9fafafafdfdfdffffffe6e6e6fafafaffffff
+f5f5f5000000040404020202f1f1f1f9f9f9fffffffbfbfbe8e8e8ffffffe4e4e4030303
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefefffffffafafafafafafbfbfbfcfcfc
+fcfcfcfdfdfdfefefefefefef9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fcfcfcfcfcfcfbfbfbfafafaf9f9f9f9f9f9f8f8f8f8f8f8f6f6f6f8f8f8fafafafafafa
+fafafafbfbfbfefefefffffff6f6f6fdfdfdfffffff6f6f6edededfdfdfdfefefeffffff
+f2f2f2f4f4f4f7f7f7fafafafbfbfbfbfbfbfafafafafafafcfcfcfcfcfcfbfbfbfbfbfb
+fafafafafafafafafaf9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefffffff6f6f6f6f6f6fffffff5f5f5fffffffbfbfb030303
+efefef030303121212fafafafdfdfdffffffebebebfdfdfdf3f3f3ffffff070707fafafa
+f9f9f9fffffff5f5f5fffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f0f0f0f4f4f4fafafafffffffffffffffffffbfbfbf8f8f8fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfefefef6f6f6f6f6f6fefefefefefef6f6f6f6f6f6fefefe
+f4f4f4fafafafffffffffffffcfcfcf8f8f8f9f9f9fbfbfbf7f7f7edededffffffefefef
+ececec1212120d0d0dfafafafcfcfcfffffffcfcfcf1f1f1fbfbfbeeeeeeffffff030303
+fbfbfbfbfbfbfafafafbfbfbfcfcfcfdfdfdfefefefffffff7f7f7f7f7f7f8f8f8f9f9f9
+fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfafafaf9f9f9f8f8f8f7f7f7f7f7f7f6f6f6eaeaeaf1f1f1fafafaffffff
+fffffffefefefdfdfdfdfdfdf8f8f8f2f2f2f5f5f5fffffff0f0f0fffffffefefef7f7f7
+f7f7f7fafafafdfdfdfefefefcfcfcf5f5f5eeeeeeeaeaeafdfdfdfdfdfdfdfdfdfcfcfc
+fcfcfcfbfbfbfbfbfbfafafaf7f7f7f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffcfcfcfffffffcfcfc020202
+f7f7f70e0e0e060606010101fefefeeeeeeeffffffffffffedededffffff000000fefefe
+f9f9f9fffffff3f3f3eeeeeefefefee0e0e0f8f8f8fefefef6f6f6fbfbfbf5f5f5f9f9f9
+f9f9f9fffffff0f0f0edededffffffe8e8e8f5f5f5fffffff1f1f1e7e7e7f8f8f8ffffff
+f9f9f9fefefee9e9e9fefefefffffff3f3f3fffffffdfdfdffffffe4e4e4fcfcfcffffff
+fefefef0f0f0f0f0f0fffffffcfcfcfffffff4f4f4fbfbfbfbfbfbfcfcfcf9f9f9ffffff
+fafafa040404000000e7e7e7fefefefffffffffffff8f8f8fffffff3f3f3fffffffcfcfc
+fefefefbfbfbfffffffafafaf6f6f6f2f2f2fffffff0f0f0fffffffffffff5f5f5ffffff
+f7f7f7fdfdfdfbfbfbfefefef3f3f3f9f9f9ffffffefefeffafafaffffffffffffededed
+fafafaf7f7f7fffffffbfbfbffffffedededf2f2f2f9f9f9f9f9f9ffffffe7e7e7f7f7f7
+ffffffedededf5f5f5fffffff6f6f6fffffffdfdfdf7f7f7fffffffbfbfbffffffe3e3e3
+fffffff9f9f9f4f4f4e1e1e1fffffffcfcfcf2f2f2fffffff6f6f6f6f6f6fffffff5f5f5
+fffffffbfbfbfffffff8f8f8ffffffffffffeaeaeaf4f4f4fffffffdfdfdeeeeeeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffdfdfd020202
+f8f8f8e8e8e8121212080808000000fffffff7f7f7dfdfdfffffffffffff050505ffffff
+eeeeeef7f7f7fafafaffffffefefefffffff0303030303030808080a0a0a070707131313
+fafafaf1f1f1ffffffe6e6e6ddddddffffff020202000000fffffffefefe090909000000
+000000000000fffffff1f1f1f6f6f60000000f0f0f000000ecececffffffe7e7e7f5f5f5
+f0f0f0fbfbfbffffffe7e7e7000000000000111111040404000000fefefeffffffe6e6e6
+ffffff151515000000111111ffffffedededfafafaf4f4f4fafafafafafaffffffffffff
+d8d8d8fffffff9f9f9f0f0f0fffffff3f3f30d0d0d1414140909090000000a0a0aebebeb
+f7f7f7ffffffeeeeeef1f1f1ffffff000000050505fffffff4f4f4000000131313010101
+0909090f0f0f0000001414140000000e0e0efbfbfbfefefe0000000000000505050a0a0a
+111111efefeffffffff1f1f10b0b0b0b0b0bf6f6f6fffffff9f9f9e7e7e7e5e5e5ffffff
+000000111111080808141414f9f9f9f1f1f1ffffffe8e8e8f5f5f5dadadaffffff000000
+000000080808000000030303fefefecfcfcffffffff3f3f3ffffffe5e5e5fffffff5f5f5
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffdfdfd030303
+fdfdfdffffffe8e8e80a0a0a111111e7e7e7fbfbfbfdfdfdf4f4f4ececec010101fdfdfd
+fffffffffffff4f4f4fbfbfb131313000000fffffff6f6f6f4f4f4f1f1f1000000070707
+191919e7e7e7fafafaffffff050505030303010101030303000000000000000000020202
+232323000000f2f2f20000000f0f0f0606060000001919190b0b0befefeffdfdfdffffff
+fdfdfdfafafaf1f1f10e0e0e1d1d1de9e9e9fcfcfcffffff050505000000e8e8e8ffffff
+ebebeb0101010a0a0a000000060606f7f7f7e7e7e7fffffffbfbfbfffffff9f9f9fafafa
+ffffffeaeaeafffffffefefeffffff0000000a0a0ae3e3e3ebebebffffff0000000b0b0b
+fcfcfcffffffebebeb1212120000002a2a2a000000ffffff000000070707000000020202
+ffffffd9d9d9050505000000ffffffffffffeeeeeeffffffe4e4e4ffffff0d0d0df3f3f3
+edededefefef0000000f0f0f000000020202ffffffe6e6e6ffffffffffffffffff000000
+090909fffffff8f8f80606060909091e1e1ee2e2e2ffffffffffffffffff0b0b0b000000
+fffffffffffff1f1f11515150d0d0dfffffff8f8f8f9f9f9e0e0e0fffffffdfdfdf7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffdfdfd030303
+e9e9e9f6f6f6ffffff000000030303030303f2f2f2fcfcfcffffffffffff0a0a0ae1e1e1
+ffffffffffffedededffffff000000242424fcfcfcfffffff2f2f2ffffffffffff000000
+000000fffffffefefeeeeeeef9f9f9ffffff000000141414fffffffdfdfdfffffff4f4f4
+d5d5d5000000141414f9f9f9fcfcfcffffffffffffefefef030303000000f4f4f4fdfdfd
+fffffff7f7f7090909000000cbcbcbfffffffbfbfbf6f6f6e9e9e9050505212121f8f8f8
+fdfdfdf4f4f40404040808080000003333330a0a0a000000ffffffe4e4e4f9f9f9f6f6f6
+f2f2f2f3f3f3fcfcfcf6f6f6000000070707e2e2e2fffffff4f4f4fffffff1f1f1000000
+0a0a0aecececffffffd5d5d5ffffff0b0b0b000000000000fffffff3f3f3ffffff151515
+ebebebffffff0000000d0d0dffffffd9d9d9ffffffedededefefeffcfcfc000000f7f7f7
+fffffff6f6f6eeeeeeffffff121212181818f2f2f2ffffffebebebe9e9e9000000191919
+fffffffffffff3f3f30000002d2d2d000000fcfcfce1e1e1ffffff0000000d0d0dffffff
+edededf8f8f8ffffffeeeeee0f0f0f000000fffffff2f2f2fffffff8f8f8f0f0f0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefffffffffffffcfcfcfffffffcfcfc020202
+ffffffeaeaeafffffff3f3f30000000d0d0d171717f8f8f8f4f4f4f6f6f6070707efefef
+fafafafafafaf6f6f6fffffffffffffefefee7e7e7e8e8e8ffffffe3e3e3ffffff000000
+000000ffffffffffffeaeaeaffffffffffff0000000e0e0efbfbfbefefeff1f1f1ffffff
+ffffff1b1b1b000000fffffff0f0f0ebebebffffffffffff0000000b0b0bffffffebebeb
+f2f2f2efefef080808ffffffffffffe8e8e8f2f2f2fdfdfdffffff0d0d0d000000f4f4f4
+ffffffedededdcdcdc0909091818180000001111110909090202021d1d1d000000ffffff
+fffffffbfbfbf4f4f4ffffff030303fcfcfcffffffdfdfdff8f8f8fefefef7f7f7000000
+000000f4f4f4f0f0f0fffffff6f6f60b0b0b202020fffffff5f5f5ffffffe7e7e7e1e1e1
+fefefee9e9e9ffffff000000121212f7f7f7fdfdfdfafafaffffff060606090909f9f9f9
+e3e3e3fffffffcfcfcf6f6f6000000010101fdfdfdfffffffffffffefefe000000fefefe
+fffffff4f4f4ffffff080808000000040404ffffffffffffeaeaea070707ffffffe9e9e9
+ffffffe7e7e7fffffff3f3f30000002f2f2feeeeeefffffff8f8f8e5e5e5fffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefbfbfbfefefefbfbfb000000
+e9e9e9fffffff7f7f7f9f9f9ffffff000000000000ffffffffffffeaeaea000000ffffff
+f8f8f8f8f8f8ffffffedededffffffe6e6e6fcfcfcffffffffffff000000171717000000
+0f0f0ffffffff8f8f8f9f9f9f7f7f7fcfcfc0a0a0a131313efefeff0f0f0ffffffe2e2e2
+ffffff0000000c0c0cf9f9f9fffffffffffff5f5f5e8e8e8020202060606fbfbfbffffff
+f8f8f80000000e0e0eededede9e9e9fffffff2f2f2fffffff9f9f9000000101010fafafa
+f2f2f2ffffffffffffeaeaeaffffffeeeeee0c0c0c0000000404040000000e0e0e000000
+e6e6e6fbfbfbfdfdfd0b0b0b111111fafafafffffff2f2f2fffffff5f5f5f3f3f3141414
+020202ffffffffffffecececfdfdfd000000030303f0f0f0f1f1f1eeeeeeffffffececec
+fffffffffffffbfbfb0000000a0a0aedededfefefeffffffffffff000000fcfcfcf3f3f3
+ffffffefefeffffffff5f5f50c0c0c000000fafafaf6f6f6f6f6f6000000000000eaeaea
+f4f4f4f0f0f0fffffffffffff9f9f9fffffff0f0f0d9d9d9000000080808e3e3e3f6f6f6
+f6f6f6ffffffeeeeeeffffff040404000000ecececfcfcfcffffffffffffffffffe9e9e9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfbfbfbfcfcfcfdfdfdf9f9f9fdfdfdf9f9f9000000
+eaeaeafffffff4f4f4f6f6f6fdfdfd151515121212000000e6e6e6ffffff000000ffffff
+f1f1f1f7f7f7fffffff5f5f5ffffffffffff000000010101000000ffffffffffff222222
+020202fcfcfcecececfafafafffffff0f0f0040404000000f9f9f9fffffffffffff3f3f3
+e5e5e5050505000000ffffffdededeffffffe8e8e8ffffff0505050a0a0aedededdddddd
+ffffff0000001010100606060000000000002222220000000f0f0f000000070707ffffff
+fafafae1e1e1f5f5f5fbfbfbe0e0e0f0f0f0fffffffffffff2f2f2131313050505070707
+ffffffe9e9e9f1f1f11717170000000000000202020a0a0a0101010000000404040c0c0c
+080808fdfdfdfffffffffffffcfcfc0d0d0d030303ffffffffffffe3e3e3fbfbfbffffff
+fdfdfde2e2e2f1f1f10e0e0e000000ffffffffffffdedede050505080808ecececffffff
+e8e8e8f1f1f1fffffffdfdfd0000001a1a1af7f7f7ebebebffffff060606000000ffffff
+f9f9f9efefeffefefef4f4f4fbfbfbeeeeeeeaeaeaffffff0f0f0f0101010e0e0e151515
+0000000000000303030202021b1b1b020202fffffff4f4f4e7e7e7fefefef1f1f1ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfafafafbfbfbfcfcfcf8f8f8fcfcfcf8f8f8000000
+fffffff2f2f2fefefef8f8f8ffffffe7e7e70b0b0b000000040404ebebeb000000f6f6f6
+fffffffdfdfdedededffffff0000000d0d0df7f7f7fffffffffffff8f8f8ededed000000
+0b0b0be6e6e6ffffffeeeeeefffffff4f4f4121212080808fcfcfce3e3e3fbfbfbffffff
+fcfcfc0505050d0d0defefefffffffe9e9e9f7f7f7ffffff000000131313fffffffcfcfc
+ebebeb000000050505f7f7f7fffffffefefeebebebfffffffafafafdfdfdfffffffdfdfd
+f0f0f0fffffff5f5f5fafafafffffff9f9f9f8f8f8e5e5e5ffffffe6e6e6f1f1f1070707
+000000ffffffffffff000000151515fffffff0f0f0fcfcfcfcfcfcfcfcfcfffffff6f6f6
+f7f7f7e3e3e3fcfcfcfcfcfcfdfdfd0b0b0b000000f4f4f4f9f9f9fdfdfdf1f1f1f4f4f4
+f1f1f1fffffffefefefcfcfc151515000000e1e1e1fcfcfc0d0d0dfcfcfcfefefef8f8f8
+eaeaeaffffffe2e2e2fdfdfd000000000000fffffff4f4f4f7f7f70505050c0c0cf6f6f6
+fdfdfdf9f9f9efefeffffffff2f2f2fffffff0f0f0f3f3f30000000d0d0df8f8f8e1e1e1
+fffffffffffff9f9f9fcfcfcf6f6f6f3f3f3fffffffdfdfdf6f6f6f9f9f9fffffff3f3f3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff3f3f3f8f8f8ffffffffffffffffffefefefffffff000000
+fafafafffffffefefefcfcfcf8f8f8fafafaffffff0000000a0a0afbfbfb040404f0f0f0
+fffffffafafaf7f7f70d0d0d070707f8f8f8ffffffffffffffffffe4e4e4ffffff000000
+121212eeeeeefffffffdfdfddadadaffffff0000001a1a1afffffff5f5f5fffffffbfbfb
+e5e5e5000000171717fffffffffffff0f0f0fafafaf9f9f9000000040404ffffffefefef
+ececec111111090909f6f6f6fffffffffffff4f4f4fbfbfbf7f7f7fffffff4f4f4f7f7f7
+e8e8e8000000fffffffbfbfbfffffffdfdfdf3f3f3fffffff0f0f0fdfdfdffffff000000
+000000fffffff1f1f1070707161616e4e4e4fffffff8f8f8fbfbfbf4f4f4ffffffffffff
+fafafaeeeeeefffffff7f7f7f1f1f1151515060606f2f2f2fffffffffffff4f4f4ffffff
+f6f6f6f1f1f1fffffff1f1f1121212000000ffffffe7e7e70b0b0bf4f4f4ffffffe8e8e8
+fffffffbfbfbfffffff7f7f7080808000000fafafafcfcfcf4f4f41b1b1b090909f2f2f2
+f4f4f4fdfdfdfdfdfdecececfffffffffffffffffffcfcfc030303050505fcfcfcfdfdfd
+fafafaffffffe5e5e5fffffffefefefafafaf7f7f7fffffffffffff2f2f2fffffff1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfcf0f0f0f3f3f3ffffffe1e1e1121212
+fefefefffffff0f0f0e1e1e1ffffffe1e1e1e0e0e0161616000000040404232323f4f4f4
+eeeeeef2f2f2ffffff000000000000fffffff0f0f0f6f6f6fffffffdfdfdfefefe060606
+000000ffffffe2e2e2d6d6d6fffffff4f4f4000000060606fbfbfbffffffffffffe5e5e5
+ffffff000000000000ffffffe1e1e1fffffffefefee4e4e4202020000000fcfcfcffffff
+ffffff000000000000ffffffe0e0e0eaeaeaf5f5f5ffffffffffffe4e4e4fffffffbfbfb
+ffffff040404ffffffdbdbdbeaeaeaf5f5f5fbfbfbfcfcfcf0f0f0fefefeeeeeee0f0f0f
+121212ebebebffffff0000000b0b0bfcfcfcf3f3f3fffffff2f2f2fffffff0f0f0ededed
+fffffffcfcfcfffffffafafaf1f1f1000000070707f3f3f3ffffffe8e8e8fffffff3f3f3
+ffffffeaeaeafbfbfbeaeaeaf5f5f5121212ffffff0a0a0afffffff5f5f5f5f5f5f5f5f5
+f5f5f5edededfffffff8f8f8030303030303f8f8f8ffffffe3e3e3000000060606f1f1f1
+fffffff3f3f3fffffffffffffafafaf5f5f5f8f8f8f2f2f2111111000000fafafaffffff
+eeeeeef4f4f4ffffffe0e0e0fcfcfcfffffff2f2f2fffffff9f9f9fbfbfbf7f7f7ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbebebebf8f8f8f6f6f6efefeffcfcfcf6f6f6101010
+fbfbfbddddddfffffff9f9f9dfdfdfffffffffffffe2e2e2111111111111000000ffffff
+ffffffe3e3e3ffffff0b0b0b1d1d1dfdfdfdf6f6f6f6f6f6fffffff1f1f1f8f8f8030303
+000000fffffff5f5f5ffffffd4d4d4f1f1f10000000b0b0bfefefee4e4e4ffffffe9e9e9
+fbfbfb0d0d0d151515f8f8f8ffffffecececebebebffffff000000000000ffffffd2d2d2
+f0f0f0ffffff101010080808fffffffffffff6f6f6e8e8e8f8f8f8fffffffbfbfbe6e6e6
+f9f9f91c1c1cfcfcfcfffffff0f0f0ffffffe8e8e8eaeaeaffffffe7e7e70202020e0e0e
+f2f2f2ffffffecececffffff0000000a0a0ae9e9e9f0f0f0ffffffebebebf0f0f0ffffff
+e7e7e7f4f4f4f9f9f9fcfcfcffffff000000151515eeeeeef6f6f6ffffffecececf0f0f0
+fbfbfbfefefefffffffffffff4f4f40000000000000f0f0ffbfbfbf2f2f2e5e5e5ffffff
+edededffffffdadadaffffff010101020202fdfdfdefefefffffffffffff0b0b0b050505
+fafafaeeeeeefefefef1f1f1f0f0f0fffffffffffff0f0f0ffffff202020000000ffffff
+ffffffe3e3e3efefeffdfdfdfafafae9e9e9fffffff2f2f2ebebebfffffffcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fffffffdfdfdeaeaeaffffffe1e1e1ffffff000000
+fcfcfcfffffffbfbfbfffffff9f9f9fbfbfbebebebffffffffffff0000000f0f0ffefefe
+f0f0f0e6e6e6ffffff000000000000090909fafafaf5f5f5f7f7f70808080000001e1e1e
+070707fffffffcfcfcfcfcfcedededffffff131313121212f7f7f7ffffffebebebfdfdfd
+f9f9f9000000202020ffffffe8e8e8fcfcfcf7f7f7fafafa040404000000dededeffffff
+f0f0f0ffffff000000000000000000fefefeebebebffffffe2e2e2fcfcfc111111ffffff
+e9e9e90000001b1b1bf8f8f8f0f0f0fcfcfcfbfbfbffffffe8e8e8101010000000000000
+f8f8f8f8f8f8f9f9f9f2f2f20b0b0b010101181818fffffff8f8f8e7e7e7ffffffffffff
+000000fffffffffffff6f6f6e3e3e31212120a0a0afffffff1f1f1fffffff4f4f4fdfdfd
+fffffff6f6f6e9e9e9fefefee9e9e9141414181818060606f1f1f1ffffffeeeeeefdfdfd
+fafafae8e8e8fffffff1f1f1050505040404ffffffedededf1f1f1f2f2f2060606000000
+020202fefefefffffffffffff1f1f1090909e3e3e3ffffffdcdcdc0000000e0e0e0b0b0b
+e6e6e6fffffffffffff6f6f6ffffff000000e9e9e9f4f4f4ffffffd8d8d8fffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffddddddf6f6f6f4f4f4fffffff5f5f5020202060606070707
+121212080808ecececf9f9f9f8f8f8fffffffefefefffffff2f2f2000000080808f3f3f3
+eeeeeeffffffd5d5d5f7f7f72929290303030d0d0d030303060606f7f7f7ffffff000000
+080808000000111111fbfbfb070707010101000000000000050505000000ffffffefefef
+141414070707000000000000000000fffffffafafa000000090909060606000000000000
+ffffffedededfdfdfdffffff000000070707131313000000080808000000e9e9e9f7f7f7
+ffffff0808080000000202021818180000000404040707070b0b0b000000f8f8f8ffffff
+fffffff0f0f0ebebebfffffff6f6f6fdfdfd0e0e0e0000001414140c0c0c000000000000
+f9f9f9f4f4f4ffffff0000000505050000000707070c0c0c0b0b0be9e9e9f5f5f5fbfbfb
+f5f5f5ffffffecececf0f0f0ffffffe5e5e5000000fefefefcfcfcfafafae7e7e7ebebeb
+ffffffffffff000000030303141414000000181818020202f6f6f6f2f2f2ffffff0d0d0d
+060606000000000000000000000000f5f5f5ffffffe9e9e9ffffffffffffffffff0c0c0c
+000000161616000000131313000000ffffffffffffe7e7e7ffffffffffffebebebe9e9e9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffff6f6f6e3e3e3fdfdfdf0f0f0ecececffffff
+fbfbfbe8e8e8fffffff1f1f1fffffffbfbfbfffffff1f1f1fefefefefefefffffff8f8f8
+f6f6f6ebebebfffffff3f3f3fefefee9e9e9fbfbfbfffffff8f8f8fffffff7f7f7f8f8f8
+ffffffffffffe8e8e8fffffffffffff9f9f9fefefeffffffffffffedededf7f7f7f9f9f9
+efefeffffffff7f7f7ffffffffffffdfdfdffffffff3f3f3ffffffedededffffffffffff
+f2f2f2fffffff7f7f7fffffff8f8f8f1f1f1fffffffffffffffffffffffff9f9f9fcfcfc
+fafafaf6f6f6fffffffffffffffffffffffffffffff4f4f4eeeeeefffffff0f0f0fefefe
+f4f4f4f5f5f5fffffff9f9f9fefefefffffff0f0f0fffffff5f5f5fcfcfcfafafaffffff
+fffffff5f5f5f7f7f7fffffffefefefffffffffffff9f9f9f0f0f0ffffffffffffffffff
+ffffffffffffecececffffffe7e7e7f8f8f8fffffff1f1f1fffffffafafaffffffffffff
+f8f8f8f4f4f4fffffffffffff0f0f0f5f5f5fffffffdfdfde3e3e3fffffff4f4f4f8f8f8
+f7f7f7fffffff8f8f8fffffffffffff8f8f8f8f8f8fefefeefefeffbfbfbf9f9f9f7f7f7
+ffffffeaeaeafefefefcfcfcfdfdfde8e8e8fffffffdfdfdf1f1f1f8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdf1f1f1fffffffefefeecececfffffffafafadfdfdf
+fffffff1f1f1ffffffffffffdcdcdcfffffff1f1f1fffffffdfdfdeeeeeef5f5f5ffffff
+f8f8f8fffffffcfcfcf9f9f9eaeaeaffffffe0e0e0f5f5f5fdfdfdf6f6f6ffffffffffff
+eeeeeef0f0f0fffffff6f6f6e6e6e6ffffffedededf4f4f4fcfcfcfffffffbfbfbffffff
+f2f2f2fcfcfcfffffff2f2f2fefefefdfdfdfffffffcfcfceaeaeafbfbfbf8f8f8f6f6f6
+ffffffd1d1d1fffffff2f2f2f6f6f6ffffffefefeffffffffffffffafafaffffffffffff
+fbfbfbfdfdfdffffffebebebf4f4f4f9f9f9fefefeffffffffffffdfdfdffffffff9f9f9
+fffffff5f5f5fdfdfdf4f4f4f6f6f6e7e7e7fffffff0f0f0f8f8f8ffffffffffffe9e9e9
+ffffffffffffefefeffdfdfdfdfdfde7e7e7fafafaf8f8f8fffffffefefee6e6e6f8f8f8
+fbfbfbdfdfdffffffff5f5f5fffffff4f4f4f5f5f5fdfdfdf1f1f1ffffffeeeeeefdfdfd
+efefeffffffffdfdfdf4f4f4fbfbfbffffffefefeffefefeffffffd0d0d0ffffffffffff
+efefefe4e4e4fffffff9f9f9f8f8f8ffffffdcdcdcfffffffffffff3f3f3fffffff4f4f4
+f6f6f6fffffffbfbfbf9f9f9fffffff4f4f4fdfdfdfcfcfcfcfcfcfffffffefefeefefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030106020005000005000004030504fbfdfafefffffdfefffffffffffffffffeffffffff
+fefffdfefffbfcfffdfcfffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdf5f7f4fefffdfdfffcfefffdeef0edfbfdfafefffd
+ebedeafefffdf0f2eff0f2effefffdfafcf9eceeebfefffdfdfffcfefffdfcfefbfafcf9
+fefffdfefffdf2f4f1fefffdfefffdeceeebfbfdfcfdfffcfefffffefffdf0f2f1fefffd
+fefffffefffdf9fbfaf9fbf8fefffffbfdfafefffffefffdfafcf9fefffdfefffdfefffd
+fefffdeceeebfefffdfcfefbfcfefbfdfffcfcfefbf8faf7fefffdf1f3f0fefffdfefffd
+fefffffeffffeff0f2fefffff5f7f6fafcf9f5f6f8fefffff8fbf4fefffafefffdfdfffe
+fcfefbfeffffe4e5e7fefffffefffff3f5f4f5f7f2fefffaeff2ebfefffbfdfffcfeffff
+fefffff3f5f2fefffbfbfcf6f9faf5fffffddfdfdffffffffefffff2f3f5fefffff0f1f3
+fefffff8f9fbfefffffefffff9fafcfeffffeff1f0fdfffef6f8f7f7f9f8fefffffeffff
+f6f8f7feffffe6e7e9f9fbfafefffffeffffeeeff1fefffffeffffeff1f0fefffffdfffe
+fefffff7f9f8f7f8fafefffffcfdfffcfdfffefffff7f8fafefffffdfefff7f8fafdfeff
+fefffff6f7f9fcfdfffefffff3f4f6fefffff8f9fbf5f6f8f5f7f6fefffdebedeafefffd
+fefffdfafcf9fafcf9fefffdf5f7f4fefffdfefffde3e5e2fefffdedefecf3f5f2fefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffdfefffbfefffbfefffffefffffefffffefffdfefffafefffa
+fefffdfefffffefffdfefffbfefffafefffafffffbfffffbfdfdfbfefefcfffffdfffffd
+fbfbfb030303000000010101000000000000
+06000d04000d00001200000c000602f6fff8fbfffffcfffffdfffefdfffefefcfffdfdff
+fbfff7f8fff2f6fff7f6fff9f7fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9fbfffbfbfffbfbfffdfbfffbfbfffdfbfffbfbfffdfbfffb
+fbfffdfbfffbfbfffdfbfffbfbfffdfbfffbfbfffdfbfffbfbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffb
+fafffcfafffffafffffafffffafffcfafffafafffffafffcf9ffeff9ffedf9fff8f9fffb
+f9fff9f9fffbf9fefff9fdfffbfefffbfffcfbfff5fbfff0fbfff0fbfff3fbfff9fbfffc
+fafffbfafff8fafff2fcffeffcfff1fcfff6fdfdfffcfcfffcfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffafffffafffffafffffafffffafffffafffffafffffaffff
+fafffffafffffafffffafffffafffffafffffafffffafffff8fefaf8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8
+f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f8fff8f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff6fafff2fafff5fafffffafffff8fffef8fff7f8fff0f8fff0
+f9fff8fbfffdfcfffbfafff4f8ffebfcffedfefff3fefff6fffff8fffffafffffafffffb
+fbfbf9030303000000000002000002000002
+08000605000800000c000007000900f5fff0f9fffffbfffff9fcf3fafbf5fbf8fffaf9fe
+f7feeef4ffe8f0ffeff0fff3f5fff6f7fef7f7fef7f7fef7f7fef7f7fef7f7fef7f7fef7
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f7fef7f7fef7f7fef7f7fef7
+f7fef7f7fef7f7fef7f7fef7f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8
+f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fcf8f6fdf6f6fdf6f6fdf6f6fdf6
+f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6f6fdf6
+f9fffbf9fffdf9fefff9fffff9fffbf9fff9f9fff9f9fff6f8ffecf8ffeaf8fff0f8fff3
+f8fff7f8fefaf8fdfff8fcfff7f8fdf7f9f6f5fbedf5fceaf5fceaf5fbedf5faf4f5f9f8
+fbfffefbfff9fdfff2fdfff0fefff2fefff7fffdfffefdfff8fbfff7fcfff7fcfff7fcff
+f7fcfff7fdfdf7fdfdf7fdfdf6fcfcf6fcfaf6fcfaf6fcfaf6fcfaf6fcfaf6fcfaf6fcfa
+f6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfc
+f6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fcfcf6fbfef6fcfcf6fbfef6fcfcf6fbfef6fcfc
+f6fbfef6fcfcf6fbfef6fcfcf6fbfef6fcfcf6fbfef6fcfcf9fffbf9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9
+f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f9fff9f7fef7f7fef7f7fef7f7fef7
+f7fef7f7fef7f7fef7f7fff4f6ffeaf6feeff6fbfff6fafff4fdfcf4fff1f4ffe8f4ffea
+f5fcf5f9fffdfafffbf5fbeff7fce6faffe9fafef0f7faf1fffff6fffff6fffffafffffa
+fbfbf9030301000002000002000002000002
+050300030200000100000300000c00f4ffe2f9fff4fbfff5ffffecffffedfffefbfffefb
+ffffeffcffecf9fff3f9fff8fcfffdfefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffdfefffafefff6fefff8fefffffefffdfeffedfeffecfefff4fefff4feffeafeffec
+fefffafefffffefffffefffffffdfffffdfefefff9fefff7fefff7fefffafefefffefdff
+fffffffffffdfffff8fffff6fffff8fffffdfffdfffffdfffffffffefffffefffffefffd
+fefffdfefffdfefffdfefffbfefffbfefffbfefffbfefffafefffafefffafefffafefffa
+fefffbfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffd
+fefffdfefffdfefffdfefffbfefffafefff8fefffafefff8fefffafefff8fefffafefff8
+fefffafefff8fefffafefff8fefffafefff8fefffafefffafefffdfefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffbfefff4fefff8fefefffefdfffefffffefffbfefff3fefff4
+fefffffefffffffefffffffbfffff4fffff6fffefffdfbfefffffafffff6fffffafffffa
+fbfbf9030301000002000002000002000002
+050200030100000100000300000b00f5ffe8fbfff8fbfef5fdfde5fffce3fff8f1fff8f1
+fefce7fbfde5f9feeaf9fdeffcfcf4fefbf6fefaf7fefbf6fefaf7fefbf6fefaf7fefbf6
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fefaf7fefbf6fefaf7fefbf6
+fefaf7fefbf6fefaf7fefaf7fffbf8fffbf8fffbf8fffbf8fffbf8fffbf8fffbf8fffbf8
+fffbf8fffbf8fffbf8fffbf8fffbf8fffbf8fffbf8fffbfafffbfcfffafefffafefffafe
+fffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffbfc
+fcf9f4fcf9f0fcfaebfcfaedfcf8f5fcf9f4fcfce4fcfce2fcfaeefcfaeefcfce2fcfce4
+fcf9f2fcf8f7fcf8f5fcf9f4fef9f3fefaf1fef9f3fef9f3fef9f5fef9f6fef8f8fef8f8
+fdf8f4fdf8f2fdf9f0fdf9f0fdf9f0fdf8f4fff6f7fdf7f7fdfaf5fdfaf1fdfaf1fdfaf1
+fdfaf1fdfbeffdfbeffdfbeffffdf1fffdf0fffdf0fffdf0fffdf0fffdeefffdeefffdf0
+fffdf1fffcf3fffcf3fffcf3fffcf3fffcf3fffcf3fffcf3fffcf3fffcf3fffcf3fffcf3
+fffcf3fffcf3fffcf3fffdf1fdfbeefdfbecfdfbeefdfbecfdfbeefdfbecfdfbeefdfbec
+fdfbeefdfbecfdfbeefdfbecfdfbeefdfbecfdfbeefdfbeffcf9f2fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4
+fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fcf8f5fcf9f4fefaf7fefbf6fefaf7fefbf6
+fefaf7fefbf6fefaf7fefbf4fffdeefffdf1fffafffff9fffffbfcfffcf3fffdeefffdf0
+fffcfdfffafffefafbfffcf7fffdf2fffdf7fff8fffaf4fefffefafffff6fffffafffffa
+fbfbf9030301000002010103000002000002
+04000801000b00001000000e000608f6fbfefbfdfffcf9fffffceefffce7fff8f1fff8f3
+fffbe9fffde5fffdeafffdecfffcecfffceafffcecfffceafffcecfffceafffcecfffcea
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffcecfffceafffcecfffcea
+fffcecfffceafffcecfffceafffdebfffdebfffdebfffdebfffdebfffdebfffdebfffdeb
+fffdebfffdebfffdebfffdebfffdebfffdebfffdebfffdedfffbf2fffbf4fffbf4fffbf4
+fffbf4fffbf4fffbf4fffbf4fffbf4fffbf4fffbf4fffbf4fffbf4fffbf4fffbf4fffbf2
+fffdf2fffdf2fffdf0fffdf0fffdf2fffdf2fffeeefffeeefffaedfffaedfffbebfffaed
+fff9f0fff9f4fff9f4fffaeffffde8fffee4fffdeafffcedfffbf1fffbf1fffbeffffced
+fffdeafffde8fffdeafffdeafffcebfffcedfffcedfffcedfffceafffce9fffce9fffde7
+fffde7fffde7fffde7fffde5fffee6fffee6fffee6fffee4fffee4fffee4fffee4fffee4
+fffee8fffdeafffdeafffdeafffdeafffdeafffdeafffdeafffdeafffdeafffdeafffdea
+fffdeafffdeafffdeafffdeafffce9fffce9fffceafffce9fffceafffce9fffceafffce9
+fffceafffce9fffceafffce9fffceafffce9fffceafffceafffeecfffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeec
+fffeeefffeecfffeeefffeecfffeeefffeecfffeeefffeecfffcecfffceafffcecfffcea
+fffcecfffceafffcecfffce9ffffe2fffee6fffbf4fffbf6fffceffffee8fffee4fffee8
+fffbf4fffaf5fffaf1fffdedfffeebfffdf2fff7fffff7fffefdf9fefff5fefff9fffffa
+fbfbf9030301000002010103000002000002
+03000c01000c00001000000c000606f6fcfafcfdfffcf9f0fffdcefffec0fffbc7fffbc6
+fffebbffffb7ffffb9ffffb9ffffb6ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb3fffdb1fffdb1fffdb1fffdb1fffdb1fffdb1fffdb1fffdb1
+fffdb1fffdb1fffdb1fffdb1fffdb1fffdb1fffdb1fffdb3fffdb9fffdbbfffcbbfffdbb
+fffcbbfffdbbfffcbbfffdbbfffcbbfffdbbfffcbbfffdbbfffcbbfffdbbfffcbbfffdbb
+fffebdffffbffffec0fffec0ffffbbffffbdfffdc4fffec4ffffbeffffc0fffdc8fffec8
+fffec5ffffc3fffec7ffffc0ffffabffffa7fffeb2fffdb7fffcbdfffbbdfffcb7fffdb4
+fffeb0ffffaefffeb2fffeb4fffdb7fffeb7fffeb7fffeb7ffffb6ffffb6ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb3fffdb1fffeb1fffdaffffeaffffdaffffeaffffeadfffeaf
+fffeb4fffeb5fffdb5fffeb5fffdb5fffeb5fffdb5fffeb5fffdb5fffeb5fffdb5fffeb5
+fffdb5fffeb5fffdb5fffdb5ffffb9ffffb9ffffb9ffffb9ffffb9ffffb9ffffb9ffffb9
+ffffb9ffffb9ffffb9ffffb9ffffb9ffffb9ffffb9ffffb7ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5ffffb5
+ffffb5ffffb5ffffb5ffffb1ffffaaffffacfffcb8fffbbafffdb3fffdaffffeacfffdb1
+fffbbcfff9befffcb8ffffb6fffeb4fffabcfff9d6fffdeafffdf0fdfff4fefff9fffffa
+fafaf8030301000002010103000002000002
+010000000100000200000400000b00f7ffdcfdffdffeffc1ecef7af0f261f3f160f5f259
+f5f44ef2f647f0f747f0f747f2f745f2f743f2f743f2f743f2f743f2f743f2f743f2f743
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440f2f743f2f743f2f743f2f743
+f2f743f2f743f2f743f2f743f0f541f0f540f0f540f0f540f0f540f0f540f0f540f0f540
+f0f540f0f540f0f540f0f540f0f540f0f540f0f540f0f541f0f445eef547f0f447eef547
+f0f447eef547f0f447eef547f0f447eef547f0f447eef547f0f447eef547f0f447eef547
+eff249edf34beff150edf24eeff344edf347eff057edf059f3f651f1f652f3f262f1f362
+f3f458f1f652f3f556f1f74ff0f738f0f735f0f540f0f448f0f34ef1f24ef1f348f1f443
+f0f43deff53deff440edf446edf349edf34becf34becf34beff54deff54df1f44deff54d
+f1f44deff54bf1f44beff54bf0f448eef448f0f448eef448f0f447eef547f0f447eef448
+f0f34aeef44cf0f34ceef44cf0f34ceef44cf0f34ceef44cf0f34ceef44cf0f34ceef44c
+f0f34ceef44cf0f34cf0f34cf2f54cf2f64af2f64af2f64af2f64af2f64af2f64af2f64a
+f2f64af2f64af2f64af2f64af2f64af2f64af2f64af2f649eff442eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440eff440
+eff440eff440eff440eff440eff440eff440eff440eff440f2f743f2f743f2f743f2f743
+f2f743f2f743f2f743f2f742f0f63aeef73ceef545f0f447f0f541f0f63ef1f53ef1f443
+f0f34eeff14ef2f64af2f949eef547eaf052f2f276f9f8a5feffddfcfef3fdfef8fffffa
+fafaf8030301000002010103000002000002
+010000000100000300000500000b00f9ffd5fdffd1feffabecf357f1f733f5f62cf7f723
+f5fa19f5fb11f3fd11f3fd11f5fd12f5fd12f5fd14f5fd12f5fd14f5fd12f5fd14f5fd12
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f5fd14f5fd12f5fd14f5fd12
+f5fd14f5fd12f5fd14f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12
+f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12f5fd12f3fd13f3fc15f3fc15f3fc15
+f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15f3fc15
+f3fc15f3fc19f3fb1cf3fb1af3fd13f3fc15f3f923f3f927f2f920f2f822f2f62df2f62d
+f2f822f2fa1df2fa1df2fb16f3ff07f3ff05f4fc11f4fa1af4f921f4f921f5fa1af5fb15
+f6fd11f5fe11f4fd16f4fc1bf2fc22f1fb28f1fb2bf1fb29f0f922f2f91ff2f91ff2f91f
+f2f91ff2f91ff2fa1df2fa1df4fc1df4fc1df4fc1df4fc1df4fc1bf4fc1bf4fc1bf4fc1d
+f3fb1ef3fa20f3fa20f3fa20f3fa20f3fa20f3fa20f3fa20f3fa20f3fa20f3fa20f3fa20
+f3fa20f3fa20f3fa20f3fb1cf4fb19f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15
+f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13
+f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f6fe15f6fe13f5fd14f5fd12f5fd14f5fd12
+f5fd14f5fd12f5fd14f5fe11f5ff0ef5ff0ef5fe17f6fe17f6ff12f7fe10f7fd13f7fc19
+f6fa21f6fb22f8ff1cf9ff1bf2fd1aeef72af8fb56ffff95ffffd4fcfef3fdfef8fffffa
+fafaf8030301000002010103000002000002
+00001200000e000007000100010700f8fde6ffffddffffb0f0f551f6fa27fafa1cfcfc12
+fcfd0bfaff05f9ff05f9ff07faff0dfbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ff9fc0df9fc0dfafd0efbfe0ffbfe0ffbfe0ffafd0efafd0e
+fbfe0ffbfe0ffbfe0ffbfe0ffbfe0ffbfe0ffbfe0ffaff0ffdff14f8ff0ff8ff0ffdff14
+fdff14f8ff0ff8ff0ffdff14f9ff10f9ff10f9ff10f9ff10f9ff10f9ff10f9ff10f9ff0e
+faff0cf7ff07f6ff08f7ff0bf9ff0df9ff0df6fe0bf3f90fe5e90eecf017f8fd1cf1f711
+faff1ceff50deef605feff0ef9ff04f6ff02f6fb0bf7fa15fcfc20fdfd21fdfb1cf8f915
+fbfd13f0f407dde300ecf30fffff35dde41afeff45f1f733f4f921f6fb1af6fb1af8fd1c
+f9fe1bfaff1cfbff1dfbff1df9ff19f8fe18f8fe18f8fe18f8fe16f8fe16f8fe16f8fe18
+faff1cfaff1cfaff1cfaff1cf8fd1af7fc19f5fa17f4f916f9fe1bf9fe1bf9fe1bf9fe1b
+f9fe1bf9fe1bf9fe1bf9ff17fbff0dfcff09fcff09fcff09fcff09fcff09fcff09fcff09
+fbff08fbff08fbff08fbff08fbff08fbff08fbff08fbff0afbfe0dfbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0ffbfe11fbfe0f
+fbfe11fbfe0ffbfe11faff0ff8ff0cf8ff0cfafe11fafe11fbff0cfdfe0cfdfd11fbfc18
+f9f91ff7f91cfbff16f3fa0cf5fd16f8fc33f1f155ffff9bffffd9fcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+00001700001300000c000005010504f9fbeeffffe6ffffb4f2f54cf7fb1efcfc12fdfd09
+fefd03fdfe02fcff00fcff02fdfe0afdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfcfb0bfcfd0cfdfc0cfdfe0dfefd0dfcfd0cfdfc0cfbfc0b
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfafe0bf6fc08f7fb08f9ff0b
+fafe0bf6fc08f7fb08f9ff0bfafe0bf9ff0bfafe0bf9ff0bfafe0bf9ff0bfafe0bf9ff07
+fcff04f9ff00f9ff00f9ff00fcff07fbff07f9fe04f5fa0affff33f4f420f8f917f7fb11
+ffff1ef1f50afdff08f3fb00faff03f9ff05f9fd0afbfb0ffdfc18fefa1cfdf91cfcf918
+f2f008fcfc12ffff19eff411eef221edf234e1e43bdde02ff7fa23f9fd12fafc12f9fd12
+f9fb11f8fc0ff9fc0ff8fc0ff9fc0ff8fd0df9fc0df8fd0df9fc0df8fd0bf9fc0bf8fd0d
+f8fb0cf8fc0ff9fc0ff9fd10fbfe11fafe11fbfe11fafe11fafd10f9fd10fafd10f9fd10
+fafd10f9fd10fafd10fafd0cfdff04fdff01feff01fdff01feff01fdff01feff01fcff00
+feff01fdff01feff01fdff01feff01fdff01feff01fdff04fefe0afdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0dfefd0dfdfe0d
+fefd0dfdfe0dfefd0dfdfe0cfafe09fafe0bfafd0efcfd0cfdfd07fefc07fefb0efdfa15
+fcf81dfaf819feff10f5fb07f6fc14f8fc35f1ef5cfffea2ffffdafcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+00000e00000b000005000102010504f9faf2fffeebffffb7f2f64af7fc1bfdfb10fefc09
+fffb09fefc07fdfe02fdfe03fefe0afefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfdfa0dfdfc0efefb0efefd0ffffc0ffdfc0efdfa0dfcfb0d
+fffc0ffefd0ffffc0ffefd0ffffc0ffefd0ffffc0ffefd0dfdfe0cf8fc07fafb07fbff0a
+fdfe0af8fc07fafb07fbff0afbfc08f9fd08fbfc08f9fd08fbfc08f9fd08fbfc08f9fd06
+fdff04faff02fbfe00faff00fdff06fbff0afbfc0bf7f814f4ef21d4d108fffb2afaf922
+e4e106f3f50effff14edf200f9fd08fafe0bfdfe0afcfd0bfcfa0ffcf715fdf71dfff921
+e0db00ffff23ecee04ebed0dfafd34e9eb3fffff7befee56f8f922f9fd08fafb07f8fc05
+fafc05f7fb04f9fb04f7fc02fafc03f8fd03fafc03f8fd01fbfd02f9fe02fbfd02f9fe02
+fafc01f8fd01fafc01f8fd01fbfd02faff03feff05fdff06fbfd02f9fe02fbfd02f9fe02
+fbfd02f9fe02fbfd02fbfd02fcfc04fcfc04fdfc04fcfc04fdfc04fcfc04fefd05fdfd05
+fffe06fefe06fffe06fefe06fffe06fefe06fffe06fefe08fffd0cfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0dfffc0dfefd0d
+fffc0dfefd0dfffc0dfefd0dfcfd0bfcfd0cfcfd0cfdfc0bfefd05fffc07fffa0efff917
+fff61dfcf717ffff0df6fa03f6fc12f8fc36f1ee63fffda9ffffdcfcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+000007000004000100000200010602f9faf5fffeefffffb9f3f549f9fc17fdfc0cfffb0b
+fffa0efefb0cfefc07fdfd05fffd08fffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afefc0bfefc0bfffc0dfffd0cfffc0dfefc0bfdfa0bfcfa09
+fefb0cfefc0bfefb0cfefc0bfefb0cfefc0bfefb0cfdfc0bfefe0afcfe07fcfe07fdff08
+fdff08fcfe07fcfe07fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fbfd06fbfd06fbfd04fcfe05fcfe05fcfd0cfbf918faf623e5df17ffff51fffb40f6ef2d
+fffe2dfaf819f7f709f8f907f7fa0dfafd0efeff09fefe06fcfa07faf60efff61dfff824
+fffb21fffc19f3f307ffff20dadc162f2f000f0c00292400f4f422f7f900f8fa00f9fb00
+fafd00fbfe01fcff02fdff03fcff00fcff00fcff00fcff00fcff00fdff00fdff00fdff00
+feff00fdff00fcff00fbfe00fafd00fbfe00fbfe00fcff00fdff00fdff00fdff00fdff00
+fdff00fdff00fdff00fdff01fdfb06fdfb08fdfb08fdfb08fefc09fefc09fefc09fefc09
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0afffd0a
+fffd0afffd0afffd0afefe0afbfc08fbfc08fcfc08fdfb06fffb02fffb04fff90bfff712
+fff61afcf813ffff09f6fb00f6fd0ff8fc35f1ed67fffdacffffdefcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+000000000200000300000300010602f9faf5fffdf2ffffbbf3f647f9fd13fdfc0bfffb0b
+fffa12fefa12fefb0cfdfd07fffe04fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe04fffe06fffe06fffd08fffe06fffd08fefd05fdfb06fcfb03
+fefc07fefd05fefc07fefd05fefc07fefd05fefc07fdfd05fafa02fafc03fafc03f9fb02
+f9fb02fafc03fafc03f9fb02fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff08
+f9fa08fafa0cfbfb11fcfc10fbfd06fbfb0ffbf629fbf336fffd3debe22b251900221700
+fef832ffff27f8f713ffff1af6f811f9fc0ffeff07fdfe00fbfa00fcf707fff51afff723
+fff91fedea05ffff13e2e900fafe37f5f65d322d00171000f4f329f8fa00f9fb00fafc01
+fbfe01fcff02fdff03fdff03fbfe00fbfe00fbfe00fcff00fcff00fdff00fdff00fdff00
+ffff01feff00fdff00fcff00fcff00fbfe00fbfe00fbfe00fcff00fcff00fcff00fcff00
+fcff00fcff00fcff00fcff02fdfb08fdfa0bfefb0cfefb0cfffc0dfffc0dfffd0efffd0e
+fffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffd0afffe06fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03feff03fbfd02fbfd02fcfd01fdfc01fffc00fffb01fff906fff90b
+fff811fef80cffff07f6fc00f5ff0af6fe2ff0ee65fffdacffffdefcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+000100000100000300000300010602f9f9f9fffdf4ffffbbf3f643f9fe0efdfd07fffb09
+fffa12fefa13fdfc0cfdfd07fffe04ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01fffe03fffe06fffe06fffd08fffe06fefc07fdfc04fcfa05fbfa02
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fcfc06f9fb04fcfd09fcfd09f9fa06
+f9fa06fcfd09fcfd09f9fa06fafb07fafb07fafb07fafb07fafb07fafb07fafb07fafb09
+f8f80afafa10fcfb13fcfc12fbfc0bfaf913faf42cfcf33ceee530fef4473f3200fbef4d
+fef737fcf825f7f516fdfe1af6f819f8fb14faff05fbfe00fcfc00fdf806fff41cfff426
+fffd29f5f211f0f400fdff19e4ea26eeef630f0600372f00f6f53bfbfb0dfbfb0dfafa0c
+fafa0cfafb0af9fa09f9fa09f7f807f8f907f8f907f9fa08fafb09fafb07fbfc08fbfc08
+fafc05fafc05fcfe07fcfe07fdff08fcfe07fcfe07fbfd06f9fb04f9fb04f9fb04f9fb04
+f9fb04f9fb04f9fb04f9fa06fcfb0afdfb0afefc0bfefc0bfffd0cfffe0dfffe0dfffe0d
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0afffe04ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01feff03fcfe03faff03fdfe02fefe00fffd00fffc02fffa07fff90c
+fff80ffef90affff07f5fc00f5ff08f6fe2deeef67fffdaeffffe0fcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+010000000100000300000300030408f9f8fdfffcf8ffffbdf3f740f9ff0bfdfe03fefd03
+fffb0cfefb0efdfd07fdfe03fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffd08fffd0cfffe0dfffd0efffd0cfefb0cfdfb0afcf90afbf908
+fdfa0bfdfb0afdfa0bfdfb0afdfa0bfdfb0afdfa0bfcfb0bfafa0efbfd13fbfd13f8fa10
+f8fa10fbfd13fbfd13f8fa10f8fa10f8fa10f8fa10f8fa10f8fa10f8fa10f8fa10f8fa10
+f4f60cf7fa0dfafd0cfafd0cf8fa11f7f818f8f723faf635f5ed42241a00fff754fbf348
+fcf63cffff32e1e200feff1bf8f922f7f91cf7fb06f9fc00fdfd00fdfb0afef421fdf12d
+eae118ffff2be0e500fbff1cf7fc40eded711b0f000f0200f4ee50f7f622f7f622f7f620
+f6f51ff6f51ff6f51ff6f51ef5f41df5f41df6f51ef7f71df7f71df8f81ef9f91ff9f91d
+f5f616f7f816f9fa18fafb19fafb19f8f917f5f614f3f412f6f715f6f715f6f715f6f715
+f6f715f6f715f6f715f8f70ffaf908fbfa02fcfb03fdfc04fefd05fffe06fffe06ffff07
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fefe08fcfd09fafe09fdfd05fefd02fffd00fffc02fffa0bfff812
+fff714fcf90effff07f5fc00f5ff0bf5fe33edee6cfffdb3ffffe1fcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+01000000000000010000020003030bf9f8fefffcf6ffffbbf2f840f7ff0bfcff02fefd02
+fefc07fdfd09fcfe03fcfe03fffe06fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd0afffe0dfffd0efffd0efffc0ffefb10fdfa0ffbfa0afaf909
+fcfa0ffcf81afbf52dfbf434fbf52ffbf52dfbf52df9f729f2f11bf6f71ff6f624f1ef2a
+f1ec3af6f040f6f237f1ef2bf9f82af7f929f7f92cf7f735f7f542f7f445f7f540f7f63a
+f0f131f3f629f7fc19f7fd13f7f919f6f720f8f52efbf346f8eb5e2e2100f5ed44deda1f
+ffff42f7f435fcfc3ae4e42af5f44cf2f340f1f61df3fb08f9ff03fbfc18f9f146f6ea5a
+fff966f3ee4af8fb38d6df14f8ff49dee15e1309001c1000eee856f1ef2bf0f02cf1f034
+f1ef44f3f04df2f04df3f24cf2f147f2f244f3f343f5f348f6f253f7f153f8f548f9f645
+f3f146f4f247f7f445f7f63af7f727f2f220edeb27eae62ff5f147f5f148f5f243f5f340
+f7f141f7f33cf8f433faf625f8f60efaf805fbf906fbf904fcfa05fdfb06fefd05fefd05
+fffe06fffe04fffe04fffe04fffe04fffe04fffe04fffe06fffd08fffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08fffd0afffd08
+fffd0afffd08fffd0afffd0afdfe0afdfe0afeff04fffe03fffd04fffc06fffa0dfffa13
+fff816fcf811ffff0ff5fb05f5fe0ff6fd35eeee6cfffcb3ffffe0fcfef3fbfcf6fefff9
+f9f9f7030301000002000002000002000002
+03000001000000000500000901030ff9f8fdfffdf1ffffb7eff644f5fe11f9fe04fcff00
+fcff02fbff04faff06fbff08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffc0afffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08ffff0afffe09fffc0afffc0dfefa13fbf910f7f902f1f500
+f9fb11fffe3deadf63fff895281e00221b00fffe7ff7f15fefed3af3f235f4f0462c2200
+2817001f0c00fef28c2b2400272500ffff5bebeb4ff7f274291e002114003c3500171200
+f8f687dadd50e3ec2ff5fe29edf219fdfe34dfd734fff271281100fff484fcf646ffff33
+dddf19fdfd4ffef977eae581211a002f2d00f6fd55e7f61ff1ff0edae817292600130700
+180e00e5de962c2e001e2800d7ea2cecfb5a141300120c00f7f564f3f637f9fe42f7f958
+2a28001d1b000a0a002c2d00edf389dae16deef478191b002117001005003a33001f1900
+241e00261f002b2200f5f070f4f537ffff3aece74dfef481201300291d001812002f2800
+e3d773efe270f5eb58fcf242f6f01efdf816f9f510f7f30cfffb13fefb10fcf90cffff10
+fffd0cfffd0afffd0afffd0afffd0afffd0afffd0afffd0afffc0afffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0afffc0cfffc0a
+fffc0cfffc0afffc0cfffd08fffe04fffe03ffff01fffd04fffc0afffb0dfffb0cfffb0f
+fffb17fcf715ffff19f9fb12fbff15f7fa31f2ec64fffdadffffdefdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+03000001000000000400000901040bf9f9f7fffeebffffb4eff646f5fd14f9fd06fcff00
+fcff00fbff04faff0afbff0cfefe08fffe06fffd06fffe06fffd06fffe06fffd06fffe06
+fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffe06fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffe06
+fffd06fffe06fffd06fffd06fffb02fffb02fffc07fffe0dffff15ffff13feff0bfbff10
+feff2af5f24f2516002c1d00dcd666f7f57c1711001f1800f7f459edec3cfffe59e4db62
+230d001702001a0d00f4f075f7f85cfbff64ddda651f1900130900eee5ace1db91211e00
+1613002a2b00232a00f2fc39e2eb16f1f32efffc6e2515003a2700e8d958d5d418f9fd2d
+fcff47f8f8620e0a00211700e3d5b2d8cc981c1a00f2f951eafb19f1ff3aebe6952a1e06
+2c21050b0300f0ef93f0f96ce8fa36f2ff55100c00180f00ebe750feff3fe4e434111000
+262400edeaa5f9f6bf0a0a00181d00f3f995eef581dfdf852719001b0a00e9e085f8f38d
+e8e4a7110d00181000e8e478f9fd46f4f63df5eb7c1c1000251c00e3dc94f1ed961c1700
+382900352500251b00ebe431f6f21ffdfa17f9f613f8f60efefc13fefd0ffbfa0affff0f
+fefe0afefe0afefe08fefe08fefe08fefe08fefe08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08fffd08
+fffd08fffd08fffd08fffe06ffff01feff00ffff00fffe03fffc0cfffc0dfffd08fffc0a
+fffd10fbf910ffff17f9fb11fbff12f8fa2af3ed5bfffea4ffffdafdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+010300010300000100000100030502f9fbf0ffffe4ffffb0f1f546f5fd16f9fd08fdfe02
+fdfe03fdff08fbfe11fbfe11fefe06feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01ffff01ffff02feff03fefe06fdff08fdff06fafe07f6fc08f1f51a
+d9d826efe866312500f9f091dee438ffff59f9f68f1e1700faf76ad5d527ecef2ef6f55c
+2918001e0d00fffd85eaf046d5df1cf8ff57181500191600f6fa82e8ef63dae155fbff8e
+0c0a00151400e7ec6cf3fc4bf9ff30e3e923fffa71261b00ece441fbfa3dfcff36f7f93c
+e8e852282600262300fdf4b1f9e1c5eed3be2d1700281b00f0f131f4f736f7ec83120300
+1d0f00f8ee8ce9e659f6fa4be3ec21ecee4b110200352200f2e946efe921ffff61fffc73
+e7e05ef2eb81cdc47f282000161300ebed6ee4e94ffaf678170500160000fbf074eae75a
+e7e78f2c2e001b1a00ebec6ae6ec32feff5c1d0f00281b00eef26ad5e23bdde750ffff95
+0e0100312300fcfa5affff2bf6f811feff0efafb0af8f905ffff0afdff06f9fb00ffff05
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03feff03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03fffe03feff03
+fffe03feff03fffe03feff01fdff00fdff00feff00feff01fffe06fffd08fffe03feff03
+ffff05fafc03fdff09f6ff04f8ff05f6fe1ff0f14dffff9affffd7fdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+010300000300000100000100030504fafaf0fffee8ffffb4f1f549f6fb1bfbfb0dfefc07
+fefc07fefd0cfdfc14fdfc14fdff08fdff01feff03fdff01feff03fdff01feff03fdff01
+feff03fdff01feff03fdff01feff03fdff01feff03fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff03fdff01feff03fdff01feff03fdff01feff03fdff01feff03fdff01
+feff03fdff01feff03fdff03ffff06feff05fdff08fafe07faff05f6fc04f0f807ecef22
+fbf667191000281c00e0dc6ee9f62cd6e21ce7e5812b23002b2700ffff5be4ec1bf8fb52
+1b0b00211200f3f46ce5f12be6f61aecf8400f0e001e1a00e7ed73faff72e3ec5dd2da63
+2120001d1d00edf56ee8f244e2ea32fcff54231c00ded749f7f82efcff22d8de0ce5e839
+fefa7d2823001b1600100700210d002b1200311800251200f0ec35f4f035ffff873e2d00
+2a1a00ede16bfdf85cf1f137f4f825ffff601a0400160000fff357f9f033dacb3cfef075
+f2e966e6df6b2d24001f1600403c00e1e15df9fd50e4e24f2411002b1600fff466eaeb48
+e4ea80090e002e3200e6eb6beef640eaef4b150b00251e00e7f05fe3f348e2ee5ee7ed83
+3029000e0700ffff4fe0e900f6fb0bfdff0ff9fd0af8fc05feff09fbff04f7fd00fcff04
+fbff01fbff01fbff01fbff01fbff01fbff01fbff01fbff01fdff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01feff01fdff01
+feff01fdff01feff01fdff03fbff04fbff06fdff04fdff06fdfe0afdff08feff03fdff00
+feff02f8fe00fbff04f5ff00f7ff04f4ff1ceff24bffff98ffffd7fdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+01000000000400000c00000e030210faf8fdfffdf1ffffbdf2f252f8f922fdf914fffb0c
+fffb0bfffc0dfffb16fefc14fdfe0cfbff06fdff08fbff06fdff08fbff06fdff08fbff06
+fdff08fbff06fdff08fbff06fdff08fbff06fdff08fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff08fbff06fdff08fbff06fdff08fbff06fdff08fbff06fdff08fbff06
+fdff08fbff06fdff08fbff08fcfd0bf9fc0bfafd0cfcff0efdff12fcff13faff15f7f936
+f0e677261800261a00fefb86e6f329faff45f7f29e1f14001b1400eaea4cf4fe2ee5e746
+2d18030f0000ecec6af9ff3cfaff26e8f62ddde169322e00120e00d5d28deef09c232700
+090d00e6ee74e6f445ebf642e5e7603530001d1500f6f454e6ec10f4fd10fdff31edef46
+faf484120b00271f00fbf49cfcf658fbf53deee741efe83ff6f430eee935eee3671d0d00
+291900f2e479ddd54efdfb4ee3e909f1f03d2b1500240900fff472f3ea47ffff89faed85
+2014001e1500eee69b1a13000d0700f1f17fd8e032f6fa5f1f1000200f00faf364f2f550
+dce474293000151600dadc77f7ff54e3ec37ffff83171800121600f1f7a1e9eca7070800
+1c1a00e7e96cf5ff2ff8ff0ef4fb0ffcff16f9fd12f7fb0efdff12fbff0df6fc06faff08
+faff06faff06faff06faff06faff06faff06faff06fbff06fbff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06fdff06fbff06
+fdff06fbff06fdff06fbff0afbfe11fafe13fbfe0ffbfe0ffbfd14fbfe11fdff04fbff01
+fcff05f7fe03fbff09f5ff04f5ff09f3ff21eff054ffff9fffffd9fdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+01000500000700000e00001003030ffaf8fbfffdf1fffebdf4f252f9f822fff812fffa0b
+fffb09fffb0cfffb11fffc11fdfe0cfdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08fdff08
+fdff08fdff08fdff08fdfe0cfdfd13fafc13fcfd0cfbfe0ffcff18f9ff19f6fc12f2f52a
+eee7621409002b1f00ede779eaf52de6ef30d5cf7b281c00261f00f6f451ebf226f4f35a
+2b1508110000f3f274deea1ee3f509d0df06fcff6fe7e590150b00201400140e000f0e00
+e4e971ffff71e1ee2decf446fffc94251c00f5ef67ffff49feff1bf0fa05dae107f8fb48
+d4d0521009003e3200d7d173fcff3ceef40cfafe2ef0f22ce5e81dffff4dfff77e352800
+1f1100f6eb82ffff7ceef13eeef917edf13c281500120000f7ee75e4df4d211800140c00
+fffe9ae1de7deeeca22221001e1e00ffff9cd9e738f2fc5f251b001f1300e7e957e0e940
+e5ef7c0910000e0d00eae98cffff5debf731d0d82df5fa7a2626000b0900161300292900
+f0f194f4fa66dcea11f2fe08f1f80cfafd16f9fb12f7fb10feff12fbff0ef7fb06faff08
+fbff06faff06fbff06faff06fbff06faff06fbff08fbff06fbff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fbff0afbfd14fbfd16fbfe11fdfd11fdfc16fdfd13fdff06fbff01
+fcff05f7fe03fbff0bf5ff06f5ff0bf3fe24eff057ffffa3ffffdafdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+000100000000000004000104030502fafaeeffffe4ffffb0f4f349f9fa1afffa0bfffb03
+fffb02fffd03fffd06fffe06fffe04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff03feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff03
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04fefd0cfffd1ffefc1bfefd0cfcfd0bfbf91bf6f61cf2f40deef10e
+ffff31fffb5a1d0d00faec94f1f637eaf02effffa0221600e4e04bffff44f4f630ece556
+200800270d00f5f072f4fb33f3ff13fdff24ebf244dad76c1a0a00e4d2ceebdebbfef9a7
+faff71d2dd2bedf63be2e4431c1200f8ec88f3f147f2f61be8f000fdff0bfaff18edf023
+fefd57ffff8e120400fcf396f9ff50d8e512e4ed2efbff45f9ff37e3ea38fcfa8d0e0700
+1b1600fcfc8ccbd330f3ff3ae3f71af9ff5b0b030033280afbfd7ee8ef61100e002d2c00
+d6e065effe81ecf3af050c00081300cfdf65e5fe4bcee2450d10000e0e00dfee57efff55
+d4de6b3b3e001f1c00d7d66ce9f139d8e30dfbff45f1f666131000f2eccadcd8b3e3e2a9
+edec90d6d94ae5ef1ff9ff14f1f508f9fc0df9fa09f7fb08ffff0dfcff09f8fa00fbff03
+fdff03fbff01fdff01fbff01fdff01fbff01fdff03fdff03feff03feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01fefe06fdfd0ffdfd11fdfe0cfefd0cfefd0ffefd0dfeff04feff00
+ffff02fafd00fdff07f6ff04f8ff09f6fd24f0ef57ffffa4ffffdafdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+000200000100000100000200030600fafce7ffffddffffadf4f448f9f91bfff90dfffa07
+fffb05fffd04fffd06fffe06fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04
+fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe03fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe03fffe04fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04
+fffd04fffe04fffd04fffd0afef917fef919fefa12fffd14fffd20fffd1ffdfc16f9fc0d
+f0f602fdfc322316002f2000f1ee49ffff582118002e2400fefc47fefd2fece928fff567
+2009002c1500eae25be5e722f1fb11f5ff24e4e446fffc92180d00281b00261c001b1600
+232300faf969dcd852fffd81281c00faf26de5e523ffff20f6fa07f4f803ffff16eef013
+e0e020f8f15a271a001f1500e9eb5afaff5cf0f654192100f1fd39e3eb3ee8e67f2e2800
+1f1b00d4d95beaf843def020ecfe2cdce84a1c1700130c00e2e965ecf8660f13000e1300
+e6f576e7f876091500172200121f00d7ea6de2fd4ee7ff630f1600111800e4f75ddcf041
+f5fe810d0e00251f00ebe77ce3e82affff37f4f64ddbda5b241f001a1700131200191900
+2c2800ece978ffff5fe7eb1bf0f10dfaf909f9f807fafa06ffff0bffff07fafb00feff01
+feff01feff00feff01feff01feff01feff01feff03feff01ffff01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01fffe01ffff01
+fffe01ffff01fffe01fffe04fefd0cfefd0cfffe06fffe06fffc0cfffc0cfffe03ffff00
+ffff02fbfc00feff07f8ff04f9ff0bf7fb28f2ed5bfffea6ffffdcfdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+010100000200000200000200030700fafce6ffffdfffffb0f4f24ffaf925fef91bfff914
+fffa11fff910fefa12fdfa0ffffa08fffb04fffa04fffb04fffa04fffb04fffa04fffb04
+fffa04fffb04fffa04fffb04fffa04fffb04fffa04fffb04fffb02fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffb02
+fffa04fffb04fffa04fffb04fffa04fffb04fffa04fffb04fffa04fffb04fffa04fffb04
+fffa04fffb04fffa04fffb06fffb0bfff913fff622fef722fefa13fdfa0bfcf90efaf810
+ffff1af9f61ffcf640ede24c2e2000221400fdf35df5f03cfbfa23e7e40bfff73d362800
+2c19002a1700433a00f3f12deaee15f2f23a302100180800faf46af0ef49ebeb4df9f570
+2618001e0b00260e00200c00fdf167ffff44e5e312fdfe1ef5f40ef2f208fcfc10fdfb1a
+e6e416fffb4bdfd2483124001e1100281e00231d00ffff70edf144ebed4e322b001e1700
+2522002d2f00e7f033ddeb1cffff4c111500211900231c001a1e00f3fc61ebf26e151a00
+191f001b2300f6ff89111e001f2700141f00e5f7571f2f00111700171d00243300e5f648
+1b23002928001b0f001c1000ffff48f9f93f2719001f1200ebe972edf35ff4fc57e5e95e
+191100251600190d00faf05afef828fefb0cfdfa0bfcfa09fcfa05fdfc04fdfc02fdfc01
+fefd02fefe00fefd02fefd02fefd02fefd02fefd03fffc03fffb02fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01fffb01fffc01
+fffb01fffc01fffb01fffb02fffb06fdfc04fffc01fffb02fffa08fffa08fffb01fffb00
+fffc01fdfc04f9f905fbfc0bfdff13f4f327f6ed64fffbaaffffdefdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+010000010000000000000100030600fafce7ffffe1ffffb2f6f656fcfc2cfffc21fffd1b
+fffe16fffe13fffe15ffff11fffc0afffd06fffc06fffd06fffc06fffd06fffc06fffd06
+fffc06fffd06fffc06fffd06fffc06fffd06fffc06fffd06fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffd04
+fffc06fffd06fffc06fffd06fffc06fffd06fffc06fffd06fffc06fffd06fffc06fffd06
+fffc06fffd06fffc06fffd04fffc01fffa0bfff625fef723fffa0bfcfa05fbf614faf618
+fcf914f5f312efeb16ffff53fef06df5e764ffff53e1e009efee06fdf91bfffe3fede23b
+fff864f1e64cebe52ffdfc32eaea18ffff601e0a00fff7b8f1f03dffff26f3f82af1ee53
+f0de92250b0033150b210b00d6cf27f3f414ffff2fe7e506faf81afffd1cffff13ffff19
+f5f315fef830ffff5ae7db4bffed84f9e880d8cc44fef656efec3dfffa56e5da5cfbef77
+efe957f7f54affff41fbfe35f7fa39edec46f1e86fefe66fffff65e5ea38fbfe59ffff70
+e9e967e3e462edf459feff6ae4e764e6ea62eaf24de0e749ffff93fbfc85e2eb44e2ee36
+fdff5aedef5df8f081f7ee6ff8f536eee73f160000fff1c4fcf974f6ff45deed1ef4fd56
+e2d7953724001f0f00e2d749fef82afffc0dfffb0bfefc09fffc07fffe06fffe05ffff04
+fffe03ffff01fffe03fffe03fffe03fffe04fffd04fffd04fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03fffd04fffe03
+fffd04fffe03fffd04fffd04fffd04fffe03fffe01fffd03fffc0afffc0afffd03fffd01
+fffe05ffff0bfefd0cfdfd0ffdff13f4f327f7ee65fffcacffffdefdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+03000e01000e00000c000007030502f9fbedffffe2ffffb4edf24ef3f724f7f816faf80d
+fafa04f9fb00f7fc02f7fc00f9fa00faf900fcf900faf900fcf900faf900fcf900faf900
+fcf900faf900fcf900faf900fcf900faf900fcf900faf900fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900faf900
+fcf900faf900fcf900faf900fcf900faf900fcf900faf900fcf900faf900fcf900faf900
+fcf900faf900fcf900faf900ffff01fffe09fffb19fffc19fffe09fefd0dfdf727fcf827
+ecec00ffff18ffff33f1ec2ef7f234efed26e0e10affff1ff8f711fefc1bdfdb0affff39
+fcf533faf632ffff33e3e30fffff2ffbf45b1500001d0b00f9fb42eef80ce4ea14f6f54d
+f5e7862511001c0600fff18afbf935f7fc0ceef207f3f410fafa1efeff1dedee00eff400
+f3f607e4e503f1ed1affff3dfff23ffffc45ffff34f5ea14fff82cfdf032fff247fbeb40
+faef31faf12aeae01fece220ebe515fffb2dfdf435f8ef2efdfa23dbd704eee52efff949
+f6f03af8f43bebe730efea36f6f344ffff50dddc1fedeb38f1ea54f9f259eeee2af2f727
+e1e829e0e530fcfd47ffff42e8e818fbf2552f15001e0600f3f06ddbe626f2ff32e2eb44
+eee49f190a00362e00fffa46f6f416f7f703f7f500f7f700f8f700f8f900fbfb00fafb00
+f9f900f8fa00f9f900f8f900f9f900f8f900f9f800f9f800faf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00fcf900fafa00
+fcf900fafa00fcf900fafa00fafa00fafa00fafa00fcf900fcf803fcf803fcf900fafa00
+faf900fdfd07f9fa08f5f906f2fa07eaee1bf1eb59fff9a1ffffdcfdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+03001001000e00000c000005030600f9fce9ffffe1ffffb2f1f853f7fd29fafc1cfbfe11
+fbff08faff03f9ff04f9ff04fdff0affff0affff0cffff0affff0cffff0affff0cffff0a
+ffff0cffff0affff0cffff0affff0cffff0affff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0affff0cffff0affff0cffff0affff0cffff0affff0cffff0affff0cffff0a
+ffff0cffff0affff0cffff0af3f800f3f704f4f60ff4f511f4f708f4f511f2f02bf1ef2b
+ffff26e9ee0beaeb21e2e31beff414ffff1deff612f2f717f8fa1df2f319f0f119fcfd25
+d4d500ecef18f0f31cf7fb28f6f930eeeb50302200160a00fbfd5afaff3ae2eb2ee9eb48
+201a002f2500e2d962f8f55cfcff32f5fd12f6ff12eaf10df2f520fbff26edf504eef700
+ffff14fdff14f1f313f8f51cfaef19f7ea10ede200e7dc00faed13fcf022fef02bfff22d
+fffc2afaf01cfffb33fff72fffff33f0ea10faf611fffc14f2ef02ffff20fffe33f4ea28
+fff92fe1db0dffff42e5de12f6ee29f3ed29ffff3ef2eb2bf8ee41fbf441eceb17ffff2f
+f5fe33ebf72bdfe90ff5fd20eaed1af1eb4d3a2600180600e4e36fe9f356eefc51f4fe69
+1b18002b2700f3f451fcff32f8fa1af9fc0ff9fc0dfafd0cfbff0cfcff0bfdff0afeff0b
+fcff09fcff09fcff09fcff09fcff0bfcff0bfcff0dfcff0dffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0cffff0c
+ffff0cffff0cffff0cffff0afdff0afdff08ffff0affff0cffff13ffff13ffff0effff0c
+fafd0cffff17fdff14f7ff11f5ff0ceef720f5f55fffffa6ffffdafdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+040000030000010000000200030800f8ffdeffffd8ffffadedf550f1f928f3f91df4fa14
+f3fc0bf2fe06f1ff05f2ff0af4fe12f5fd16f5fc18f5fd16f5fc18f5fd16f5fc18f5fd16
+f5fc18f5fd16f5fc18f5fd16f5fc18f5fd16f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fd16f5fc18f5fd16f5fc18f5fd16f5fc18f5fd16f5fc18f5fd16f5fc18f5fd16
+f5fc18f5fd16f5fc18f5fd16f5ff15f6ff18f7ff20f7fe24f7ff22f7fd29f4fa38f4f93d
+e3e925e7ee24fcff39ffff36edfb12e9f70cf4ff24eff927f1f82eecf027faff2ef3fc25
+f0f924ffff3ae9f229f9ff3eedf637edf44effff901e1c00232600232700212600262d00
+eaf050ffff55dee923f3ff33effa34eefa2cf2ff1df4ff20edf62beff82df6ff1feffc0e
+e9f606f2fc12f5fc23f7fb2aece815faf221fff829ffff2fffff2afef921f6ef23fff92f
+faf426fffe29f0ed14f6f21de9e31dffff32f7f814f5f80bffff1cf0ee10f3f015faf527
+f5ed33faf333f4f213fbfc18f6f32af9f436f6f22ef1ef2bffff4df0ed2cfafe25e2ea0b
+e5f521f0ff30f4ff2adce711feff3be0e032faf7721d1a003432001012001017001b2500
+f5ff75edfa52d1dd17f2ff27eef81df0f81bf0f819f0f817f1f918f3fc19f4fd18f5fe17
+f4fd16f4fd16f4fd18f4fd18f4fd1af4fd1af4fc1bf4fc1bf5fc1af5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18f5fc18
+f5fc18f5fc18f5fc18f5fc18f4fd16f4fe14f5fd16f5fc1af6f924f6f924f6fa1df5fb1b
+eef619f4fe21f2fd1debfb16eafd0ee8f824edf65ffcffa2ffffdafdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+040000030000010100000300030800f8fde6ffffe6ffffc2f0f370f1f74ff5f44af4f446
+f4f542f2f840f1f941f1fb44eff644eff646eff648eff646eff648eff646eff648eff646
+eff648eff646eff648eff646eff648eff646eff648eff648eff648eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff648
+eff648eff646eff648eff646eff648eff646eff648eff646eff648eff646eff648eff646
+eff648eff646eff648eff648e7ed41e7ef44e8ef49e9f04be9f04be9ef4fe7ec5ae7ec5c
+f0f65efcff65e1e946e4ed42eefa3ee0ef34e6ef48e2e94df6fb63f9fe64e2e846dde43c
+f2fa4febf34ee5eb57e5ec5ee8f05fe5ed64d1d866e2e78beff0acd8d99de9ebaaedf19a
+d9e05edbe747fbff5ae9f74ae6f155e8f456cfdf27e0f038f7ff65e0e854f1f85af0f94e
+dee831e0e934e6ec4aedf156f2f252faf858faf75cdedc3ceceb41e7e73bf6f54ff6f656
+e4e446f6f753ebf03cf6fb49e6e847feff5feaf13fe6eb36edf041efee44f8f84cf2f04e
+e7e159ffff6eeaec31f6f93af5f557fcfa69e8e74eedee52eaea54e2e649f8ff4ff1fc46
+deee43e2f24af2fe56e9f14ee2e550fafb73e5e667e7ea81e3e49ef4f6c4edf2c9ecf5b2
+dae86dd7e84cf6ff5ee0ec44ebf24cebf24cebf24aebf348ecf449edf548eef648eff749
+eff749eff749eff74aeff74aeff74ceff74ceff64eeff74ceff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549eff549
+eff549eff549eff549eff549eff648eef648eff648eff44ff1f259f1f15bf1f352f1f44f
+e9ee4aeff651ecf54ae6f43fe8f939e6f64de9f182f3f8b8fdffe3fdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+060000040000010000000100030504f8f9fefefafffff8f2ffffc2ffffadfffcb3fff9b6
+fff9bafffcbefffdc2ffffc1ffffb3ffffaeffffafffffaeffffafffffaeffffafffffae
+ffffafffffaeffffafffffaeffffafffffaeffffafffffafffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffafffffaeffffafffffaeffffafffffaeffffafffffaeffffafffffaeffffafffffae
+ffffafffffaeffffafffffb3ffffc0ffffc6ffffc7ffffc4ffffbdffffbdffffcaffffc4
+f3f69dffffa9f7f8a8fafbadffffafffffacfffebbffffc3f9f9b1ffffbdfdfab7ffffbb
+ffffacfeffabffffc8ffffcdffffc8f3f8b5feffc9ffffd8e4e4c8f8f9e9fffff8f2f0e3
+ffffddffffd1f7f7c5ffffc8ffffbcfaffa6ffffaaffffaaffffbaedecb4fcf7cdfffdcd
+ffffb9ffffb8fffebfffffccffffc1ffffbeffffb8eff2a5ffffbcffffb9ffffb9f6fab0
+ffffc8faffbcffffb4fbffa4fdffa7ecf69df9ffb8ffffc5fbffb3ffffb9ffffc6ffffca
+ffffcbf1f0adf9fd9fffffa9ffffbdefefb3ffffbbfdffb9fafbbfffffc5f5fea1faffa4
+ffffb6eaf1a4fcfdb9ffffc6ffffc9f1e9bafffdd3ffffd2fbffbeebf4bbf4faf0f1f6f0
+fdffdafdffc9f7f8bfffffcaffffbcffffb6ffffb5ffffb4ffffb2ffffb0ffffb1ffffb0
+ffffafffffafffffb1ffffb1ffffb3ffffb3ffffb5ffffb5ffffb3ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1ffffb1
+ffffb1ffffb1ffffb1ffffb3ffffb5ffffb6ffffb6ffffbcfffcc8fffbcafffdbffffeba
+fffcb9ffffbcfeffaef9ffa1fcff9afbffacf8fcdbfffef9fcfdf5fdfff4fdfef8fffffa
+f9f9f7020200000002010103000002000002
+040000030000010000000002030409f8f7fffef8fffdf4fffffce9fffcddfff7e4fff3e9
+fff2eefff5f4fff7fbfff9f7fffdebffffe4fffee4ffffe4fffee4ffffe4fffee4ffffe4
+fffee4ffffe4fffee4ffffe4fffee4ffffe4fffee4ffffe4fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee4ffffe4fffee4ffffe4fffee4ffffe4fffee4ffffe4fffee4ffffe4fffee4ffffe4
+fffee4ffffe4fffee4fffeeafef7effff7f5fef9f5fffbf2fffdeafffee9fffbf0fffce9
+ffffd8f8facbffffe4ffffeaf5f4d5fcfbddfffff1fffef2ffffeafbf7defffdefffffec
+eaebc3ffffdef7f4ebfffbf8f1f0deffffeaf6fae3f5f8e7fefff9fffefff4f3fff7f4ff
+faf4fefffdfff0ebf2fffefaf0f0d4ffffdcf5f8cdfcfed9f7f6e1fefbf4fffbfff0e9f1
+f8f2e4ffffecf5eee4fffef8fdfdf3fffff1f5f9e0ffffe8ffffecffffecf1f7ddfeffed
+fdfff5f9fff1f5fcddf5ffd5f7ffd1fcffddfafff2f6fbf4ffffedfdfeecfbfaf5f9f8f6
+f3f3e9ffffecedeeccffffe2fffff1f6f7e9ffffecf8fbe6f7faeff3f7e6fcffddfdffdb
+f5fadaffffecf9f6e7f7f0e6f8efeafffcfaf7eeefffffefeff7c4feffdae9ecf1f5f6ff
+fefffff8f9f1fffdfafbf6f2fffff0ffffebfffeeafffde7fffde7fffee5ffffe6ffffe4
+fffee5fffee5fffee5fffee5fffde7fffde7fffde9fffde7fffee8ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6fffee6ffffe6
+fffee6ffffe6fffee6fffee8fffeebfffeebfffeebfffdf1fffbf9fffbf9fffbf2fffdef
+fffdefffffedffffe4fbfdd6ffffd3feffe0f8f9fdfbfafffcfcfcfdfef8fdfef8fffffb
+f9f9f7020202000000010103000002000002
+010000020100020200000000030305f9f8fdfefdfffdfbfffefbf4fefcf0fffaf4fffaf6
+fffaf7fefaf9fefafbfefaf9fffef9fffff5fffef5fffff5fffef5fffff5fffef5fffff5
+fffef5fffff5fffef5fffff5fffef5fffff5fffef5fffff5fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef5fffff5fffef5fffff5fffef5fffff5fffef5fffff5fffef5fffff5fffef5fffff5
+fffef5fffff5fffef5fffff7fffefafffefcfffefcfffefafffef9fffff7fffefafffef9
+fffff2fffff0fffff5fffff7fffff5fffff5fffef9fffefafffff7fffff7fffef9fffff7
+fffff2fffff3fffefafffefcfffef9fefff7fefff7fefff9fefefcfefefffefdfffefdff
+fffdfffffdfffffdfffefefcfffff5fefff2fffff2fffff3fffff7fffefcfffdfffffdff
+fffef9fffff7fffefafffefcfefffafefff9fefff7fefff7fefff7fefff7fefff7fefff9
+fefffafdfffafefff5fdfff2fdfff0fdfff3fdfffafdfffcfefff9fefff9fefefcfefefe
+fefffafefff7fffff3fefff5fefff9fefffafefff7fefff9fefffafefff9fefff3fefff2
+fefff5fefff7fffef9fffefafffdfcfffdfcfffdfefffef9fffff1f2f4e6fefffff1f2f7
+efefeffffffdfefdfbfffffdf9f8f3fefef6fefef6f9f9f1f9f9f1fefef6fefef6f9f9ef
+fffff7fffff7fffff7fffff7fffff7fffff7fffff7fffff7fffff7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7fffef7fffff7
+fffef7fffff7fffef7fffff7fdfcf7fdfcf7fdfcf7fdfcf8fdfcfafdfcfafffbf8fdfcf7
+fffef9fefdf8fffff6f4f4e8fffff1f7f9ecfdfdfffdfcfffdfdfdfefefcfffffdfffffd
+fbfbfb030303000000010101000000000000
+000000010101020202000000030303f9f9f9fffffffdfdfdfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbf4f4f4ffffffffffff
+fffffffdfdfdf2f2f2fffffffcfcfcfffffffffffffcfcfcfcfcfcfffffffffffffcfcfc
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafaffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffefefefffffff8f8f8fffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303f9f9f9fffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf3f3f3f4f4f4fafafaf4f4f4
+f8f8f8fafafaf1f1f1fffffff6f6f6f9f9f9f9f9f9f6f6f6f6f6f6f9f9f9f9f9f9f6f6f6
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f3f3f3f1f1f1f3f3f3fafafaf0f0f0f8f8f8fbfbfbfbfbfbfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfafafafffffffffffff1f1f1
+fcfcfcfffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff7f7f7fffffff6f6f6fffffffffffff8f8f8fdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8ffffffffffffffffff
+fffffffdfdfdfbfbfbf5f5f5fefefefdfdfdfdfdfdfefefefefefefdfdfdfdfdfdfefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+f1f1f1f4f4f4efefeffefefef0f0f0fffffffbfbfbfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fafafafffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaf4f4f4f6f6f6ffffff
+f6f6f6e9e9e9fdfdfdfffffffcfcfcf9f9f9f9f9f9fcfcfcfcfcfcf9f9f9f9f9f9fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f7f7f7fffffffffffffffffff8f8f8f6f6f6f2f2f2fffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fbfbfbffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcf9f9f9ffffff
+f9f9f9fdfdfdffffffdadadafffffffefefefefefefffffffffffffefefefefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+f5f5f5fffffff3f3f3e9e9e9fffffffffffff5f5f5fffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fbfbfbffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefbfbfbfcfcfcfbfbfbfefefe
+f8f8f8ffffffededed6767676a6a6a6666666666666a6a6a6a6a6a6666666666666a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a686868686868686868686868686868686868686868686868
+6363636a6a6a6363637a7a7ae6e6e6fdfdfdf8f8f8fffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
+fcfcfcfefefefafafa676767fffffffffffff6f6f6fafafafcfcfcfafafaffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffffffffefefefdfdfdfefefefffffffefefefdfdfdfdfdfdfdfdfdfefefe
+fffffffffffffffffffefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfcfcfcfffffffafafaffffffebebebffffff
+fdfdfdfffffff4f4f4dbdbdbf5f5f5f6f6f6fdfdfdfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
+fcfcfcfefefefbfbfb686868fefefefffffffbfbfbfbfbfbfafafaf9f9f9fefefefcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfefefefffffffffffffffffffefefefefefefefefeffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffefefefcfcfcfcfcfcfffffffcfcfcfefefef5f5f5fafafa
+fafafafffffff7f7f7dfdfdffafafaf8f8f8fcfcfcfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdffffff
+fcfcfcfefefefbfbfb686868f6f6f6fbfbfbfdfdfdf6f6f6f5f5f5fcfcfcffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffefefefdfdfdfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfdfdfdfcfcfcfbfbfbfcfcfcfcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfb
+fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfbfbfbf9f9f9fcfcfcfdfdfdfefefefffffff8f8f8
+f8f8f8fffffff9f9f9e4e4e4fffffffbfbfbfcfcfcfdfdfdfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfefefefbfbfb686868fefefefefefef9f9f9dbdbdbcbcbcbd1d1d1cccccccbcbcb
+cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcecececdcdcdcccccccbcbcb
+cbcbcbcbcbcbcccccccdcdcdcecececdcdcdcccccccccccccdcdcdcecececdcdcdcccccc
+cdcdcdcdcdcdcccccccbcbcbcbcbcbcccccccccccccdcdcdcdcdcdcdcdcdcdcdcdcdcdcd
+cdcdcdcdcdcdcdcdcdcdcdcdcccccccccccccccccccccccccccccccccccccccccccccccc
+cececececececdcdcdcdcdcdcdcdcdcccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccdcdcdcdcdcdcdcdcdcccccccbcbcbcacaca
+cdcdcdcdcdcdcdcdcdcccccccccccccccccccbcbcbcbcbcbcccccccccccccccccccccccc
+cccccccccccccbcbcbcbcbcbcccccccacacac5c5c5c8c8c8cdcdcdcfcfcfddddddc0c0c0
+f8f8f8fffffffbfbfbe6e6e6fffffffcfcfcfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcffffff
+fcfcfcfffffffcfcfc696969fffffffdfdfdf8f8f8cdcdcdbdbdbdcfcfcfcacacacbcbcb
+cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcccccccccccccccccccccccc
+cdcdcdcecececfcfcfcfcfcfcecececccccccbcbcbcbcbcbcececececececdcdcdcbcbcb
+cecececdcdcdcdcdcdcccccccccccccdcdcdcececececececdcdcdcdcdcdcdcdcdcdcdcd
+cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd
+cdcdcdcdcdcdcdcdcdcdcdcdcccccccccccccccccccccccccdcdcdcdcdcdcdcdcdcdcdcd
+cdcdcdcdcdcdcdcdcdcdcdcdcecececececececececececececececdcdcdcccccccbcbcb
+cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcececececececfcfcf
+cecececdcdcdcccccccbcbcbc8c8c8cacacac6c6c6cacacacdcdcdcacacab8b8b8989898
+fbfbfbfffffffafafae4e4e4fffffffcfcfcfefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcffffff
+fcfcfcfffffffcfcfc6a6a6af8f8f8f8f8f8fcfcfcd1d1d1cfcfcff9f9f9fbfbfbffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefefefefe
+fffffffffffffefefefefefefffffffcfcfcfafafafbfbfbfefefefffffffdfdfdfafafa
+fefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfbfbfbf5f5f5fafafaf8f8f8fffffffbfbfbf5f5f5adadad999999
+fcfcfcfffffff9f9f9e2e2e2fdfdfdfbfbfbfffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfcfcfcffffff
+fcfcfcfffffffdfdfd6a6a6afefefefcfcfcffffffcdcdcdcbcbcbfbfbfbf6f6f6f8f8f8
+fafafafafafafafafafafafafafafafafafafafafafafafafdfdfdfefefeffffffffffff
+fffffffdfdfdfafafaf8f8f8fffffffcfcfcf9f9f9fbfbfbfffffffffffffefefefafafa
+fdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fafafafbfbfbfbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfbfbfbf9f9f9fcfcfcf6f6f6fffffffafafafefefe8c8c8c929292
+fafafafffffff9f9f9e3e3e3fdfdfdfbfbfbfdfdfdfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfbffffff
+fcfcfcfffffffdfdfd6a6a6afdfdfdfbfbfbffffffcccccccdcdcdfffffff8f8f8f7f7f7
+f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6fcfcfcfefefeffffffffffff
+fdfdfdf9f9f9f4f4f4f0f0f0fffffffbfbfbf8f8f8f9f9f9fefefefffffffcfcfcf8f8f8
+fafafafafafaf9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f7f7f7f8f8f8f9f9f9fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfbfbfbfafafa
+f6f6f6f7f7f7f8f8f8fafafafbfbfbfdfdfdfefefefffffffefefeffffffffffffffffff
+fffffffdfdfdfbfbfbf9f9f9fefefefdfdfdefefeffbfbfbf7f7f7ffffff888888a8a8a8
+f8f8f8fffffff9f9f9e4e4e4fffffffbfbfbfcfcfcfdfdfdfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+efefeffffffff4f4f4f8f8f8ffffffdbdbdbfffffff1f1f1f8f8f8fffffffcfcfcfcfcfc
+fefefefdfdfdf6f6f6ffffffd9d9d9fffffff7f7f7f5f5f5fafafafcfcfcfffffffbfbfb
+fbfbfbf9f9f9fffffff6f6f6fdfdfdfffffffdfdfdf9f9f9fffffffffffff2f2f2f1f1f1
+fffffffffffffafafafffffff9f9f9fffffff5f5f5e9e9e9fffffff8f8f8f7f7f7ffffff
+f6f6f6fcfcfcfffffff5f5f5e7e7e7f8f8f8fffffffbfbfbfcfcfcfafafafffffff1f1f1
+ffffffeaeaeaf8f8f8fffffff8f8f8fffffffdfdfdfffffffffffff3f3f3ebebebffffff
+f9f9f9fffffffdfdfdf4f4f4fffffffbfbfbf3f3f3fafafafffffff0f0f0fffffff9f9f9
+fcfcfcfffffff9f9f9f7f7f7f3f3f3fffffff8f8f8ffffffffffffffffff8888889d9d9d
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfefefefefefefefefefffffffffffffffffffffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+f6f6f6eeeeeefffffffefefeffffffffffffc0c0c0fefefefdfdfdeaeaeafdfdfdf3f3f3
+fffffffffffff1f1f1fbfbfbffffff000000000000fffffffffffffafafaffffffececec
+fbfbfbf8f8f8ecececf7f7f7f7f7f7fffffffffffffffffffffffff3f3f3fdfdfdffffff
+f8f8f8f7f7f7f8f8f8ecececf2f2f2d9d9d9f9f9f9ffffffe1e1e1fffffffefefef4f4f4
+fffffffdfdfdfafafaeaeaeafffffffffffff3f3f3fffffffffffffefefef9f9f9ffffff
+dededef9f9f9fffffffffffffffffffffffffefefef7f7f7fdfdfdfffffffffffff2f2f2
+fafafaf4f4f4eeeeeefffffffffffff6f6f6f0f0f0fffffff9f9f9f9f9f9e0e0e0fdfdfd
+ffffffefefefe5e5e5ffffffffffffdcdcdcfffffffdfdfdeaeaeaf0f0f0acacac979797
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+f4f4f4fcfcfcf3f3f3ffffffdcdcdcfffffffffffffffffff0f0f0ffffffffffffffffff
+f0f0f0f8f8f8fdfdfdecececfefefef8f8f80d0d0df7f7f7fffffffffffff6f6f6ffffff
+ffffffecececf7f7f7ebebebfafafaf1f1f1fafafaffffffecececffffffeeeeeef4f4f4
+e4e4e4fffffff7f7f7fffffffffffffffffffafafaf9f9f9fcfcfcfcfcfcffffffececec
+fffffff4f4f4fcfcfcfffffff6f6f6f5f5f5fffffff3f3f3eaeaeafdfdfdfffffff7f7f7
+fffffffffffffbfbfbfcfcfcffffffefefefe8e8e8fffffff9f9f9edededecececffffff
+fefefefdfdfdffffffebebebfffffffdfdfdfffffff1f1f1fefefefffffffffffff4f4f4
+fdfdfdffffffecececf6f6f6ecececf5f5f5ebebebfcfcfcffffffffffff868686a0a0a0
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+0404040000001e1e1e080808020202000000f9f9f9e5e5e5fdfdfdf8f8f8f9f9f9e9e9e9
+ffffffe5e5e5fffffff4f4f4f6f6f6f3f3f3181818dededeefefefffffffeeeeeef9f9f9
+e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffedededfafafaffffff
+fbfbfbf0f0f0f8f8f8f8f8f8f2f2f2e8e8e8ffffffe8e8e8fafafaebebebfafafa0c0c0c
+0c0c0c0000000f0f0ff1f1f1fdfdfdf8f8f8ffffffe9e9e9fffffffdfdfdffffffffffff
+e9e9e9f8f8f8fffffff7f7f7f9f9f9fdfdfdffffffffffffefefeffafafaf8f8f8f7f7f7
+fffffff7f7f7f9f9f9f7f7f7fefefef5f5f5f9f9f9f7f7f7ffffffe4e4e4f3f3f3ffffff
+fafafafcfcfcf8f8f8f8f8f8fdfdfdfcfcfcfffffffffffff2f2f2fdfdfd9c9c9c999999
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefffffffffffffffffffffffffffffffcfcfcfefefeffffffffffff
+fffffffffffffefefefcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefffffffffffffefefefefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+ffffff000000ecececfefefeecececffffff000000000000fffffff4f4f4ffffffebebeb
+fbfbfbffffffe5e5e5f1f1f1ffffffffffff000000fffffff3f3f3f8f8f8fbfbfbffffff
+f7f7f7fefefeeeeeeeffffffe5e5e50a0a0af5f5f5edededfafafaf8f8f8f9f9f9e6e6e6
+fffffff1f1f1fafafafffffff6f6f6eaeaeafffffffffffffcfcfc010101141414f5f5f5
+fffffffbfbfbffffff000000fffffff1f1f1dededeffffffecececfcfcfcfdfdfdf5f5f5
+fffffffffffffffffffffffffffffff5f5f5f6f6f6f3f3f3e9e9e9ffffff000000ffffff
+f5f5f5f7f7f7f9f9f9f2f2f2fefefefefefeffffffffffffffffffffffffecececffffff
+fbfbfbefefefffffffefefefffffff000000fafafaf4f4f4efefefffffff8e8e8e9b9b9b
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffdfdfdfbfbfbfafafafdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefefffffffffffffefefefdfdfdfcfcfc
+fffffffffffffffffffefefefcfcfcfbfbfbfafafaf9f9f9fbfbfbfcfcfcfefefeffffff
+fffffffefefefcfcfcfbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+efefef050505f6f6f6fffffff6f6f6fcfcfcffffff040404030303f8f8f8ebebebffffff
+e5e5e5f3f3f3fffffffcfcfcefefefffffff030303fcfcfcffffffffffffedededd8d8d8
+f6f6f6ffffffedededfffffff9f9f9000000fffffffffffffdfdfdfffffff6f6f6fcfcfc
+fffffffffffff7f7f7fdfdfdebebebffffffeaeaeaececec010101020202e9e9e9ffffff
+e2e2e2ffffffffffff070707eaeaeafffffffffffff2f2f2fffffffffffff7f7f7f2f2f2
+fffffff9f9f9f7f7f7fffffff2f2f2fffffffefefefdfdfdffffffeeeeee0b0b0bf4f4f4
+fcfcfcfafafaffffffe1e1e1ffffffe6e6e6f5f5f5fafafaf0f0f0eeeeeeffffffefefef
+fffffffefefef7f7f7fcfcfcf9f9f9000000fffffffffffff6f6f6f4f4f49b9b9ba0a0a0
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf8f8f8f6f6f6fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfafafafbfbfbfdfdfdfefefefefefefdfdfdfbfbfbfafafa
+fefefefefefefdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9fdfdfdfcfcfcfbfbfbfafafa
+fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafafafafafafafbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfafafafafafafafafafafafa
+fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+f9f9f9101010ffffffe0e0e0f9f9f9f8f8f8efefeffafafa131313fbfbfbefefeff0f0f0
+0000001a1a1a000000fffffffcfcfcf5f5f51b1b1be9e9e9f4f4f4ffffffffffff090909
+1f1f1f000000ffffffffffff0909090f0f0f000000030303f6f6f6e5e5e5ffffff000000
+000000000000efefeffffffff8f8f8e2e2e2fffffff7f7f7050505f3f3f3fbfbfbfbfbfb
+fffffffffffffefefeedededfafafae7e7e7f5f5f50f0f0f000000161616eeeeeeffffff
+e5e5e50000000202020000001010100d0d0d030303edededf3f3f3000000060606070707
+101010e9e9e9f6f6f6ffffff000000060606181818f6f6f6000000000000090909ffffff
+0000000b0b0b010101fdfdfd0000001f1f1f000000030303efefeffcfcfc9c9c9c979797
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfafafaf6f6f6f4f4f4fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbf8f8f8fafafafcfcfcfdfdfdfdfdfdfcfcfcfafafaf8f8f8
+f7f7f7f8f8f8f9f9f9fafafafcfcfcfdfdfdfefefefffffffffffffdfdfdf9f9f9f5f5f5
+f5f5f5f9f9f9fdfdfdfffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f9f9f9f9f9f9f9f9f9fafafafafafafafafafbfbfbfbfbfbf9f9f9f9f9f9f9f9f9f9f9f9
+fafafafcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcffffff
+fcfcfcfffffffefefe6c6c6cfcfcfcfdfdfdfdfdfdcecececececefdfdfdfdfdfdfcfcfc
+ffffff000000f5f5f5ffffffe9e9e9fffffffcfcfcf3f3f3000000f5f5f5ffffff000000
+f8f8f8fafafaffffff020202fbfbfbf9f9f9000000ffffffe9e9e9fafafa000000fefefe
+e2e2e2fbfbfb0c0c0ce0e0e0f3f3f3060606f2f2f2fdfdfdfffffff6f6f60a0a0affffff
+fdfdfdfefefe0d0d0df5f5f5fffffff1f1f1f1f1f1fefefe000000ffffffffffffe8e8e8
+f7f7f7e8e8e8f6f6f6f4f4f4ffffffffffff000000fffffffffffff8f8f8010101f9f9f9
+f8f8f8ffffff0f0f0feeeeeef9f9f9ffffff000000fffffff9f9f9ffffff000000fcfcfc
+f8f8f8fffffffdfdfd000000f3f3f3f8f8f8f5f5f5070707ffffff000000000000ffffff
+fdfdfd0b0b0bfafafafffffff9f9f9111111fffffff5f5f5fffffff9f9f9868686a1a1a1
+fffffffafafafefefee5e5e5fcfcfcfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfffffffffffffffffffffffffffffffffffff3f3f3fdfdfdf3f3f3ffffff
+e5e5e5fffffff4f4f4fafafafbfbfbeeeeeeffffffe7e7e7fbfbfbf4f4f4fffffff0f0f0
+f6f6f6f6f6f6fffffff1f1f1f8f8f8fffffff9f9f9fdfdfdf9f9f9f0f0f0f3f3f3f6f6f6
+fffffff4f4f4f3f3f3f3f3f3fffffffffffff0f0f0f9f9f9f9f9f9f0f0f0ffffffffffff
+fffffff5f5f5fffffff1f1f1f1f1f1fffffffefefeecececfbfbfbfffffffbfbfbf3f3f3
+fffffff5f5f5fafafaf8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffdfdfdfdfdfdfdfdfdcdcdcdcececeffffffffffffffffff
+ffffff000000fcfcfcffffffe8e8e8f0f0f0fffffff3f3f3000000f3f3f3101010ffffff
+f0f0f0ffffffe9e9e90f0f0feeeeeeffffff000000f2f2f2ffffff000000f9f9f9fcfcfc
+fafafaffffff000000ffffffe9e9e9000000fffffff4f4f4ffffff000000ebebebfafafa
+fffffff7f7f7000000f1f1f1f9f9f9f6f6f6f2f2f2f1f1f10f0f0ffbfbfbfafafaffffff
+f4f4f4fafafaf7f7f7fdfdfdf5f5f5000000fefefefffffffffffffffffff5f5f5050505
+f8f8f8f9f9f9050505f6f6f6fffffff1f1f10e0e0efdfdfdf4f4f4ffffff080808f8f8f8
+e4e4e4fefefe050505f4f4f4fefefeffffffffffff060606fffffffdfdfd000000ffffff
+000000f4f4f4f8f8f8eeeeeeffffff000000f6f6f6f3f3f3edededf9f9f99a9a9a989898
+fffffffbfbfbffffffe7e7e7fcfcfcfffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffefefefcfcfcfbfbfbf7f7f7f9f9f9fefefeffffff
+fafafadadadafffffffcfcfcedededfffffff1f1f1f5f5f5fffffffffffff8f8f8ffffff
+f5f5f5ffffffedededf8f8f8fffffff7f7f7f3f3f3f7f7f7fdfdfdfffffffdfdfdf6f6f6
+f5f5f5f2f2f2fffffff5f5f5fcfcfcdcdcdcfffffffdfdfdfdfdfdffffffdcdcdcfcfcfc
+e9e9e9dfdfdff3f3f3f9f9f9fcfcfcf8f8f8d8d8d8fffffffcfcfcfffffff7f7f7fcfcfc
+ffffffe9e9e9f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffdfdfdfdfdfdfefefececececececefefefefefefefefefe
+ebebeb0b0b0bfffffffcfcfcf7f7f7ffffffedededffffff030303ffffff000000000000
+0000000909090e0e0e000000fefefefbfbfb000000ffffffefefef010101000000161616
+080808000000000000fdfdfdffffff131313fffffffffffffefefe000000212121000000
+0d0d0d0707070c0c0cffffffffffffefefefffffffffffff000000f4f4f4e9e9e9fcfcfc
+fffffff2f2f2ffffffe2e2e2ffffff000000fdfdfdf5f5f5ebebebfffffff1f1f1000000
+ffffffffffff000000ffffffecececfafafa191919f6f6f6ffffffe8e8e8090909fefefe
+fffffffdfdfd0808080808080606060202020000000e0e0eedededf7f7f7f8f8f8232323
+e5e5e5fcfcfcfffffffbfbfbffffff010101ffffffefefeff0f0f0f6f6f69292929d9d9d
+fffffffbfbfbffffffe7e7e7fcfcfcfffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcf9f9f9f8f8f8ffffffeeeeeeffffffefefef
+e3e3e3fffffff2f2f2eeeeeefffffff4f4f4f7f7f7ffffffedededdbdbdbe8e8e8fafafa
+f5f5f5e1e1e1efefeffffffffafafae4e4e4fffffffdfdfdffffffecececfffffff6f6f6
+ffffffffffffd8d8d8fffffffefefefffffff2f2f2fbfbfbfbfbfbf2f2f2fffffffefefe
+f5f5f5fffffffffffff2f2f2fffffffdfdfdffffffe3e3e3fcfcfcf7f7f7fffffff2f2f2
+f3f3f3f8f8f8fffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffdfdfdfdfdfdffffffcfcfcfcfcfcffefefefcfcfcfbfbfb
+ffffff030303fffffff5f5f5eeeeeef9f9f9f9f9f9161616000000ffffff000000ffffff
+ffffffeaeaeaffffffffffffffffffe5e5e5191919f7f7f7f5f5f5151515fefefee4e4e4
+f5f5f5fdfdfdfefefeefefefffffff000000fafafaf4f4f4f3f3f3101010f1f1f1fbfbfb
+fbfbfbfbfbfbeeeeeefdfdfdfefefefcfcfcf1f1f1fefefe0000000b0b0bfffffffefefe
+f0f0f0fffffffefefe0b0b0bf8f8f80a0a0af5f5f5fdfdfdeeeeeef2f2f2ffffff000000
+f5f5f5efefef060606eeeeeefffffffbfbfb010101f1f1f1fafafaffffff000000ffffff
+e9e9e9f4f4f4000000fffffffdfdfdf7f7f7fffffffffffffffffff3f3f30a0a0af5f5f5
+0d0d0dfcfcfcfffffffbfbfbe5e5e5000000f6f6f6fffffffdfdfdffffff8585859d9d9d
+fffffffbfbfbffffffe7e7e7fbfbfbfffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f90202020000000c0c0c141414
+0000001313130b0b0b000000ffffff000000131313111111030303ffffffffffffffffff
+ffffffffffff0808080b0b0b040404000000fdfdfd0000000000000000000b0b0b020202
+050505f6f6f6fcfcfcffffff0000000000000c0c0c0303030303030c0c0c000000000000
+1313130000000000000000000c0c0cffffff000000040404050505000000ffffffffffff
+ffffffe8e8e8fafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffcfcfcfdfdfdffffffd0d0d0cfcfcffdfdfdfbfbfbf9f9f9
+ebebeb000000e0e0e0fffffffffffff2f2f2090909000000f1f1f1fbfbfb0000000c0c0c
+fefefefafafaf0f0f0000000fffffff4f4f4050505f6f6f6f8f8f80000000a0a0affffff
+ffffffffffff000000fffffffdfdfd0e0e0ef9f9f9ffffffeaeaea0303030f0f0ffefefe
+fdfdfdffffff000000fffffff3f3f3f3f3f3ffffffeaeaeaffffff000000030303e8e8e8
+fffffffcfcfcf4f4f40f0f0fdfdfdfffffff000000fffffffffffff8f8f8000000fcfcfc
+f7f7f7ffffff000000fffffff5f5f5f3f3f30f0f0fffffffddddddfcfcfc050505f4f4f4
+fbfbfbffffff050505070707ebebebf1f1f1ffffff010101ececec0e0e0ee6e6e6f8f8f8
+1a1a1a000000fffffffafafaffffff0b0b0bdededefffffff1f1f1ececec9e9e9e979797
+fffffffafafaffffffe6e6e6fbfbfbfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffdfdfdfcfcfcfafafa1b1b1b131313ffffff
+fbfbfbf0f0f0121212000000fffffff0f0f01414140000001a1a1a000000edededf7f7f7
+f1f1f1ffffff0000000a0a0a000000ffffffeaeaeaffffff131313030303f7f7f7080808
+0c0c0c010101fffffffbfbfb060606f3f3f3f9f9f9080808080808f9f9f9f3f3f3060606
+ffffff0101011f1f1f070707eeeeeef3f3f3f5f5f50a0a0a0a0a0affffffdededeffffff
+dfdfdffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffcfcfcfdfdfdffffffd0d0d0cfcfcffdfdfdfafafaf9f9f9
+0a0a0a0101011212120000000000000b0b0bf4f4f4fffffffcfcfcffffffffffff000000
+000000151515000000fffffff6f6f6030303010101181818f2f2f2ffffff0000000a0a0a
+030303000000fffffff9f9f9f1f1f10f0f0f000000000000f3f3f3ffffff0000000a0a0a
+000000000000e9e9e9fffffff6f6f6fdfdfdfffffff5f5f5fbfbfbfbfbfbf4f4f40e0e0e
+000000000000000000ecececfffffff7f7f7ffffff040404000000000000ffffffffffff
+f9f9f90000000f0f0f000000ffffff000000000000000000f3f3f3ffffff000000080808
+080808eeeeeefafafa000000171717141414000000ffffff0000000e0e0e0f0f0fffffff
+000000141414000000ffffffe2e2e2131313040404020202f9f9f9ffffff9e9e9e9d9d9d
+fffffffafafaffffffe6e6e6fbfbfbfffffffefefefffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffefefefdfdfdfdfdfd0b0b0b000000efefef
+fbfbfbffffffebebebffffffdadadaffffff000000000000131313020202ffffffececec
+eaeaea0c0c0c0000000f0f0f2a2a2ae8e8e8ffffffe8e8e80000000a0a0af1f1f1ffffff
+0c0c0c070707000000f9f9f9070707fffffff6f6f6030303030303f6f6f6ffffff070707
+f0f0f0ffffff000000121212fbfbfbfffffff8f8f8000000f0f0f0fefefef9f9f9ffffff
+fffffffffffff6f6f6f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffbfbfbfcfcfcfdfdfdcecececececefdfdfdfbfbfbfafafa
+fefefef7f7f7ffffffffffffddddddffffffe9e9e9fbfbfbffffffe7e7e7fdfdfdffffff
+fffffff0f0f0ffffffe9e9e9f7f7f7f6f6f6ffffffeeeeeefefefef5f5f5fefefeffffff
+fefefefffffff5f5f5fffffff7f7f7fbfbfbfffffffefefeffffffe9e9e9ffffffebebeb
+fffffffefefefefefef8f8f8fafafafcfcfcf6f6f6fdfdfdf7f7f7fdfdfdfffffff0f0f0
+fbfbfbfffffffffffffafafae2e2e2fffffff4f4f4eaeaeafafafafffffff3f3f3f6f6f6
+fdfdfde4e4e4fffffffdfdfdfffffff4f4f4fffffff5f5f5fffffffafafaeeeeeeffffff
+e2e2e2fffffffffffffefefefffffff1f1f1ffffffedededfefefee4e4e4fdfdfdfafafa
+f9f9f9fcfcfcfffffff5f5f5fffffff7f7f7fffffffefefeffffffececec909090969696
+fefefefafafaffffffe6e6e6fafafafffffffdfdfdfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfbfbfbfafafae3e3e30f0f0f181818e8e8e8
+ffffff000000fefefef2f2f2fffffff5f5f5181818f0f0f00a0a0a000000000000ffffff
+ffffff000000ffffff010101000000fafafaf7f7f7ffffff000000171717ffffffd9d9d9
+050505141414000000fffffff6f6f6f6f6f6ffffff010101010101fffffff6f6f6f6f6f6
+fffffffcfcfc000000111111000000ececec070707eaeaeafffffff6f6f6fdfdfdfefefe
+ecececf6f6f6f6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffbfbfbfbfbfbfcfcfcccccccccccccfdfdfdfdfdfdfdfdfd
+f7f7f7ffffffefefeff4f4f4ffffffeaeaeaf0f0f0fffffffbfbfbffffffeaeaeaf4f4f4
+fffffff5f5f5f7f7f7fafafafffffffffffff2f2f2fcfcfcfdfdfdfffffffffffffafafa
+e4e4e4ffffffffffffe0e0e0fffffff1f1f1fcfcfcf9f9f9fbfbfbfffffff4f4f4fafafa
+fffffff1f1f1fffffff4f4f4f2f2f2fefefeffffffedededffffffffffffe0e0e0ffffff
+f6f6f6ffffffd6d6d6f1f1f1ffffffe9e9e9f1f1f1fffffffcfcfcf6f6f6fffffffefefe
+f8f8f8ffffffdcdcdcfafafaf2f2f2ffffffebebebf1f1f1e7e7e7edededfffffff7f7f7
+fffffff5f5f5efefeffefefef7f7f7f0f0f0fffffff4f4f4eaeaeafffffffdfdfdfdfdfd
+fafafafbfbfbfffffff9f9f9f3f3f3ffffffe9e9e9ffffffe6e6e6ffffff8c8c8c979797
+fefefef9f9f9ffffffe5e5e5fafafafffffffdfdfdfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefbfbfbf8f8f8f6f6f6fdfdfd111111000000060606
+0000000c0c0cfffffffffffff7f7f7efefef000000ffffff0000000606060a0a0afafafa
+0e0e0e0b0b0bf3f3f3000000171717fffffff2f2f2ffffff1a1a1a000000eaeaea1f1f1f
+030303000000ffffffefefeffffffff3f3f3ffffff040404040404fffffff3f3f3ffffff
+fffffffffffffefefe0000001c1c1c111111000000fffffffffffffafafafcfcfcffffff
+f1f1f1fffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fcfcfcffffffffffff6f6f6ffbfbfbfbfbfbfbfbfbcbcbcbcbcbcbfdfdfdfefefefefefe
+fffffffffffffffffffffffff4f4f4f7f7f7fffffffcfcfcf5f5f5fefefefafafaffffff
+ebebebfffffff9f9f9fffffff7f7f7f3f3f3fefefefffffff9f9f9fffffff4f4f4ffffff
+fffffff3f3f3f3f3f3fffffff6f6f6f7f7f7fffffffdfdfdfffffff5f5f5fffffff0f0f0
+fdfdfdf3f3f3fbfbfbfffffffffffff2f2f2eeeeeefffffff4f4f4f5f5f5fffffffafafa
+fdfdfdf8f8f8fffffffefefef7f7f7ffffffffffffefefeffffffff2f2f2fffffffcfcfc
+fdfdfde9e9e9fffffffffffffffffff5f5f5fffffffffffffffffff2f2f2fefefefdfdfd
+efefeffffffffbfbfbfdfdfdfefefefffffff5f5f5fefefef8f8f8f9f9f9f8f8f8f7f7f7
+fffffff7f7f7f8f8f8fffffffefefefcfcfcfefefeebebebfffffff9f9f9919191ababab
+fefefef9f9f9ffffffe5e5e5fafafafffffffdfdfdfffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbffffff000000000000ffffff
+f8f8f8060606eaeaeaffffffffffffffffff000000fffffff4f4f40f0f0f161616eeeeee
+0a0a0af5f5f5ffffff1c1c1c000000fafafaefefeffdfdfd0a0a0a0000000c0c0c040404
+000000ffffffdfdfdffffffffefefefffffffdfdfd070707060606fbfbfbfffffffbfbfb
+f9f9f9ebebebffffffdbdbdb171717010101f5f5f5f7f7f7fbfbfbfbfbfbfbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfcfcfcfcfcfcffffff
+fcfcfcfffffffefefe6d6d6dfffffff6f6f6f5f5f5c0c0c0c6c6c6ffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffefefefcfcfcfcfcfcffffffffffff8484849c9c9c
+f9f9f9fbfbfbf9f9f9e7e7e7fdfdfdfcfcfcfffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbe1e1e1000000030303fefefe
+efefefffffffffffffeeeeeef3f3f3fafafa000000eaeaeafafafa000000121212191919
+070707e7e7e7f0f0f0000000000000fffffffdfdfdf5f5f50000001b1b1bfffffff7f7f7
+eaeaeaffffffffffffececece9e9e9fcfcfcffffff070707080808ffffffffffffececec
+fdfdfdfffffffbfbfbffffff000000040404fafafaf7f7f7fbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+f7f7f7fafafafbfbfb6d6d6df2f2f2f2f2f2fefefed5d5d5d3d3d3fcfcfcf6f6f6fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffffffffffffffffefefef7f7f7969696a4a4a4
+fbfbfbfdfdfdfbfbfbe7e7e7fcfcfcfafafafffffffcfcfcfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbffffff000000070707ffffff
+f4f4f4efefefffffff171717fffffff7f7f7252525fafafaffffff111111010101000000
+000000ffffffffffff040404212121f5f5f5e6e6e6fafafa0f0f0f000000edededffffff
+f9f9f9dcdcdcfffffffffffff5f5f5ffffffebebeb020202030303ecececfffffff6f6f6
+fffffff8f8f8e4e4e4f2f2f20000001a1a1af9f9f9fffffffbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+f7f7f7fafafafdfdfd6f6f6fffffffffffffffffffd1d1d1b2b2b2b3b3b39c9c9c9d9d9d
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+9999999999999999999999999898989898989e9e9e9b9b9ba1a1a1a2a2a28b8b8b999999
+fdfdfdfffffffdfdfde9e9e9fefefefcfcfcfffffffdfdfdfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfce7e7e7111111000000f2f2f2
+ffffffffffff0000000e0e0ef6f6f6fbfbfb000000ffffffecececffffff080808070707
+fffffff2f2f2f2f2f2050505000000fbfbfbfffffff5f5f50f0f0f000000ffffffececec
+ecececfcfcfcfbfbfbfbfbfbfffffffafafaffffff030303010101fffffff2f2f2f8f8f8
+f2f2f2dcdcdcffffffffffff050505000000fffffff5f5f5fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdffffff
+fdfdfdffffffffffff6e6e6ef7f7f7f0f0f0eeeeeec8c8c8aaaaaaa2a2a2929292989898
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797979797979797979797979797979797979797979797979797
+979797979797979797979797a1a1a19b9b9b9c9c9c929292989898909090a6a6a6a5a5a5
+fafafafcfcfcfafafae7e7e7fdfdfdfcfcfcfffffffefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffefefefdfdfdfcfcfc0404040101010d0d0d101010
+000000030303030303030303fcfcfc0101011c1c1c131313fefefefdfdfd000000080808
+fafafaffffff0a0a0a191919000000040404e4e4e40c0c0c0000000c0c0c090909fcfcfc
+fffffff9f9f9fffffff4f4f4f1f1f1ffffff0000000a0a0a090909000000fafafae8e8e8
+f2f2f2ffffffe3e3e3000000010101040404000000fffffffcfcfcfcfcfcfbfbfbfbfbfb
+fbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfafafaffffff
+fffffffffffffcfcfc646464fffffffffffffffffffafafaf4f4f4f9f9f9f8f8f8ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfffffffefefeffffffedededffffffeaeaea
+f9f9f9fbfbfbf9f9f9e6e6e6fbfbfbf9f9f9fffffffbfbfbfdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefffffffffffffefefefdfdfdfdfdfdfffffff3f3f3ffffffffffff
+fffffff5f5f5fffffff5f5f5fdfdfdfffffffdfdfdf7f7f7e4e4e4fffffffdfdfdffffff
+fcfcfcffffffedededf6f6f6fffffff8f8f8ffffffeeeeeef7f7f7fffffff7f7f7fefefe
+fcfcfcfefefefffffffffffffffffffffffffbfbfbfafafafafafafbfbfbffffffffffff
+fffffffefefefffffffffffffffffff8f8f8fffffff6f6f6fefefefdfdfdfdfdfdfcfcfc
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfafafaffffff
+fdfdfdfffffff6f6f65e5e5efafafafcfcfcffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfafafaf6f6f6fefefef9f9f9fffffffafafafffffff3f3f3
+ffffffffffffffffffebebebfffffffdfdfdfffffffefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefefefefffffffffffffefefefefefefdfdfdfffffff5f5f5fafafaf8f8f8
+f7f7f7fffffff7f7f7f8f8f8f4f4f4fffffff1f1f1ffffffffffffe3e3e3ffffffebebeb
+ffffffe1e1e1ffffffffffffedededfffffffafafafffffffffffffffffff5f5f5fdfdfd
+fafafafffffff1f1f1f7f7f7fdfdfde6e6e6fffffffdfdfdfefefeffffffe8e8e8ffffff
+f7f7f7f4f4f4f0f0f0fefefef1f1f1edededfffffff3f3f3fffffffffffffefefefefefe
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdffffff
+f8f8f8fbfbfbfafafa696969f2f2f2fbfbfbfbfbfbfafafafafafafcfcfcfffffff8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff3f3f3fbfbfbfdfdfdfdfdfdf8f8f8
+f9f9f9fbfbfbfafafae8e8e8fefefefefefefffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffffffffffffffefefefefefeffffffffffffffffffffffff
+f6f6f6f9f9f9fefefefffffffdfdfdffffffffffffe8e8e8fffffffcfcfcf3f3f3ffffff
+ecececfffffff7f7f7fffffffdfdfdfffffffcfcfcfdfdfdfdfdfdefefeffffffff7f7f7
+fffffff3f3f3fffffffffffffefefefffffffffffffffffffffffffefefefffffffcfcfc
+fefefefbfbfbffffffe4e4e4ffffffffffffe6e6e6fffffffffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fefefeffffffffffff
+f7f7f7fbfbfbffffff7c7c7cdfdfdfebebebe6e6e6e1e1e1dfdfdfe3e3e3eeeeeee9e9e9
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4dcdcdcdfdfdfeaeaeae0e0e0e9e9e9f1f1f1dfdfdfe2e2e2
+e5e5e5e8e8e8e9e9e9dbdbdbf4f4f4f7f7f7fffffffefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffff
+fffffffdfdfdf3f3f3eaeaeafcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfafafafdfdfd
+fffffffffffffcfcfcf7f7f7fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbf9f9f9fafafa
+fefefefffffffffffffffffffcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefbfbfbfafafa
+fcfcfcfefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfd
+fdfdfdfcfcfcfbfbfbf9f9f9fdfdfdfdfdfdfefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfcfcfcfdfdfdfefefe
+fefefefdfdfdfcfcfcfbfbfbfefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfdfdfdfefefeffffff
+fefefefefefefefefefffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefffffffefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefffffffefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefffffffefefefdfdfdfcfcfc
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fcfcfcfbfbfbf9f9f9f9f9f9fbfbfbfcfcfcfdfdfdfefefefffffffefefefefefefdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfcfcfc
+fbfbfbfbfbfbfafafafafafaf6f6f6f8f8f8fbfbfbfefefefffffffffffffdfdfdfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000030303fafafafffffffefefefffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5f6f6f6f8f8f8fafafa
+fcfcfcfefefefffffffffffff3f3f3f6f6f6fafafafefefefffffffffffffdfdfdfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202020202010101000000040404fafafafefefefafafafffffffefefefbfbfbefefef
+fffffffffffffffffff7f7f7fffffffffffffffffffefefefefefeffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffff7f7f7fffffffbfbfb
+f3f3f3f3f3f3ffffffebebebfcfcfcfffffffffffff5f5f5fefefef5f5f5fffffffcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fefefefdfdfdffffff
+fefefef7f7f7f0f0f0f9f9f9fafafafafafafafafafbfbfbfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101010101000000000000040404fafafafefefefbfbfbfafafafafafaffffffffffff
+f6f6f6fbfbfbfffffffffffffffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4f8f8f8f9f9f9fbfbfb
+fffffffefefee5e5e57373735e5e5e6464647272726e6e6e7878786666666969695e5e5e
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+6767676767676767676767676767676767676767676767677272726e6e6e6a6a6a6a6a6a
+6b6b6b7070707777777f7f7ffbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fbfbfbfffffffcfcfcffffffe7e7e7ebebebffffff
+f3f3f3fffffff0f0f0f5f5f5fefefefefefefdfdfdfdfdfdfdfdfdfefefefefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefee9e9e9fffffff6f6f6e6e6e6
+f0f0f0fbfbfbffffff7b7b7bfffffff9f9f9fdfdfdf0f0f0fafafaf2f2f2ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaf2f2f2f8f8f8f8f8f8
+f9f9f9fafafafcfcfcf1f1f1fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fcfcfcfffffffdfdfdfefefeaaaaaaa2a2a29b9b9b
+8c8c8c9a9a9a979797a4a4a49b9b9b9b9b9b9a9a9a9a9a9a9a9a9a9b9b9b9c9c9c9d9d9d
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999999999999999999999999999
+999999999999999999999999999999999999999999999999939393f0f0f0fefefeffffff
+fffffffbfbfbffffff5f5f5ff1f1f1ebebebfffffff7f7f7fffffffbfbfbfcfcfcffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffbfbfbffffffffffff
+fffffffafafaf5f5f5dadadafcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fcfcfcfffffffdfdfde9e9e9a4a4a4f9f9f9ffffff
+fffffffcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffbebebeffffffe9e9e9ededed
+f5f5f5eeeeeeffffff646464fffffff6f6f6fffffff7f7f7fffffffffffffdfdfdffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9f3f3f3fbfbfbececec
+fdfdfdf9f9f9fcfcfce3e3e3fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fbfbfbfffffffcfcfcffffff9b9b9bfafafaefefef
+f6f6f6f0f0f0f9f9f9fefefef9f9f9f9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdd0d0d0fffffff5f5f5fefefe
+fffffff9f9f9ffffff686868ffffffefefeff2f2f2c1c1c1c0c0c0cacacacacacad1d1d1
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbd1d1d1d2d2d2d5d5d5c6c6c6
+fafafafefefefefefee6e6e6fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101010101000000000000040404fafafafefefefbfbfbffffff929292fafafafcfcfc
+fffffffffffffffffff9f9f9fafafafafafafafafafafafafbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffbebebefbfbfbfbfbfbffffff
+fffffff6f6f6fbfbfb707070fdfdfdf5f5f5ffffffcfcfcfcdcdcddbdbdbcdcdcdc7c7c7
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcfcfcfcdcdcdbebebea7a7a7
+fbfbfbfffffffafafae1e1e1fffffffefefefefefefdfdfdfdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202020202010101000000040404fafafafefefefafafaf9f9f9959595fefefefdfdfd
+ddddddf6f6f6eeeeeefdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcbcbcbfffffffffffffdfdfd
+fffffffffffff7f7f7666666fcfcfcf3f3f3ffffffc5c5c5cfcfcff7f7f7fcfcfcffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfceaeaeab9b9b98e8e8e
+f2f2f2fffffff9f9f9e6e6e6fffffffffffffefefefdfdfdfdfdfdfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9eeeeeeaeaeaef3f3f3fbfbfb
+f3f3f3f1f1f1fffffff9f9f9dededeffffffe0e0e0f7f7f7fffffffdfdfdfafafaf5f5f5
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afefefefffffffafafac8c8c8cfcfcffefefefafafaffffff
+ffffffedededfdfdfdfffffff4f4f4fffffffcfcfcfcfcfcecececffffffefefeffbfbfb
+fffffff1f1f1fffffff8f8f8fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfffffffffffff1f1f1efefef
+fffffff8f8f8ecececfffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfffffffffffffafafa
+fffffff8f8f8fbfbfbfffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefe
+fffffff3f3f3f6f6f6ffffffefefeffffffff3f3f3fffffffefefefafafa9c9c9c9a9a9a
+fefefefffffffefefee6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9ffffff818181ffffffffffff
+1212120e0e0e000000090909060606dfdfdffffffffafafaf5f5f5ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afdfdfdfffffffafafac8c8c8d0d0d0fffffffbfbfbffffff
+f6f6f6ffffffefefeffffffff9f9f9eeeeeefffffff1f1f1fafafafffffff6f6f6fafafa
+fffffffbfbfbf7f7f7fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfcfbfbfbeaeaeafffffff9f9f9
+f9f9f9fafafaffffffedededfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfafafaefefeff8f8f8
+fefefefcfcfcfffffffcfcfcfefefefefefefefefefdfdfdfdfdfdfefefefefefefefefe
+fffffffffffffbfbfbfcfcfcffffffcacacaffffffefefeffefefefafafa9c9c9c9a9a9a
+fefefefffffffefefee6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000030303fafafafefefefafafae2e2e2a2a2a2dbdbdbf7f7f7
+ecececffffff202020f4f4f4f5f5f5ffffffe4e4e4f4f4f4f6f6f6f5f5f5f8f8f8eaeaea
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afdfdfdfffffffbfbfbc9c9c9d1d1d1fffffffcfcfcffffff
+ffffffe0e0e0fafafaf7f7f7f5f5f5fffffff4f4f4ffffffffffffe3e3e3fcfcfcffffff
+ebebebfcfcfcfffffff9f9f9fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfafafaffffffdfdfdff4f4f4
+fffffff8f8f8f5f5f5fdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+f6f6f6f1f1f1fefefef9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+f6f6f6fffffffefefef8f8f8ecececfffffff2f2f2fffffffefefef9f9f99b9b9b999999
+fdfdfdfffffffefefee6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fafafafffffffbfbfbf9f9f9a4a4a4ffffffffffff
+fcfcfcececec000000fffffffefefeefefeff6f6f6fffffffbfbfbf6f6f6ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfffffffbfbfbcacacad2d2d2fffffffdfdfdffffff
+f8f8f8fffffffffffffdfdfdffffffeeeeeefefefeefefefe4e4e4fffffffffffff2f2f2
+fffffffefefeebebebffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefefefef0f0f0fffffff6f6f6ffffff
+f2f2f2f7f7f7fffffff2f2f2fefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefeeeeeeef1f1f1f0f0f0
+fafafafffffffffffff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+f6f6f6fefefefefefeffffffffffffdcdcdcebebebfffffffefefef9f9f99b9b9b999999
+fdfdfdfffffffdfdfde5e5e5fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfbfbfb959595f7f7f7e9e9e9
+fffffffcfcfc010101fdfdfdf5f5f5fffffff2f2f2e3e3e3f4f4f4f8f8f8fbfbfbf5f5f5
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afbfbfbfffffffbfbfbcacacad2d2d2fffffffcfcfcffffff
+f9f9f9fefefefbfbfbf5f5f5fffffff0f0f0fffffffffffff7f7f7ffffffe7e7e7fbfbfb
+fffffff1f1f1fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefffffff1f1f1f6f6f6
+fffffffffffff0f0f0fffffffefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfffffffdfdfd
+f8f8f8fdfdfdfffffffffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fffffffffffffffffff5f5f5fffffffffffffffffff4f4f4fdfdfdf8f8f89b9b9b999999
+fdfdfdfffffffdfdfde5e5e5fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdffffff979797fdfdfdffffff
+eaeaeaf4f4f40e0e0ef6f6f6f5f5f5f0f0f0fdfdfdfffffffffffff6f6f6fbfbfbfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afbfbfbfffffffbfbfbcacacad2d2d2fffffff9f9f9fdfdfd
+000000111111070707fefefef4f4f4ffffff0000000b0b0b0d0d0decececffffffe1e1e1
+f1f1f1ffffffffffffedededffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefffffffafafaffffff000000
+070707000000080808f0f0f0fcfcfcfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbffffffdadadaffffff
+f6f6f6efefeff2f2f2fffffffbfbfbfcfcfcfdfdfdfefefefefefefdfdfdfcfcfcfbfbfb
+fcfcfcf7f7f7fdfdfdf1f1f1e3e3e3fcfcfcfdfdfdf9f9f9fdfdfdf8f8f89a9a9a989898
+fcfcfcfffffffdfdfde4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000050505fcfcfcfffffffefefeffffff9d9d9dfafafafdfdfd
+f2f2f2ffffff0a0a0afcfcfcffffffefefeffffffff0f0f0f1f1f1ffffffffffffebebeb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afbfbfbfffffffbfbfbcacacad0d0d0fdfdfdf6f6f6f9f9f9
+ffffff000000141414dbdbdbfffffff9f9f9f4f4f4121212fefefefefefef7f7f7ffffff
+fffffff5f5f5ffffffedededfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fafafafbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd000000000000ffffff
+f6f6f6fffffffefefe0c0c0cfcfcfcfbfbfbf8f8f8f7f7f7f7f7f7f8f8f8fbfbfbfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf2f2f2e0e0e02e2e2edcdcdc
+fffffffffffff7f7f7edededf8f8f8f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8
+f7f7f7edededf3f3f3fffffff9f9f90b0b0beaeaeafefefefdfdfdf8f8f89a9a9a989898
+fcfcfcfefefefcfcfce4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000050505fdfdfdfffffffefefefbfbfb9e9e9effffffe8e8e8
+ffffffffffff000000fffffff3f3f3fdfdfdfffffff4f4f4ffffffededede4e4e4fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afbfbfbfffffffbfbfbc9c9c9d0d0d0fcfcfcf4f4f4f7f7f7
+fefefe0000001515151f1f1fd8d8d8fefefeffffff000000ffffffe6e6e6f5f5f5f8f8f8
+edededfcfcfcfffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9fafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfc070707000000fffffff5f5f5
+edededfffffff5f5f5010101fffffffdfdfdf9f9f9f7f7f7f7f7f7f9f9f9fdfdfdffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbffffff000000fcfcfc
+fffffff2f2f2f1f1f1fcfcfcf6f6f6f8f8f8fafafafbfbfbfbfbfbfafafaf8f8f8f6f6f6
+fcfcfcfdfdfdfcfcfcf8f8f8e6e6e60d0d0dfffffff2f2f2fcfcfcf8f8f89a9a9a989898
+fcfcfcfefefefcfcfce4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfefefe9c9c9cfffffffcfcfc
+fdfdfdffffff000000fefefefefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afdfdfdfcfcfcfdfdfdcfcfcfd1d1d1ffffffffffffffffff
+efefef090909ffffff000000fafafafbfbfbffffff030303f4f4f4fffffffffffff4f4f4
+1f1f1f000000010101ffffff000000000000121212ebebebf7f7f7141414f7f7f7fefefe
+000000060606000000fcfcfcfffffffffffff6f6f6fdfdfd000000fffffff2f2f2f7f7f7
+fffffffefefeeeeeeefbfbfbecececffffffe6e6e60808080e0e0e000000ffffffffffff
+eeeeee080808181818000000000000040404000000ffffffe3e3e3090909010101141414
+0a0a0af3f3f3efefefffffff000000101010000000fcfcfc030303020202040404fefefe
+020202020202000000ffffff000000131313000000171717f9f9f9fefefe9b9b9ba1a1a1
+f3f3f3fffffff9f9f9ecececfffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfd9b9b9bfefefefbfbfb
+fdfdfdffffff000000fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afefefefefefefefefececececececefdfdfdfbfbfbfafafa
+ffffff000000ffffffffffff060606fdfdfdfefefe040404fffffff3f3f3f6f6f6070707
+e8e8e8fffffffefefe000000ffffff000000fffffffffffffafafa000000202020dadada
+ffffff000000f9f9f9fcfcfcf7f7f7f5f5f5f7f7f7f3f3f3141414fffffffffffff7f7f7
+fdfdfdf9f9f9eeeeeeffffffffffffe8e8e80a0a0affffffffffffe1e1e1000000fafafa
+ffffffeaeaea000000f1f1f1ffffffe9e9e9151515f1f1f1ffffffffffff000000ffffff
+d9d9d9fcfcfcffffff050505f8f8f8fcfcfcffffff000000ffffff030303000000ffffff
+ffffff050505ffffffebebebffffff060606f4f4f4f9f9f9f9f9f9f0f0f0a6a6a68d8d8d
+ffffffeeeeeeffffffe4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfcfcfc9a9a9afdfdfdfbfbfb
+fcfcfcffffff000000fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afdfdfdfefefeffffffcecececcccccfbfbfbfafafafafafa
+f2f2f2020202fffffff3f3f3000000060606fdfdfd010101fafafae7e7e7040404ffffff
+fbfbfbf8f8f8e6e6e6000000ffffff000000080808f7f7f7f1f1f11a1a1a000000ffffff
+fafafa0a0a0afffffff5f5f5f9f9f9f2f2f2ffffffffffff010101e6e6e6e7e7e7ffffff
+f4f4f4f6f6f6ffffffeeeeeef4f4f40b0b0becececf6f6f6efefefffffffffffff0b0b0b
+cdcdcdfefefe080808f7f7f7ffffffffffff161616fffffff9f9f9fafafa070707ececec
+ffffffeaeaea0b0b0bffffffffffffe9e9e9fefefe000000ffffffffffff0c0c0cdddddd
+1b1b1bd4d4d4f2f2f2ffffffe6e6e6000000ffffffeaeaeaf8f8f8fafafa9d9d9d9d9d9d
+f8f8f8fdfdfdfafafae8e8e8fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfcfcfc9a9a9afefefefcfcfc
+fdfdfdffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afbfbfbfdfdfdffffffd0d0d0cececefefefeffffffffffff
+ffffff000000f9f9f9e7e7e7ffffff000000f5f5f50d0d0de5e5e5ffffff030303000000
+000000000000151515141414eeeeeeffffff050505fbfbfb050505fcfcfc000000ffffff
+000000f7f7f7fffffff2f2f2ffffffffffffebebebffffff000000fffffff2f2f2eaeaea
+fffffff5f5f5f5f5f5fffffff8f8f8010101fffffff6f6f6fdfdfdf7f7f7e9e9e9070707
+fffffff1f1f10b0b0bf6f6f6e2e2e2ffffff000000fdfdfdf9f9f9ffffff090909ffffff
+e5e5e5ffffff090909000000101010010101000000000000fffffff0f0f0f4f4f4181818
+f6f6f6ffffffffffffefefeffcfcfc0f0f0fffffffedededf8f8f8ffffff979797a6a6a6
+f4f4f4fffffff7f7f7e9e9e9fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfdfdfd9b9b9bfefefefdfdfd
+fefefeffffff010101fffffffffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfdfdfdffffffcfcfcfcececefefefefefefefefefe
+f4f4f4020202fffffff7f7f7fcfcfc000000000000020202ffffffe7e7e7010101ffffff
+fffffffffffff9f9f9f5f5f5f4f4f4ffffff000000fcfcfc121212fdfdfd0d0d0dffffff
+050505ffffffe9e9e9fefefef0f0f0fcfcfcfffffffafafa000000030303f1f1f1fefefe
+efefeff4f4f4fefefe010101ffffff060606fffffffafafaf0f0f0eeeeeeffffff000000
+e9e9e9ffffff0a0a0aefefeffffffff3f3f3000000ffffffffffffffffff000000ffffff
+f0f0f0e6e6e60a0a0affffffedededfffffff3f3f3f9f9f9f5f5f5f1f1f1030303eeeeee
+000000fffffffafafae7e7e7ffffff000000f5f5f5fffffffafafaf1f1f1a3a3a38e8e8e
+fffffff3f3f3ffffffe2e2e2fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfcfcfc9a9a9afefefefcfcfc
+fefefeffffff010101fffffffcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afffffffefefefcfcfcccccccccccccfbfbfbf8f8f8f5f5f5
+fefefe080808f7f7f7fffffff7f7f7ffffff121212101010f9f9f9f7f7f7050505161616
+ebebebfbfbfbe9e9e90b0b0bf3f3f3eaeaea050505161616000000e8e8e8ffffff000000
+090909f0f0f0fffffffcfcfcf9f9f9fffffff6f6f6f8f8f8f2f2f20000000a0a0affffff
+f8f8f8fafafaffffff040404f3f3f3efefef050505f9f9f9eaeaeaffffff000000fefefe
+fcfcfcffffff000000fffffff4f4f4fbfbfb0f0f0ff5f5f5fefefeffffff030303ededed
+f2f2f2ffffff000000010101ffffffe8e8e8ffffff101010ececec000000fffffffbfbfb
+040404060606ebebebfffffffefefe151515fffffffefefefcfcfcf7f7f79c9c9c959595
+fcfcfcfafafafdfdfde5e5e5fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf9f9f9979797fbfbfbfafafa
+fcfcfcffffff000000fffffff9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afffffffdfdfdf9f9f9cacacacececefefefef8f8f8f2f2f2
+161616000000191919f9f9f9d9d9d9ffffffebebeb000000ffffffedededfafafa000000
+1313130000000d0d0dfffffffffffffdfdfdffffff000000fffffffffffff2f2f20d0d0d
+fafafaffffffe7e7e7fcfcfcf1f1f1f5f5f5fbfbfbfffffffbfbfbfffffff8f8f8000000
+1f1f1f000000151515f6f6f6ffffffe4e4e4ffffff0000001a1a1a070707fefefeffffff
+ffffff0202020d0d0d0c0c0cfefefe050505020202000000f7f7f7efefef0e0e0e191919
+000000f9f9f9ffffff020202151515000000000000f5f5f5070707161616000000ffffff
+0e0e0e101010000000ffffffe5e5e5000000060606000000ffffffffffff929292a2a2a2
+f0f0f0fffffff9f9f9ecececfffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcf7f7f7959595f9f9f9f7f7f7
+fafafafefefe000000fdfdfdf7f7f7f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afffffffcfcfcf7f7f7cacacad2d2d2fffffffefefef6f6f6
+f4f4f4ffffffedededfcfcfcffffffdbdbdbffffffffffffefefeffffffffffffff2f2f2
+ffffffffffffeaeaeae5e5e5f3f3f3fefefeeeeeeefffffffafafaededede8e8e8ffffff
+ffffffecececffffffe8e8e8fcfcfcfffffff0f0f0f1f1f1fffffff4f4f4fffffff6f6f6
+eaeaeaffffffeeeeeefffffff6f6f6fefefef9f9f9f8f8f8fffffff2f2f2fffffff3f3f3
+f9f9f9fffffff5f5f5ffffffdddddde5e5e5fffffffdfdfdfefefef2f2f2fffffff2f2f2
+fdfdfdfefefef6f6f6f5f5f5eeeeeefffffffdfdfdf1f1f1f3f3f3ffffffffffffffffff
+ffffffecececfffffffefefefcfcfcfffffff6f6f6fffffffffffff5f5f59d9d9d8c8c8c
+fdfdfdf6f6f6ffffffe6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000050505fafafafcfcfcf7f7f7fbfbfb999999fffffff0f0f0
+2626260000000b0b0b000000000000f0f0f0fdfdfdfffffffdfdfdeeeeeefffffff3f3f3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcbcbcbfefefeffffffffffff
+fffffffffffffdfdfd636363f7f7f7fbfbfbffffffd1d1d1cdcdcdfffffffafafafefefe
+f4f4f4f6f6f6f8f8f8f7f7f7f5f5f5f4f4f4f4f4f4f5f5f5fffffffdfdfdf8f8f8f7f7f7
+f8f8f8fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f8f8f8fafafafbfbfbf8f8f8f6f6f6fcfcfcfffffffffffffdfdfdfafafaf8f8f8
+f8f8f8fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefef3f3f3f7f7f7fcfcfcfdfdfd
+fcfcfcfbfbfbfcfcfcfefefef5f5f5f8f8f8fcfcfcfcfcfcfafafafafafafcfcfcfefefe
+f9f9f9f8f8f8fcfcfcfafafaf4f4f4fbfbfbfffffff5f5f5edededf6f6f6999999a9a9a9
+f6f6f6fefefefefefee7e7e7fffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000050505fafafafcfcfcf7f7f7f3f3f39e9e9ee9e9e9fbfbfb
+f1f1f1fffffffefefeffffffe8e8e8ffffffe8e8e8fafafafefefef3f3f3f8f8f8fdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcc8c8c8fbfbfbfffffffcfcfc
+fcfcfcfefefeffffff686868fffffffafafaf8f8f8c5c5c5c8c8c8fdfdfdfdfdfdffffff
+fffffffffffffffffffffffffdfdfdfbfbfbfbfbfbfcfcfcfffffffdfdfdf9f9f9f8f8f8
+fafafafcfcfcfdfdfdfefefef6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6
+fdfdfdfcfcfcfcfcfcfbfbfbf7f7f7f3f3f3f6f6f6fefefef7f7f7f7f7f7f6f6f6f6f6f6
+f8f8f8fafafafdfdfdfefefefafafafafafafafafafafafafafafafafafafafafafafafa
+f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fdfdfdffffffffffffffffff
+fdfdfdfdfdfdfffffffffffff9f9f9fcfcfcfffffffffffffefefefefefeffffffffffff
+fdfdfdfbfbfbfffffffefefef8f8f8fefefefffffff9f9f9f6f6f6fbfbfba1a1a1a8a8a8
+ffffffffffffffffffe6e6e6fffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000050505fafafafdfdfdf8f8f8fafafa9f9f9ffdfdfdf5f5f5
+e2e2e2f6f6f6efefeff5f5f5ffffffecececefefeffefefef9f9f9fffffffefefef7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffc9c9c9fbfbfbfffffffcfcfc
+fbfbfbfcfcfcffffff6b6b6bfffffff7f7f7f0f0f0c5c5c5cbcbcbfbfbfbfcfcfcfefefe
+f6f6f6f7f7f7f8f8f8f6f6f6f3f3f3f0f0f0efefeff0f0f0fafafaf8f8f8f6f6f6f6f6f6
+f7f7f7f8f8f8f8f8f8f7f7f7fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffdfdfdfcfcfcfcfcfcf7f7f7f2f2f2f5f5f5fbfbfbfcfcfcfbfbfbf9f9f9f8f8f8
+f6f6f6f4f4f4f3f3f3f2f2f2fefefefefefefefefefefefefefefefefefefefefefefefe
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fffffffffffffefefefbfbfb
+f8f8f8f8f8f8fafafafdfdfdf7f7f7f9f9f9fbfbfbfcfcfcfbfbfbfafafafbfbfbfdfdfd
+fafafaf7f7f7fbfbfbfbfbfbf5f5f5fafafafefefef6f6f6fffffff7f7f79999998d8d8d
+f3f3f3f4f4f4fbfbfbe8e8e8fffffffffffffefefefefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000050505fbfbfbfefefefafafaffffff8f8f8fffffffffffff
+f2f2f2fffffffefefef7f7f7eaeaeaecececfffffff7f7f7e0e0e0ffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdccccccfdfdfdffffffffffff
+fdfdfdfbfbfbfdfdfd6b6b6bfefefefdfdfdfcfcfcdcdcdcd9d9d9f6f6f6f7f7f7f8f8f8
+fffffffffffffffffffffffffefefefcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfcfcfc
+fefefefefefefdfdfdfbfbfbf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7
+fffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffff
+fdfdfdfafafaf6f6f6f4f4f4f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8
+f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fffffffffffffffffffefefe
+fcfcfcfcfcfcfdfdfdfdfdfdfafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefafafafefefefffffff9f9f9fcfcfcfffffffafafafbfbfbf0f0f0a5a5a5939393
+fffffffafafaffffffebebebfffffffffffffefefefdfdfdfdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000050505fbfbfbfffffffcfcfcfdfdfd969696edededf4f4f4
+ffffffffffffecececfafafafffffffffffffdfdfdfcfcfcfdfdfdf4f4f4fafafaffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffc9c9c9fafafaffffffffffff
+fffffffcfcfcfcfcfc6a6a6afafafafdfdfdf7f7f7cdcdcdacacaca5a5a59d9d9d9d9d9d
+959595979797999999999999979797969696979797989898969696959595959595969696
+9898989898989696969393939b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b
+9393939191919292929595959696969494949696969a9a9a8f8f8f909090939393959595
+9696969595959494949393939d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d
+9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b959595969696969696979797
+989898979797959595949494939393939393939393949494959595959595949494939393
+9898989292929696969999999393939595959999999494949797979e9e9e888888949494
+fffffffefefeffffffe2e2e2fffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfdfdfda3a3a3f6f6f6ffffff
+ececece9e9e9f8f8f8fffffff1f1f1fcfcfcefefeffafafafffffffafafafbfbfbf9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacaf6f6f6f9f9f9fdfdfd
+fffffffcfcfcfcfcfc6a6a6af9f9f9fefefef3f3f3d0d0d0aaaaaa969696939393979797
+9393939696969898989898989898989797979898989a9a9a9d9d9d9c9c9c9b9b9b9c9c9c
+9e9e9e9e9e9e9c9c9c9a9a9a989898989898989898989898989898989898989898989898
+9c9c9c9a9a9a9a9a9a9d9d9d9d9d9d9a9a9a9a9a9a9d9d9d9898989999999b9b9b9c9c9c
+9d9d9d9c9c9c9c9c9c9b9b9b989898989898989898989898989898989898989898989898
+9696969696969696969696969696969696969696969696969a9a9a9b9b9b9c9c9c9f9f9f
+a1a1a1a0a0a09e9e9e9b9b9b9c9c9c9b9b9b9b9b9b9c9c9c9d9d9d9e9e9e9c9c9c9a9a9a
+a1a1a19999999d9d9da2a2a29c9c9c9c9c9ca0a0a09d9d9d9191919898989b9b9badadad
+f3f3f3f7f7f7fafafadadadafefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000050505fcfcfcfffffffefefef8f8f8a4a4a4cdcdcddfdfdf
+c1c1c1cececeddddddc5c5c5cececedadadad3d3d3bcbcbcc9c9c9c4c4c4d5d5d5cacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
+cacacacacacacacacacacacacacacacacacacacacacacacad9d9d9fdfdfdf8f8f8fbfbfb
+fffffffcfcfcfbfbfb696969fdfdfdfffffffffffffffffff9f9f9f6f6f6ffffffffffff
+fdfdfdfffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfbfbfbfbfbfb
+fdfdfdfdfdfdfcfcfcfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfcfcfcfffffffffffffcfcfcfbfbfbfcfcfcffffffffffffffffffffffff
+fdfdfdfbfbfbf9f9f9f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfafafafcfcfc
+fffffffffffffefefefcfcfcfdfdfdfcfcfcfbfbfbfcfcfcfefefefefefefcfcfcf9f9f9
+fffffff7f7f7fcfcfcfffffffcfcfcfafafafefefefdfdfdfffffffefefef9f9f9f7f7f7
+fdfdfdfdfdfdffffffdfdfdffefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fcfcfcfffffffffffffffffffdfdfdf5f5f5f2f2f2
+fffffffffffff2f2f2fffffffffffff2f2f2fffffffbfbfbfdfdfdf9f9f9fffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffecececfffffffefefefcfcfc
+fffffffbfbfbfafafa686868fcfcfcfcfcfcf7f7f7fffffffffffffefefefcfcfcf4f4f4
+fcfcfcfdfdfdfffffffefefefcfcfcfafafafbfbfbfbfbfbfffffffefefefcfcfcfcfcfc
+fefefefffffffffffffefefefbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fefefefbfbfbfbfbfbfffffffffffffdfdfdfbfbfbfdfdfdfbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffdfdfdfafafaf9f9f9
+fcfcfcfefefefefefefdfdfdfffffffcfcfcfbfbfbfdfdfdfffffffffffffdfdfdfafafa
+fffffff6f6f6fafafafffffffbfbfbf9f9f9fdfdfdfcfcfcfffffff7f7f7ffffffffffff
+f3f3f3fbfbfbffffffe2e2e2fefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101000000040404fafafafcfcfcf7f7f7fffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfcfcfcfefefefffffffffffffefefef4f4f4ffffffedededfefefe
+f4f4f4ffffffffffff5f5f5ffafafafafafafbfbfbfcfcfcfdfdfdfefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfefefefdfdfd
+fafafaf5f5f5f0f0f0ecececfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fafafafdfdfdf8f8f8fffffffefefefcfcfcfbfbfb
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefcfcfcfdfdfdfefefefffffffdfdfdfcfcfcfdfdfdfffffff0f0f0ffffff
+f5f5f5f7f7f7f7f7f78a8a8ae6e6e6e6e6e6e7e7e7e8e8e8e9e9e9eaeaeaeaeaeaebebeb
+e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5
+e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5
+e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5
+e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5
+e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5
+e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5
+e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e3e3e3e3e3e3e3e3e3fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9fffffffefefefdfdfdfcfcfc
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfdfdfdfefefefffffffefefefbfbfbf9f9f9fffffff6f6f6f4f4f4ffffff
+fefefefafafafcfcfcd5d5d5f8f8f8f8f8f8f8f8f8f9f9f9fafafafafafafbfbfbfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfbfbfbfafafaf9f9f9
+fafafafdfdfdfffffffffffffcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fafafafefefefbfbfbfffffffefefefdfdfdfdfdfd
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffefefefafafaf6f6f6fffffff4f4f4fafafaffffff
+fffffffffffffefefefffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf9f9f9f6f6f6f4f4f4
+f4f4f4f5f5f5f8f8f8fafafafdfdfdfdfdfdfdfdfdfefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffffefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffefefefafafaf7f7f7fffffffbfbfbfffffff8f8f8
+f8f8f8fcfcfcf3f3f3fffffff7f7f7f8f8f8f8f8f8f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefefefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000040404fbfbfbfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffcfcfcfafafafffffffefefefffffff7f7f7
+f6f6f6fffffffbfbfbf9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fafafafcfcfcfdfdfd
+fdfdfdfcfcfcfafafaf9f9f9fefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffffffffefefefcfcfcfdfdfdfefefefefefe
+f9f9f9fffffffffffffcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffffffffefefeffffffffffffffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffffffffffffffdfdfdfbfbfbffffff
+f6f6f6f3f3f3fffffff3f3f3fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffffffffffefefefdfdfd
+fdfdfdfcfcfcfcfcfcfcfcfcfefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefdfdfdfefefefefefefdfdfdfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fcfcfcfcfcfcfbfbfbfafafafbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000030303020202000000ffffffebebebe5e5e5dcdcdce2e2e2e7e7e7e5e5e5
+e2e2e2e2e2e2e4e4e4e4e4e4e7e7e7e6e6e6e5e5e5e6e6e6e7e7e7e7e7e7e6e6e6e5e5e5
+e7e7e7e3e3e3e3e3e3e7e7e7e7e7e7e3e3e3e3e3e3e7e7e7e9e9e9e6e6e6e5e5e5e5e5e5
+e5e5e5e5e5e5e6e6e6e9e9e9e4e4e4e3e3e3e5e5e5e8e8e8e8e8e8e5e5e5e3e3e3e4e4e4
+e9e9e9e9e9e9e6e6e6e4e4e4e3e3e3dcdcdcdededee9e9e9e8e8e8eaeaead7d7d7ededed
+e7e7e7e7e7e7ebebebebebebffffffc1c1c1fffffffffffffffffff3f3f3fffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101020202000000ffffffe9e9e9e2e2e2e3e3e3e1e1e1e2e2e2e5e5e5
+e6e6e6e6e6e6e5e5e5e6e6e6e5e5e5e4e4e4e3e3e3e4e4e4e4e4e4e5e5e5e4e4e4e4e4e4
+e5e5e5e1e1e1e1e1e1e5e5e5e5e5e5e1e1e1e1e1e1e5e5e5e0e0e0e5e5e5e5e5e5e1e1e1
+e1e1e1e5e5e5e5e5e5e0e0e0e5e5e5e4e4e4e3e3e3e4e4e4e4e4e4e3e3e3e4e4e4e5e5e5
+d7d7d7e4e4e4e6e6e6e3e3e3efefeffcfcfcf0f0f0dbdbdbdededee1e1e1e1e1e1eaeaea
+dfdfdfdfdfdfdfdfdfdbdbdbbababa8b8b8bfbfbfbfefefefcfcfcfdfdfdf9f9f9fefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000000000020202000000ffffffe6e6e6dededec5c5c5bbbbbbb7b7b7bdbdbd
+c1c1c1bebebebbbbbbbdbdbdc5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5
+c5c5c5c3c3c3c3c3c3c5c5c5c5c5c5c3c3c3c3c3c3c5c5c5bdbdbdc5c5c5c7c7c7c2c2c2
+c2c2c2c7c7c7c5c5c5bdbdbdc5c5c5c4c4c4c2c2c2c0c0c0c0c0c0c2c2c2c4c4c4c5c5c5
+c4c4c4d1d1d1c2c2c2bbbbbbc5c5c5b4b4b4acacaccdcdcdc7c7c7c0c0c0cbcbcbc2c2c2
+bcbcbcc5c5c5cdcdcdcdcdcd797979606060fbfbfbfafafaf6f6f6fffffff3f3f3fefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000000000020202000000ffffffe4e4e4dcdcdcd0d0d0c5c5c5c1c1c1c6c6c6
+c7c7c7c0c0c0bebebec4c4c4bdbdbdbdbdbdbebebebebebebdbdbdbcbcbcbdbdbdbebebe
+bdbdbdbcbcbcbcbcbcbdbdbdbdbdbdbcbcbcbcbcbcbdbdbdbcbcbcbbbbbbbcbcbcbfbfbf
+bfbfbfbcbcbcbbbbbbbcbcbcbcbcbcbdbdbdbcbcbcb9b9b9b9b9b9bcbcbcbdbdbdbcbcbc
+c3c3c3acacacc0c0c0c8c8c8afafafc6c6c6dadadab1b1b1bdbdbdb3b3b3c7c7c7c0c0c0
+bfbfbfbcbcbcb1b1b1acacac686868636363fdfdfdfcfcfcf4f4f4fffffffafafafdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000000000030303000000fefefee3e3e3dfdfdfc4c4c4bfbfbfbebebec1c1c1
+bebebeb8b8b8bababac2c2c2c2c2c2c4c4c4c5c5c5c4c4c4c2c2c2c1c1c1c3c3c3c5c5c5
+c2c2c2c3c3c3c3c3c3c2c2c2c2c2c2c3c3c3c3c3c3c2c2c2cbcbcbbfbfbfbebebec9c9c9
+c9c9c9bebebebfbfbfcbcbcbc2c2c2c6c6c6c8c8c8c5c5c5c5c5c5c8c8c8c6c6c6c2c2c2
+cacacac0c0c0c0c0c0c6c6c6bfbfbfb3b3b3bababacfcfcfc0c0c0bdbdbdbbbbbbbbbbbb
+c6c6c6cecececbcbcbd7d7d7676767747474f9f9f9fffffff9f9f9fafafafffffff7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000000000040404000000fbfbfbe4e4e4e5e5e5bcbcbcc0c0c0c3c3c3c2c2c2
+c0c0c0c0c0c0c4c4c4c9c9c9bbbbbbbebebec0c0c0bfbfbfbcbcbcbbbbbbbdbdbdc0c0c0
+bbbbbbbebebebebebebbbbbbbbbbbbbebebebebebebbbbbbc8c8c8bababab8b8b8c3c3c3
+c3c3c3b8b8b8bababac8c8c8b6b6b6bdbdbdc0c0c0bbbbbbbbbbbbc0c0c0bdbdbdb6b6b6
+b9b9b9c5c5c5bebebebfbfbfd1d1d1c7c7c7b6b6b6c2c2c2aeaeaeddddddbfbfbfbababa
+b8b8b8bcbcbcb5b5b5c5c5c5606060737373f2f2f2fffffffefefef9f9f9fffffff3f3f3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000000000050505000000f8f8f8e6e6e6ecececb5b5b5bdbdbdbfbfbfbababa
+bababac1c1c1c2c2c2bcbcbcbfbfbfc2c2c2c5c5c5c3c3c3c0c0c0bebebec1c1c1c4c4c4
+bfbfbfc2c2c2c2c2c2bfbfbfbfbfbfc2c2c2c2c2c2bfbfbfc3c3c3c3c3c3c3c3c3c2c2c2
+c2c2c2c3c3c3c3c3c3c3c3c3b9b9b9c1c1c1c1c1c1babababababac1c1c1c1c1c1b9b9b9
+d4d4d4b7b7b7d0d0d0c0c0c09c9c9cd7d7d7bababa070707101010afafafafafafcbcbcb
+cacacad4d4d4c2c2c2c4c4c4626262696969f8f8f8fffffffafafafcfcfcfffffff8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000020202060606000000f7f7f7e7e7e7f1f1f1c0c0c0c9c9c9c7c7c7bdbdbd
+c0c0c0cbcbcbc6c6c6b7b7b7bebebec2c2c2c5c5c5c3c3c3bfbfbfbebebec1c1c1c5c5c5
+bebebec3c3c3c3c3c3bebebebebebec3c3c3c3c3c3bebebeb8b8b8c8c8c8c9c9c9bcbcbc
+bcbcbcc9c9c9c8c8c8b8b8b8c1c1c1c7c7c7c6c6c6bdbdbdbdbdbdc6c6c6c7c7c7c1c1c1
+c9c9c9c2c2c2b8b8b8bababac6c6c6c6c6c6bebebebdbdbd000000d4d4d4c2c2c2c8c8c8
+b1b1b1c4c4c4bdbdbdc2c2c2707070666666fffffffdfdfdf2f2f2fffffff5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101030303000000000000000000fdfdfde3e3e3e7e7e7c5c5c5b3b3b3bababac8c8c8
+d0d0d0a9a9a90707071c1c1c0f0f0f040404080808aaaaaad0d0d0c8c8c8b1b1b1cccccc
+bcbcbcccccccb2b2b2d0d0d0b2b2b2c3c3c3aeaeaecfcfcfc0c0c0030303080808101010
+000000000000181818c1c1c1c6c6c6b8b8b8bfbfbfb6b6b6d6d6d6c1c1c1b4b4b4b7b7b7
+c2c2c2acacacb9b9b9cacacad8d8d8abababcacacacbcbcb040404b2b2b2c9c9c9bbbbbb
+b0b0b0c4c4c4c4c4c4c2c2c26868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000020202000000000000020202ffffffe8e8e8edededbdbdbdc5c5c5d0d0d0b4b4b4
+010101131313b3b3b3bdbdbdacacacd6d6d6000000c6c6c6b2b2b2c0c0c0b4b4b4b7b7b7
+cbcbcbbdbdbdc9c9c9bebebeb7b7b7d8d8d8d4d4d4afafafc3c3c3cccccc000000bbbbbb
+dadadac5c5c5b1b1b1000000d4d4d4b5b5b5cacacac1c1c1acacacd1d1d1bbbbbbd2d2d2
+c2c2c2cacacac9c9c9c6c6c6a1a1a1cdcdcdccccccb8b8b8070707b7b7b7c6c6c6cbcbcb
+bdbdbdcececeb3b3b3c4c4c46868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000010101000000010101020202ffffffe7e7e7ecececc3c3c3c6c6c6a8a8a8c6c6c6
+0f0f0fbbbbbbb6b6b6e2e2e2bcbcbcb4b4b4020202c0c0c0cdcdcdb4b4b4d5d5d5bdbdbd
+d5d5d5b1b1b1acacace4e4e4b6b6b6a7a7a7cdcdcdb0b0b0b4b4b4c2c2c20a0a0ac6c6c6
+b1b1b1bebebed5d5d5000000010101aeaeaec5c5c5d0d0d0bebebec0c0c0cacacab4b4b4
+9b9b9bcbcbcbaeaeaec2c2c2d9d9d9b0b0b0c2c2c2b6b6b6101010ccccccb1b1b1cbcbcb
+bfbfbfb6b6b6b5b5b5cfcfcf6868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000020202000000000000000000fcfcfce1e1e1e4e4e4aaaaaac3c3c3c5c5c5000000
+e1e1e1b8b8b8aeaeaeb9b9b9a8a8a8ccccccbdbdbdccccccb9b9b9bfbfbfbbbbbb080808
+050505000000cececeaaaaaac8c8c8c6c6c6bcbcbcd5d5d5d2d2d2a0a0a0000000c5c5c5
+c4c4c4c1c1c1000000030303b4b4b4c4c4c4c4c4c4111111000000010101c2c2c2cacaca
+d8d8d8b5b5b5e7e7e7020202000000c3c3c3cfcfcfb5b5b5000000acacacbebebe121212
+040404cfcfcfc3c3c3c0c0c06868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000020202000000000000000000fcfcfce0e0e0e2e2e2c9c9c9bababad3d3d3030303
+9d9d9dbababae2e2e2c1c1c1c6c6c6d0d0d0bdbdbdb2b2b2c5c5c5d4d4d4000000d0d0d0
+b5b5b5dcdcdc060606d0d0d09f9f9fccccccb9b9b9bcbcbcb2b2b2cccccc121212000000
+0707070c0c0c0e0e0e010101cbcbcbd6d6d60a0a0a000000d8d8d8adadad0d0d0dafafaf
+cdcdcdababab000000c5c5c5c2c2c2040404b3b3b3d3d3d3141414c7c7c7c8c8c8030303
+c8c8c8b2b2b2c2c2c2c5c5c56868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000010101000000010101020202ffffffe4e4e4e7e7e7b5b5b5bbbbbbb2b2b2010101
+cacacacfcfcfabababc2c2c2c4c4c4000000030303040404d6d6d6000000cfcfcfb2b2b2
+c5c5c5bababab4b4b40a0a0abcbcbcc4c4c4d3d3d3c9c9c9c8c8c8bdbdbd000000cbcbcb
+d1d1d1b6b6b6c0c0c0050505000000b1b1b1b8b8b8c4c4c4d6d6d6000000000000dddddd
+a8a8a81b1b1bc5c5c5c8c8c8b2b2b2d3d3d3bebebeb5b5b5000000cccccc020202ababab
+dbdbdbb4b4b4c6c6c6c3c3c36868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000010101000000020202020202ffffffe3e3e3e6e6e6bebebed3d3d3bdbdbd070707
+d4d4d49f9f9fdadadac0c0c0bcbcbcdcdcdc050505b5b5b5d6d6d6060606b1b1b1dadada
+c0c0c0bfbfbfc6c6c6000000d6d6d6a6a6a6bdbdbdb4b4b4b9b9b9cacaca0d0d0da9a9a9
+cbcbcba9a9a9dcdcdca6a6a6070707cfcfcfdbdbdb000000000000dddddd000000b7b7b7
+d3d3d3000000c7c7c7bfbfbfd6d6d6b3b3b3b3b3b3c5c5c50000001e1e1e000000dddddd
+adadadbcbcbcc3c3c3bebebe6868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000020202000000000000000000fbfbfbdddddddfdfdfbebebec9c9c9c3c3c3000000
+000000c7c7c7bdbdbdb0b0b0cececebdbdbd000000d5d5d5b9b9b9000000ccccccbebebe
+b8b8b8c8c8c8c7c7c70a0a0ab7b7b7d5d5d5b5b5b5c8c8c8c8c8c8bdbdbd111111bbbbbb
+aeaeaed5d5d5c0c0c0bcbcbc010101acacac040404d8d8d8a1a1a1bbbbbb151515b1b1b1
+c8c8c8000000bbbbbbccccccaeaeaebfbfbfdcdcdcb0b0b0111111b8b8b8c6c6c6000000
+b7b7b7c5c5c5bfbfbfc4c4c46868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000000000050505000000fafafaeaeaeaf3f3f3bfbfbfb2b2b2b8b8b8b6b6b6
+080808000000c2c2c2bdbdbdc6c6c6ababab232323c2c2c2b7b7b7d0d0d0000000cfcfcf
+c6c6c6bababa000000c5c5c5a8a8a8c4c4c4d4d4d4bebebebebebebebebe000000b9b9b9
+dbdbdbb1b1b1a1a1a1181818020202dfdfdf000000c3c3c3cccccc030303030303adadad
+d7d7d7010101090909c3c3c3bcbcbc000000adadadc0c0c0000000c4c4c4cacaca050505
+151515b3b3b3cacacabfbfbf696969707070fdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040404000000000000050505000000fcfcfce6e6e6e8e8e8bcbcbcc8c8c8c3c3c3c2c2c2
+c8c8c8c2c2c2040404171717000000222222000000d3d3d3c1c1c1b3b3b3cbcbcb0a0a0a
+000000090909cdcdcdbbbbbbdfdfdfbdbdbdacacacd1d1d1a7a7a71616160d0d0d101010
+040404070707101010b0b0b0c6c6c6b7b7b7b9b9b90000000d0d0db9b9b90a0a0a1e1e1e
+b5b5b5b7b7b70000000000000e0e0e0f0f0fd5d5d5000000131313000000b4b4b4c6c6c6
+000000141414b3b3b3cdcdcd6565656d6d6df9f9f9fffffffdfdfdfefefefcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+040404000000000000040404020202ffffffe3e3e3dfdfdfc4c4c4a9a9a9d8d8d8b7b7b7
+c0c0c0c1c1c1b1b1b1c5c5c5bababad2d2d2c6c6c6a6a6a6c5c5c5c6c6c6bebebeb9b9b9
+c3c3c3c8c8c8b0b0b0c5c5c5a2a2a2d0d0d0bcbcbcbfbfbfc5c5c5aeaeaebebebeb2b2b2
+bebebeb9b9b9b8b8b8c8c8c8b8b8b8aeaeaedededec9c9c9b1b1b1c9c9c9cfcfcfa6a6a6
+c3c3c3b7b7b7d0d0d0cfcfcfbcbcbcb5b5b5a4a4a4b6b6b6d3d3d3bfbfbfc8c8c8b7b7b7
+b6b6b6c9c9c9babababdbdbd6868686f6f6ffbfbfbfffffffffffffffffffefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+030303000000000000030303000000ffffffe5e5e5e0e0e0cdcdcdcfcfcfaaaaaad2d2d2
+c2c2c2bcbcbcd0d0d0afafafc3c3c3c1c1c1bebebedadadac5c5c5a9a9a9c8c8c8cecece
+c1c1c1bcbcbcc6c6c6c8c8c8c6c6c6b5b5b5cacacac8c8c8c3c3c3d1d1d1bababac3c3c3
+b4b4b4d0d0d0c6c6c6bebebec5c5c5bfbfbfb0b0b0c2c2c2b7b7b7c6c6c6cdcdcdafafaf
+c6c6c6cacacaa9a9a9c9c9c9d3d3d3c4c4c4c9c9c9d7d7d7a7a7a7b8b8b8d2d2d2bfbfbf
+b8b8b8ccccccc7c7c7c4c4c4696969707070fcfcfcffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000020202000000fefefee9e9e9e7e7e7bcbcbcc6c6c6b2b2b2bababa
+bdbdbdbdbdbdbebebecdcdcdbcbcbcc2c2c2b9b9b9c1c1c1bababacbcbcba8a8a8c4c4c4
+c9c9c9acacacbbbbbbc6c6c6b7b7b7cdcdcdb0b0b0c8c8c8aeaeaec2c2c2bdbdbdd7d7d7
+abababbfbfbfb0b0b0d2d2d2aeaeaec4c4c4b8b8b8d4d4d4c7c7c7b5b5b5aeaeaed6d6d6
+b8b8b8bebebecececec3c3c3b9b9b9b1b1b1b7b7b7c2c2c2cececeb3b3b3c0c0c0cdcdcd
+bfbfbfb1b1b1b1b1b1c0c0c06565656c6c6cf8f8f8fefefefcfcfcfdfdfdfbfbfbfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+000000000000010101010101000000ffffffeaeaeae7e7e7d1d1d1aaaaaacacacab7b7b7
+cececebbbbbbd3d3d3b8b8b8b4b4b4c5c5c5cacacac3c3c3b7b7b7c5c5c5c7c7c7c2c2c2
+bcbcbcc5c5c5c8c8c8c6c6c6bbbbbbb9b9b9cececec6c6c6b2b2b2d7d7d7b1b1b1c2c2c2
+bfbfbfb8b8b8d6d6d6b2b2b2c9c9c9bfbfbfcbcbcbacacacbcbcbcccccccc0c0c0c2c2c2
+c1c1c1b9b9b9d6d6d6b8b8b8bbbbbbcececed4d4d4b8b8b8cbcbcbc1c1c1bdbdbdb7b7b7
+b7b7b7c8c8c8d1d1d1cacaca6666666d6d6df9f9f9fffffffdfdfdfefefefcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+010101000000000000000000000000ffffffe7e7e7dededeb9b9b9d6d6d6bcbcbccbcbcb
+c8c8c8bdbdbdb9b9b9c9c9c9cececebabababebebeb9b9b9c9c9c9c5c5c5c4c4c4b8b8b8
+c8c8c8bbbbbbc7c7c7b8b8b8b0b0b0d1d1d1bababab5b5b5cacacab9b9b9c7c7c7bfbfbf
+c7c7c7b6b6b6b8b8b8c3c3c3c3c3c3b3b3b3bfbfbfc4c4c4d2d2d2b7b7b7c9c9c9b7b7b7
+cfcfcfa7a7a7bcbcbcc3c3c3bfbfbfb1b1b1b6b6b6c7c7c7afafafc4c4c4c0c0c0c4c4c4
+cfcfcfbbbbbbaeaeaebfbfbf6868686f6f6ffcfcfcfffffffffffffffffffefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+020202000000000000000000000000ffffffe4e4e4d3d3d37a7a7a5c5c5c7575755a5a5a
+7070706464646969696666666e6e6e6b6b6b6e6e6e6c6c6c7070706666666d6d6d6e6e6e
+6969696868686e6e6e7474746969696e6e6e6e6e6e6b6b6b6767676565656f6f6f646464
+6868687171716969696868687474746262627373736363636666666f6f6f5f5f5f717171
+6060607878786464647575757171716666667a7a7a6363637676765d5d5d616161747474
+6363636060607676767070706464646b6b6bf8f8f8fefefefcfcfcfdfdfdfbfbfbfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fbfbfb030303000000010101000000000000
+0000000e0e0e000000050505000000fefefecdcdcd898989666666666666676767676767
+676767676767666666666666696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+696969696969696969696969696969696969696969696969696969696969696969696969
+6969696969696969696969696a6a6a9a9a9ad6d6d6fbfbfbfffffffdfdfdfefefeffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffdfdfdfffffff6f6f6
+ffffff000000000000020202000000000000
+020202000000000000000000070707fcfcfcffffffecececfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffe8e8e8f4f4f4fffffffffffff8f8f8f2f2f2f5f5f5fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffff7f7f7f9f9f9
+f6f6f60b0b0b000000000000000000000000
+101010020202080808000000090909fafafafffffffffffffffffffffffffefefefdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffff
+fefefe050505000000000000000000000000
+000000000000000000010101030303fffffff6f6f6f4f4f4fcfcfcfafafaf8f8f8f7f7f7
+f7f7f7f8f8f8fafafafcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafa
+fafafafafafafafafafafafaf4f4f4f2f2f2f3f3f3f8f8f8fffffffffffffefefef9f9f9
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdf5f5f5ffffffffffff
+ffffff0000000303030c0c0c000000000000
+0d0d0d0b0b0b0000000101010b0b0be8e8e8f7f7f7fffffffffffffffffffffffffdfdfd
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f0f0f00f0f0f000000000000000000000000
+0000000000000e0e0e010101000000161616090909000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000010101030303
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000a0a0a000000000000
+080808000000090909141414000000000000
+0b0b0b0000000a0a0a000000000000000000090909030303020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000010101060606070707040404000000000000000000
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303000000090909000000090909
+000000151515000000000000000000000000
+000000030303000000010101050505000000101010000000000000000000000000000000
+000000000000000000000000010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000030303060606
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000040404000000040404000000
+000000040404000000131313000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe7.gif b/lib/orber/doc/src/dataframe7.gif
new file mode 100644
index 0000000000..1e18078f0a
--- /dev/null
+++ b/lib/orber/doc/src/dataframe7.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe7.ps b/lib/orber/doc/src/dataframe7.ps
new file mode 100644
index 0000000000..0c484ca876
--- /dev/null
+++ b/lib/orber/doc/src/dataframe7.ps
@@ -0,0 +1,5231 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe7.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 148 274 466 464
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 954 string def
+
+% define space for color conversions
+/grays 318 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+148 274 translate
+
+% size of image (on paper, in 1/72inch coords)
+318.02400 190.00800 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+318 190 8 % dimensions of data
+[318 0 0 -190 0 190] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0505050000000c0c0c000000090909000000030303000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+000000000000050505020202000000000000
+0303030404040000000000000000000b0b0b050505000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000020202020202020202020202020202020202020202020202
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202020202020202020202020202020202020202020202030303030303
+030303030303020202020202020202030303030303030303030303030303020202020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+020202020202020202010101010101020202020202030303030303030303030303030303
+030303030303030303030303000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0a0a0a000000000000000000070707060606
+0202020101010000000a0a0a000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000404040c0c0c060606000000000000
+0202020000000606060808080505050000000909090b0b0b010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101040404040404040404040404040404050505050505050505
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303040404040404040404010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+040404040404040404030303030303030303030303020202030303030303020202020202
+020202020202030303030303030303030303030303030303030303040404040404050505
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+030303040404040404040404030303030303020202020202020202030303030303030303
+030303040404040404040404010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+0a0a0a060606040404000000020202050505
+0202020000000b0b0b000000000000080808020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101010101000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000010101020202
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000010101010101000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+040404000000000000070707030303000000
+010101070707000000000000090909f2f2f2ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7f8f8f8f8f8f8f9f9f9fafafafafafafbfbfbfbfbfb
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfcfcfcfcfcfcfdfdfd
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfcfcfcfbfbfbfafafa
+fafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffdfdfdfbfbfbfafafaf8f8f8f9f9f9f9f9f9fafafa
+fbfbfbfbfbfbfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff252525000000000000020202000000
+0000000707070000000b0b0b020202fffffff7f7f7eeeeeefcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf8f8f8f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfdfdfdfdfdfd
+fefefefffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfefefefdfdfdfbfbfbfafafa
+fafafafbfbfbfdfdfdfefefefefefefdfdfdfcfcfcfbfbfbfcfcfcfefefeffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffefefefcfcfcfafafafafafafafafafbfbfbfbfbfb
+fcfcfcfdfdfdfefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f1f1f10000000000000c0c0c090909000000
+060606000000030303000000000000fdfdfdf4f4f4ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9fafafafbfbfbfbfbfbfcfcfcfdfdfdfefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf9f9f9fafafafafafafbfbfb
+fcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfafafafcfcfcfbfbfbf9f9f9f7f7f7
+f7f7f7f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbf9f9f9f9f9f9fafafafcfcfcffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffcfcfcfafafaf8f8f8f8f8f8f9f9f9f9f9f9fafafa
+fbfbfbfcfcfcfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000000808080000000000000b0b0b
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbffffffffffff
+fcfcfcfffffff8f8f8f5f5f5fffffffffffff9f9f9fffffffffffff5f5f5f0f0f0fefefe
+f1f1f1fffffffffffffffffff6f6f6ffffffeeeeeefdfdfdfdfdfdfafafaf7f7f7f8f8f8
+fbfbfbfffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+fefefefffffffffffffffffffdfdfdfdfdfdfffffffffffffdfdfdfcfcfcfdfdfdfefefe
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+f4f4f4fdfdfdfffffffbfbfbfffffffbfbfbe1e1e1ffffffffffffedededfafafaf4f4f4
+fdfdfdedededfffffff6f6f6fbfbfbfefefef1f1f1f6f6f6fffffff1f1f1f7f7f7ffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfffffffcfcfcfcfcfcfffffffffffffdfdfdfdfdfdffffff
+fffffffffffffffffffffffffffffffbfbfbf8f8f8f6f6f6f9f9f9f7f7f7ffffffe7e7e7
+f2f2f2ffffffecececfffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfefefefffffffffffffefefefcfcfcfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fefefef7f7f7fcfcfc
+fffffff8f8f8f3f3f3fdfdfdf1f1f1f7f7f7f3f3f3f5f5f5f9f9f9f1f1f1fffffff5f5f5
+ffffffe2e2e2f9f9f9fffffffafafaedededffffffd5d5d5fffffffffffffdfdfdfcfcfc
+fefefefffffffffffffffffffdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfd
+fffffffffffffffffffffffffefefefefefefefefefffffffefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff7f7f7fffffffffffff3f3f3fffffffffffffefefed8d8d8f5f5f5fffffffafafa
+f5f5f5ffffffedededfafafaefefefffffffe7e7e7fffffffdfdfdeeeeeefafafafcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfcfcfcfdfdfdfefefe
+fffffffffffffffffffffffffffffffefefefdfdfdfffffffffffffcfcfcfcfcfcffffff
+fcfcfcfdfdfdfffffffffffffffffffffffffdfdfdfdfdfdfffffff5f5f5ffffffffffff
+eaeaeafafafafefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffefefefcfcfcfefefeffffffffffff
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecececf6f6f6
+fffffff9f9f9fffffff4f4f4efefefffffffd9d9d9f8f8f8fafafaffffffebebebffffff
+f7f7f7ffffffdadadaedededffffffecececeeeeeefefefefffffffdfdfdfbfbfbfafafa
+fbfbfbfcfcfcfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefefefefdfdfdfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefee9e9e9f0f0f0f8f8f8f4f4f4f8f8f8ffffffe6e6e6ffffffe6e6e6fffffff5f5f5
+ffffffe5e5e5fffffffcfcfcfdfdfdd0d0d0f2f2f2f2f2f2eeeeeef8f8f8fffffff8f8f8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfefefefefefefbfbfbfcfcfcffffff
+fdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffe9e9e9ffffff000000000000
+fffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefffffffefefeffffffffffffffffff
+fdfdfdfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fbfbfbffffffffffff
+e7e7e7ffffffeaeaea0e0e0e000000000000111111fcfcfceaeaeaffffffe6e6e6fdfdfd
+fcfcfcf6f6f61f1f1f0d0d0d000000121212050505fcfcfcf9f9f9f8f8f8f8f8f8f8f8f8
+fafafafcfcfcfefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefe
+fffffffefefefdfdfdfdfdfdfffffffefefefcfcfcfafafafefefefefefefffffffefefe
+fdfdfdfdfdfdfefefefffffffefefefefefefefefefefefefefefefefefefefefefefefe
+f9f9f9fffffffefefefffffffffffff1f1f1f0f0f0ecececfafafa1d1d1d000000010101
+121212000000000000050505060606222222f6f6f6fffffff9f9f9fdfdfdfffffff0f0f0
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffefefefdfdfd
+fcfcfcfcfcfcfdfdfdfefefefffffffdfdfdfbfbfbfdfdfdfdfdfdfcfcfcfdfdfdffffff
+fffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdf2f2f2ffffff000000020202
+0c0c0cfafafafffffff5f5f5fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefdfdfdfdfdfdfffffffffffffdfdfdffffffffffffffffff
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5ffffffe9e9e9fafafa
+ffffffe7e7e7ecececf7f7f7ffffff000000000000010101ffffffe4e4e4ffffffffffff
+f7f7f7fafafaf6f6f6fcfcfc0b0b0bf0f0f0fefefef6f6f6fbfbfbfbfbfbfcfcfcfdfdfd
+fdfdfdfffffffffffffffffffafafaf9f9f9f8f8f8f7f7f7f7f7f7f8f8f8f9f9f9fafafa
+fdfdfdfdfdfdfdfdfdfefefefefefefdfdfdfbfbfbf9f9f9fcfcfcfdfdfdfdfdfdfcfcfc
+fafafaf9f9f9fcfcfcfefefefefefefefefefefefefefefefefefefefefefefefefefefe
+f2f2f2fffffff6f6f6e4e4e4f2f2f2f3f3f3ffffffeeeeee000000131313000000f8f8f8
+fffffffffffff5f5f5ffffff0000000e0e0ef0f0f0f8f8f8f6f6f6fffffffefefef4f4f4
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfcfcfcfafafaf8f8f8
+f8f8f8f8f8f8f9f9f9f9f9f9fdfdfdf9f9f9f9f9f9fcfcfcfdfdfdfcfcfcfefefeffffff
+fcfcfcfbfbfbfbfbfbfafafafafafafbfbfbfbfbfbfcfcfcfffffff0f0f00a0a0a212121
+e6e6e6f0f0f0fbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f8f8f8fafafafcfcfcfcfcfcfbfbfbfbfbfbfefefefffffff8f8f8fafafafcfcfcfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6f1f1f1ffffff
+f1f1f1fafafaffffffedededf7f7f72a2a2a000000151515000000f8f8f8fffffff5f5f5
+fbfbfbe7e7e7fffffff9f9f9000000f8f8f8fffffff0f0f0fbfbfbfdfdfdfefefefdfdfd
+fbfbfbfafafafbfbfbfcfcfcfdfdfdfcfcfcfafafaf9f9f9f9f9f9fafafafcfcfcfdfdfd
+f9f9f9fbfbfbfefefefefefefdfdfdfbfbfbfbfbfbfcfcfcfbfbfbfdfdfdfdfdfdfbfbfb
+f7f7f7f7f7f7fafafafefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f3f3f3f7f7f7fffffffffffffbfbfbfcfcfcebebeb040404121212000000fffffffdfdfd
+eaeaeafffffff3f3f3fdfdfdf7f7f7000000ffffffe4e4e4f5f5f5fcfcfcfafafaffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfdfdfdfefefefffffff9f9f9f7f7f7f8f8f8fcfcfcfdfdfdfbfbfbfcfcfcffffff
+f6f6f6f7f7f7f8f8f8f9f9f9fafafafcfcfcfcfcfcfdfdfdfffffff6f6f6fbfbfbd8d8d8
+fffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefe
+f6f6f6f9f9f9fbfbfbfbfbfbf9f9f9f9f9f9fdfdfdfffffff3f3f3f5f5f5f8f8f8f9f9f9
+fafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbf1f1f1ffffffffffff
+fdfdfdecececf1f1f1efefefebebeb020202ffffff0b0b0b0c0c0cffffffdadadaffffff
+f7f7f7ffffffffffffececec000000fbfbfbffffffe7e7e7f8f8f8fafafafcfcfcfbfbfb
+f8f8f8f7f7f7f8f8f8f9f9f9fffffffdfdfdfcfcfcfafafafafafafcfcfcfdfdfdffffff
+f3f3f3fafafafffffffffffffbfbfbf9f9f9fbfbfbfffffffbfbfbfefefefefefefbfbfb
+f7f7f7f6f6f6fafafafffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+ffffffe5e5e5e6e6e6ecececeeeeeeffffffffffff0000000d0d0df7f7f7e3e3e3dddddd
+fdfdfdf1f1f1f8f8f8f6f6f6f3f3f3030303fffffffffffffefefef4f4f4f0f0f0ffffff
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffff9f9f9f7f7f7f8f8f8fcfcfcfcfcfcf8f8f8f6f6f6f8f8f8
+f6f6f6f7f7f7f9f9f9fbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbffffffe8e8e8ffffff
+f5f5f5f3f3f3eeeeeef2f2f2f8f8f8f9f9f9f9f9f9fafafafcfcfcfdfdfdfdfdfdfefefe
+f9f9f9fcfcfcfefefefcfcfcf8f8f8f7f7f7fafafafffffff5f5f5f7f7f7f9f9f9fafafa
+fafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf0f0f0
+fffffffffffff6f6f6fffffffafafa000000f0f0f0000000000000131313fcfcfcf9f9f9
+fbfbfbfcfcfcf0f0f0ffffff030303ecececfffffffbfbfbf6f6f6fafafafdfdfdfefefe
+fcfcfcfcfcfcfefefefffffff9f9f9f8f8f8f6f6f6f4f4f4f4f4f4f6f6f6f8f8f8f9f9f9
+f0f0f0f9f9f9fffffffffffffafafaf7f7f7fbfbfbfffffffdfdfdfffffffffffffcfcfc
+f7f7f7f6f6f6fbfbfbfffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+f8f8f8fbfbfbfffffffffffffbfbfbeaeaeaf3f3f3171717000000fbfbfbffffffffffff
+fffffffffffffdfdfdfffffffbfbfbffffffcbcbcbffffffdfdfdffffffffefefef8f8f8
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf9f9f9fafafafafafafbfbfb
+fafafaf8f8f8f6f6f6f5f5f5f9f9f9f8f8f8fafafafdfdfdfcfcfcf6f6f6f2f2f2f3f3f3
+fafafafcfcfcfdfdfdfefefefdfdfdfbfbfbf8f8f8f6f6f6fbfbfbfffffff9f9f9f9f9f9
+f2f2f2fffffffafafafdfdfdf4f4f4f4f4f4f5f5f5f7f7f7f8f8f8fafafafbfbfbfcfcfc
+fdfdfdfffffffffffffefefef8f8f8f6f6f6f9f9f9fdfdfdfafafafcfcfcfdfdfdfefefe
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffffdfdfdf9f9f9f7f7f7ffffff000000ffffffffffff030303000000101010f5f5f5
+f9f9f9fffffffffffff5f5f5000000fffffff6f6f6fcfcfcfffffff8f8f8fbfbfbf6f6f6
+0b0b0b0707070a0a0a0000000606060e0e0efefefefefefeefefeff7f7f7fffffff6f6f6
+1f1f1f000000f5f5f5eaeaea161616191919000000090909efefefffffffe4e4e4070707
+050505050505fefefefffffffdfdfdf5f5f5e6e6e6f8f8f8f4f4f4ffffff121212020202
+080808090909000000f5f5f5fffffffdfdfdfcfcfc0202020a0a0a000000f5f5f5ffffff
+eaeaeaf8f8f8ffffffe3e3e3f8f8f8e6e6e6fffffff1f1f1ffffffffffffcacacaffffff
+0a0a0a0000000000001b1b1b000000ffffffffffffeeeeeefefefefcfcfce2e2e20b0b0b
+101010fdfdfdeeeeee0c0c0c1111110000000808080909090000001515151e1e1e020202
+f5f5f5eeeeee0505050c0c0c010101131313000000fffffff7f7f7e9e9e9070707212121
+e1e1e1fcfcfcfbfbfbfbfbfbffffffededed0c0c0c0707070e0e0e060606f7f7f7ffffff
+ebebebf5f5f5fbfbfbfffffff6f6f60808081010100000000c0c0c000000fdfdfde7e7e7
+ffffffedededfffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffefefefafafaf7f7f7fefefe000000e5e5e5e9e9e9fcfcfc1c1c1c000000ffffff
+f2f2f2ececece7e7e7fcfcfc0b0b0bf9f9f9f6f6f6fffffff1f1f1f5f5f5000000212121
+eaeaeaf0f0f0ffffffffffff090909000000000000fefefefafafaffffff000000080808
+0000000f0f0f2424240000000a0a0a000000090909020202ffffff0606060d0d0d000000
+0000000d0d0d000000e8e8e8ffffffe8e8e8fffffffafafaffffff030303070707fcfcfc
+fafafafbfbfb0404040e0e0effffffe8e8e8f4f4f40e0e0e0000000b0b0b0a0a0affffff
+e8e8e8fffffff9f9f9fffffffffffffafafaeaeaeafcfcfcfefefedfdfdfffffff000000
+010101fdfdfdfcfcfce7e7e70e0e0e020202dededeffffffebebeb0404040c0c0c0d0d0d
+000000ffffff0a0a0a141414000000121212f8f8f8f8f8f8050505020202e8e8e8fbfbfb
+fdfdfdffffffe4e4e4fafafa000000e0e0e0fffffff5f5f5020202090909161616000000
+ffffffe9e9e9fffffff6f6f6f3f3f3181818000000fffffff9f9f9040404000000000000
+fffffff4f4f4f9f9f9f6f6f60202020a0a0af8f8f8f3f3f3f7f7f7010101101010fbfbfb
+f8f8f8f1f1f1ffffffedededffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefe
+fffffffefefefbfbfbf9f9f9fafafa0e0e0effffffffffffffffff0000000909090d0d0d
+fffffffffffffcfcfcfdfdfd090909f1f1f1fffffffdfdfdfafafaffffff010101000000
+fffffff7f7f7e1e1e1edededf9f9f9010101151515fffffff1f1f1fbfbfbfffffff8f8f8
+343434010101f8f8f8f9f9f9f3f3f3fefefef0f0f00c0c0c000000ddddddfefefeffffff
+e9e9e9f5f5f50d0d0d1e1e1eebebebfffffff7f7f7fdfdfd0f0f0f030303f1f1f1fdfdfd
+f5f5f5fffffffafafa000000000000ffffffecececf5f5f5000000141414000000030303
+121212050505edededfcfcfcedededf7f7f7ffffffffffffe9e9e9ffffff030303000000
+f4f4f4e4e4e4ffffffe4e4e4ffffff0c0c0c000000fffffffffffffafafae8e8e80b0b0b
+040404000000f0f0f0f3f3f3ffffff000000f9f9f9ffffff000000070707fffffff7f7f7
+f7f7f7f6f6f6ffffffffffff171717ffffffe1e1e1f4f4f4fffffff3f3f3010101060606
+fffffffafafaeaeaeaffffff000000000000fffffff6f6f6e0e0e00101011818180f0f0f
+f9f9f9ffffffffffff0202020d0d0df1f1f1f3f3f3fffffffffffffbfbfb000000151515
+f5f5f5fbfbfbfefefef9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfdfdfdfefefe
+fffffffffffffcfcfcfafafafcfcfc000000fffffffdfdfdfffffffdfdfd131313000000
+000000cbcbcbfcfcfcffffff0f0f0fe6e6e6fdfdfdfafafafffffff8f8f8f5f5f5fafafa
+f9f9f9fafafafffffffefefeffffff000000000000fafafafefefed4d4d4fffffffefefe
+000000000000fffffff7f7f7fffffff9f9f9fefefe000000000000ffffffe1e1e1dcdcdc
+fcfcfcffffff050505000000fffffffcfcfcf6f6f6f2f2f2070707e5e5e5ffffffe4e4e4
+f6f6f6fdfdfdffffff020202000000fffffffffffff9f9f9ffffff000000202020000000
+0000000101011111110808080f0f0fedededf9f9f9f9f9f9f7f7f7e6e6e6040404f8f8f8
+ffffffffffffe3e3e3f8f8f8ffffff040404020202f0f0f0fefefefdfdfdfafafa040404
+000000fffffffffffff7f7f7ffffffe9e9e9f3f3f3fafafaffffff0000000d0d0dffffff
+f1f1f1f9f9f9f4f4f4000000121212fffffff5f5f5fffffffffffff9f9f90a0a0a000000
+eeeeeeffffffe2e2e2ffffff0b0b0bfefefeeaeaeaf3f3f3ffffff000000000000000000
+f6f6f6fffffffbfbfb000000fffffffffffff1f1f1fbfbfbdbdbdbffffff0000000d0d0d
+fcfcfcf3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfdfdfdfefefe
+fffffffffffffcfcfcfafafaffffff050505ffffffe6e6e6fcfcfcf9f9f9ffffff070707
+0a0a0affffffd6d6d6fbfbfb0b0b0bfffffffdfdfdf1f1f1f7f7f7f7f7f7fffffffdfdfd
+f6f6f6ffffffeeeeee0606060000000e0e0e0c0c0cecececedededffffffe8e8e8fdfdfd
+0e0e0e020202fffffff9f9f9f7f7f7f6f6f6ffffff000000000000e5e5e5fffffffbfbfb
+edededf9f9f9080808020202dbdbdbffffffffffff000000060606fffffffdfdfdffffff
+fffffffefefeffffff000000121212e6e6e6f5f5f5fffffffbfbfbd2d2d2fafafaffffff
+000000171717000000181818000000131313fffffff8f8f8ffffff121212000000ffffff
+f9f9f9fffffff5f5f5ffffffffffff000000252525f5f5f5f7f7f7f7f7f7ffffff0a0a0a
+000000fdfdfde0e0e0fefefef9f9f9e1e1e1ffffffebebebf8f8f8181818000000f1f1f1
+f4f4f4f7f7f7ffffff0c0c0cefefefefefeff6f6f6f0f0f0ffffffebebeb181818010101
+fdfdfdffffffe9e9e9040404151515f3f3f3f7f7f7ffffffeaeaeafffffff7f7f7ffffff
+f7f7f7f2f2f20c0c0c1c1c1cfffffffafafaf8f8f8f2f2f2fffffffcfcfc272727000000
+fffffffffffff8f8f8eaeaeaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefe
+fffffffefefefbfbfbf9f9f9e9e9e9161616ffffffebebebfbfbfbfffffff3f3f3030303
+070707000000fffffffefefe000000eeeeeeffffffebebebfffffffefefefbfbfbffffff
+0c0c0c0000000f0f0ffefefee1e1e1131313161616f9f9f9ffffffedededffffffffffff
+090909070707f0f0f0efefeffafafafbfbfbeeeeee000000111111fffffff3f3f3ffffff
+f3f3f3f3f3f3111111020202ffffffd4d4d4e6e6e61e1e1e0000000a0a0a000000000000
+0202020000001010100606061f1f1fffffffffffffe9e9e9fcfcfcfffffff7f7f7bebebe
+fefefeeaeaeafcfcfc030303101010040404f7f7f7e9e9e9f2f2f2000000010101101010
+000000000000141414000000010101262626000000f9f9f9f0f0f0f9f9f9f6f6f6000000
+121212f1f1f1fffffffffffff0f0f0fffffff0f0f0fcfcfce3e3e3000000000000ffffff
+fffffff8f8f8161616000000fffffff5f5f5ffffffffffffecececffffff0000000a0a0a
+e8e8e8f1f1f1ffffff000000000000ffffffffffffd2d2d2fffffff7f7f7e9e9e9f1f1f1
+f6f6f6ffffff0000000000000000000808080a0a0a0000001010100000000000000b0b0b
+f2f2f2fafafafffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffefefefafafaf7f7f7f9f9f9000000ffffffe5e5e5fffffff0f0f0f3f3f3ffffff
+0b0b0b000000161616ffffff0c0c0cfffffff1f1f1f7f7f7e5e5e5ffffff121212070707
+eeeeeefdfdfdfffffff4f4f4ffffff000000040404f3f3f3ffffffffffffffffffededed
+0000001b1b1be5e5e5ffffffffffffe6e6e6ffffff000000000000f8f8f8fbfbfbfafafa
+fdfdfdffffff0000001a1a1af5f5f5fcfcfcffffff050505000000fffffff9f9f9ffffff
+ffffffedededf6f6f6f8f8f8e2e2e2eeeeeefffffffffffff5f5f5f4f4f4ffffffffffff
+f5f5f5ffffffe0e0e0ffffffe7e7e7000000141414efefefffffff060606010101ffffff
+fefefef1f1f1f3f3f3fffffff9f9f9e5e5e5ffffffffffffffffffeeeeeeececec0b0b0b
+020202ffffffdededef9f9f9f4f4f4f5f5f5fffffff0f0f0ffffffffffff000000000000
+ebebebffffff111111f3f3f3ffffffedededf4f4f4f6f6f6f9f9f9f4f4f4161616010101
+fffffffefefedfdfdf121212040404fffffff0f0f0fcfcfcffffffdfdfdffffffff6f6f6
+f8f8f8ffffff080808000000ffffffedededfbfbfbf9f9f9f0f0f0fffffffffffff9f9f9
+efefefffffffefefeff6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffffdfdfdf9f9f9f7f7f7f8f8f80c0c0cf0f0f0fbfbfbf8f8f8fffffffdfdfdf7f7f7
+f8f8f8171717000000fefefe000000fffffffbfbfbf7f7f7ffffff0000000c0c0cefefef
+fffffff4f4f4f8f8f8ebebebffffff000000181818f0f0f0e5e5e5fefefeeeeeeefdfdfd
+1e1e1e000000ffffffededede5e5e5ffffffededed090909161616f1f1f1fbfbfbfefefe
+f2f2f2ffffff050505000000e9e9e9ffffffededed000000111111f0f0f0f2f2f2ffffff
+efefeffffffff5f5f5fafafafffffffffffff2f2f2000000f5f5f5fffffffbfbfbf8f8f8
+fffffffefefefbfbfbf9f9f9ffffff080808030303f0f0f0f1f1f1050505020202fbfbfb
+e9e9e9fafafafefefefbfbfbfdfdfdfffffff1f1f1fffffff0f0f0fffffffefefe030303
+020202f6f6f6ffffffe9e9e9fcfcfcf4f4f4fffffffffffff0f0f0ffffff000000121212
+f9f9f9ffffff010101f6f6f6fdfdfdfffffff7f7f7fffffffffffffdfdfd000000101010
+eaeaeafffffffefefe060606111111f0f0f0fffffff9f9f9f7f7f7fffffffdfdfdf6f6f6
+ffffffebebeb030303101010eaeaeafcfcfce3e3e3fffffffcfcfcf7f7f7fffffff0f0f0
+ffffffedededffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffbfbfb
+f6f6f6fffffff8f8f8fcfcfcffffff030303f1f1f1f8f8f8fbfbfbfffffffafafaffffff
+f8f8f80000000b0b0b070707090909f2f2f2f6f6f6f6f6f6ffffff000000090909f9f9f9
+fffffff0f0f0fcfcfcfbfbfbf4f4f4131313000000fdfdfdfffffff9f9f9fffffff2f2f2
+0000000e0e0ef0f0f0fffffffefefef1f1f1fdfdfd020202000000fffffffcfcfcfbfbfb
+fffffff1f1f1060606060606f9f9f9f5f5f5ffffff070707020202fffffffbfbfbf9f9f9
+fbfbfbd4d4d4fffffff0f0f0f7f7f7fbfbfbffffff000000fafafaf3f3f3fffffffefefe
+fefefefffffff3f3f3fafafafbfbfb050505000000f9f9f9f9f9f9000000050505fbfbfb
+fafafafcfcfcd7d7d7fffffff1f1f1efefefffffffdbdbdbf6f6f6f7f7f7f5f5f50a0a0a
+0a0a0af5f5f5f7f7f7f6f6f6ffffffefefefe6e6e6fffffffffffff1f1f1ffffff000000
+fbfbfb000000f7f7f7ffffffefefeff6f6f6fffffff8f8f8ffffffececec000000040404
+fffffff6f6f6ffffff161616000000edededfbfbfbfffffffefefefefefefffffff4f4f4
+fffffff0f0f00f0f0f000000fafafafafafafafafaf1f1f1fffffffafafaf5f5f5fcfcfc
+fafafaf4f4f4f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff6f6f6ffffffefefeffefefe
+fffffff2f2f2fbfbfbfcfcfcffffff000000ffffffffffffedededf0f0f0f7f7f7fdfdfd
+e3e3e3ffffff0000000000000c0c0cf8f8f8fdfdfdffffffececec000000141414f6f6f6
+f7f7f7edededfffffffcfcfcffffff070707171717eeeeeefffffff4f4f4e7e7e7ffffff
+0b0b0b000000fcfcfcdbdbdbfcfcfcfdfdfdffffff000000000000f6f6f6ffffffffffff
+f8f8f8ffffff000000010101fefefeecececf7f7f7f2f2f2111111000000fdfdfdf3f3f3
+fffffffdfdfdf5f5f5fffffff1f1f1fefefef6f6f6010101fdfdfdf9f9f9fbfbfbf3f3f3
+f3f3f3fbfbfbf9f9f9fdfdfd040404000000fffffffcfcfcfcfcfcffffff000000040404
+fefefef8f8f8fffffffffffff3f3f3fbfbfbfafafafffffff9f9f9f9f9f9fefefe000000
+000000fefefef9f9f9f9f9f9f7f7f7fffffffffffff9f9f9e7e7e7ebebebffffff202020
+000000181818ffffffe3e3e3fffffffffffffbfbfbfafafad9d9d9ffffff000000030303
+fffffff4f4f4f4f4f4e8e8e80f0f0f0e0e0eebebebf8f8f8f9f9f9e9e9e9ffffffffffff
+eeeeeefffffff3f3f31a1a1a171717eeeeeefffffff7f7f7e2e2e2fafafafafafaf9f9f9
+ffffffdededeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9f7f7f7f4f4f4
+fefefefffffff9f9f9f7f7f7ebebeb232323eaeaeae3e3e3fffffff4f4f4fffffff4f4f4
+eeeeeee6e6e6e9e9e9161616080808ffffffe5e5e5f2f2f2ffffff141414000000000000
+ffffffffffffe5e5e50606061d1d1d0000000b0b0bfffffff4f4f4fffffff5f5f5e9e9e9
+101010000000fffffffffffff5f5f5fffffffefefe0a0a0a020202fffffff7f7f7f7f7f7
+fffffff7f7f72a2a2a010101e6e6e6ffffffe9e9e9fafafa0c0c0c0d0d0d131313ffffff
+fffffffffffff0f0f0eeeeee0e0e0efdfdfdfafafa010101000000fffffff5f5f5ffffff
+fffffff5f5f5ffffff000000000000070707fdfdfdf7f7f7f7f7f7fdfdfd070707000000
+090909dfdfdfffffffffffffeaeaeafdfdfd090909f1f1f1fffffff5f5f5f8f8f8080808
+080808f8f8f8f5f5f5fffffffefefef5f5f5f4f4f4f5f5f5ffffffffffffd3d3d3000000
+030303000000fcfcfcf9f9f9ffffffe3e3e3fdfdfdffffffffffffededed000000000000
+fffffff9f9f9fcfcfcffffff0000001818180b0b0bffffffffffffedededffffff000000
+f3f3f3fffffff2f2f20000000000000f0f0fffffffefefeffbfbfbffffffffffff010101
+e8e8e8ffffffedededf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffeeeeeefffffff6f6f6ffffff
+efefeffffffff6f6f60808080d0d0d0000000101011a1a1af6f6f6fffffff9f9f9fdfdfd
+ffffffe8e8e8ffffff000000000000fffffffbfbfbfffffff4f4f4f5f5f51b1b1b0d0d0d
+000000070707000000ffffffececec0404040f0f0f000000030303f3f3f3070707212121
+0c0c0c212121050505000000f0f0f0eeeeee0b0b0b000000000000080808000000ffffff
+efefef000000101010000000070707000000fffffff7f7f7fffffff7f7f7000000000000
+000000000000151515000000fffffff6f6f6ffffff080808050505000000060606000000
+000000060606000000050505f8f8f8fafafafdfdfdececececececfdfdfdfafafaf8f8f8
+0505051f1f1f0000000303030404040a0a0ae6e6e6ffffffececec0e0e0e0000000b0b0b
+0b0b0b0000000e0e0eecececf7f7f7f5f5f5fffffffcfcfcf1f1f1f2f2f2fffffff9f9f9
+121212f4f4f4ffffffffffffedededffffffe7e7e7f3f3f30e0e0e0000001d1d1d070707
+010101131313e8e8e8ffffffffffff0909090000000000000e0e0e1c1c1c000000ffffff
+ffffffe9e9e9ffffffffffffffffff0000000000000d0d0d131313000000000000f4f4f4
+ffffffe7e7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffff4f4f4f5f5f5
+fffffff3f3f3e1e1e1fdfdfdfefefefffffffffffff7f7f7f6f6f6e1e1e1fffffff5f5f5
+e9e9e9fbfbfbeaeaeafffffffffffffffffff1f1f1fefefef9f9f9ffffffffffffffffff
+fffffffcfcfcf7f7f7fffffffefefefcfcfcfffffffffffffbfbfbfbfbfbffffffe9e9e9
+fefefefbfbfbfefefeffffffffffffffffffe5e5e5fffffff9f9f9fafafafffffff5f5f5
+fffffffafafaffffffffffffefefeffffffff5f5f5fefefefbfbfbfffffff8f8f8ffffff
+fffffff9f9f9f1f1f1f7f7f7eeeeeefbfbfbecececfffffffffffffffffffafafaffffff
+fffffffafafafffffffffffffffffff7f7f7f0f0f0fffffffffffff0f0f0f7f7f7ffffff
+fcfcfcfffffffbfbfbf1f1f1fffffffffffff1f1f1ffffffffffffeeeeeefffffffafafa
+fafafaffffffeeeeeeffffffffffffeeeeeefafafafffffffffffff1f1f1f3f3f3f5f5f5
+fffffff5f5f5f7f7f7e8e8e8f2f2f2ffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffff3f3f3ffffffe5e5e5fffffff5f5f5f9f9f9e7e7e7ffffffededed
+f9f9f9f9f9f9f8f8f8fbfbfbe3e3e3fffffffffffffffffff6f6f6ffffffffffffffffff
+e8e8e8fffffffffffff3f3f3ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5e5e5ffffff
+f3f3f3efefefffffffedededfffffff9f9f9f7f7f7f3f3f3ffffffffffffe6e6e6ffffff
+f8f8f8f2f2f2fffffffefefeebebebf6f6f6fffffffffffffafafafffffff8f8f8f4f4f4
+f5f5f5fffffffcfcfcfffffffffffff4f4f4fefefef9f9f9fffffffffffffffffffdfdfd
+fffffffffffffbfbfbf9f9f9fcfcfcf2f2f2f3f3f3f5f5f5fffffffefefefbfbfbffffff
+edededf2f2f2f3f3f3eeeeeeffffffe1e1e1f8f8f8fffffff7f7f7ffffffe9e9e9fefefe
+efefeffffffffdfdfdfffffffffffff1f1f1ffffffe2e2e2eaeaeafffffffbfbfbf3f3f3
+f3f3f3fbfbfbffffffeaeaeafcfcfcfafafafffffff0f0f0f0f0f0fffffffafafafcfcfc
+fcfcfce9e9e9ffffffffffffeaeaeaf9f9f9fcfcfcf3f3f3f5f5f5ffffffffffffffffff
+fffffffffffffffffff5f5f5fefefefafafafffffffdfdfdfffffffffffffefefeffffff
+f2f2f2ffffffeeeeeefffffffbfbfbecececfffffff5f5f5ffffffeeeeeef6f6f6f3f3f3
+fafafaf3f3f3fdfdfdffffffeeeeeeffffffd9d9d9f5f5f5ffffffffffffeaeaeaffffff
+fffffffffffffffffffffffff9f9f9f6f6f6ffffffe7e7e7ffffffe3e3e3fefefee7e7e7
+fffffff8f8f8e8e8e8fafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffebebebffffffffffff
+f8f8f8f2f2f2ecececf5f5f5ffffffedededfffffffdfdfdfafafaffffffe6e6e6fdfdfd
+ffffffffffffe6e6e6f1f1f1f9f9f9ffffffe6e6e6fefefefdfdfde7e7e7fffffff2f2f2
+fffffff6f6f6ffffffecececfffffffffffffffffffcfcfcebebebfffffffcfcfcffffff
+fffffffffffffffffff4f4f4fffffff9f9f9ffffffffffffedededfffffffbfbfbf1f1f1
+ffffffffffffedededfffffffffffffffffffefefefffffff6f6f6e3e3e3ffffffffffff
+fffffff9f9f9fffffff6f6f6f8f8f8f9f9f9f7f7f7fefefefffffff0f0f0f7f7f7ffffff
+fffffff7f7f7f0f0f0fffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fefefeffffffe9e9e9f9f9f9fffffff6f6f6fffffff9f9f9f0f0f0fffffffefefefbfbfb
+fbfbfbfefefefffffff0f0f0f6f6f6fffffffffffffefefefffffffffffffffffffdfdfd
+ffffffe8e8e8ffffffd2d2d2fffffffafafafcfcfcfbfbfbf7f7f7f7f7f7ffffffe8e8e8
+ffffffe9e9e9f2f2f2fffffffbfbfbfffffffffffff2f2f2f8f8f8fffffff1f1f1ffffff
+f8f8f8fbfbfbf0f0f0f7f7f7f5f5f5ffffffebebebfffffff5f5f5f5f5f5fffffffafafa
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+030104010103000000000100030600fbfff1fefff8fefffafffffbfffefffffefffffeff
+fffffbfffff8fffff6fefff8fefffdfefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffdfffefefffff6f8f7eff1f0
+fefffffefffff8faf9fefffff5f7f6fefffffefffff6f8f7fdfffefefffffefffffdfffe
+f4f6f5eef0effefffffefffff9fbfaf0f2f1f4f6f5fefffffafcfbfefffff5f7f6feffff
+f4f6f5fafcfbf1f3f2fefffffefffde9ebe6fefffbf6f8f3fefffaeff2ebfbfdf8fafcf7
+fcfefbfefffffcfefdf3f5f4fefffffefffff4f6f3fcfefbfeffffe8eae9fefffffcfdff
+f8f9fbe9eaecfeffffeaebedfdfefff8f9fbfeffffe8eae9fefffffefffff3f5f4feffff
+fefffffdfffefefffdfafcf9fefffdf2f4f3fefffff4f5f7fcfefdf2f4f3fefffdf9fbf8
+fafaf8fffffdf3f3f5fdfdfdf9faf5f9faf5fffffffffffffffefffffffff9faf4f9faf4
+fdfdfdf4f4f4fffffbf7f8f3fcfdf8fffffdedededfcfcfafffffbf9faf5fcfcfafffffd
+fffffffcfcfcf9f9f9fffffffafaf8fffffdfbfcf7fffffbfefffafefefcfffffdfcfcfa
+fdfef9eceee9fffffbfdfffafafbf6fcfef9fbfcf7fefffdfbfbf9f9fbf8fffffdfafcf9
+f4f4f2fefffdfffffdf8faf7fefffff6f8f7fefffffdfffefbfdfcfbfdfcfefffffeffff
+f5f7f6fefffff4f6f5fefffffeffffeaecebfefffffafcfbfbfdfcfeffffeff1f0feffff
+fbfdfcfefffffcfefdf2f4f3fefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffffffdfffffbfffffdfffffffefffffefffffefffffefffffefffb
+fefffa030400010000030102000002000002
+040006010004000002000300000b00f7ffdbfcffecfcfff1fffff5fffcfcfffafffffaff
+fffff2ffffe7fdffe5fbffebfbfff7fbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffefbfffe
+fbfffefbfffefbfffefbfffcfcfffafcfff6fcfff4fcfff3fcfff1fcfff1fcfff3fcfff6
+fafff8fafffbfafefdfafefdfafefdfafffbfafff9fafff9fbfffefbfffffbfffffbffff
+fbfffffbfffffbfefffbfefff9fcfff9fcfff8fcfff7fbfcf7fbfaf7fbfaf7fcf8f7fcf8
+f7fdf9f7fdf9f7fef7f7fef7f7fef7f7fdf9f8fcfdf8fcfffcfffffcfffdfcfffbfcfffa
+fefffafefffbfefffffefffffefff4fdfff3fcfefbfbfcfffcfafffcfcfcfcffeafcffea
+fdfdfbfefefffefff5fffff3fefff6fdfff9fdfffcfcfef9fefff4fefff4fefff8fefffb
+fefffdfefffffefffffefffdfefffbfefff8fefff6fefff6fefff6fefff8fefffafefffa
+fefff6fcfff4fefff4fcfff4fefff6fcfff6fefff6fcfff8fdfff7fbfff7fdfff9fbfff9
+fdfff9fbfff9fdfffafbfffafbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfafffbfafffbfafffbfafffb
+fafffbfafffbfafffbfcfef9fffff6fffff7fbfcfff7f9fff5fbfff7fefff6fffaf6fef1
+fcfff1040400030000060105010005010007
+04000c010009000007000400000c00f4ffd8fcffedfcfef3fdfaf3fff7fafff3fffff4ff
+fff9effdfde3faffe1f9fee7fbfff5fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffcfbfffc
+fbfffcfbfffcfbfffcfbfffafbfff7fbfff5fbfff2fbffeefbffeefbffeefbfff0fbfff3
+fbfff9fbfffcfbfffefbfffefbfffcfbfffafbfff7fbfff7fbfffafbfffafbfffcfbfffc
+fbfffcfbfffefbfffefbfffefcfffffcfffffcfffdfcfffbfcfffbfcfffafcfffafcfffa
+fbfff8fbfff8fbfffafbfffafbfff8fbfffbfcfffffcfffff9fef8f9fff3fbfef3fbfff1
+fbfff1fbfef5fcfcfefcfcfaffffeffeffedfffffafffefffffdfffffeffffffecffffea
+fdfcfafdfbfefefef2feffedfdffeffdfff2fbfef7fbfef5fcfef1fcfef0fcfdf5fcfdf8
+fcfcfcfcfcfefcfcfcfcfcfafcfdf7fcfdf5fcfef3fcfef3fcfef3fcfdf5fcfdf8fcfdf7
+fdfff5fdfff3fdfff3fdfff3fdfff3fdfff3fdfff3fdfff5fdfff5fdfff5fdfff5fdfff5
+fdfff5fdfff5fdfff7fdfff7fdfff9fbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffa
+fbfffafbfffafbfffafbfffafbfffafbfffafbfffafbfffafcfffbfcfffbfcfffbfcfffb
+fcfffbfcfffbfcfffbfefff6fffee9fefdebfafafaf7fafff6fcfff7fffff6fff9f7fff0
+fcffef040500030000060107030007010009
+040011010010000010000107000800f4ffecfbfffffbfafffff9fdfff6fffff2fffff2ff
+fff6fdfffaf2fefbf4fcfcf4fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8
+fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8fffff8
+fffff8fffff8fffff8fffff8fffff8fffff8fffff6fffff3fffff3fffff1fffff3fffff6
+fffffafffffbfffffdfffffdfffffbfffffafffff8fffff6fffff3fffff3fffff1fffff1
+fffff1fffff3fffff3fffff3fafbedfafbedfafbebfafbebfbfcecfbfcecfbfcecfafdec
+f8fde9f8fcebf9fbf0f9faf2f9fbeef9faf2faf8fdfaf8f9fffff1ffffeaffffefffffef
+ffffecfffff1fffefbfffffafbfbe3fbfbdffbf9ecfbf8f3fcf6fafcf6f6fcf8ecfcf8ec
+fffdfffffdfffffff6fffff1fffff1fffff1fffff3fffff4fffff8fffffafffefdfffeff
+fffdfffffdfffffdfffffefffffefbfffffafffffafffffafffefbfffefdfffdfffffeff
+fffefbfffffafffffafffffafffffafffff8fffff8fffff6fffff6fffff6fffff6fffff4
+fffff4fffff4fffff3fffff4fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6
+fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6f9f9eff9f9eff9f9eff9f9ef
+f9f9eff9f9eff9f9effbfae6ffffdbffffd9fcfdedfcfefbfafffff8fffff7fff9f9fff1
+fdffef040400030000060108030007010009
+03000b01000c000010000009000600f6fef3fcfdfffbf9fefffdf3fffbf2fff8fefff8fc
+fffcecfffde7fffeebffffe7fefbdafefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6
+fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6fefcd6
+fefcd6fefcd6fefcd6fefbd8fdfad9fdfadbfdfad9fdfad7fdfbd5fdfbd5fdfbd5fdfad7
+fffcddfffcddfffbdefffbdefffcddfffcdbfffcd9fffdd6fffed2fffed0fffecefffece
+ffffcdffffcdffffcdffffcdffffd2ffffd2ffffd3ffffd4ffffd6ffffd6ffffd8ffffd6
+ffffd1ffffd5ffffdcffffdcffffd5ffffd9fffee3ffffe0ffffcdffffc7fffdd0fffdd2
+fffecdfffecdfffbd7fffcd7ffffceffffccffffd4ffffdaffffe0ffffe2ffffdeffffdd
+fffaddfffbddfffbd7fffbd5fffcd3fffdd4fffdd4fffcd6fffcdefffcdffffbe1fffbe1
+fffbe3fffbe1fffcdffffcdefffcdcfffddafffcdcfffcdcfffcdefffbe1fffbe3fffbe5
+fef8e0fef8e0fef8e0fef8defef8defef9dcfef9dbfef9d9fffbd8fffbd8fffbd6fffbd5
+fffbd5fffcd3fffcd3fffcd3fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5
+fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5fefcd5ffffdcffffdcffffdcffffdc
+ffffdcffffdcffffdcffffd4ffffc3ffffc4ffffd9ffffeffcfffbfbfffff8fff7f9fff1
+fdfff1040400040000060108010007010009
+010000000000000007000104000800f5fdeefbfef7fbfae8fcf8c8fff9bbfff6c1fff6bf
+fff9b2fffab1fffab6fefcb2ffffaaffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5
+ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5ffffa5
+ffffa5ffffa5ffffa5ffffa6ffffadffffb0ffffafffffafffffadffffadffffadffffad
+ffffaeffffaeffffaeffffaeffffacffffaaffffaaffffa8ffffa5ffffa3ffffa1ffffa0
+ffff9effff9cffff9cffff9afeff93feff95ffff98ffff9bffff9cffffa0fffea1fdfea0
+ffffa0fdffa2fdffa5fdffa3ffff99ffff99ffffa3ffffa3ffff99ffff99ffffa5ffffa7
+ffff9dffff99ffff9dffff9dfffd99fefe9affff9bffff9cffff9efffea1fffca5fefca5
+ffffa7ffffa6ffffa6ffffa5ffffa5ffffa6ffffa9ffffa9ffffabffffabffffa9ffffa9
+ffffa7ffffa5ffffa2ffffa0ffffa0ffffa0ffffa2ffffa4ffffa5ffffa9ffffabffffae
+ffffb6ffffb7ffffb6ffffb6ffffb4ffffb2ffffafffffadffffaaffffa8ffffa6ffffa5
+ffffa3ffffa1ffffa1ffffa1ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3
+ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffffa3ffff9fffff9fffff9fffff9f
+ffff9fffff9fffff9ffffe9dfffd96fdf99efbf9bcffffdcfffff1fdfff9f9fff5fdfff5
+fdfff2040400040000060108010007000007
+010100000100000100000200000800f6fee9fbfeebfcfbcfefee91f3f17af6ef7af8f074
+f8f16cf6f26af3f371f3f36feae959eaea54eaea54eaea54eaea54eaea54eaea54eaea54
+eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54eaea54
+eaea54eaea54eaea54eaea56ebea5ce9ea60ebe960e9ea60ebe960e9ea5eebea5ee9eb5c
+ebea5ae9eb59ebeb59e9eb59ebeb57e9ec57ebeb57e9ec57ecec5aeaed58ecec56eaee53
+eced51eaee4fecee4deaef4bf0f251eff452f2f357f0f459f2f25ceff15fefee5eecee5f
+edf15fedf15fedf15fedf15ceef351eef34feef255eef257ebed4eebec53ebe960ebe960
+eceb55ecec4eeced49ebed4cf1f15df2f260f3f45af1f654f1f654eff356edef60ecee5f
+e6e950e5e94ce4e750e3e553e3e554e6e557e7e55ce8e65deae95deae95beae959eaea56
+eaeb52eaeb4feaec4deaec4beaec4deaeb4feaeb51eaeb52eaea56eaea58eae959eae95d
+ece863ece767ece765ece765ece863ece862ece95eece95cebe859ebe958ebe956ebea54
+ebea52ebea51ebea51eaeb51eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52
+eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eaeb52eff057eff057eff057eff057
+eff057eff057eff057efef5bf4f164f1ec76f4ef9bfdfcc4ffffe5fdfff1fcfff4fefff6
+fefef4060300040002060108010007000007
+000200000200000200000300000900f5fde5fbffdefcfeb5eaef61eff33ef2f333f5f32c
+f5f523f3f623f2f52af1f52cfcff30fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2f
+fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2ffcff2f
+fcff2ffcff2ffcff2ffcff30fdff35fcff39fdff39fcff3afdff3afcff3afdff37fcff35
+fcff30fbff2ffcff2dfbff2bfcff2dfbff2dfcff2ffbff32fcfe38fbff39fcfe38fbff34
+fcff30fbff2ffcff2dfbff2bf8fc29f8fe2afafe2ef9fe32f9fb35f5f835f4f535f1f435
+f5f73af3f839f3fa32f3fb2af5fc23f5fd20f5fd1ef5fc22ffff35ffff3effff45ffff45
+ffff3effff33ffff27ffff2bfafa36f9fa3afafe2dfaff25f8ff1ff6fd23f1f82cf0f72d
+f6ff28f5ff24f5fa2af4f82ff4f831f6f737f8f93cf9f93ffeff3ffeff3bfeff38feff32
+feff2dfeff2afeff28feff28feff2afeff2dfeff31feff32feff34feff36feff38feff3a
+fefe3afefe3cfefe3afefe3afeff39feff37feff37feff35fdff32fdff32fdff30fdff2f
+fdff2ffdff2dfdff2dfdff2bfdff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2d
+fcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2dfcff2df6fa27f6fa27f6fa27f6fa27
+f6fa27f6fa27f6fa27f7f830f3f13ef0ea56f2ee82fefcb2ffffdafcfee9fbfdf0fffff6
+fefef406020004000406000a010005000005
+000100000200000100000200000700f7fbeafdfedefdffaceff64ef5fc22f9fd13fcfd0b
+fcfe05faff05f9ff0bf9fe0cfcff0efcff0efcff10fcff0efcff10fcff0efcff10fcff0e
+fcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0efcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0e
+fcff0efcff0efcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0efcff10fcff0e
+fcff10fcff0efcff10fcff10f9fe0ef9fd10f9fd12f9fd13f9fc15f9fc15f9fd13f9fd10
+f9fe0cf9ff09f9ff07f9ff07f9ff07f9ff09f9ff0bf9fd10f8fb16f8fa1af8fb16f8fb14
+f8fc11f8fc0ff8fd0df8fd0bf9fe0cfaff0ffbff12fbff15f9fc17f6f916f3f516f1f316
+f8fb24f8fc21f8fd1af8fe16fafd16fafe11faff04faff08f9fa18f9f821f9f821f9f821
+fbf821fbf918fbfd06fbfd06fafa1cfbfb1ffbff10f9ff05f7ff02f3fe04f0f713edf514
+f6fe15f4fd10f2fa11f2f812f2f812f5f815f8f81cfaf922fafa20fafa1cfafb17fafd10
+fafe0bfafe07fafe07fafe07fafd0cfafd0efafc13fafc15fafc15fafc15fafc15fafc15
+fcfb13fcfc12fcfc12fcfc10fcfc10fcfc10fcfc0efcfc0efeff0efeff0efeff0efeff0e
+feff0dfeff0dfeff0dfeff0dfcff0dfcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0d
+fcff0efcff0dfcff0efcff0dfcff0efcff0dfcff0efcff0dfbfe0dfbff0cfbfe0dfbff0c
+fbfe0dfbff0cfbfe0dfbfd16fdf82af6f044f8f373ffffa9ffffd4fdfde5f9fbedfefff7
+fefef606020004000406000a010005000005
+00000500000700000c00000c01030ff8f9fbfffeedffffb7f3f74bf8fd1afdfe0cfdfe02
+fefe00fcfd00fbfe01fbfd02fcfc06fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06
+fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfb06
+fdfb06fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06fdfb08fdfb06
+fdfb08fdfb06fdfb08fcfc06ffff08f7f900f7f902ffff10fbfc0bfbfc0bffff11eff100
+f6f800fdff03fbfe01ffff07eff200ffff07f5f700ffff10ffff15f5f50bf4f408ffff11
+fdfe0cf2f300feff09fdff08fcfe05f7f900ffff0afafb07ffff12f3f305ffff17f4f30b
+feff1df2f313fdfe1affff25ffff31dad903ffff11ffff0afbf91af8f51afffd15f8f60e
+f4ef19f8f417fbf906ffff0bf5f30bffff1af8fa03fbff01f7fe00faff0ee9ed12f8fc2c
+fdff32edf01df6fa1dfcff18e9ec00ffff15e4e200fdfa17fdfa1ff6f318f4f30fffff13
+ffff0ffcfe07f7f902fbfc0afefe12f6f50dffff1ff9f716faf915fcfb15f7f60effff12
+fafa06ffff08fafa02ffff06ffff05f8f900fdfe03f7f800fdfe03fdfe03feff04feff04
+fefe06fdfd05fcfc04fcfc04fdfc04fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04fdfb06fdfc04
+fdfb06fdfc04fdfb06fdfa0bfaf618fffb3aefea5affff9dfcfbc5ffffe5fdfff1fdfef8
+fefdf8040301030004060108010005000005
+00000900000b00000c00000e010214f9f8fffffcf6ffffbdf4f64bfafd18fefe0afefd02
+fffc03fdfc04fcfc04fcfc04fdfc04fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb04
+fffb04fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fdfc02ffff01fcfd00feff04f4f400f7f606fcfb0bf9f807ffff10
+ffff0cf9fa00f5f600ffff02ffff06ffff0bfcfb0affff12fefd0dffff0ffefd0cf4f400
+eeee00ffff11fcfc04f8f900fbfc01ffff05ffff05ffff08ebec00f9f901eeee00fefd0c
+ffff16dfde00f8f51aede81dfdf344f3ea33ffff1bf9f807f4f012ffff24fffd0cffff11
+ffff30fbf322f4ee04f2ed00ffff18f2f103ffff12fdff06eaf000eef310fcfd35f0ef3c
+eee848f2ee45eaeb23ffff27f3f704e6e800ffff16f9f609ffff20fffd1cfffd14efee00
+ffff09ffff08ffff0ef5f403fffe15ffff1cfaf716f6f312f2ef0affff1bfefd0ffafa06
+fffe04ffff0bf1f000fbfb00fcfc00f3f300ffff0effff05fefe00fefe00fefd02fefd02
+fefd03fefd03fefd03fdfc02fffb02fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffa08fbf80dfffc2fefec51ffff98fcfbc2ffffe5fdfff2fcfef9
+fdfef9040301030004060108010005000005
+00000400000400000400000501030ff9f8fefffcf8ffffc0f4f54ffafc1cfdfc0efffb0b
+fff910fffa12fdf911fcfb0dfdfb0afffb06fffa08fffb06fffa08fffb06fffa08fffb06
+fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb06
+fffb06fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06fffa08fffb06
+fffa08fffb06fffa08fdfc04f4f400fafb00ffff0ef9f808ffff19ffff19e8e600f9f80a
+e8e800f2f300f9fa00f8f900ffff0cffff17fbf815e5e200f9f808f6f600fdfd07ffff16
+fdfd09ffff0ceaea00ffff19fefe06ffff05feff03ffff05fdfe00ffff13f2f300ffff07
+f5f602ffff1bffff3ae8de2fe6d64bffff71f7f21df5f406fffe1df2ef0ae6e400f7f405
+f8f023fdf42dffff32f6ef0befeb03fffe0edada00ffff19f3f41af8f933ffff59211c00
+3c2f00322600e9e53cefef1becef00ffff03f6f500ffff0ae9e800ffff16ffff0cffff0e
+eaed00fcff02f5f700feff09f8f80cfcfb15f1f00cffff21f6f608f2f300eff100feff04
+f1f000edec00ffff0dffff07ffff08ffff0df0ef00f5f400fdfc04fdfc04fefd05fefd05
+fefd05fefd05fefd05fefd05fffb04fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04fffb06fffb04
+fffb06fffb04fffb06fffb06fbf908fffe28efed4dffff96fcfbc3fdffe7fcfff4fafff9
+fcfef9030301010002060107010005010005
+000000000100000200000200010506f9f9f9fffdf4ffffbff3f54cf9fb1bfdfb10fffa0e
+fff915fff917fdfb13fdfb10fefc09fefd05fffc07fefd05fffc07fefd05fffc07fefd05
+fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05fffc07fefd05
+fffc07fefd05fffc07fefd03ffff03fbfe01f6f602f3f307fdfa19ffff22fffe20ffff1d
+fefd0fffff18fefe08fbfc0af3f108fefc1dffff2dfefb24ffff16ffff0eeceb00e7e700
+f7f50affff19f9f70ef4f408ffff14fcfd0bf9f903e4e600fcfd00f0f300f6f800f9fc00
+fbfc08f4f515e0db1dfffb5c241200201100faf42cffff20fffd18fffd14ffff13ffff1c
+f7ee25f5eb29fdf622faf517f8f311ffff22f0f006ffff24eff02ae8e935e6e53dfffa78
+1d0d00130500fffb67fdff30fbff10fbfe01ffff07fafa06ffff12fbfe0deaec00faff02
+f1f400ffff07f5f700fbfe0df9f812f8f919efed0fffff1dffff11f2f700fcff02ffff07
+ffff12f8f60dffff17f6f409f6f306fffe0ef6f304ffff0efdfb08fcfc08fdfb06fcfc04
+fdfc04fcfc04fefd05fefd05fefd05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05fffc05fefd05
+fffc05fefd05fffc05fefd05fafa06feff27eded4dffff98fbfbc5fcffe9fafff6f9fffb
+fafff9020401010002060107010005010005
+010100000200000400000500030700f9fbeefffeebffffb7f3f645f9fc15fdfc0efefb0c
+fefa13fefa13fdfc0cfdfd07fdfe03fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00
+fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00fefd02fdfe00
+fefd02fdfe00fefd02fdfe00fdff00f8fe00f3f403fbfd16ece90ee3e20cfefb24e8e80c
+f3f20ef5f70ddfdf00ffff1ef5f217f5f324f8f12fffff36f2f011ffff1afefd17fdfe1c
+ffff2af1f117fcf922e7e70debe80dfafb19fffe16fdff0fffff15eff500ffff08faff03
+f7fc0affff34f0eb39f9f057403300fffe64f8f430e6e707ffff13fdfd0ff5f312e5e10c
+fff831ffff35e6e207f9f518fffa25f2ee1bffff29ecee21ebec36ffff54dee331f7f870
+261700150700f8f566f1f626fbff14faff08ffff1df7f612f7f910f4f909ffff12f5fc01
+ffff0bf0f600f8fb0ceef10cffff2dffff2ff8f625e7e80efafc13feff0effff09e7eb00
+faf819ffff30f3ee18fffd24fffd20f0ee0dffff1ef6f60cfcfb0dfafb09fbfb05f9fb00
+fbfc00fbfe00fdfe00feff01fdfe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00fefe00fdfe00
+fefe00fdfe00fefe00fdfe03f9fa06fcff2aeced51ffff9cf8fcc9fbffecf9fff9f7fffd
+fafffb020401010000040207010005010007
+010002000100000400000500030700f9fcebfffeeaffffb6f1f642f6fc12fcfd0cfefb0c
+fefa12fdfb10fdff08fdff03feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+feff01feff01feff01fdff01f0f500f4fa04fbfd14ffff27f2f021edec22ffff37fbfa2c
+f9f822ffff30eded11ffff29f8f52cfbf83bf9f144e0db29f3f025f4f420f1ef20f0ef25
+f3ef2cfbf83bffff47e8e528fffb3dfaf831e7e516fafc1fe8ea01f1f604f0f401e0e500
+e6eb0ae9ea24fffd5b191100f4eb4efcf64aece928ffff2bfafd0eeaec05fffb3afff946
+f3eb2efbf92bfffd1cf6f618ffff44e2db2ae9e82ef4f53ffcfd57eaf046fdff48d7dc4a
+150800170800f6f76de3ec1fe7ee0aeff50fece91efdf935eae91bf9fc27f5f91ef1f518
+e4e909f7fb22f8fa2dfafa3ae4e22fdfdc2ff5f243f9f83efcfd33f8fc21edf30bfbfd1d
+f9f62fefea2ef7ef32ece825eee822f7f527f4f01dfdfd21faf817f8fa10f9fa09f6fa03
+f9fb00f9ff00fdff01feff02fdff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00feff01feff00
+feff01feff00feff01fdff04f7fb08fbff2ceaed54feff9ff6fcccf8fff0f7fffbf6ffff
+f9fffb000500000000040205010005010007
+01001500000c000100000200030600f9faf2fffdefffffb9f1f546f6fc14fbfb0dfdfc0c
+fdfb10fefd0dfdff04fbff01fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff06fbff0ef2f810f9fa22e4e619fffc3fffff4edfdb24f3f236
+e8e622f3f42cedeb24ecec2afdf846e6e13dffff6dfaf35cf2ec40efed3affff5afffc56
+c3ba1df8f15af3e956fffa64ffff69e5df3ffbf549f8f73bd8d60ffeff2cf4f51bf8fb24
+ffff45e4e237f8f165302900f1ef3af6f731f3f331f5f728e5e801ffff2ef2e855fff36d
+f6ee45dfde10fcfe14f4f619e4da3dfff670fcf662f1f057e0e04af8ff57edff2fdae541
+0b010030240ae0e25aedf830fbff2dfcfe38f2ea49fff663fdf85cebe746efec45fbf94f
+ffff5cf2ee4debe553ebe35efef37df6ea7afdf27ffcf374dad440fefc52d7d71dfbfb41
+f8f14bfef558fbf152fff953fff94efcf743fffd3ffcfa33f8f625f6f71df6f713f5f90c
+f6fa07f8ff04fbff04fdff05fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01fdff03fdff01
+fdff03fdff01fdff03fdff06f7fa0bfbff2feaed58feffa3f5fcd0f6fff3f6fffdf5ffff
+f7fffb000500000000040205030005030007
+01001b000013000005000100030502f9faf4fffdf1ffffbdf1f44df6fa1dfbfa16fdfb12
+fefb10fefd0dfdff04fdff01fdff03feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+fefe06fefe06fefe06fdfe0af6fa0fedf212ffff35dbd922ffff69e5dd4a2e2c002c2a00
+fffd5ce3e03bf9f93fffff43e1e22c272500231900281c00fff768211c002e2900faf25f
+ffff87ede06e231a002a22001e1600322900f0e56ffff976efed43ffff3ee8ea1af8fb32
+e1de39f9f464211900f6f159f2f333feff34e4e42af7f842ecee31ffff511e17002b2100
+f9f162fffe50f1f117fffe33403500221300261b00fffb7d262900273100faff31f0fc52
+241b000d0000feff76d9e223e6eb2ffffe561f1700302600251e00353000efea74ddda59
+ffff6e1716002b2300281e001e1400312700201500190d00322800fffd73f0ef47f9f754
+f1e96cfff67f201b002d2a002e29001f1900fef46eefe756f7f141f6f42df5f61ef5f612
+f6f80ef8fc09fbff06ffff05fdff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+feff03feff03feff03fdff06f7fa09fbff2feaed58feffa3f5fcd0f6fff3f6fffdf5ffff
+f7fff8000700000100040301030004030007
+00001500001200000b000005010602f9fbf0fffeedffffbff1f15bf6f731fcf626fef81c
+fff913fffc0dfefe06feff03fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06fffe06
+fffe06fffe06fffe06fffe06fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe06fffe06fffe04fffe04fffe03fffe03fffe03fffe03fffe03ffff05ffff05ffff07
+fffe09fffd08fefc09fcfb0bfcfe15eff016fafb33fffc5e1f1000332400eeec49eeed45
+221a00373000e8ed3bddea16f7ff2edae0361f17002d1e00231700f3ea4dfef84ae2db45
+f5e391301e002c2400f0eb59f7f2632b21002c17001d0a00322c00eaeb2eeaef19f9fb36
+f6ee67271d00292100ffff56eef02de0e322ffff5be7e957292a001c1d00eff55ff1f361
+211800f0e370f9ef40f3e840f3e5822a1b002213001e1700eff347e3f01cedfc1be9ef47
+221400190900e9eb5ce9ee39eff0563834002c2700f6f07efbf899110e00120e00f8f894
+cfd63af0f75c211c00160d00f0ec80e7e26ce6df752219002a2100eee969e9e93df9fb5c
+f4ee9a1512002f3300dde544ffff7b241c002614001e0b00211600ffff54fcfa2bffff21
+eeeb08ffff14fefd05ffff01fffe03fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe06fafb07fcff2aeaeb51ffff9ef7fdcff9fff2f8fffaf4fff9
+f7fff4000700000200040300030004030007
+00000b00000b000009000104010600f9fbedfffee8ffffbbf2f05df8f534fdf528fff71c
+fffa12fffc0afffe06fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe04
+fffd04fffe06fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffe06fffd06fffe06
+fffd06fffe06fffd06fffe04fffd04fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffd04fffe04fffe03fffe03fffe03ffff01fffe01ffff01fffe01ffff04fffe05ffff05
+fffe07fffd08fffc07fcfb0af6f80ef4f720f7f53ee1d952241100f5e695ffff63e7ea43
+f6ec931a1200f3f764fbff47cbdc02ffff66211a000e0000fff97dfef84ce6e42dfffb6c
+1d0800210e00f0e879e6e654f9f868cdc65c1d09002d1a00efea6afcff4be6e926fdfd4f
+fff582170b00fcf75bf3f339e1e41bffff45eff24d1a1b00130f00e1e09ddde460f7fe74
+271b001c0a00fdee53fff759f9ec901307001e0f00f3ee8ae5eb2ff3ff1cf5ff1ef6fc54
+1909001c0d00f4f45efcff4af4f55be8e862eae66bdbd86fdfdd903636001e1c00dfe287
+e5f453dfeb4d0c0900241c00edec76e2e25cffff8d1f1700191000fbf47fe0e236f4f85d
+120e00151400dde961dfee49c8cf41f4f192190700180400f6ec7df0ec43eeeb22f7f517
+faf513f2ee06f1ec00ffff0efffd04fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe04fbfb05feff28ebea51ffffa0f9fcd1fafff2fafffcf5fef9
+f9fff2000700000200040400030002030005
+000100000100000100000200030700f9fce7ffffe1ffffb4f2f252f8f729fdf71bfff912
+fffb07fffd03ffff01ffff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff00ffff00feff00ffff00ffff02ffff02ffff02
+ffff02feff03fefd02fbfd06f9ff10fbff2ffaf75a312a00241800dfd772e9ed3ef0f64a
+e0db7f282100110e00f9ff76deed30dde9472621002e2500d9da37e4e71affff46d4d04a
+200c00261500e7e183fdff7af1f467f9f884140a001b1200e8ea59e4e839fefe62f8f46f
+2a2100fff889faf858fcff3ce6ec16dbe216ebf149232200251c00251f09131500242300
+150600271600fffa5ae7df36e8df78282000261d00eeee76f5ff37daed00eafa13f0f84d
+1b0d001e1200d8dd3bf1ff2edbe429fcff66f0ed78ffffa60a0900060700121300f3f995
+c2d032ffff770a0700171100e5e970edf166e6e571251f00241c00f0e97effff57e7ec51
+232100060600e8f571ebfd53e4f14ae1e6652319001c1000f5ef75e2e137ffff3cf6f819
+edec06f6f30efcf719fbf712fffd08feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff04fcfa09fffd2eede856fffea3fafad4fcfff8fbfffff7fdfd
+f9fff6020600000200040400010000010004
+000200000300000200000300030700fafce6ffffdfffffb0f4f34bf9f91ffff911fffb09
+fffb02fffd00fffe01ffff01feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00ffff00ffff00ffff00
+ffff00feff01fdfe00f9fe04fbff11dae30ef3f353241f00201700fdfa89e3ea38e6ee41
+fffc9d1912002f2e00dfe466ebfa49e6f157110e000e0800f9fc55e5ec13f0f72bf6f75b
+eee59a1f1300110c00f3f48ce7ea752c2f00232200edec80eff553eaf247f3f36f191400
+1c1700eeec5be9e939edf12af1f723fcff39e3e941383800150d00c7c2a5f0f496f3f587
+f9f19ef4e77efffd4af5f03cffff951b1400181200f1f272f0fe2be4f705fbff28eff651
+2b20000e0300f5fb5bfbff43e9f04bebee63222200181600f2f2aa171a001e2300e6ee7e
+edfc59dce8541a1700161200f6fb7ae5ee57ebed702420001c1400e6e277e8ec3fe1e840
+cdd276262d00152100f1ff6af2ff651c24001f1b00e2de7be9ea50f6fb3ce4e817fcff21
+fdff18fefd15fbf91afffd18fefe06feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff04fcf90cfffc31eee759fffda7fcf9d8fefdfbfdfefff8fbff
+fafff9020500010100040300010000010000
+000300000300000200000200030600fafbebffffe2ffffb0f4f448f9fa18fffa0afffb02
+fffb00fffd01fffd03fffe03ffff01feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00ffff00ffff00ffff00
+ffff02feff01fdfe02f9fe04f8ff0de4ef0cffff473233001e1700f9f683e0e739fdff5c
+d3d06f130e00262a00eaf457e5f53cf9ff6e0a0400110900f1f362fbff35edfa16f5ff2c
+eff553e6e772191600151100221f00101100f6fd7cd6e043e9f644d1da33ffff882e2d00
+fcff48eef724f6fb2dffff3df6f832dfe126f6f954232600110f00ffffaceaf752e7f639
+e3e846f6f44af9f822f0ed2cf1e87f0e0500251e00eced6dedfc25f6ff15f6ff30e1e64c
+1b12001f1600e6e95af0f55d1d17001c1600e8eb5ef9fe6eecf0920c0f001b2200f0fb78
+dbeb42f8ff6f1c1a00171500e7ee60edf854f3f76e2424001b1500e8e679f4fc47f5ff40
+f4ff6ccedc61222b00151c00141a00111500eff079fdff6ce7f121f3ff17e0e705faff1e
+fbfe17fbfe11f7fb08fcfe05feff01feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00feff00
+feff00feff00feff00fffe04fef80cfffa33efe65bfffca9fef8d8fffcfbfefdfffafaff
+fcfefd030400010000060300010000010000
+000300000300000100000104030406faf9f4fffee8ffffb4f4f448fbfa16fffb06fffc00
+fffb00fffd01fffc06fffd06fffe03feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff00ffff00feff00ffff00ffff02ffff02ffff02
+ffff04feff03fefd05fbfc0adce400ffff2ee2eb16ebef40575100dfd86ddfe344d8dc41
+ffffa31b1600e8ee58f5ff4ed7e530f2f96f221a002b1f00f0ed78f9fe49ecfa0fe7f80a
+e7f236f4f7720b0700fff9c7ece8abdedd8bf0f581faff77dee74ef4fa66141500ebec60
+fdff33f1fb0ff5fa21eef021f9fa30fdfe3ef5f849e9ea5e211d00f0f090f3fe58dce928
+f2f546ffff4ff8f51cf8f337f7ed8c271a00342a00ebe972effc28e6f70be4ed30fbfb79
+1f1200100300fefc81efed761b0c00221400dddd57ecf05ddcdc82272700161a00d2da60
+e7f15aeff7700b0600191400e8eb6ae6ec56f6f67a0e0a00170e00fff999e3e542ebf53e
+e2f150e9f673161b00f7f9aef1efa5efed98dfde74ccd03df7ff31e0ec02ffff27f4f916
+eef208f8fb0afcff0bfafc03feff03feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01ffff01feff01
+ffff01feff01ffff01fffe06fef80cfffa33efe659fffca7fff7d6fffcf9fffcfffbfaff
+fdfdfd040300030000060200010000010000
+00010000010000000900000e030212faf7fefffdf1ffffb9f4f34bfbf918fffb06fffc00
+fffb00fffc03fffb0afffb0cfffd06fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04fffd04fffe04
+fffd04fffe04fffd04fffe04fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffd04fffe04fffe03fffe03fffe03ffff01fffe01ffff01fffe01ffff04ffff04ffff05
+fffe07fffe06fffb09fcfa12ffff31e7ec1ceff71ae7ea2b180e002e2400f2ed6bfefa75
+1911002e2800f4fa50eff83df1f853eeee760e0200130400f0e490e2e04ff9ff25f8ff26
+e4e951fefc972e27000b06002624000b0800130c00f3eab3e6e28bf1ef82292a00fcfd61
+dbdf16e5e90cfefe2ae7e610ffff28ebeb0ff1f12df5f060281a000e0200fffe9af7f678
+fff6771c1100f5eb2affff5cf3e195251300201000f7f086e4ec25ecf71df4f655ded576
+2e1904140000ddd573fff7921401001b0800ffffa3ddd96b0e0400160b003a3200e5e18a
+ffff94f5f190190b00120400efe88df6f287f7ed98221400312100f0e39fd7d157f8f96d
+e3e76ff5fa96211f000d0900221900130700261900fef49ffcf960f1f330eaed1af6f916
+fdff0ffafb09f4f40affff1cfffd08fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffd06fff80cfffa2ff1e754fffda2fff8d1fffcf4fffcfffcf9ff
+fefcfd060201030000060203010000000000
+00000000000400000e000012030116faf7fffffcf2ffffbbf4f34df9fa1afffb06fffc00
+fffc00fffc03fffb0cfffc0dfffd06fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffe03fffd03fffe01fffd01fffe01fffd01ffff04fffe04fffe05
+fffd07fffd08fffb09fdf912e3e311f3f525ffff1df8fb28f2ec5afbf176302900262000
+fffa72f5f15cced317ffff44e9eb40232200241b00221600271c00ffff72ebf421e1ea21
+2520001c1400ebe58dfefb92dbde5bffff972316000e00001e1000221b00e9e858f3f73e
+f8fc29ffff25faf925fdfa23f0ee05f1ef04ffff2af0ec42e5d87a2e20002b2400201b00
+342b00f7eb4bffff3ee9dc2b2618002111002b1e00231c00f7fb32f9ff2df5f350312700
+1a0700261300362e00f4ed69f8e89b221100241900261f00f5ea98251b00170f00201800
+e0dc5f1d17001e1100251800281f00e9e270261a001f1100231300150800ffff7fdbd751
+201c001c1a00efec8de9e685f7f096e5db931d0a001e0b001d1300fffd54f0ee27f8f917
+eced00ffff0ffdf914f9f510fffc0afffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffd04
+fffd04fffd04fffd04fffd08fff80afffc2ef1e751fffe9cfffacafffdedfffdfafcfafb
+fffcfb060201030000060105010002000004
+01000000000400000c00000e030210faf8fbfffdedffffb7f5f74efafd1afefc09fffc00
+fffc00fffc01fefc09fefc09fffb05fffc02fffc03fffd03fffb02fffb01fff900fef900
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffe04
+fffb02fffa00fff700fef900fffb02fffd03fffa01fdf800fffd04fffe04fffd04fffd03
+fffc03fffc02fffb02fffc02fffb02fffc02fffb02fffc02fffc03fffd03fffd04fffe04
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fffa00fffb00fffa00fffb00fffc00fffc00fffb02fffb02
+fff903fef804fff603fbf607fcfb15f4f80ef0f600f2f609f7f628fcf938fafb33f8fa2d
+f9fb2bf9fb2bf9fb2ef8fb30f8fb30f8fa35f8f842f8f747e1de2ffefc47e4e623e9e842
+1b0e00fef29ef1ed70f5fa55f1fd31dae22df3ed8f261800322100160c00eaed3eebf411
+f1f908f5f80bfaf51dfdf621fff915fffd0efffd0efefb24f6f249f4f051f3f538f3f629
+f7f526fcf520fff611fff61bf2ec34f7f443f6f634edef20ecf017f3f61ff2f32beae833
+f5ef51faf54ff7f92cedef1fedeb38f7f250faf456f4ef55f3f055f5f259f8f45dfbf855
+fcfd3ffcfd40faf559f9f35df8f34df8f44af6f14df5f04ef5f04ef6f346f8f836f7f54b
+292100efea8fe9eb59fcff53e9ec3df0ed5ee9d78b2b1600211000fbf058ffff41f9f518
+f7f502f6f500ffff16fffe17fffb07fffc02fffb02fffc02fffb02fffc02fffb02fffc02
+fffb02fffc02fffa01fffb01fffa01fffc02fffb02fffd03fffc03fffc02fffa01fffb01
+fffc03fffd03fffb02fffb01fffc03fffd03fffc03fffd03fffc03fffd03fffc03fffd03
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00fff900fffa00
+fff900fffa00fff900fffa00fff900fffa00fff900fffa00fffa01fffb01fffa01fffb01
+fffa01fffb01fffa01fffa04ffff10f8f423f7f057fffb93ffffcafffee5fefcf0fffffa
+fffdf8060200040000060107010005000005
+010000010000000005000005030406f9faf2ffffe6ffffb2f3f64df7fb1efbfb0ffcfa05
+fcfb03fbfb05fafb0afcfb0bfffb09fffb07fffc08fffb07fffb07fffa06fff905fff905
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffb07fffb07fffb07fffb07fffb07fffb07fffb07fffb07
+fffe0afffc06fffb05fffc06fffe08ffff09fffd07fffb05fffb05fffb05fffb05fffb05
+fffb05fffb05fffa04fffa04fffa06fffa06fffb07fffb07fffb07fffc08fffc08fffc08
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe08fffe08ffff06ffff06ffff06ffff07ffff09ffff0bffff0d
+fffd0efffb0dfffa0cfdfa0dffff18fafe13f7fa0bf6fa0dfbfd16fdff1dfcfe1efafd1a
+f0f30cf0f310f0f01cf0f01ceef310eef40eeef215eef219ffff2fe5e513ffff3dffff6d
+271600140400ebe573e4e645f0f831eef341f9f18f291b00190b00d4ce56ffff3cf6ff0c
+f6ff02f9fd08faf81afaf41cfaf10cf7f001f2f100eff000fbfb27f7fb2bf7fd1df8fe16
+fbfc1afefb18fff914fffb15fbf918ffff1bfeff0ef6fb09f5f61cfbfb29fbfc25f4f51b
+f7f81efeff1efdff10f6fb09f6f81bfdfc30fefb3ef5f437e8ea1de8ec1cecec28eeef25
+eff411eef40cedf019ecee1ff3f224f2f123f1f024f0f020f0f119f1f313f2f510f0f038
+1c12000f0500f7f56ceef341e7eb32f7f457f9ea8d3f2d00403200e3d93cf5ec35fef828
+ffff1efffd0efbf509f7f203fffa08fffa06fffa06fffa06fffa06fffa06fffa06fffa06
+fffb07fffa06fffa06fffa06fffa06fffa06fffb07fffb07fffc08fffa06fff905fffa06
+fffc08fffc08fffb07fffa06fffb07fffb07fffb07fffb07fffb07fffb07fffb07fffb07
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0afffe0a
+fffe0afffe0afffe0afffe0ffffe19f8f52ef7f35efffe97ffffcaffffe1fcfdebfffff6
+fffdf4060300040002060108010007000007
+030000010100000100000200030700f9fde4ffffdbffffaff1f651f6fc28f9fb1cf9fb14
+f8fa11f8fa10f6fc12f8fb14fefd15fffd15fffd15fefc14fefc14fefc14fdfb13fdfb13
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810fefc14fefc14fefc14fdfb13fdfb13fdfb13fdfb13fdfb12
+fffd14fefc13fcfa11fdfb12fffd14fffd14fefc13fdfb12fdfb12fdfb12fdfb12fdfb12
+fdfb12fefc13fefc13fefc13fdfb13fdfb13fefc14fefc14fefc14fffd15fffd15fffd15
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf80ffaf80ffaf80dfaf80dfaf80df9f70cf9f70ef9f70ef9f70f
+f8f510f7f411f6f312f4f213f8fa1bf2f61df0f020edf01df1f21af0f515eef312ecf015
+f9fb2ef9fa30f9fb2bf9fe1ef9ff0ef9ff12f9fc29f9fb2be6e904ffff1ad8dc01f2ed51
+1d0800200800ffffccede38afaf782f4f085170800251800eeea64f0f43beff61de8f303
+f9ff08faff0afdfe1afffd1cfffe13fffe0bfeff03fbff08f0f514eff41eedf31dedf321
+eff028f2ee2af7ee27f7ef1ef4f511f6fe0bf6ff04eff608eff124f4f430f3f525edf212
+eaf103f1f905f4fc0bf0f512f0f223f4f52ff1f324eaee15f3f911f4fa14f6f922f8fc23
+f8ff0ff8ff08f7ff0ef6fc14f9fd22f9fc25f8fc23f7fc1bf7ff0ef8ff0cf9ff10f8f745
+2c1d00180600f7eda8f1e986f2ec74ffff8d190c001c1000d9d335ffff56f9f242f1e831
+f4ee26f9f51af9f607ffff0efefc11fefc14fefc14fefc14fefc14fefc14fefc14fefc14
+fefc14fefc14fefc14fefc14fdfb13fdfb13fdfb13fdfb13fefc14fcfa12fbf911fcfa12
+fdfb13fefc14fdfb13fbf911fefc14fefc14fefc14fefc14fefc14fefc14fefc14fefc14
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810faf810
+faf810faf810faf810faf810faf810faf810faf810faf810f8f60ef8f60ef8f60ef8f60e
+f8f60ef8f60ef8f60ef7f514f8f824f1f13bf1f26afdfc9fffffccffffe3fdfeecfffff4
+fffef2060300040002060108010009000009
+040000030000000200000300030900f9ffddffffdbffffb4eef45ef2f83cf5f638f5f533
+f4f52df3f62bf1f92af1f92afbfe33fcfd33fefc35fbfc32fdfb34fbfc32fefc35fcfd33
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34f9f730f7f82ef9f730f7f82ef8f62ff6f72df8f62ff6f72d
+fcfb31fafc2ffbfa30fafc2ffcfb31fafc2ffcfb31f9fb2ef8f72df6f82bf8f72df6f82b
+f9f82ef7f92cf9f82ef7f82efcfb31fafb31fdfb34fbfc32fdfb34fcfd33fefc35fcfd33
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe36
+fffd36fdfe36fffd36fdfe34fffe34fdff32fffe32fdff32fefd31fdfe34fffe34fdfe36
+fefc37fbfb37fcf938fafa38ffff3cfbfe3ff7f845f6f743f7fa39f8fc33f7fc2ef5f837
+f2f14bf2f149f2f62ff2fa19f3fc0df2fa19f3f33df3f242fafd32f2f625fdff3bebe859
+fff7c60f0000160800180f00140e00261f00fff3c1e8df94f9fc65ffff49e7ef2afaff36
+e5f01ae8f11cedef29f3f12df6f328f7f622f8f81cf6fa1df8fe2af5fe35f3fc41f4fb4b
+f7f852f9f64ffcf64afcf83dfbff2efdff28fdff2bf9fe2ef8fb38fcfe41fbfe3df7fb34
+f3f828f9ff29fbff2bf9fe30f9fb40fbfd44f9fd37f3f828f0f71ef1f721f3f52ff3f730
+f5fa22f3fb1cf3fb1cf2f822f0f42ef0f334f0f330f0f527f0f71df0f819f0f620eeef4c
+f6eca7201300140a002c23002922000f0900ffffa6fffa80fbfa50fafa44f2ec4eece54c
+f3eb4afbf644f4f02cfbf92bfdfc32fbfc32fdfb34fbfc32fdfb34fbfc32fdfb34fbfc32
+fdfb34fbfc32fefc35fcfd33fdfb34fbfc32fcfa33fafb31f7f52ef3f42af4f22bf3f42a
+f6f42df5f62cf6f42df2f329fdfb34fbfc32fdfb34fbfc32fdfb34fbfc32fdfb34fbfc32
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34
+fffd36fdfe34fffd36fdfe34fffd36fdfe34fffd36fdfe34fefc35fcfd33fefc35fcfd33
+fefc35fcfd33fefc35fcfc3aeff03aeced51eef17ef8fbaefeffd6fdffe9fdfff1fffff4
+fefef206030004000206000a01000900000b
+060000040000010100000400030a00f8ffddfeffe2ffffc4f0f47cf3f563f5f265f6f064
+f4f25ff3f45af0f656eff756e9ed52e8eb52e9e953e7ea51e9e953e8eb52ebeb55eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54f6f660f4f75ef5f55ff3f65df4f45ef2f55cf4f45ef1f45b
+eced54eaee53eced54eaee53eced54e9ed52eced54eaee53f4f55cf2f65bf5f65df3f75c
+f5f65df3f75cf5f65df3f65de9ea51e7ea51eaea54e8eb52eaea54e9ec53ebeb55e9ec53
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed56
+ecec56eaed56ecec56eaed54eced54eaee53eced53eaee53edee54ebee55eeef56ecef58
+eeee5aebed5beceb5be9ec57ebf153eaf052eaed58eaec5aebef54ebf04cebf149eaed54
+edea79edeb70edf53dedfb22effb1fedf736efec67efe977f8f66fe0df53eeeb68f0ec7e
+ece594f3eda1f1f093f1f48df5f794f3f399d7d58af3f19cf5f980c4c83de3e75ce2e65b
+eaf366ebf268eff16cf1ee6bf4ed68f3ee5ef1ee51eef14ae8f244e6f14de6ef60e7ee6c
+eaed6ceaec65eced54edee4beaf048ecf14fecee5feaed56e9f237ebf534ebf147e9ec57
+e9e967ecec66ecf14deaf143eaef4becf14fecf14fe9ee4ceef351eff356f1f15bf0f35e
+f2f35af0f457f0f455f0f459eff066efef69f0f167f0f261f0f459f0f457eff25bedf168
+d8dd69f3f796edef9cd6d787e1e187f3f393e2df7ed7d861e5eb4ddfe442f5f26ff2ed78
+f6ef7bfef785f7ed7eefe971eae95be8eb52eaea54e8eb52eaea54e8eb52eaea54e8eb52
+ebeb55e9ec53ecec56eaed54ebeb55e8eb52e9e953e6e950f4f45ef1f45bf2f25cf0f35a
+f4f45ef3f65df3f35df0f35aeaea54e8eb52eaea54e8eb52eaea54e8eb52eaea54e8eb52
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54
+ecec56eaed54ecec56eaed54ecec56eaed54ecec56eaed54eded57ebee55eded57ebee55
+eded57ebee55eded57ebee59f3f566f2f37bf3f5a1f9fcc7fcffe7fcfff6fcfff6fdfff7
+fefef406030004000206000a01000900000b
+06000c040007010000000200030800f8fee4feffeffdfdd9fdfca9fffe97fffaa0fff8a1
+fff99bfdfb96fbff90f9ff90ffff9fffff9fffffa0ffff9dffff9fffff9effffa2ffffa1
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cfeff9dfeff9bfdff9cfdff9afcfe9bfbfd98fbfd9afafc97
+ffff9effff9effffa0ffff9fffff9effff9dffff9fffff9ffeff9bfdff99fdff9afdff99
+fcfe99fcff98fbfd98fbfd98ffff9fffff9fffffa1ffffa0ffffa2ffffa0ffffa3ffffa1
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9e
+ffff9effff9effff9effff9cffff9cffff9bffff9bffff9bffff9dffff9effff9fffffa1
+ffffa3ffffa4ffffa5ffffa1feff9cfeff9affffa3ffffa0ffff95ffff8fffff92ffffa0
+fffcbcfffeb3ffff88ffff6fffff6cffff7fffffacfffbbcf1eb9fffffb6fffaacfdfaab
+ffffadfffface3e989fbffa2faffa8f7fcaaffffbcf1f3aaffffb5ffffb6eef09dffffb6
+feffb1feffb3ffffb3ffffb4fffeb6fffeb0ffffa2ffff94fdff88fbff8dfcffa5fdffb2
+ffffb2ffffa8ffff94ffff8affff8fffff9dfffeb4ffffaaffff7fffff76ffff8dffffa4
+ffffbbffffb6ffff9bffff8effff90ffff94ffff95ffff99ffff9affff9cffff9affff9c
+ffffa1ffffa3ffffa0ffffa2ffffaaffffadffffadffffacffffa6ffffa5ffffa4feff9f
+ffff95e7f586ffffbcffffcaf3f6b1ffffbdf0f3a6ffffafffff97fdff8effffadf7f4a3
+f7f2a1fef8aefffdc5fff9bbffffadffffa0ffffa2ffffa0ffffa2ffffa0ffffa2ffffa0
+ffffa3ffffa1ffffa4ffffa2ffffa4ffffa0ffffa0ffff9dffff9efdff9afcfe9bfdff9a
+feff9dffff9cfeff9dfdff9affffa2ffffa0ffffa2ffffa0ffffa2ffffa0ffffa2ffffa0
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9cffff9effff9c
+ffff9effff9cffff9effff9cffff9effff9cffff9effff9cffffa0ffff9effffa0ffff9e
+ffffa0ffff9effffa0ffff9effff98ffffa8feffc6fdffe3fcfff8fafefff9fdfcfbfdf8
+fefdf8060300040002060108010009000009
+07001c06001503000b000000030600f8fbf2fdfcfffdf8f2ffffd2ffffcafffcd7fffad9
+fffbd5fffeceffffc6ffffc6f7f9c7f5f8c9f4f7caf3f6c7f3f6c9f5f8c9f7facdf9fccd
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1ffffd8ffffd5ffffd7ffffd4ffffd5feffd2fdffd3fdffd1
+f2f5c6f4f8c6f5f8c9f4f8c6f2f5c6f1f5c3f3f6c7f5f9c7ffffd6ffffd4ffffd5ffffd2
+ffffd3feffd0fdffd1fdffd1f7facbf7facbf7facdf8fbccf8fbcef8fbccf9fccff9fccd
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd3
+fdffd3fdffd3fdffd3fdffd1fdffcffdffcffdffcffdffcffdffcffdffcffeffd2ffffd5
+ffffd7feffd8feffd9fdffd8fcfcd8fdfcddfefce7fffedfffffc3ffffbcffffcdfffedb
+fffde9fffdeafffde3ffffd7ffffc9ffffcafffedefffde5fffee4ffffe1fffad2ffffd0
+fefecaf8fbc6ffffd3fcffcfffffd1f6fdc9ffffd8f3f5d0ffffe8f1efdaf4f3d7f9fad8
+f7ffd3f6ffd0fcffd6ffffdefffdedfffbeffffee4ffffd2f9ffb6f8ffb7faffd2fbffe1
+fcffe5feffdbfdffc6feffbcffffc5fffdd4fff9effff9efffffd3ffffcafffed5fffedf
+fffee5fffce1fffdd7fffdd6fffcd9fffdd6ffffccffffccffffd3ffffd1ffffc7ffffc8
+fffed8fffdddffffdcffffdafffcd9fffddafffeddffffe0fffee1fffedffffddafcffcb
+faffb7feffc3f5fcddf3f5e7f3f7dcedf1d0fafbdcfbfcdaf3f4c8f5f7c8ffffdffffcd3
+ffffc8fffdc2ffffdffffbdefafbd3f9fccdf9fccff9fccdf9fccff9fccdf9fccff9fccd
+f9fccffafdcefbfed1fbfecffafdd0f8fbccf6f9ccf4f7c8ffffd7ffffd4feffd4ffffd3
+ffffd7ffffd5ffffd6ffffd3f8fbcef8fbccf8fbcef8fbccf8fbcef8fbccf8fbcef8fbcc
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1fdffd3fdffd1
+fdffd3fdffd1fdffd3feffccffffbfffffc8ffffe3fdfef8f9fbfff9fcfff9fefffafeff
+fdfef9060200040002060108010007010007
+04001b04001501000c000005030504f9f9fbfefafffdf6fdfffbe5fffaddfff5e8fff4eb
+fff5e7fef7e4fdf9dcfbfbdffeffeffdfdf3fdfbeffafbedf7feeef9fff0fdfff3fffff3
+ffffeeffffeefefff5fefff9fffcfcfffdf9fffff0feffebfeffecfeffeefffff0fefff0
+feffecfeffeefefff3fefff7fbfcf6fbfdf2fafee7f9fee0f8fce5f7fae7f7f8f0f6f8ed
+fbfeebfdffebfffff1fdfff3fbfef5fafdf2fcffecffffedfeffedfdfeeefcfdebfbfcea
+f8faecf5f9eaf4f8e7f4f9e5feffecfeffecffffeeffffefffffefffffefffffeffffff1
+fffff3fefff3fffff0feffeeffffeefefff0fffff3fefff2ffffebfeffecfffef9fefff9
+feffecfeffe9fefff0fefff2fefff0feffeefefff0fefff3fefff7fefff7fefff5fefff3
+fefff3fefff5fffef9fefff7ffffecfeffebffffeefefff0feffeffefff2fffef9fffffa
+fffff1ffffeffffff3fffff7fcfbf6fdfbfcfffcfffffefaffffe0feffd9fffee9fffcf3
+fffbf8fffafefff8fffff9fffffcf3fffdeefffcf3fffbf7fff8f6fdf6eeffffeeffffea
+fafae0ffffe7ffffeceff3dcf9ffe1f3fadbf8fce3fafceefbf9fcfffdfffbf9fcfffffa
+f9ffeef9ffeafcffedfffff7fffafffff9fffffafffcfcf0f9ffd8f8ffd9f9ffeffcfffd
+fefffffdfef8fcfee6fbfedfffffeafefef4fff9fffffbfffffdfffffef9fffdfcfffffd
+fffcf9fcfbf7fffbf8fefdfbfffbfffdfcf8fefcedffffebfffef3fffeefffffe4fffee5
+fffcf3fffbfafffcf9fffdf6fffcf3fefef4fffef7fffffbfffefffffdfefffdf6fdffe9
+f9ffd5eef9d1f9fefafefefffbfdf8fefff6f7f8f2fffffafffff7fcfcf4fdfaf5f9f7e8
+ffffddf2f3cbffffedf9f6edfffff4fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fffff3fffff3fffff3fffff3fffff3fffff3fdfff1fbfdeff7f9ebf5f7e9f4f6e8f5f7e9
+f6f8eaf7f9ebf6f8eaf4f6e8fffff3fffff3fffff3fffff3fffff3fffff3fffff3fffff3
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2
+fefff2fefff2fefff2fefff2fefff2fefff2fefff2fefff2fdfff1fdfff1fdfff1fdfff1
+fdfff1fdfff1fdfff1feffeafbfbd5fefedcfcfdeff9fafcf7f9fff9fcfffcfffffcffff
+fdfdfb040301030002060107010005010005
+000007000005000005000005060409fef9fffffcfffff8f9fffef3f9f1defff7e6fffdec
+ffffedf9f4e0f9f7e2fffff3fcfafdf2edf4fffcfde8e5e0ecf9eff5fffae6ebe7fffffa
+ffffedf0eddefffefff8f3ffffefffffeffffffff3f2f7d9f9fce1f8fae5fdfbeffefef2
+fdffe9ffffeffdfcfaf0edf8fffcfff3f2f7f9ffddfbffd2f3fad8f3f7e6fefeffdcdae5
+fbfdeff0f3def5f8edfcfffff9fcfff1f4fdfafef0ffffedfcfaeefcf9f0fffff0efede1
+fffffff7fbfaedf8eaf9ffeff7fae5f5f7e1ffffedfdfeecf9f7e8fbfceaf8f7e3fffff3
+fdf8fcfffefff4f2e6f9fbe6fefdebfffff4f7f2f6fffffbffffe3ffffeaeee6fbfffbff
+ffffe7eef3cbfffff3fffef9fafceefffff1fcfef3fffffdfefeffefeefcfdfefffdfdfd
+fffffdf0eef3fffafff8f4fffffff1ffffeafffdf1fffef9fcf9f4fefcfffffafff3effe
+f8f6e7ffffe8fffff0f7f4ebfefbf4efece5fffff8fffff4f8f7e3ffffe9fefee6fefde9
+fbf9ecfffff6f6f3eafffcf3f4f1e8fffff6fffff8fefbf4fffcf5fffff5fffff6fffff5
+fdfdf5fbfcf4fcfdf5fefff5fdfff1fdffeffdfff1fdfff4fdfdfbfdfcfffdfcfffdfdff
+fcfef9fcfff6fdfef8fdfdfbfefcfffefcfffefcfffdfef9fdfff2fcfff2fcfff8fcfefd
+fdfdfdfdfdfbfdfef6fdfff4fefef6fdfef9fefbfffdfcfffefcfdfdfdfbfefcfdfdfdfd
+fefdfbfdfdfbfefdfbfdfdfdfefcfdfdfdfbfefdf8fefdf8fefdf9fefdf8fefef4fefef6
+fefdf9fefcfdfefdfbfefdfbfefdf9fdfef9fefdfbfdfdfbfefcfdfdfdfdfefdfbfdfef6
+fdfff1fcfff2fcfefdfdfdfffdfdfbfdfef9fdfdfbfdfdfbf9f9f7fffffdfdfcfafcfbf6
+fffff4f9faecfefdf8fffefafffffbfffffbf5f6f1f9faf5f8f9f4fffffbf0f1ecfffffb
+fafbf6fffffbf3f4effffffbfffffbecede8fcfdf8f8f9f4f8f9f4fffffbf5f6f1fbfcf7
+fbfcf7fffffbdadbd6fbfcf7fffffbfffffbfefffafafbf6f9faf5fefffafffffbf6f7f2
+fefffafffffbfbfcf7fffffbf8f9f4fffffbf8f9f4f7f8f3fffffbf2f3eefffffbfffffb
+f2f3eefefffaf9faf5f5f6f1fffffbf1f2edfdfef9fefffafdfef9f4f5f0fffffbf4f5f0
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef6fefef2fefef2fdfef9fdfdfdfcfdfffcfdfffcfdfffcfdff
+fefefe030303010000030104000002000002
+00020000020000000200000406030afef9fffffdfffff8f9fef7f1fffef4fef8eafbf5e7
+fffdf1fbf7eef6f3eefcf7fbf9f5ffe8e1f3fffafff7f2f9f4ffffe7f8fffbfeffd9d7d8
+fffae6ffffeff6f5fdf5ecffffefffffe8fffbf8eff7fce5feffeaffffeffffffae8e8e0
+eeefdff3f4e6dfdde0fffcffefe9fffffcffeef3d3feffd4f9ffe1f6f9f2edebffeeecff
+fefdfffdfdfbe3e6eff8fdffe9ecfff5f9fff5faf3f1f4e3f3f0ebfffefbfffaf4f2eeef
+fefbffdddff4e8f1faf5fffef3f4ecf7f7ebfffef2fffff8fcf8f7fffffdfffdf4efeee9
+f7f1fbf6f3fafffff1fbfde5f9f8e6f2f1ecfffbfffffefffbfbdffcfbe7fff9fff1ebff
+f2f4deffffe3f0f0e6e0e1dcfafceefafcf1f1f0f6f7f7fff1f1fbfefffffefffff0f2ed
+e6e5e1fffeffdfd7eefefafff9f6efeff0e2fffefff2f0f5f8f4f5f8f6fbf4ecfffffdff
+f8f7e5ffffe6f8f6e7fffff8fdf9f6f8f7f3fefbf4fdfdf3faf7f0ebebe1edebdcfffff1
+f9f6edf2f2e8fffdf1fffff4fffefbfdfbfcf2eeedfaf9f5f9faf2fbfcf4fcfdf7fbfbf9
+f9f9f9f9f9f9fafaf8fbfcf7fdfef8fdfef6fdfff4fdfef6fdfdfbfdfdfffdfcfffdfcff
+fdfdfffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcf4f4f4efefeff2f2f2
+f2f2f2fffffff6f6f6fbfbfbeeeeeef8f8f8fbfbfbfffffffafafaf2f2f2f5f5f5ececec
+fffffffbfbfbfcfcfcfcfcfcfdfdfdfdfdfdf8f8f8fdfdfdfefefef8f8f8fffffff5f5f5
+f5f5f5e1e1e1fffffffafafaefefefcfcfcffffffff9f9f9fbfbfbf9f9f9eaeaeaffffff
+fffffffafafaf2f2f2ecececfbfbfbf0f0f0f5f5f5fffffffafafafafafaddddddececec
+f9f9f9fffffffffffff7f7f7fafafafffffffffffff6f6f6f7f7f7fcfcfce9e9e9f1f1f1
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefe030303000000020202000000000000
+000200000200000000000002050308fef9fffffcfffef8faf3eeebf7f2effffefbfaf6f5
+fffefff8f5fff4f1fff1edfff9f5fffffaffe9dee6f0ebff0a1157060f5af9fbfffffeff
+ecead1fffde4fafcfbfffdfffff8ffffeff3fffffbfcfff8f3f5e8fffff5f0efedf1f1f1
+fffffbfffffbfdfdfde8e7f9f8f1fffefafff0f5e1f5ffdaf9fff5f4f6fff9f8fffcfaff
+fdf9ffe4e0ffeae9ff24255316174ddbdffffbfffff3f7e9fffffde2dde3e3dce3fffaff
+e2daff29265b2b2f5cd6dcfcfefcfff1f0f8e4e2e7fffeffede7fff5f0fffefafffdfbff
+fffcfff4f4f2ffffe5ffffe1f9faeafcfcfafffdfffbf9fef8f8eefefef6f4f0fefffdff
+fafbf6fdfff4d5d6d0fefffafefff4fbfdfcf9f5fffcfcfff3f9edeef8d6eff8d9f7ffe5
+fffff1e9eae2fffefcf0f0f2fffefffaf9fffaf6fff0eefcfffefffefff9fffff6fafdec
+f7f9e3ebefd8f7f8eafffffbefecf5fffdfffaf7fff6f5fbfffdfffffefffefcfdfcfcfc
+fffefff1f0f5fffdfff6f6f8f6f3fcf7f5fff2effafffefffcfdf8fefff9fffffbfefefc
+fdfdfdfcfcfcfdfdfbfffffbfdfef8fdfef6fdfef6fdfef8fdfdfbfdfdfffdfcfffdfcff
+fdfdfffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffbfbfbffffffffffff
+f1f1f1fffffff4f4f4fffffffffffffcfcfcf3f3f3fffffffbfbfbfafafafffffffdfdfd
+edededfffffff6f6f6fcfcfcfffffffefefeffffffe1e1e1f4f4f4ffffff000000181818
+f7f7f7fbfbfbf3f3f3efefeffffffffffffff1f1f1ebebeb000000131313ffffffeeeeee
+f6f6f6f9f9f9fffffffffffff5f5f5fbfbfbffffffe7e7e7f8f8f8ffffffffffffffffff
+f2f2f2f8f8f8fdfdfdfcfcfcfcfcfcebebebffffffe4e4e4ffffffffffffebebebffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefe030303000000020202000000000000
+000200000200000000010000050306fdf8fcfffbfffcf7fbfffefffbf6fafffdffeeecfa
+f0ecfff9f5fffcf9ffece9ffeee9fffffafffff8ff181238181888101289e4e5fff0eef9
+ffffedececd4f8fdf9fffffff8eae1f7ebdfffffffe9eef2fefffffdfcfffcfbfffdfdff
+fcfefdeaece9fefffffcfcffe6e0fffaf5fff6f9fefbfff6edf1fdfbfcfff1f0ffdeddff
+eae8fffcf9ff0000331f1f5b1e1f62ecefffd3dae4eff4eeeae9eeece7eefffdfff2edff
+e5deff1e1c5b080d45e7eeffececffecebf9e9e8eefefefff0eafff4f0fffffcfffeffff
+fcfcfcfefff4f3f8d8feffe4f0f1e9fefffff0f1e9f1f3e8fafcf1f0f1ecf5f3fef0efff
+f1f0fffefefff4f6f3e4e9e3f0f4f7fcfbffeee5ffe9e3fffbfffffaffe5fbffeaf7fff0
+fbfcfffefffff4f7ecfefff3fefffaf6f7f9e3e3ebfefffffdfff7fbffecf0f7d8f3f9dd
+fefff1fefff6fefffbf0f1f3f4f4fffefdfff5f3fff4f4fef8f6fff4f4fcf9f8feecedf1
+f9f8fefefffffffefffefffff9f8fffefefff8f6fff5f4fafdfdfdfffffbfffffdfffffd
+fefefefefefcfffffbfffffafefff9fefff7fefff7fefff9fefefcfefefffefdfffefdff
+fefefffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefef6f6f6f5f5f5f6f6f6
+e8e8e8f4f4f4fefefefffffffefefefcfcfcf6f6f6fffffff9f9f9fffffff8f8f8f2f2f2
+fffffffffffff6f6f6f8f8f8fbfbfbfcfcfcfffffffcfcfcfafafa0000001c1c1c0f0f0f
+ffffffe5e5e5fefefefffffff3f3f3fffffff7f7f7ffffff000000000000ffffffffffff
+f9f9f9fffffff6f6f6ffffffe8e8e8fffffffffffffefefefffffff9f9f9f9f9f9f4f4f4
+e8e8e8ffffffedededfffffffffffffffffff7f7f7f0f0f0fffffffcfcfcf8f8f8f0f0f0
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefe030303000000020202000000000000
+000100000100010000010000040203faf8fbfdfbfef9f7faedebf0e7e5f0242335171635
+1e1b482a27602b286d0d0a4d262157110b2fe8e0effef7ff0f0b9e04039cf7f7ffeeefff
+fffff8e0e1d3fafffeeef3edffffecfffeebf7f8fae5ebf9fcfdffe3e1f7fefcfff7f9ff
+fcfffbf6fbf4ebedf9e0e0fffbf4ff00004925244c171c320c0f320c0e37ebebfff1f3ff
+f8fbffd7daede9edff1b1d580e0f5feff2ffe4e9fffbfffffefefff2f0f5fefdf9ebeaf0
+fcfbff161848010937edf7fff9fcfffcfffffcfefbf9fdfee5e3f8f7f8fffefffbebf3de
+e8eed4faffe8f5fae3f5fbedfdfefffbfffcf3fbd6feffdafeffe4edf0e5fbf9fffaf8ff
+24214eebeafff8fcfdf9feff1a1a3e1911673a27be0a0085f9fafff1f8ffe3e9f7252847
+19164f181542f9fef8fcffe4eef9d1f0fad5fcffeadfe7cfe6efd0fcffe3ebf5d0fcffea
+eef3eff5f8ffedeffbf1f4fdfcffffeceff6f7f8fdfcfffff7f9f8eaeeedfefffffcfffd
+f2f4effcfffae1e3defcfffdf3f5f0fcfffdfefffdfefffff9f9f9fafafafcfcfcfcfcfc
+fbfbf9fbfbf9fcfdf8fefff9fefff9fefff9fefff9fefffafefefcfefefffefdfffefdff
+fefefffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffbfbfbffffff
+fffffff9f9f9ffffffe6e6e6f2f2f2fffffffefefefffffff5f5f5ffffffe9e9e9ffffff
+fbfbfbe0e0e0ffffffffffffffffffffffffdededefbfbfbf9f9f9ffffff010101000000
+f7f7f7fffffff9f9f9fcfcfcfbfbfbf7f7f7fdfdfde7e7e70d0d0d020202fffffff7f7f7
+fafafaffffffecececf7f7f7fffffff6f6f6e1e1e1fafafae0e0e0fffffff9f9f9f7f7f7
+fffffffcfcfcd8d8d8f8f8f8fffffff5f5f5ffffff0d0d0dfcfcfcfffffff7f7f7fafafa
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefe030303000000020202000000000000
+000100000100010000010000040203f9f7f8fcfafbf7f7f9f4f3f9fefeff11112bf1f0ff
+eae9ff1010580c0a5ee2e1ffdfdbff2a254dfffaffdad2ff0703a21f21c4dadcffedefff
+f7f5fffcfcfff8ffffe0e5e8fffbf0efe8dee1e5eef7fffff5f9fff0f1fff6f5fff8f9ff
+ecf2eef2fbfaf9fbff2d2a6d0600581f1b70e1e2ffeceffff7faff171a4d1413592c2c68
+e8edfff4faffecf1ff161a5a2b2c88cfd1fff2f6ffe0e4fff8f8fff7f4fff5f4fcfbfaff
+e7e7ff090d3c1b2751e9f7fff2fcfee2e9e2e7edede7ebf6f5f7fffafcfff2f7fbfbfff6
+fbffeaf9ffe8f7fef6e6ebf1fbfdfff0f4ffeef7e6ebf6d8fbffece5ebebe2e0ff161058
+150e5bf0f0ffe8eefaf3f9ffe9e9ff261e8b0d00ab3423cbeae5ffdce0fff4f8ffe0e2ff
+1f1a6ce8e5ffe7eef6f9ffecf6ffe5f1fee4f9fff8eaf3eef0faefebf7e3e1eed4ecf7e7
+f8ffffdadef9f6f9fff6f9ffeff1ffe2e5f4f6f9fff5f9fff0f5fbfbffffedf1fcdee2eb
+fbfffffafffee2e7ebfaffffedf3f3ecf2f2ecf1f4f5f8fdf7f8fdfaf9fefcfcfefcfcfc
+fbfbf9fbfcf7fdfef8fffffafffffafffffafffffbfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffeaeaeafcfcfcf5f5f5f8f8f8
+fffffff4f4f4fafafafdfdfdfdfdfdfffffff5f5f5f7f7f7f4f4f4fefefedddddde9e9e9
+f3f3f3fffffffafafaf3f3f3f0f0f0f6f6f6fffffff7f7f7ffffffffffff0000000d0d0d
+fffffff3f3f3f8f8f8fcfcfcf9f9f9fffffffffffff8f8f80101010b0b0bddddddf8f8f8
+fffffff3f3f3fffffff4f4f4f7f7f7f8f8f8fffffff4f4f4f4f4f4fdfdfdedededffffff
+fafafaecececfffffff6f6f6ffffffe6e6e6030303040404fbfbfbdfdfdffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010000010000010000010000030200f9f8f6fbfbf9f7f7f7edeef2eef0fc2f334cc2c5ee
+eaecff262976151673e7e7ffeeedff231e46ded6eef2ecff1b1bb100029af4f8ffedf0ff
+f8f6fff7f5ffcfd6f2f8fffffbf3fff8f0fff9feffe3eeffe8eefff9fcffeaeaffdedfff
+eff7faebf2ffe4e0ff130b78140f6beaeaffedf0fff1f6ffdce2ffe6ebff1c177e060167
+eff1ffe5e9fff4f9ff0e116001036adee0ffcccffff6f7ffe4e1ffefe8fffef9fff0eeff
+deddfff4f9ffd1deffe7f7ffeefcefe7f2e4f9feffdddffff6f7ffededffd4d5fff1f5ff
+eaf4ece6f0e5f0f6fff9fcffdddfffecedfff8f8fff5f7fff3faffecf0ffe9e2ff291e96
+0e0572e1defff6fbffe1e7fff2f3ff1c177b00008d1001a6261e98e4e5ffecf1fff3f8ff
+100f5bedecfff4f9ffe9f2fbd7def0e9edffe4e5ffeaeaffe8eafff8fdfff0f9feedf7f9
+f7fdffe3e6fff8f8ffd8d8fff7f7fff1f3fff9faffdfe1ffedf0fff8fbffd4d6fdf9fbff
+dbdff8dadff5f9fcffdfe2ffedf1fff9fefff3f7fff7f9fff8f7fffbfafffdfcfffdfdfd
+fcfcfafdfef8fefff7fffff8fffffafffffbfffffdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbf7f7f7
+f3f3f3ffffffd6d6d6fefefefcfcfcf8f8f8f7f7f7fffffffcfcfce8e8e8fffffff7f7f7
+fbfbfbf3f3f3ebebebffffffffffffedededf4f4f4fafafafafafaf1f1f11b1b1b030303
+e9e9e9fffffff2f2f2fffffff7f7f7fefefef0f0f0eeeeeeefefefffffffe9e9e9ffffff
+f0f0f0fbfbfbf8f8f8fffffff3f3f3fefefefafafafffffffffffff0f0f0fffffff3f3f3
+fffffff3f3f3f4f4f4e7e7e7ecececffffff171717010101fffffff1f1f1ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010002010002010002010000030200f9f8f6fbfcf7f5f7f2f7fbfaedf2f8f8fdffeef3ff
+e2e8ff181e6a0a0f6bd6dbffe7e9fff3f3fffdf5ffe4dfff2b2ebb080f9e0810511f2348
+2a255f1713501c2351f1f6fff4e9fffff7ffd5daff1a2447222a3f060b2920205c262760
+f6fcffe4e9ff110885190e9b272384eef2ffd8e0ffebf5ffeffafff0f5ff130b94241bac
+1a186beff1ffdfe2ff111668181a7f1a1d7a080e4c23265b221d60191256eae1fff4efff
+1b1964191d640f1c50eafaffe2f1eaf5fffee3e6ff1d1d5d07083e22235c171461242464
+edf3fff8ffffeaecffecedff141646191a530d08661b176bf2f7ffe9ecff342d970f0486
+1c1484201e72161a47f3f9ffdee2ff0b0d57f5f0ff130b940a02892d2a93dbe1ffeaf2ff
+191c5fe6e7ffe6ecffedf3ff23265b2929730906611a1677211d7ce4e4ffecf4ffe9f3fc
+181f3b1e22520e0d5928267921206208084615145610104e282a5b14164720205ee7e7ff
+f8fbffd3d7fde3e4ff1e1f550a0d3625294f171a450f1138f4f2fff7f5fff9f8fff9f9fb
+f8f9f4f9faf2fafcf1fcfef3fffffafffffbfffffffffffffffffffffffffffffdfffffd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf8f8f8f5f5f5ffffff
+f5f5f5fbfbfb151515040404070707020202090909080808010101070707ebebebeeeeee
+f6f6f60404040f0f0f000000020202181818070707efefefffffffffffff0000000d0d0d
+000000090909000000020202060606f7f7f7ffffff0d0d0d000000030303fdfdfde5e5e5
+fffffff6f6f61111110000000101010e0e0e000000f5f5f5f2f2f2ffffffe9e9e9050505
+0c0c0c010101000000edededffffff0000000000000d0d0d000000121212fcfcfcfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020006010005010004010002030102f8f7f3fafbf5f5f8eff9fef8f7ffffe8f0fde0e9ff
+eef8ff10195e10186be4ebfff3f8fff9fbfffffafff8f4ff04088d08119adee8fff4f9ff
+f3edff191562060b4df5fafff4eafff7edff181b600b144bf2fdffdde5fce3e5ff0e0e54
+131746eae9ff1405a61306ae08056cf3f9ffe3f0f8f0fff9e1f1f1e7edff0600a22314d1
+1c148de4e2ffe1e2ff191f6d080d5ee5edffecf7ffe1e8ff19164d1d165a272066eae3ff
+d8d3ff191c6d1e2a64d7e5fff2feffeaf0ff14136109075aebf0ffe8edffe6e3ff17146f
+24265fe0e2ffdcd9ff1a186c161b45e6e9ff1e1787140e7c272b5ad8ddffe9e6ff373298
+100d66dfdffff7fbffe5eefff2fdff131c39f4faff1416690905800f0c81f4faffe4edff
+0e134af0f6ffdee7ff0c1439161863ecebffeaeaffdedbff1a1395282590f1faffeaf8fb
+f5ffff1118440f1259e5e6ffeaeaff1616601a1969e4e3ffe1e3ff232464232272d0cfff
+e5e8fff2f5ff3232780d0d53ebeeffe3e7ffdbdeff1b1b4d201c3ff9f6fffffdfff7f6fb
+f4f5f0fffff6fbfdf0fffff6fefff9fefefcfefefffefefffefefefefefcfefffafefffa
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffff8f8f8
+f4f4f4f3f3f3eeeeee0d0d0d000000ebebebf8f8f8ffffff070707000000fffffff4f4f4
+ffffff0000000c0c0cfffffffefefe080808000000fbfbfbedededfcfcfc070707070707
+f8f8f8f0f0f0ffffff0101010000000a0a0af0f0f0e7e7e70c0c0c000000f8f8f8ffffff
+efefef000000080808ffffffefefeff7f7f7101010000000ffffffefefef020202070707
+ffffff131313080808161616fbfbfbf6f6f6131313000000ffffffffffffe6e6e6fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010007010007010005010004050304fbfaf6fdfef6f8fbf2f8fef4f8fffef4fdffe4eeff
+e0ecff101a5719226ddfe9ffeef5fff0f2edeeeae9f4f1ff101597121ba4e2ecffe1e6ff
+e8e2ff252074222876d5d9fff6ecff1b105c1a1a7ce2e8ffe1e9ffe8effff1f3ff202164
+1f215ae7e4ff1408aa1406b3211c90d6dbffeafaf9f3fff2eefefde1e6ff241ac80800b8
+040073f2f1ffcaccff0910580e145edfe8ffe9f5ffe7efffefeeff0b0640322c68d5cfff
+f7f3ff171a6b00023ee5f3ffe4ecff060845251e90f4effff1f8ffd8e0f3f7f7ff000051
+121356dad8ff0d0388282099dde1fff7fcff1e1b760c08660e1241edf2ffededff00004c
+090a4dedefffd5dcfff4fcfff2fcff051026ecf9fff1f9ff0e0d7318158a141873dfe5ff
+1f2466b5bbeff5fefff3faffe4e4ff100e711416612827840b009a0d058cdbe3ffecfafd
+f3fcff141a4c060950ebecffe0e0ff0c0b57151269f4f3ffdbdcff0c0d4e110e67e7e5ff
+edefff181b52060551ecebffeff1ffecefffe2e4ff2a2b631b163ff0ecfff0edfefefdff
+fffffae4e6d9f4f6e8fcfef1fefff9fefefcfefefffefdfffefefffefefcfefff7fefff7
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5f6f6f6ffffff
+fffffffffffffbfbfb0b0b0b050505fffffff8f8f8fbfbfb080808000000eaeaeaffffff
+070707010101fefefef2f2f2f2f2f2fdfdfd010101070707ffffffffffff030303000000
+ffffffecececf4f4f4ffffff1212120f0f0ffcfcfce9e9e91f1f1f080808ffffffebebeb
+0c0c0c111111e7e7e7f5f5f5f6f6f6fbfbfb111111131313f4f4f40c0c0c040404ffffff
+f6f6f6000000050505000000f7f7f7e2e2e2080808060606f2f2f2fdfdfdfffffffcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010005010005010005010004060407fdfcfafffffafbfef5f5fbf1f2f8f4f9fffff7ffff
+dde7ff1c285c212c6ed7e1fff6fefffefff1fffff6f1efff0b0f97070e9ddde6fff6fcff
+f7f3ff0c08552b2f86e2e4ffe8dfff261b6a0c088312128a2b2e75050939080b4221245b
+1a1d50dcdbff1811932218ad0c048beaeaffebf9ffd0e2d4eaf8fff4f9ff0d079d1007a0
+171662e5eaffe7ecff20276b1c2173f2f9fff3fdffecf4fff5f5ff16153713102ff6f5ff
+d8d8ff1c21651c2862cedbffe3e7ff34318c1f12a8140b8c151c381d2a230d142e484c7b
+0e1049efeaff1b0aba2415b8edefffd4dcefeff5fff7fcfff5fcffe8eeffe7e9ff3f417e
+212459ecf1ffe0e9fff5fdffd1d6ff272d5feefaffeaf6fff4f9ff04036915119a1c18a1
+1a1a7ee6ebffe7f1ff151d4c0b0c69090a66eef7ffe8edff281ebd1d14adeaf2ffeaf8ff
+ecf4ff191e601a1e67e0e2ffebecff0d0e51090858eaeaffebeeff262861201e72e3e1ff
+e9ecff080c3c2a2a74060650202356171b481e215823245c17113ffffafffcf9ffdbdae0
+fbfcf6fffff3fffff3fbfdf0fefff9fefefefefdfffefdfffefefffefffafefff5fefff5
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff2f2f2
+eeeeeefbfbfbe3e3e3020202070707dcdcdcf3f3f3ffffff000000141414ffffffeaeaea
+0000000d0d0df9f9f9fffffffffffffcfcfc121212000000fffffff5f5f50000000b0b0b
+fcfcfcffffffecececf7f7f7070707000000ffffffffffff0000000e0e0efdfdfdfdfdfd
+0303030909090a0a0a0000000000000f0f0f0000001d1d1defefef0303030a0a0af1f1f1
+e2e2e2fffffff4f4f4fffffffefefeffffff0e0e0e181818f5f5f5e9e9e9ffffffefefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010004010004010004010004050306fcfbf9fffefafbfcf6fbfdf8e9edece7eef6f3faff
+ecf4ff131d50071051edf5fff0f8fbfffff4f4f0edeeebff13169b050d96e6eeffe2e8ff
+e3e0ff1f1b65131772e3e5ffebe2ff1a0f5d151091e6e4ffbdbcfff1f2fff2f4ffd2d6ff
+eef3ffe7e9ffd7d3ff17118b1e15a20a0675ebf6fff4ffffcdd8f4e4e9ff0c0b831b1987
+f7fcffdce2f8dde3ff1216600a0c73d7d9ffd5d9ffeceffff5f4ff1e1c4105031bfaf9ff
+cbcaff080b50242d70e7f0ffe3e7ff0f0a701605b3ebddfff7f9ffdee8f1d1daebf2f9ff
+f5f9ffd3ceff2411cd1d0bbfcdccfff7ffffe6efffeef6ffe1e7fff7faffdbdcff070849
+03053eedf1ffedf3ffe2e9ffeaebff0b0d58e9f4ffe7f4ffd9e4ff3538871d17ad0d06a4
+1c1a85e1e5fff1f9ff151a5c0c0880f4f1ffe9efffdbdeff0d01a903009aeff5ffd7e3fd
+ebf0ff0c0e610f1166e9eaffe7e8ff15155b1b196ce5e4ffe4e7ff0d0f4a110d6bdddaff
+f1f4ff15184d232174e1dfffebedffe3e7ffd2d4ffe7e5ffe4ddffefe9ffe8e4fbfffeff
+eaebe3e5e8d7f1f4e3fffff3fefff9fefefefefdfffefdfffefefffefffafefff3fefff3
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffeeeeeef5f5f5ffffffffffff
+f5f5f5ffffffffffff090909020202ffffffffffffffffff070707020202ffffffededed
+141414000000fffffff0f0f0f1f1f1ffffff000000191919e7e7e7ffffff000000181818
+fafafae6e6e6fffffffefefe050505212121fefefef5f5f5121212000000fcfcfcf1f1f1
+000000101010ebebebfffffff0f0f0fffffffdfdfdfafafafefefe0d0d0d000000f5f5f5
+ffffffe5e5e5fdfdfdfcfcfcebebebffffff000000060606fffffffdfdfdfcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020100010000010000010000060105f9f7f8fcfafbf7f7f7fffffffdfefffbfeffd5d9f4
+f2f7ff1419500a0f53f0f5ffdfe2f1fffefff7eefff3ebff1b2098000a80eef7ffe8ecff
+fbf9ff1b185d141873dddffff7efff2e246b17138b070688e8e5ffdad7ffe5e5ffdfe1ff
+1c2141eaf0ffebeeff0b0861261ea5120c8ae7ecffeff8ffe7efff070c4e121566d8dcff
+e5ecffdfe5f5f7faff0d0d6d150e98e0d9fff7f1ffddd8ff1a125d1d1551fff8ffd6d3ff
+f8f5ff18186e03075ee3e9ffe6ebff2b26821000b30b00b5e0d7ffe6e5fff8fbffe1e6ff
+0e113cece8ff1908b01200ac1e187ae1e3fff8fcffe2e5ff181759e3dfffede8ff171270
+231f74edeefff7fcffe4e7ffe4e1ff1b187ff0f6ffeefafff3ffffd6dfff050080130c9a
+15176ee8eeffe3e8ff1515791d12b800009d1712901510901d10c20d03a4f4f8ffdae2ff
+f2f4ff1b1a82000068dfddffd8d6ff211e6f1f197bdfdaffdddcff23216c1f1786e2daff
+e7e6ff17165a140e72221b82e9e7ffe9e8fff5f2ffe1ddff2f2762f4edfffcf8fff1f0f8
+e6e7dffffff1f2f5e2eff1e3fefff9fefefffefdfffefdfffefefffefffafefff3fefff3
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffe8e8e8f5f5f5fbfbfb
+ffffffe1e1e1ffffff010101181818f5f5f5dcdcdcfafafa0a0a0a000000fffffffafafa
+fdfdfd060606030303ffffffffffff040404060606fefefeffffffd5d5d5010101000000
+eeeeeeffffffffffff000000060606eeeeeef7f7f7e8e8e8181818000000fffffff4f4f4
+1a1a1a0000000c0c0cfafafaecececfefefee5e5e5010101e2e2e21313130d0d0d0e0e0e
+f1f1f1fffffffbfbfb000000ffffffe6e6e6060606050505eaeaeafffffff5f5f5f8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020200010100010000010000050102faf5f9fbf9fef6f3fafdfaffefeefcecedfffbfbff
+111343212360000043191b58f6f5fffff9fff2e1ff362a760001651d2a86192152e8ecff
+1411460f0c53282c8711136ae1d7fff7eeff20208410137e2e2d8a13105f22216730316a
+13173df8fdffd7dcffe2e3ffeee6ff1d188e000144131949292f69050b49e8eefff5fcff
+f9fefff1f5ffd3d5ff22217f0c058900007d120b72241e7410075aede3ffefe6ffece4ff
+ded6ff1f1b79131772dae0fff3f7fff1efff2819b40e00aa2f24a40a065b121445161a3d
+333661d6d3ffe5d9ff3225b11f1a780c0c4c13144a01023a17155eefecffc8c4ff201c73
+141067100e57292e58dfe2ff100b710a076e161b53e0eaffdce9f9f4fdffe0e0ff1d1b88
+000249f4faffd6dbff111175150ca52e23c91b149ecec9ff110a9626229a0d1256e7edff
+0d0f6600006438379f141273eae9ff141160150f6f1b1672d6d6ff23216a241c8b06006d
+f8f7ffd3d2ff0e076e2720880000491a195b1d1a6915115e1c1352e0d9ffece8fffffeff
+eff0e8fbfeebffffedf3f6e5fefffafefefffefdfffefdfffefefffefffafefff2fefff2
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffdfdfdfbfbfb
+edededffffff0000001b1b1b000000000000ffffff0000001616160202020a0a0af2f2f2
+ffffff0606060000000f0f0f0f0f0f000000030303fcfcfcf1f1f1fefefe1010100e0e0e
+000000171717000000101010ffffffe8e8e8ffffffffffff0000000d0d0de1e1e1ffffff
+e5e5e50505051f1f1f020202000000121212121212090909ffffffe0e0e00000000f0f0f
+000000000000101010151515e6e6e6ffffff0000000000000f0f0f000000f5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000200000200010100010000060203fcf7fdfffafff9f6fff3effee3e0f5fefbffdad9ff
+d5d4fff4f3fff5f2ffeeeaffe6e1ffe8ddffefd8ffeadbffdbe5ffdff3ffedf7ffdddfff
+d9d3fff6f1ffd0d4ffe9ebfff1e5ffe4dbffe1e5ffe3ecffc2c4fdf9f8ffdbd6ffdbd6ff
+dadaffced0fff3f5ffdddfffdfdcffdad7fff1f6ffd5dcffcfd4fff5f9ffcacfffd7daff
+dedefff1f1ffeaeaffd0d3fff5f5ffe8e9ffe7e9ffd9d7ffe8dfffe8dcfff6e8ffece0ff
+eee4ff070362000450e9f2ffe0e7ffeff2ffd2cdffeae3ffd7d2ffe6e5ffeaedffecf0ff
+dbddffe9e8ffe7e3ffdad6ffdfdeffededffe8e7ffeeedffe2e1fff0f1ffedefffe7e8ff
+eae9ffd8d7ffd2d5ffeff3ffebebffd3d2fff2f7ffe8eeffd9ddffe1e4ffdaddffe8ecff
+f3f8ffd1d6ffedf2fff5f8ffd3d4ffe3e2ffeae9ffe0e1ffe2e7ffe6edffdde4ffe4e9ff
+dcdffff5f6ffe8e9ffd8daffe7e9ffebebffe0ddffe0deffedf0ffe9eaffdfd9ffe6e1ff
+cdcfffe9ebffefebffdad5fff7f8fff0f2ffededffdcd9ffeee6fffff7ffe8e4ffdddce4
+f8f9f1f3f6e3f6f9e4fffff1fefffafefefffefdfffefdfffefefffefffafefff2fefff2
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeff7f7f7fefefe
+ffffffeaeaeafffffff8f8f8ffffffffffffe6e6e6f1f1f1fffffff7f7f7fbfbfbffffff
+efefeffffffffffffff4f4f4f3f3f3ffffffffffffececece9e9e9f8f8f8fdfdfdefefef
+fdfdfdf3f3f3fffffff9f9f9f8f8f8ffffffe5e5e5d6d6d6050505070707f7f7f7fafafa
+fffffff2f2f2e9e9e9fdfdfdfffffff4f4f4ffffffe4e4e4f4f4f4fffffffcfcfcfefefe
+fffffffefefef8f8f8f5f5f5fbfbfbfafafafafafafffffff4f4f4f2f2f2fffffff7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000200000200010100010000060405fdfbfefffdfffdfafffffcff363346100d28383759
+1c1b471c195014134f1915501b1545241a4f342170170b550f1745172741141c31252644
+2821540703401e1f62161758191047251f4f0d123c202a4d1b1f3c15153b151050211c5f
+2525591719421b1d4322244d28285e1e1f5500042a262a4d0f123b1b1e4924284e2f325b
+1a18490e0c3e2122501b1e4b060a3a0b0e371c21372c2e451d1747261c591207491a1057
+1c14672a27742d326a000227131a2c292e421314400c0c422f2f611b1d460f1330161a37
+1d1f461e1f4d1f204c14163f21234912143d0c0c421e1e522020460e10271c202b181b2c
+11123e1d1e4e1d203f1013321c1d4b1e2050151843181a4a252563171753272b51171c3a
+171b4015193f13173c1b1f44161a3f1f224d13144a21244d1c252c1b2526141a321c2046
+14164605073a1b1d4e12154213163927294f141448161747161a352427461210511c1a5b
+1d203f1b1e3d1615511412511a1c420f12310d0f3822204f2a2450110b2ff4f1fffffeff
+f1f2ecfcfef0fefff2f9fbeefefffafefefffefdfffefdfffefefffefffafefff3fefff3
+fffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffff6f6f6
+fbfbfbf0f0f0fffffff7f7f7fffffff0f0f0fffffff5f5f5eeeeeefafafafcfcfcf9f9f9
+fdfdfdeeeeeefbfbfbfbfbfbfbfbfbfbfbfbefefeffefefefffffffafafaefefefffffff
+e7e7e7f6f6f6fcfcfcf9f9f9fdfdfd000000000000ffffff060606fafafafffffff6f6f6
+e6e6e6fffffffffffffafafafdfdfdeeeeeefefefeffffffffffffffffffffffffe0e0e0
+fbfbfbfffffff8f8f8fffffffffffff7f7f7fafafaf6f6f6f6f6f6fffffff6f6f6fafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000100000100010100000000040404fafafafdfbfef7f6fbf6f5faf6f5fbf7f6fef7f7ff
+f8f7fffaf9fffaf8fffbf9fff8f6fff6f3fff6f1fff6f2fff3f7fff4f8fff4f7fcf5f5fd
+f6f4fff7f6fff7f8fff9fafffcf9fffaf8fff5f7fff2f6fff9f9fff2f2fef2f0fff9f7ff
+f9f8fff2f2fef2f2fef9f9fffcfbfff4f6ffeff1fdf0f3fcf5f7fff6f8fff1f3ffebedf9
+f9fbfff5f7fff0f3fff1f4fff4f7fff5f8fff1f5ffeef0fdf3f4fff9f6fff0edff181739
+19173ef0f0fff8fbfff7f9fff3f6fff6f7fcf6f5fff7f6fff8f7fff9f9fffafafffafaff
+f9f9fff9f8fff9f8fff9f9fff9f9fff9f9fff9f8fff9f8fff9f9fff9fafff9fafcf9fafe
+f9f8fff9f8fff9f9fff9f9fff9f8fff5f7fff3f5fff3f5fff3f4fff2f3fff0f2feeef1fa
+fcfefff4f6ffeceefaeff1fdf7f9fff9fbfff1f3ffe8eaf6f3f7f8f5f9f8f8fbfffafcff
+fbfdfffafcfff9fbfff8fafff8f8fff1f1fdf2f1fffbfafffcfcfff5f5fff4f2fffcfaff
+f9f9fff9f9fff9f8fff9f7fff9f9fff9f9fff9f9fff9f8fff6f4fff6f4fff7f6fcf8f8fa
+fafaf8fcfdf8fefffafffffbfffffdfffffffffffffffffffffffffffffdfffffbfffffb
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffefefef9f9f9f5f5f5f5f5f5f7f7f7f9f9f9fbfbfbfbfbfbfafafaf9f9f9f7f7f7
+fefefefdfdfdfdfdfdfcfcfcfafafaf9f9f9f8f8f8f8f8f8fbfbfbfefefefafafaf3f3f3
+f7f7f7fffffffbfbfbefefeffffffffbfbfb0101010c0c0cedededfffffff6f6f6ffffff
+fcfcfcfbfbfbf9f9f9f7f7f7f7f7f7f9f9f9fbfbfbfcfcfcf6f6f6fdfdfdffffffffffff
+fbfbfbf6f6f6f8f8f8fdfdfdf9f9f9f9f9f9fafafafbfbfbfbfbfbfcfcfcfcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fafafafdfdfdf8f8f8f6f6f6f7f7f7f7f7f7f8f8f8
+f9f9f9f9f9f9fafafafafafaf9f9f7f8f8f6f7f7f5f7f7f5f9f9f7f9f9f7f8f8f6f7f7f5
+f9f9f7f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f9f9f7fefefcf8f8f6f8f8f6fefefc
+fefefcf8f8f6f8f8f6fefefcfcfcfaf8f8f6f5f5f3f6f6f4f8f8f6f9f9f7f6f6f4f2f2f0
+f8faf7f2f7f3f0f4f3f2f6f5f6fafbf8fcfff5f8fdf2f5fcf6f9ffebedf9eff1fef0f2ff
+f0f2fff1f3ffeff0fffdfcfff6f5faf6f6f4f7f7f5f8f8f6f9f9f7f9f9f7fafaf8fafaf8
+f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7
+f9f9f7f9f9f7f9f9f7f9f9f7f8f8f6f7f7f5f6f6f4f6f6f4f8f8f6f8f8f6f7f7f5f6f6f4
+f9f9f7f7f7f5f5f5f3f6f6f4f8f8f6f9f9f7f7f7f5f5f5f3f4f4f2f5f5f3f8f8f6fafaf8
+fbfbf9fafaf8f9f9f7f8f8f6fcfcfaf5f5f3f5f5f3fcfcfafbfbf9f3f3f1f2f2f0f8f8f6
+f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f7f7f7f7f7f7f7f7f7f9f9f9
+fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffff
+fffffffefefef9f9f9f6f6f6f7f7f7f8f8f8fafafafcfcfcfcfcfcfbfbfbfafafaf9f9f9
+fdfdfdfdfdfdfcfcfcfcfcfcfbfbfbfafafafafafaf9f9f9fcfcfcfffffffbfbfbf5f5f5
+f8f8f8fffffffcfcfcf1f1f1f9f9f9ffffffedededfcfcfcfdfdfdebebebfdfdfdeaeaea
+fdfdfdfbfbfbf9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfdfdfdf9f9f9fbfbfbfdfdfdfefefe
+fdfdfdfbfbfbf9f9f9f9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fafafafdfdfdf9f9f9f8f8f8f8f8f8f8f8f8f8f8f8
+f8f8f8f9f9f9f9f9f9f9f9f9fbfbf9fafaf8f9f9f7f9f9f7fbfbf9fcfcfafafaf8f9f9f7
+fcfcfafafaf8f7f7f5f4f4f2f4f4f2f7f7f5fafaf8fcfcfafdfdfbf8f8f6f8f8f6fdfdfb
+fdfdfbf8f8f6f8f8f6fdfdfbf9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7
+f5f7f6f3f5f4f2f4f3f5f7f6f9fafcfcfdfffbfcfff8f8ffe8e8f0fefeffefeff9fdfdff
+fdfcfff1f0fefefdffececf8f7f7f9f7f7f5f7f7f5f8f8f6f9f9f7f9f9f7fafaf8fafaf8
+f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7
+f9f9f7f9f9f7f9f9f7f9f9f7f7f7f5f6f6f4f6f6f4f8f8f6fafaf8fcfcfafcfcfafbfbf9
+f3f3f1f7f7f5fbfbf9fafaf8f8f8f6f7f7f5fbfbf9fffffdf4f4f2f6f6f4f8f8f6f9f9f7
+fafaf8fafaf8f9f9f7f8f8f6fbfbf9f6f6f4f6f6f4fbfbf9fbfbf9f4f4f2f3f3f1f7f7f5
+f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f8f8f8f8f8f8f9f9f9fafafa
+fbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefafafaf7f7f7f9f9f9fafafafbfbfbfdfdfdfdfdfdfdfdfdfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfffffffdfdfdf8f8f8
+fafafafffffffdfdfdf5f5f5ffffffefefeffefefefffffff5f5f5fffffffffffff9f9f9
+fdfdfdfcfcfcfbfbfbfafafafafafafbfbfbfcfcfcfdfdfdfcfcfcf8f8f8f6f6f6fafafa
+fffffffffffffbfbfbf6f6f6f7f7f7f8f8f8f9f9f9fbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000000000040404fafafafefefefbfbfbfcfcfcfcfcfcfbfbfbfbfbfb
+fafafafafafaf9f9f9f9f9f9fdfdfbfcfcfafbfbf9fcfcfafdfdfbfefefcfdfdfbfbfbf9
+fefefcfcfcfaf9f9f7f7f7f5f7f7f5f9f9f7fcfcfafefefcfdfdfbf9f9f7f9f9f7fdfdfb
+fdfdfbf9f9f7f9f9f7fdfdfbf8f8f6fbfbf9fdfdfbfcfcfafafaf8fafaf8fcfcfafffffd
+f7f9f8f6f8f7f6f8f7f8faf9fbfcfefefffffdfefffcfdfff1f2f7f8f9fef7f7ffe6e6ee
+e6e6f0f9f9fffbfbfff4f4fcf9f9fbf9f9f7fafaf8fafaf8fbfbf9fbfbf9fcfcfafcfcfa
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fafaf8f9f9f7f8f8f6fafaf8fdfdfbfefefcfefefcfdfdfb
+f5f5f3fafaf8fefefcfdfdfbf9f9f7f9f9f7fdfdfbfffffdf9f9f7fafaf8fcfcfafdfdfb
+fdfdfbfdfdfbfcfcfafcfcfaf9f9f7f6f6f4f7f7f5fcfcfafdfdfbf9f9f7f9f9f7fdfdfb
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbfbfafafafbfbfbfbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffbfbfbf8f8f8fbfbfbfbfbfbfdfdfdfefefefefefefefefefdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefffffffffffffefefefbfbfb
+fcfcfcfffffffffffff9f9f9fbfbfbf7f7f7efefefdededef9f9f9ffffffe9e9e9ffffff
+fefefefdfdfdfcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefefdfdfdf9f9f9f7f7f7fafafa
+fffffffffffffefefef8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefefefefefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfffffffffffffffffffefefe
+fdfdfdfcfcfcfcfcfcfcfcfcfffffdfefefcfdfdfbfdfdfbfffffdfffffdfefefcfdfdfb
+fffffdfefefcfdfdfbfcfcfafcfcfafdfdfbfefefcfffffdfffffdfefefcfefefcfffffd
+fffffdfefefcfefefcfffffdf8f8f6fcfcfafffffdfefefcfcfcfafbfbf9fefefcfffffd
+fcfefdfbfcfefbfcfefcfdfffdfefffefffffefffffdfefffefffff1f2f6fefffffcfdff
+fcfdfffefffff2f3f7fefffffdfdfdfdfdfbfdfdfbfdfdfbfefefcfefefcfefefcfefefc
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfefefcfcfcfafbfbf9fcfcfafefefcfffffdfefefcfcfcfa
+fcfcfafdfdfbfefefcfefefcfcfcfafcfcfafdfdfbfefefcfdfdfbfefefcfefefcfffffd
+fffffdfffffdfffffdfffffdfbfbf9f9f9f7fbfbf9fefefcfffffdfdfdfbfdfdfbfffffd
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfdfdfdfdfcfcfcfdfdfd
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffffffffffcfcfcfafafafcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefefffffffffffffffffffffffffffffffdfdfd
+fefefefffffffffffffcfcfcf7f7f7fdfdfdfffffffffffff8f8f8f1f1f1f7f7f7f5f5f5
+fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfdfdfdfefefe
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000000000040404fbfbfbfffffffefefeffffffffffffffffffffffff
+fffffffffffffefefefefefefffffdfffffdfdfdfbfefefcfffffdfffffdfffffdfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfffffd
+fffffdfefefcfefefcfffffdfafaf8fdfdfbfffffdfffffdfdfdfbfcfcfafffffdffffff
+fefffffefffffefffffefffffefffffefffffefffffefffffbfcfefefffff9fbfaf2f4f3
+f2f4f3f9fbfafefffffbfdfcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfdfdfbfdfdfbfefefcfefefcfdfdfbfbfbf9
+fffffdfffffdfefefcfefefcfefefcfefefcfdfdfbfbfbf9fefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfefefcfcfcfafcfcfa
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffffffffffefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffffffffffdfdfdfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffff
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff6f6f6ecececfbfbfbf7f7f7f9f9f9fffffff6f6f6
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffff
+fefefefdfdfdfffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffdfffffdfefefcfefefcfffffdfffffdfffffdfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfcfcfafdfdfbfdfdfbfcfcfa
+fcfcfafdfdfbfdfdfbfcfcfafdfdfbfefefcfffffdfefefcfefefcfdfdfbfefefcffffff
+fefefffefdfffffefffffefffefefffefefffefefefffffffffffff9f9f7f0f0eefffffd
+fffffbeff0ebf8f9f4fffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfdfdfbfdfdfbfffffdfffffdfdfdfbfcfcfa
+fffffdfffffdfffffdfefefcfefefcfdfdfbfdfdfbfdfdfbfefefcfefefcfefefcfdfdfb
+fdfdfbfdfdfbfefefcfefefcfffffdfffffdfffffdfffffdfffffdfefefcfdfdfbfcfcfa
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff
+fffffffffffffefefefdfdfdfdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfefefefefefeffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffffffffff8f8f8fffffffcfcfcfdfdfdfffffffafafaf9f9f9fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffdfffffdfefefcfefefcfffffdfffffdfffffdfefefc
+fffffdfffffdfffffdfefefcfefefcfffffdfffffdfffffdfefefcfffffdfffffdfefefc
+fefefcfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefe
+fbfbfdfcfbfffdfcfffdfcfffdfdfffdfdfffefefefffffffdfdfbfcfdf8fffffbf2f3ed
+f2f3edfffffafbfcf6fdfef8fffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfefefcfcfcfafdfdfbfffffdfffffdfffffdfdfdfb
+fbfbf9fefefcfffffdfffffdfdfdfbfbfbf9fefefcfffffdfffffdfffffdfffffdfffffd
+fefefcfffffdfffffdfffffdfbfbf9fdfdfbfefefcfefefcfffffdfffffdfffffdfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fffffffffffffffffffdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffdfdfdfefefefffffffbfbfbfafafafffffffffffffcfcfcfffffffbfbfbffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fdfdfdfffffffefefefffffff2f2f2f7f7f7f1f1f1
+fffffffffffffffffffbfbfbfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffff
+fefefffefdfffefdfffefdfffefefffefefffefefefefefefffffdfffffbfffffbfffffa
+fffffafffff8fffff8fffff8fffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf3f3f3
+fefefeffffffeeeeeefffffff6f6f6f7f7f7fafafafdfdfdfcfcfcfbfbfbfcfcfcffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffff
+fdfdfdfcfcfcfbfbfbf9f9f9fcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fcfcfcfffffffefefee7e7e7f4f4f4ffffffffffff
+fefefef2f2f2fafafafffffffffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffff
+fffffffffefffffefffffefffffffffffffffffffffffffffffffdfffffbfffffbfffffa
+fffffafffff8fffff8fffff8fffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8f9f9f9ffffffffffff
+fffffffdfdfdf3f3f3fefefefffffffffffffffffffffffffffffffdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fafafaf9f9f9f9f9f9
+fbfbfbfcfcfcf9f9f9f3f3f3fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdfffffffffffff7f7f7f8f8f8
+f9f9f9fdfdfdfffffffafafafefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffff
+fffdfffffdfffffdfffffdfffffdfffffdfffffdfefffdfefffffdfffffbfffffbfffffa
+fffffafffffafffffafffffafffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffff7f7f7f6f6f6f7f7f7
+f2f2f2fbfbfbfffffff3f3f3f6f6f6f8f8f8fafafafafafaf9f9f9fafafafcfcfcfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffffffffffffffcfcfc
+fefefefffffff9f9f9efefeffafafaf9f9f9f9f9f9fafafafafafafbfbfbfdfdfdfdfdfd
+fefefe030303000000020202000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfce2e2e2f0f0f0f8f8f8ffffff
+fefefefefefefffffffffffffefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffff
+fffdfffffdfffffdfffffdfffffdfffffdfffffdfefffdfefffefffffffdfffffdfffffb
+fffffbfffffbfffffbfffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfefefeffffffffffff
+fefefeffffffe6e6e68787876262626666666a6a6a696969686868696969696969686868
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6969696c6c6c6b6b6b676767
+6868686b6b6b6565655b5b5bfafafafafafafafafafafafafafafafbfbfbfcfcfcfdfdfd
+fefefe030303000000020202000000000000
+010101000000000000000000040404fafafafffffffbfbfbfffffff5f5f5ffffffffffff
+fefefefffffffdfdfdf7f7f7fafaf8fafaf8fafaf8fbfbf9fbfbf9fcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfc
+fcfafdfcfafffcfafffcfafffcfafdfcfafdfcfafdfcfafbfdfbfcfdfbfcfdfbfcfdfcfa
+fdfcfafdfcfafdfcfafdfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fefefefdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbeeeeeefffffff2f2f2ededed
+e6e6e6fffffff5f5f5737373f9f9f9fffffffffffffffffffffffffffffffefefef9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefef5f5f5fefefefffffffbfbfb
+fcfcfcfffffffdfdfdf4f4f4fdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefefefe
+fefefe030303000000020202000000000000
+010101000000000000000000030303fafafafefefefafafaf2f2f28e8e8e9d9d9d909090
+979797a9a9a9a2a2a29595959999979999979a9a989a9a989b9b999c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9c
+9c9a9d9c9a9f9c9a9f9c9a9f9c9a9d9c9a9d9c9a9d9c9a9d9d9b9e9d9b9c9d9b9e9d9b9c
+9d9b9e9d9b9c9d9b9e9d9b9c9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c
+9e9e9e9e9e9e9d9d9d9d9d9d9c9c9c9b9b9b9b9b9b9a9a9aa9a9a9eeeeeef9f9f9ffffff
+fdfdfdffffffffffff666666efefeff8f8f8fcfcfcf9f9f9fafafafffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9fffffffffffff8f8f8
+f8f8f8fdfdfdf6f6f6e8e8e8fffffffefefefefefefdfdfdfefefefefefeffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9fbfbfb999999fffffffcfcfc
+f4f4f4f7f7f7f9f9f9fefefef7f7f5f8f8f6f8f8f6f9f9f7fafaf8fbfbf9fbfbf9fcfcfa
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbfb
+fbf9fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fcfef9fdfef9fdfef9fffef9fd
+fef9fffef9fdfef9fffcfafdfbfbfbfbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fefefefdfdfdfdfdfdfcfcfcfbfbfbfafafafafafaf9f9f9c7c7c7fffffff8f8f8fafafa
+f2f2f2f8f8f8f7f7f7696969fffffffffffffffffff7f7f7f5f5f5fefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffff6f6f6f9f9f9f6f6f6f2f2f2
+fbfbfbfffffffafafae5e5e5fffffffffffffefefefefefefefefefefefeffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9ffffff7f7f7ffffffffcfcfc
+fefefefffffffdfdfdfafafafafaf8fbfbf9fcfcfafcfcfafdfdfbfefefcfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffff
+fffdfefffdfffffcfffffdfffffcfffffdfffffcfffffdfffffdfffffefffffdfffffeff
+fffdfffffefffffdfffffefffffffffffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdc4c4c4ffffffe7e7e7fdfdfd
+fffffffffffffafafa6c6c6cfdfdfdfcfcfceeeeeed6d6d6cacacacccccccdcdcdc9c9c9
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cececececececececececececececececececececececececececececececececececece
+ccccccccccccccccccccccccccccccccccccccccccccccccd0d0d0d1d1d1cfcfcfd6d6d6
+f0f0f0fffffffcfcfce3e3e3fffffffffffffefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdf6f6f6abababfcfcfcf3f3f3
+fffffffcfcfcfdfdfdecececfffffff1f1f1fffffffcfcfcf1f1f1fffffffffffff9f9f9
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefffdfefefefefffdfefefefefffdfefefefefffdfefefefefffdfffefefe
+fffdfffefefefffdfffefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfbfbfbd1d1d1fbfbfbfcfcfcffffff
+fffffffafafafefefe717171fefefef8f8f8f5f5f5c2c2c2b7b7b7d6d6d6cbcbcbc8c8c8
+d3d3d3d8d8d8c8c8c8c5c5c5bebebed6d6d6d2d2d2ccccccd0d0d0c0c0c0c4c4c4d0d0d0
+dededec3c3c3d5d5d5c8c8c8d0d0d0cdcdcdcdcdcdd0d0d0d0d0d0cdcdcdcdcdcdd0d0d0
+cbcbcbcccccccccccccdcdcdcdcdcdcccccccccccccbcbcbd0d0d0c7c7c7dededec4c4c4
+c6c6c6c1c1c1c8c8c8d5d5d5cececececececececececececececececececececececece
+cececececececececececececececececececececececececbcbcbcccccccdcdcdcfcfcf
+cfcfcfd0d0d0cfcfcfcfcfcfcacacacacacacacacacacacacacacacacacacacacacacaca
+d2d2d2cecececdcdcdd0d0d0d2d2d2cfcfcfcbcbcbc8c8c8cfcfcfd8d8d8afafaf9e9e9e
+fffffffffffff7f7f7e4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffff888888fdfdfdfafafa
+fffffff1f1f1f7f7f7edededfffffff6f6f6f8f8f8fffffffcfcfcf6f6f6fcfcfcfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfbfbfbd1d1d1fbfbfbfdfdfdffffff
+fffffffbfbfbfefefe707070fffffffefefefefefed2d2d2d2d2d2fdfdfdfcfcfcffffff
+ecececedededffffffffffffffffffe7e7e7f4f4f4fffffff7f7f7ffffffffffffededed
+fbfbfbf4f4f4fffffffffffffefefefbfbfbfbfbfbfefefefefefefbfbfbfbfbfbfefefe
+fefefefffffffffffffffffffffffffffffffffffffefefef3f3f3fefefef1f1f1f6f6f6
+fffffffffffffffffff6f6f6fdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefefefefefefefefefefe
+fdfdfdfcfcfcfafafafafafaffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfbfbfbfdfdfdfefefefdfdfdfcfcfcfbfbfbf2f2f2edededacacac959595
+fefefefdfdfdfbfbfbe9e9e9fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffff8b8b8bfffffffefefe
+ddddddfafafafffffffefefeeeeeeefffffff7f7f7f7f7f7fffffff0f0f0fcfcfcffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfcfcfcd0d0d0fbfbfbfdfdfdffffff
+fffffffcfcfcfefefe6f6f6ff9f9f9f6f6f6f6f6f6c9c9c9cbcbcbfcfcfcffffffffffff
+fffffffcfcfcfdfdfdeeeeeefffffff9f9f9fffffffefefef4f4f4eaeaeaffffffffffff
+fffffffffffffffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafbfbfbfbfbfbfcfcfcfcfcfcfbfbfbfbfbfbfafafaffffffffffffffffffffffff
+edededf1f1f1fffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9a3a3a38c8c8c
+f5f5f5fbfbfbfbfbfbe6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdfdfdfdafafafeaeaeaebebeb
+1717170000000000000606060a0a0aefefefffffffe0e0e0fffffffffffff4f4f4f9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffefefefefefefdfdfdfcfcfccececefcfcfcffffffffffff
+fffffffdfdfdffffff6e6e6efffffffefefefcfcfccbcbcbcacacafafafafbfbfbfdfdfd
+f2f2f2fbfbfbfffffffffffffefefefffffffbfbfbf7f7f7fffffff9f9f9fefefef5f5f5
+fbfbfbfffffff7f7f7fdfdfdfefefefbfbfbfbfbfbfefefefefefefbfbfbfbfbfbfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffedededf8f8f8fcfcfc
+edededfffffff2f2f2fafafafdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffcfcfcf8f8f8f9f9f9fcfcfcfdfdfdfefefef8f8f89c9c9c919191
+f8f8f8fefefefcfcfce3e3e3fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdf7f7f7979797fffffff0f0f0
+f5f5f5ffffff000000fffffffefefee8e8e8e7e7e7fffffff1f1f1e5e5e5fffffff1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfcfcfccdcdcdfdfdfdffffffffffff
+fffffffefefeffffff6c6c6cfefefeffffffffffffd0d0d0d0d0d0ffffffffffffffffff
+fffffff4f4f4f2f2f2f6f6f6fffffffdfdfdffffffffffffeaeaeaffffffffffffeeeeee
+fefefefffffff2f2f2fffffffffffffdfdfdfdfdfdfffffffffffffdfdfdfdfdfdffffff
+f5f5f5f5f5f5f6f6f6f6f6f6f6f6f6f6f6f6f5f5f5f5f5f5fffffffffffff4f4f4f2f2f2
+f8f8f8ffffffebebebfffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffffffffffffff9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fcfcfcfffffffffffffcfcfcf9f9f9fdfdfdfffffffffffff5f5f5fafafa9c9c9c9c9c9c
+fbfbfbffffffffffffe7e7e7fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdf4f4f4a0a0a0ffffffffffff
+ffffffe7e7e7080808fcfcfcfbfbfbfffffffefefef9f9f9f6f6f6edededffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdcbcbcbfdfdfdfffffffefefe
+fefefeffffffffffff6b6b6bf4f4f4f8f8f8fbfbfbcacacacbcbcbfcfcfcfafafaf6f6f6
+f5f5f5fdfdfdffffffe8e8e8f6f6f6fafafaffffffecececffffffe8e8e8e5e5e5ffffff
+f2f2f2f1f1f1fefefee8e8e8fbfbfbf8f8f8f8f8f8fbfbfbfbfbfbf8f8f8f8f8f8fbfbfb
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbeaeaeaf4f4f4e7e7e7ffffff
+fbfbfbefefefffffffdfdfdff7f7f7f7f7f7f8f8f8f9f9f9f9f9f9fafafafafafafbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafa
+f9f9f9f8f8f8f7f7f7f6f6f6fefefefefefefefefefefefefefefefefefefefefefefefe
+f1f1f1f7f7f7f9f9f9f4f4f4f4f4f4fbfbfbfdfdfdfafafaf3f3f3ffffff9797979c9c9c
+f3f3f3fafafaffffffe8e8e8fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffffa2a2a2f9f9f9e1e1e1
+fdfdfdf8f8f80a0a0af0f0f0f4f4f4f2f2f2efefeffffffffffffffffffff5f5f5fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdcacacafefefefffffffefefe
+fefefeffffffffffff6a6a6afcfcfcffffffffffffcecececdcdcdfffffffdfdfdf7f7f7
+ebebebfefefeedededffffffe1e1e1fffffff5f5f5fffffff6f6f6ffffffefefefffffff
+e6e6e6e7e7e7fffffff1f1f1fefefefbfbfbfbfbfbfefefefefefefbfbfbfbfbfbfefefe
+f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8f8f8f8fffffff9f9f9fefefef4f4f4
+fbfbfbfafafaf6f6f6f5f5f5f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfbfbfbfafafaf9f9f9f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7
+f6f6f6fcfcfcfcfcfcf6f6f6f8f8f8fffffffefefef5f5f5f4f4f4ffffff9191919b9b9b
+efefeff7f7f7fdfdfde4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000040404fbfbfbfffffffdfdfdffffff969696f3f3f3ffffff
+fdfdfdffffff000000fffffffefefefdfdfdfffffffafafaf9f9f9fdfdfdf9f9f9ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdcacacafefefefffffffefefe
+fefefeffffffffffff696969fafafaffffffffffffcbcbcbcbcbcbfffffffffffffbfbfb
+0d0d0d000000010101fffffffafafae8e8e81b1b1b000000000000fffffffdfdfddfdfdf
+fdfdfdfffffff6f6f6f9f9f9fefefefbfbfbfbfbfbfefefefefefefbfbfbfbfbfbfefefe
+fefefefffffffffffffffffffffffffffffffffffffefefee1e1e1ffffffdcdcdc020202
+070707090909000000fffffff8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfd
+fafafafafafafafafafafafafafafafafafafafafafafafaf8f8f8f8f8f8fafafafbfbfb
+fcfcfcfcfcfcfcfcfcfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffefefef6f6f6f7f7f7fcfcfcf7f7f7eaeaeaf5f5f5ffffff919191a2a2a2
+f8f8f8ffffffffffffe3e3e3fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fdfdfdfffffffefefeffffff989898fdfdfdfdfdfd
+fbfbfbffffff030303fcfcfcfffffffefefefdfdfdfdfdfdfefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfcfcfcfcfcfccccccccdcdcdfefefefefefeffffff
+f7f7f7101010050505efefeffffffff0f0f0ffffff020202fcfcfcfefefee3e3e3ffffff
+f2f2f2fffffffcfcfceeeeeeffffffeaeaeae6e6e6f7f7f7fefefefffffffafafaffffff
+f7f7f7f4f4f4f7f7f7f4f4f4fafafaf1f1f1f5f5f5ffffffffffff000000090909ffffff
+edededffffffffffff010101ffffffe5e5e5ffffffeeeeeefdfdfdf6f6f6f8f8f8f8f8f8
+fefefef3f3f3fffffffcfcfcedededffffffe9e9e9fdfdfdfffffff1f1f1030303ffffff
+f5f5f5efefeffffffffcfcfcfffffffdfdfdffffffecececf2f2f2f1f1f1fffffffdfdfd
+fffffff0f0f0f9f9f9fffffffbfbfb000000fffffffffffffffffffafafaa6a6a6929292
+fffffff8f8f8ffffffe6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fcfcfcfffffffefefeffffff969696fbfbfbfcfcfc
+fafafaffffff010101f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfcfcfcfcfcfccccccccdcdcdfefefefefefeffffff
+ffffff000000171717202020e7e7e7edededf3f3f30a0a0afffffff5f5f5fafafae1e1e1
+ffffffdcdcdcfdfdfdffffffe2e2e2f7f7f7fffffffffffff0f0f0fffffffffffff4f4f4
+f1f1f1fffffff9f9f9fffffff7f7f7fffffffefefeffffff000000040404ffffffe0e0e0
+fbfbfbf4f4f4fdfdfd131313fffffffffffff7f7f7fffffffffffff7f7f7fffffffbfbfb
+eeeeeefffffffffffffffffffbfbfbf6f6f6ffffffebebebf2f2f2ffffff000000fbfbfb
+ffffffffffffe6e6e6efefeff9f9f9fefefefcfcfcfffffffffffffffffff0f0f0ededed
+ffffffeeeeeef8f8f8f3f3f3ffffff1c1c1cffffffe8e8e8f7f7f7fdfdfd9696969b9b9b
+eeeeeefffffff7f7f7e4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+010101000000000000000000050505fcfcfcfffffffdfdfdffffff979797fefefeffffff
+fcfcfcffffff020202fbfbfbfefefefefefefdfdfdfdfdfdfdfdfdfefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfcfcfcfdfdfdcdcdcdcdcdcdfdfdfdfefefefefefe
+fafafa131313f3f3f3000000ffffffffffffffffff000000fefefeedededffffffffffff
+0000000101010b0b0bf6f6f6020202151515010101f1f1f1f5f5f5040404f1f1f1f4f4f4
+141414000000000000dfdfdfe7e7e7fffffff7f7f7ffffff080808fefefefefefefcfcfc
+f7f7f7fffffffafafaddddddeaeaeafffffffcfcfc000000191919040404eaeaeafdfdfd
+ffffff181818000000000000242424060606000000fcfcfcf4f4f4000000000000131313
+000000fafafaf7f7f7fbfbfb272727000000000000f8f8f80000000e0e0e000000ffffff
+0a0a0a010101161616f6f6f6000000000000020202222222f8f8f8fefefe9898989d9d9d
+f0f0f0fffffff8f8f8e5e5e5fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+010101000000000000000000040404fbfbfbfffffffcfcfcfefefe979797ffffffffffff
+fcfcfcffffff020202fbfbfbfdfdfdfdfdfdfefefefdfdfdfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfdfdfdfdfdfdcdcdcdcececefdfdfdfdfdfdfdfdfd
+fcfcfc000000e8e8e8fcfcfc080808f3f3f3f0f0f0131313f3f3f3fafafaffffff050505
+edededffffffffffff000000ffffff000000fbfbfbffffffe7e7e7040404161616f0f0f0
+fefefe111111fbfbfbfffffffefefefffffff9f9f9f8f8f8030303fdfdfdfafafaffffff
+eeeeeef6f6f6fdfdfdfffffffffffff1f1f1222222f9f9f9f0f0f0f7f7f70c0c0cf7f7f7
+e9e9e9ffffff000000ffffffd8d8d8f9f9f9121212fcfcfcfafafaebebeb191919ededed
+fffffff3f3f3fcfcfc010101e3e3e3f3f3f3ffffff000000ffffff070707060606fcfcfc
+ffffff000000fbfbfbffffffffffff000000ffffffdcdcdcfcfcfcf8f8f8a5a5a5929292
+fffffff8f8f8ffffffe4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+010101000000000000000000040404fafafafffffffbfbfbfbfbfb949494fdfdfdfcfcfc
+f7f7f7fdfdfd000000f9f9f9fdfdfdfefefefffffffffffffdfdfdfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfdfdfdfefefececececececefdfdfdfcfcfcfbfbfb
+ececec010101ffffffffffff050505171717ebebeb0d0d0de9e9e9ffffff0a0a0aececec
+ffffffeeeeeef5f5f5070707f7f7f70202021b1b1bf9f9f9e8e8e8242424000000ffffff
+ffffff070707f6f6f6f9f9f9f4f4f4ecececfffffff8f8f8030303fdfdfdfafafaffffff
+eeeeeef6f6f6fdfdfdfffffffefefe000000e1e1e1fffffffefefeffffffededed151515
+fdfdfdf3f3f3000000f1f1f1fffffffefefe000000fdfdfdfcfcfcffffff000000f6f6f6
+efefefffffff0a0a0afcfcfcf2f2f2ffffffe9e9e9111111ffffffededed030303f7f7f7
+000000efefeffffffff2f2f2f3f3f30a0a0aeeeeeefffffffafafaf6f6f6a4a4a4919191
+fffffff6f6f6ffffffe1e1e1fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+010101000000000000000000030303fafafafefefefafafaffffff989898fffffffefefe
+f8f8f8fefefe020202fefefef7f7f7f9f9f9fbfbfbfafafaf8f8f8f8f8f8fbfbfbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfdfdfdfefefecfcfcfcfcfcffdfdfdfcfcfcfafafa
+ffffff000000f9f9f9fefefee9e9e9000000ffffff000000f3f3f3ffffff0000000f0f0f
+0000001313130e0e0e030303ffffffffffff000000e2e2e20f0f0febebeb000000ffffff
+010101fffffff1f1f1eaeaeafffffffefefeeaeaeaffffff080808fefefefefefefcfcfc
+f7f7f7fffffffafafaddddddfcfcfc020202ffffffd3d3d3fcfcfcfefefef4f4f4010101
+fdfdfdfdfdfd080808fafafafafafaf6f6f61d1d1df9f9f9fdfdfde1e1e1010101f6f6f6
+ffffffe3e3e30000000a0a0a0f0f0f000000010101000000ffffffffffffffffff0f0f0f
+fafafafefefeecececf4f4f4ffffff040404f3f3f3f2f2f2f8f8f8ffffff9a9a9aa0a0a0
+f4f4f4fffffff9f9f9e5e5e5fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9ffffff999999fffffffdfdfd
+f6f6f6fcfcfc030303fffffff3f3f3f7f7f7fafafaf8f8f8f5f5f5f5f5f5f9f9f9fefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfdfdfdffffffcfcfcfcfcfcffdfdfdfbfbfbfafafa
+f3f3f30e0e0edbdbdbfffffffbfbfb000000000000000000fffffffefefe030303fbfbfb
+ffffffe6e6e6f3f3f3fefefef3f3f3f8f8f80e0e0effffff0a0a0affffff070707f1f1f1
+0e0e0ef0f0f0fffffff1f1f1f7f7f7fffffffefefef3f3f3000000040404ffffffe0e0e0
+fbfbfbf4f4f4fdfdfd131313ffffff000000eeeeeefffffff7f7f7fafafaffffff000000
+f3f3f3ffffff000000fffffff3f3f3f1f1f1101010fafafaf7f7f7ffffff0f0f0feeeeee
+f4f4f4ffffff000000ffffffffffffdededefffffffffffff3f3f3f4f4f41c1c1ce8e8e8
+000000fffffff0f0f0f5f5f5ffffff000000ffffffe6e6e6f9f9f9ffffff9c9c9ca2a2a2
+f5f5f5fffffffafafae6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+010101000000000000000000030303f9f9f9fdfdfdf9f9f9f9f9f9929292f7f7f7f4f4f4
+edededf4f4f4000000fafafaf9f9f9fdfdfdfffffffffffffcfcfcfcfcfcffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffcacacafdfdfdffffffffffff
+ffffffffffffffffff6a6a6afcfcfcfdfdfdffffffd0d0d0cfcfcffdfdfdfbfbfbf9f9f9
+fefefe050505ffffffe0e0e0fffffffbfbfb050505030303f3f3f3f4f4f40d0d0d000000
+fffffff3f3f3ffffff050505ffffffffffff000000000000000000eeeeeeffffff000000
+040404e9e9e9fffffff4f4f4f3f3f3fffffff8f8f8ffffffffffff000000090909ffffff
+edededffffffffffff010101f4f4f4f9f9f90a0a0af5f5f5fbfbfbf1f1f1000000ffffff
+f7f7f7ffffff121212e5e5e5fefefeffffff000000fffffffffffff2f2f2000000ffffff
+f7f7f7f0f0f00e0e0e030303f3f3f3fdfdfde4e4e4101010ffffff000000fafafafdfdfd
+000000000000fffffffcfcfcececec0a0a0af9f9f9fcfcfcf7f7f7f4f4f4a3a3a3919191
+fffffff5f5f5fdfdfddfdfdffffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbffffffa4a4a4f6f6f6ffffff
+ffffffffffff000000fffffff7f7f7e6e6e6ffffffd8d8d8ffffffe2e2e2fcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfdfdfdffffffffffffffffffffffffcacacafdfdfdfffffffcfcfc
+fdfdfdffffffffffff6c6c6cf4f4f4f7f7f7fdfdfdd2d2d2d3d3d3ffffffffffffffffff
+101010000000060606ffffffe6e6e6f4f4f4ffffff010101f1f1f1ffffffeeeeee1b1b1b
+000000171717000000ffffffeaeaeaf3f3f3ffffff000000fcfcfcf5f5f5fefefe040404
+fbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfcfcfcfbfbfbeeeeeef6f6f6e7e7e70d0d0d
+020202020202131313f6f6f6fffffff5f5f5ffffff000000000000060606edededffffff
+ffffff0000000d0d0d101010ececec000000141414000000ffffffe3e3e3101010000000
+020202fffffff8f8f8050505010101080808000000f3f3f30808080d0d0d000000fdfdfd
+1010100000001b1b1bf1f1f1efefef1717170000001e1e1efffffffbfbfb8e8e8eb2b2b2
+d9d9d9fffffff9f9f9e6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbdadadaa3a3a3e6e6e6ededed
+ebebebebebeb292929fcfcfcf4f4f4ffffffefefeffffffffdfdfdf6f6f6f5f5f5ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffffffffefefecacacafdfdfdfffffffdfdfd
+fefefeffffffffffff6c6c6cfffffffffffffafafac5c5c5c3c3c3f6f6f6f8f8f8f8f8f8
+f9f9f9f9f9f9fefefeffffffe9e9e9ffffffe1e1e1f9f9f9edededffffffe2e2e2e9e9e9
+f9f9f9e9e9e9f5f5f5f7f7f7fdfdfdfffffffcfcfce8e8e8fffffff0f0f0e6e6e6f2f2f2
+f9f9f9f9f9f9fafafafafafafafafafafafaf9f9f9f9f9f9ffffffecececfafafaf8f8f8
+e7e7e7f4f4f4fffffff2f2f2ffffffecececf8f8f8fbfbfbf6f6f6fafafaffffffededed
+f8f8f8f7f7f7f4f4f4f2f2f2fbfbfbfffffffffffff6f6f6f5f5f5fdfdfdebebebffffff
+f0f0f0e6e6e6fffffff1f1f1f9f9f9f1f1f1fdfdfdffffffedededf9f9f9fffffff6f6f6
+fcfcfcffffffedededffffffffffffe2e2e2f9f9f9fbfbfbf4f4f4ececec989898989898
+f3f3f3f1f1f1ffffffe3e3e3fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbffffff7c7c7cffffffffffff
+0a0a0a000000020202080808090909f5f5f5fefefef1f1f1e1e1e1fffffffffffffcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffffffffdfdfdcacacafcfcfcffffffffffff
+ffffffffffffffffff6b6b6bf6f6f6fcfcfcffffffcdcdcdd0d0d0fffffffffffff8f8f8
+fffffffffffffefefef0f0f0edededffffffdededefffffff5f5f5f0f0f0f2f2f2ffffff
+fbfbfbf5f5f5ffffffebebebf2f2f2ffffffecececfbfbfbf0f0f0fffffff3f3f3ffffff
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcecececf5f5f5e3e3e3ffffff
+edededf5f5f5ffffffeaeaeafffffff6f6f6f7f7f7ffffffeeeeeef5f5f5f8f8f8f3f3f3
+fafafaf6f6f6ffffffecececfffffff3f3f3fefefef1f1f1f7f7f7f7f7f7edededeaeaea
+fffffff0f0f0fbfbfbf7f7f7fffffffffffff6f6f6ffffffe5e5e5fdfdfdf6f6f6e9e9e9
+f1f1f1fdfdfdffffffe4e4e4e2e2e2fefefefffffff9f9f9ffffffffffffa4a4a4959595
+ffffffe8e8e8ffffffdededefffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf2f2f2919191e4e4e4ffffff
+e4e4e4fffffffffffff4f4f4ffffffffffffe4e4e4fffffffffffff4f4f4fffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffffffffefefefcfcfccbcbcbfcfcfcffffffffffff
+ffffffffffffffffff6b6b6bf6f6f6fdfdfdffffffcdcdcdcbcbcbfbfbfbf3f3f3e8e8e8
+f3f3f3f5f5f5ebebebfffffff8f8f8eeeeeeffffffe9e9e9ffffffecececfffffff3f3f3
+edededffffffedededfafafafffffff1f1f1ffffffe6e6e6ffffffe9e9e9fffffff8f8f8
+f8f8f8f9f9f9fafafafafafafafafafafafaf9f9f9f8f8f8efefefffffffedededf3f3f3
+f0f0f0fefefee1e1e1fffffff0f0f0f6f6f6fffffff3f3f3f7f7f7f8f8f8ffffffececec
+fefefefafafafffffff8f8f8fffffff5f5f5fdfdfdfbfbfbf7f7f7fffffff9f9f9eeeeee
+edededf0f0f0e8e8e8fffffff9f9f9f4f4f4f3f3f3fffffff4f4f4ffffffffffffffffff
+fbfbfbecececfffffffffffffffffffffffff3f3f3ffffffefefefffffff878787979797
+f9f9f9f6f6f6ffffffe6e6e6fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbfcfcfcabababfffffff9f9f9
+f8f8f8fefefef8f8f8fffffff0f0f0fffffffffffff4f4f4fffffff8f8f8f4f4f4fdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefffffffffffffcfcfcfafafacdcdcdfcfcfcffffffffffff
+fffffffdfdfdfefefe6c6c6cfefefefefefefcfcfcc8c8c8c8c8c8fdfdfdffffffffffff
+fffffffffffffffffff7f7f7fefefef8f8f8f4f4f4fdfdfdf3f3f3f9f9f9f3f3f3f9f9f9
+fffffffffffffffffffdfdfdfffffff0f0f0fffffff8f8f8fcfcfcefefeffffffff9f9f9
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdf3f3f3fffffffefefe
+fcfcfcfffffff3f3f3fffffffffffffafafaeaeaeafffffff2f2f2fffffffdfdfdffffff
+eaeaeaf9f9f9f9f9f9fffffff1f1f1fefefefefefefffffffffffff7f7f7f5f5f5ffffff
+fbfbfbfffffff3f3f3f8f8f8fdfdfdf8f8f8fffffff4f4f4fbfbfbf8f8f8fffffff5f5f5
+fffffffffffffdfdfdfdfdfdfbfbfbf8f8f8fbfbfbfffffffcfcfcffffff8b8b8b9f9f9f
+f5f5f5fffffff8f8f8e4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf8f8f88d8d8dfefefef9f9f9
+f6f6f6ffffffffffffffffffffffffdadadaf8f8f8ffffffe5e5e5fdfdfdfffffff9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffefefefbfbfbf9f9f9d0d0d0fcfcfcfefefeffffff
+fffffffcfcfcfdfdfd6e6e6efbfbfbfafafafefefed1d1d1cbcbcbf1f1f1f2f2f2fbfbfb
+f6f6f6f7f7f7f9f9f9f1f1f1ffffffffffffeeeeeef6f6f6ffffffffffffffffffffffff
+eeeeeeedededfffffffdfdfdfffffffffffff6f6f6fefefef5f5f5ffffffffffffeeeeee
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfffffffdfdfdfffffffafafa
+f2f2f2e7e7e7fffffffbfbfbfbfbfbfffffff8f8f8fffffff8f8f8fcfcfcebebebf8f8f8
+ffffffefefeffdfdfdf5f5f5ffffffecececf9f9f9fafafaf6f6f6f8f8f8fffffff6f6f6
+e3e3e3f9f9f9fffffffefefefcfcfcfffffff5f5f5fffffff0f0f0f3f3f3e9e9e9ffffff
+f2f2f2fffffffdfdfdfffffffffffffdfdfdfffffff3f3f3f3f3f3f0f0f0a0a0a09b9b9b
+fffffffcfcfcfbfbfbdfdfdffffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbffffff8d8d8dffffffffffff
+f4f4f4fbfbfbfffffffbfbfbfbfbfbfefefef3f3f3fffffffffffffbfbfbf9f9f9ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffefefefbfbfbf8f8f8d3d3d3fcfcfcfdfdfdffffff
+fefefefafafafdfdfd707070fefefefafafafefefecececeb0b0b0b3b3b39d9d9da2a2a2
+999999a4a4a49c9c9ca8a8a88e8e8e8a8a8aa8a8a8a2a2a2a8a8a88585859c9c9c9c9c9c
+939393a8a8a89d9d9d8e8e8e9a9a9a949494999999a4a4a49999998686868a8a8aa2a2a2
+9a9a9a9a9a9a9b9b9b9b9b9b9b9b9b9b9b9b9a9a9a9a9a9a9898989d9d9d8f8f8f929292
+b0b0b0a2a2a2a3a3a3969696a1a1a19d9d9d9393937e7e7e999999a3a3a3a8a8a89a9a9a
+8484849f9f9fa0a0a09b9b9b8686869898989999999d9d9da7a7a79494949494949f9f9f
+a4a4a49494949b9b9b9a9a9a9494949696969595958383839d9d9da2a2a2a2a2a28f8f8f
+9797979898988f8f8f959595989898969696a1a1a1a0a0a0a6a6a6a1a1a19292928a8a8a
+fefefefbfbfbffffffe9e9e9fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000000000000000050505fbfbfbfffffffbfbfbf8f8f8a1a1a1f2f2f2ededed
+fffffffffffff3f3f3fdfdfdf1f1f1fffffff7f7f7f8f8f8ffffffe7e7e7fffffff9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffefefefafafaf7f7f7d5d5d5fdfdfdfcfcfcfefefe
+fdfdfdf9f9f9fdfdfd717171fefefef3f3f3f4f4f4c2c2c29f9f9f9b9b9b898989979797
+9999999797978f8f8f9696969090909f9f9f9696969c9c9c9090909c9c9c999999979797
+9797979292929696969f9f9f9393939b9b9b9393939494949797979e9e9e9999999d9d9d
+9595959696969797979797979797979797979696969595959797978c8c8c9e9e9e989898
+909090999999939393989898909090a0a0a0a2a2a29f9f9f9a9a9a959595909090999999
+9f9f9f9696968d8d8d9d9d9d9999999b9b9b9191919797978d8d8da6a6a68c8c8c919191
+9292929a9a9a9595959494949a9a9a969696989898949494a1a1a18f8f8f9292929d9d9d
+9d9d9d9b9b9b9d9d9d9494949494949e9e9e999999989898969696979797a1a1a1a1a1a1
+fbfbfbfffffff6f6f6e4e4e4fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefef4f4f4abababd2d2d2c9c9c9
+d0d0d0c4c4c4d8d8d8c3c3c3cccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbd4d4d4e3e3e3f0f0f0f5f5f5
+fffffff3f3f3f7f7f7696969fcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfefefefcfcfcf7f7f7
+fbfbfbfffffff8f8f8e8e8e8fffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefeffffffdcdcdcfffffffafafa
+fcfcfcf6f6f6fffffff9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfafafafbfbfbfffffffcfcfc
+f2f2f2ecececffffff6f6f6ff7f7f7f8f8f8f8f8f8f9f9f9fafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffffffffcfcfc
+fffffffffffffafafaeaeaeafffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefefafafaeeeeeeffffffffffff
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdedededfcfcfcfdfdfd
+f8f8f8ffffffffffff606060ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4f9f9f9fafafaf9f9f9
+fcfcfcfefefef4f4f4e5e5e5fffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefef1f1f1fdfdfdfbfbfbffffff
+f6f6f6fffffff6f6f6fefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffafafafefefeffffff
+fffffff9f9f9eeeeee686868e8e8e8e7e7e7e7e7e7e7e7e7e6e6e6e6e6e6e5e5e5e5e5e5
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e2e2e2e5e5e5e5e5e5e4e4e4
+e7e7e7e9e9e9e2e2e2d7d7d7fffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefef9f9f9fffffff8f8f8ffffff
+f8f8f8fffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe6e6e6f5f5f5f5f5f5f9f9f9
+fffffffcfcfcffffffedededfffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffff
+fffffffffffffffffffcfcfcfffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefef7f7f7ffffffedededfafafa
+f6f6f6fffffffbfbfbfcfcfcfefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffbfbfbf7f7f7
+ffffffeeeeeef5f5f5fffffffffffffffffffffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefbfbfbfafafa
+fbfbfbfdfdfdfdfdfdfdfdfdfffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefefcfcfcfffffff1f1f1ffffff
+fcfcfcfafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fbfbfbeeeeeef7f7f7
+fffffffefefefcfcfcfcfcfcfefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfefefe
+fffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101000000030303fafafafffffffefefefdfdfdfefefef4f4f4ffffff
+fdfdfdf0f0f0fffffffbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfefefeffffffffffffffffff
+f4f4f4fafafafffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfdfdfdffffff
+fffffffefefefdfdfdfefefefffffffffffffffffffefefefefefeffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfdfdfdfefefefefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202010101000000000000040404fcfcfcfffffffefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbfafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202000000000000000000000000fffffffbfbfbfffffffffffffffffffffffffefefe
+fefefefefefefffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfd
+fdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdf6f6f6fffffff7f7f7ffffff
+f5f5f5fffffff7f7f7f0f0f0f5f5f5ffffffeaeaeaecececf3f3f3fbfbfbfffffff5f5f5
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000020202000000fffffff3f3f3f7f7f7fdfdfdfdfdfdfdfdfdfdfdfd
+fefefefffffffffffffffffff8f8f8f9f9f9fafafafbfbfbfdfdfdffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefefffffffbfbfbf9f9f9fffffff3f3f3
+fffffff5f5f5fffffff8f8f8ecececf2f2f2fffffffffffffffffff6f6f6ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101040404000000fefefee9e9e9e9e9e9e6e6e6e6e6e6e4e4e4e3e3e3
+e1e1e1e1e1e1e1e1e1e1e1e1e6e6e6e5e5e5e3e3e3e2e2e2e1e1e1e2e2e2e3e3e3e4e4e4
+e5e5e5e5e5e5e5e5e5e4e4e4e4e4e4e3e3e3e3e3e3e2e2e2e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3
+e1e1e1e2e2e2e2e2e2e3e3e3e4e4e4e4e4e4e5e5e5e5e5e5e8e8e8e1e1e1ebebebdddddd
+e7e7e7d9d9d9e9e9e9ecececf8f8f8cbcbcbfafafafafafafffffff7f7f7fcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000010101050505000000fdfdfde5e5e5e2e2e2e7e7e7e6e6e6e5e5e5e4e4e4
+e3e3e3e3e3e3e3e3e3e3e3e3ebebebe9e9e9e6e6e6e3e3e3e1e1e1e1e1e1e1e1e1e2e2e2
+e5e5e5e5e5e5e4e4e4e3e3e3e3e3e3e2e2e2e1e1e1e1e1e1e5e5e5e5e5e5e5e5e5e6e6e6
+e6e6e6e6e6e6e6e6e6e6e6e6e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e6e6e6e6e6e6e5e5e5e5e5e5e4e4e4e3e3e3e3e3e3e2e2e2eaeaeae9e9e9ddddddeeeeee
+dededee7e7e7e3e3e3f4f4f4cecece919191f4f4f4eeeeeefffffffbfbfbfcfcfcfafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202000000000000030303000000fdfdfde5e5e5e2e2e2bdbdbdbdbdbdbebebebfbfbf
+c2c2c2c4c4c4c6c6c6c8c8c8bdbdbdbdbdbdbdbdbdbdbdbdbebebec0c0c0c3c3c3c4c4c4
+c1c1c1c1c1c1c1c1c1c0c0c0c0c0c0bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfc0c0c0
+c0c0c0c1c1c1c1c1c1c1c1c1bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf
+c1c1c1c1c1c1c0c0c0bfbfbfbfbfbfbebebebdbdbdbdbdbdc5c5c5c1c1c1b4b4b4c7c7c7
+bdbdbdc5c5c5bcbcbcc8c8c87373735e5e5efffffffcfcfcfffffffdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+020202000000000000030303000000ffffffe6e6e6e3e3e3bfbfbfbebebebdbdbdbdbdbd
+bcbcbcbcbcbcbdbdbdbdbdbdbcbcbcbcbcbcbdbdbdbebebebfbfbfbfbfbfc0c0c0c0c0c0
+bebebebebebebebebebebebebebebebebebebebebebebebebcbcbcbcbcbcbdbdbdbebebe
+bebebebfbfbfbfbfbfc0c0c0bebebebebebebebebebebebebebebebebebebebebebebebe
+bcbcbcbcbcbcbdbdbdbebebebebebebfbfbfc0c0c0c0c0c0c4c4c4b8b8b8bebebeb6b6b6
+c8c8c8bbbbbbc2c2c2bdbdbd5f5f5f5a5a5afffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010101000000000000030303000000ffffffe4e4e4dfdfdfc8c8c8c7c7c7c4c4c4c2c2c2
+bfbfbfbdbdbdbcbcbcbcbcbcc2c2c2c3c3c3c4c4c4c5c5c5c4c4c4c2c2c2c0c0c0bfbfbf
+c0c0c0c1c1c1c1c1c1c2c2c2c3c3c3c3c3c3c4c4c4c4c4c4bfbfbfbfbfbfc0c0c0c0c0c0
+c1c1c1c2c2c2c3c3c3c3c3c3c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c0c0c0c1c1c1c1c1c1c2c2c2c3c3c3c3c3c3c4c4c4c4c4c4c5c5c5c1c1c1c8c8c8b8b8b8
+c6c6c6bdbdbdc7c7c7c0c0c07474746a6a6af9f9f9f2f2f2fdfdfdfffffffcfcfcfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000050505010101fefefee1e1e1dadadac1c1c1c1c1c1c2c2c2c3c3c3
+c5c5c5c7c7c7c9c9c9cacacab4b4b4b7b7b7bcbcbcc0c0c0c3c3c3c3c3c3c2c2c2c1c1c1
+c0c0c0c1c1c1c2c2c2c3c3c3c4c4c4c5c5c5c6c6c6c6c6c6b9b9b9bababababababbbbbb
+bcbcbcbdbdbdbebebebebebebebebebebebebebebebebebebebebebebebebebebebebebe
+c0c0c0c0c0c0bfbfbfbebebebebebebdbdbdbcbcbcbcbcbcbcbcbcc8c8c8bebebec0c0c0
+aeaeaec1c1c1bdbdbdc0c0c06060606a6a6afbfbfbfffffffffffffafafaf3f3f3ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000020202ffffffe9e9e9eeeeeeafafafc8c8c8b8b8b8c1c1c1
+bbbbbbadadadccccccbbbbbbbfbfbfcfcfcfccccccb6b6b6c6c6c6b7b7b7ccccccc4c4c4
+bebebec1c1c1bdbdbdbcbcbcbbbbbbccccccb6b6b6bfbfbfbebebee4e4e4a9a9a9d7d7d7
+cacacab3b3b3dcdcdcb3b3b3c3c3c3c0c0c0b3b3b3bdbdbdc9c9c9bdbdbdc5c5c5bababa
+bfbfbfc0c0c0c0c0c0c2c2c2c3c3c3b7b7b7c9c9c9101010000000cdcdcdc0c0c0b0b0b0
+c6c6c6c7c7c7b6b6b6c8c8c86868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000000000fcfcfce1e1e1e5e5e5c4c4c4b8b8b8cfcfcfb9b9b9
+b7b7b7d4d4d4a9a9a9d3d3d3c0c0c0b9b9b9b4b4b4dfdfdfaeaeaed3d3d3acacacbfbfbf
+bcbcbcc7c7c7c5c5c5cdcdcdcdcdcdacacacb0b0b0d8d8d8bebebeaaaaaabcbcbcd0d0d0
+a2a2a2cfcfcfbbbbbbc2c2c2c3c3c3d3d3d3b2b2b2d0d0d0b0b0b0c1c1c1cbcbcbc3c3c3
+bebebecacacac0c0c0bebebeb7b7b7cbcbcbc2c2c2b3b3b3030303bbbbbbc9c9c9d0d0d0
+b0b0b0c1c1c1c8c8c8bebebe6868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000000000fbfbfbdfdfdfe1e1e1bfbfbfc3c3c3bababacacaca
+bdbdbdc1c1c1030303000000000000222222000000aeaeaec3c3c3b4b4b4c9c9c9bdbdbd
+bdbdbdc0c0c0b5b5b5b9b9b9b4b4b4bababad8d8d8b6b6b6b7b7b7161616070707000000
+040404010101060606cacacab7b7b7c1c1c1c5c5c5cacacab2b2b2c8c8c8adadadc7c7c7
+bfbfbfc8c8c8b6b6b6cacacac1c1c1bababab4b4b4e8e8e8000000b1b1b1d9d9d9a9a9a9
+c6c6c6b9b9b9c0c0c0c1c1c16868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000010101000000020202020202ffffffe2e2e2e5e5e5b9b9b9c9c9c9c2c2c2bdbdbd
+0000000b0b0bc4c4c4b6b6b6c1c1c1b7b7b7000000c6c6c6c7c7c7c3c3c3c7c7c7b4b4b4
+cdcdcdb4b4b4d4d4d4b9b9b9c7c7c7b7b7b7c5c5c5b3b3b3c1c1c1b5b5b5040404cecece
+b7b7b7babababbbbbb080808cacacab9b9b9adadadc1c1c1d6d6d6bfbfbfbbbbbbc9c9c9
+c0c0c0b3b3b3d0d0d0b8b8b8bababac8c8c8bdbdbdaaaaaa080808c7c7c7b5b5b5bababa
+d3d3d3bababac1c1c1cecece6868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000010101000000020202020202ffffffe2e2e2e5e5e5cacacab0b0b0c5c5c5c2c2c2
+060606bdbdbdb8b8b8cfcfcfc3c3c3cfcfcf000000cdcdcdbbbbbbafafafcbcbcbcbcbcb
+b4b4b4c5c5c5cbcbcbbbbbbbc5c5c5c4c4c4bbbbbbc2c2c2b1b1b1d2d2d2000000bbbbbb
+dbdbdbb3b3b3cbcbcb0000000e0e0ec1c1c1bebebeccccccadadadb9b9b9d1d1d19e9e9e
+d1d1d1b5b5b5bababacacacad0d0d0b4b4b4cdcdcdb9b9b9000000c0c0c0bebebec6c6c6
+b4b4b4bfbfbfd5d5d5b1b1b16868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000000000fbfbfbdfdfdfe1e1e1bcbcbcd0d0d0a5a5a5111111
+adadadd0d0d0b4b4b4bebebec0c0c0adadadc8c8c8b3b3b3c2c2c2c9c9c9bababa000000
+121212060606a8a8a8bbbbbbcfcfcfb4b4b4bcbcbcbfbfbfd1d1d1bfbfbf0a0a0abebebe
+d5d5d5bababa0000002c2c2cacacacbcbcbccacaca0505050101011c1c1cbcbcbccecece
+bbbbbbc8c8c8cbcbcb0a0a0a010101b7b7b7bcbcbcc0c0c0040404b3b3b3bfbfbf050505
+0f0f0fc2c2c2adadadc5c5c56868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000000000fcfcfce1e1e1e5e5e5b7b7b7c2c2c2cfcfcf090909
+ccccccbfbfbfc4c4c4c6c6c6c8c8c8b2b2b2d6d6d6d0d0d0b7b7b7c2c2c2080808bbbbbb
+cccccca4a4a40b0b0bc2c2c2c3c3c3b9b9b9d6d6d6a1a1a1d2d2d2c1c1c1000000161616
+0000000c0c0c1b1b1b000000cdcdcdb5b5b5050505000000c2c2c2aeaeae050505c8c8c8
+bdbdbdb2b2b2121212cdcdcdc5c5c5010101d9d9d9bbbbbb0b0b0ba6a6a6e9e9e9000000
+acacacc7c7c7c9c9c9c0c0c06868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000020202ffffffe9e9e9eeeeeec4c4c4c6c6c6b7b7b7000000
+c2c2c2b5b5b5c0c0c0bfbfbfc2c2c2000000131313000000b5b5b5020202cdcdcdb2b2b2
+bbbbbbd5d5d5cccccc000000b8b8b8d1d1d1b1b1b1cbcbcbbbbbbbb6b6b6040404bcbcbc
+ddddddc7c7c7adadad0b0b0b000000d0d0d0c7c7c7b5b5b5c9c9c90808080c0c0cc0c0c0
+bebebe0f0f0fb1b1b1b3b3b3c4c4c4c3c3c3bfbfbfafafaf090909c8c8c8000000cbcbcb
+c9c9c9c0c0c0b9b9b9c1c1c16868686c6c6cfffffffbfbfbfffffff8f8f8ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6cacacabababac6c6c60d0d0d
+adadadbebebed0d0d0b4b4b4c0c0c0c7c7c7030303c5c5c5d5d5d5000000bcbcbcdadada
+adadadc9c9c9c0c0c0000000efefefa5a5a5b7b7b7d6d6d6b1b1b1b2b2b2292929b9b9b9
+a7a7a7c7c7c7bfbfbfdcdcdc040404bebebec6c6c6000000000000b9b9b9060606b4b4b4
+cccccc000000bfbfbfd7d7d7c0c0c0c2c2c2afafafd6d6d60000000c0c0c000000acacac
+d3d3d3c7c7c7acacacc4c4c4666666717171fdfdfdfffffffdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6a5a5a5d2d2d2bebebe000000
+1d1d1dbababac1c1c1ccccccccccccadadad191919999999c6c6c6101010c9c9c9a4a4a4
+bfbfbfd2d2d2c6c6c6080808b8b8b8bebebed2d2d2b5b5b5bcbcbcbfbfbf000000c2c2c2
+b8b8b8bababad4d4d4bebebe000000cecece050505c3c3c3bcbcbcc5c5c5050505c6c6c6
+b4b4b4000000dfdfdfbcbcbcaeaeaedededec3c3c3cacaca000000c3c3c3c9c9c9060606
+b4b4b4b9b9b9cccccccccccc666666707070fdfdfdfffffffdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6cdcdcdc7c7c7b3b3b3c3c3c3
+000000131313aeaeaec4c4c4bbbbbbc8c8c8000000e0e0e0b8b8b8cdcdcd000000ededed
+b9b9b9ababab0b0b0bc4c4c4cececebababaccccccc1c1c1c3c3c3d5d5d5000000b7b7b7
+dbdbdbb4b4b4b5b5b5010101121212bcbcbc000000cbcbcbcecece000000040404c6c6c6
+c2c2c2111111000000c2c2c2c1c1c1000000c9c9c9c4c4c4070707c2c2c2a8a8a80f0f0f
+0b0b0bc7c7c7babababdbdbd656565707070fcfcfcfffffffdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6c4c4c4b7b7b7dbdbdba6a6a6
+b5b5b5cfcfcf0a0a0a000000020202121212000000c9c9c9bcbcbcbebebebcbcbc000000
+0d0d0d141414b0b0b0bebebec0c0c0bababab0b0b0c9c9c9bbbbbb000000131313030303
+0505050f0f0f0d0d0db2b2b2c7c7c7bfbfbfdddddd000000010101d0d0d0000000000000
+ccccccb4b4b40b0b0b000000161616080808c4c4c4080808040404000000c9c9c9d1d1d1
+0000000808089f9f9fcccccc6565656f6f6ffcfcfcfffffffdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6c8c8c8b7b7b7d3d3d3b8b8b8
+c0c0c0bbbbbbbababad3d3d3bebebec5c5c5b6b6b6bfbfbfc3c3c3aeaeaed6d6d6cdcdcd
+c0c0c0a9a9a9bebebecdcdcdb8b8b8c5c5c5bababac6c6c6cfcfcfacacacdcdcdcb4b4b4
+b9b9b9b1b1b1bdbdbdc3c3c3c3c3c3b7b7b7a2a2a2cbcbcbb3b3b3cfcfcfc5c5c5c5c5c5
+c4c4c4b2b2b2d0d0d0bababab8b8b8bcbcbcb1b1b1bbbbbbc4c4c4c4c4c4c1c1c1b9b9b9
+abababd0d0d0d5d5d5cfcfcf6363636e6e6efbfbfbfefefefcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6c2c2c2b5b5b5bcbcbcd1d1d1
+d4d4d4c4c4c4d5d5d5afafafc6c6c6bababac2c2c2d4d4d4b8b8b8d1d1d1c1c1c1a6a6a6
+c2c2c2cdcdcdc3c3c3c2c2c2c4c4c4ccccccc9c9c9bebebeb6b6b6ccccccc2c2c2cacaca
+c2c2c2c2c2c2d4d4d4bababab6b6b6c9c9c9d3d3d3c8c8c8c8c8c8adadadc4c4c4c1c1c1
+bcbcbccececebbbbbbbebebec9c9c9d1d1d1c0c0c0c7c7c7c3c3c3bebebebfbfbfc6c6c6
+d6d6d6aeaeaeb9b9b9b1b1b16363636d6d6dfafafafefefefcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6c6c6c6bcbcbcc0c0c0bcbcbc
+adadada9a9a9bcbcbcc9c9c9b6b6b6c7c7c7bbbbbbabababbcbcbcb7b7b7bfbfbfc7c7c7
+c0c0c0bfbfbfbcbcbcb6b6b6bcbcbcb0b0b0b9b9b9c7c7c7ccccccc1c1c1b2b2b2bebebe
+b9b9b9bebebeadadadc0c0c0c0c0c0cacacaacacaca8a8a8b3b3b3cfcfcfbababac7c7c7
+b7b7b7cdcdcdbbbbbbbfbfbfb6b6b6b1b1b1bfbfbfbebebebcbcbcc4c4c4b8b8b8bcbcbc
+bebebebababacccccccccccc6262626c6c6cfafafafdfdfdfcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202000000000000010101fefefee3e3e3e6e6e6b6b6b6b8b8b8dadadabcbcbc
+bdbdbdcacacac9c9c9bfbfbfc0c0c0cfcfcfbcbcbcc7c7c7c4c4c4c4c4c4c1c1c1c2c2c2
+c3c3c3c4c4c4c2c2c2c5c5c5c8c8c8bfbfbfc4c4c4c0c0c0b2b2b2d0d0d0c3c3c3c2c2c2
+d0d0d0b9b9b9c8c8c8c3c3c3b9b9b9cbcbcbbdbdbdcececec9c9c9b7b7b7bfbfbfbcbcbc
+c9c9c9b2b2b2c6c6c6c4c4c4c1c1c1c4c4c4cbcbcbbdbdbdbfbfbfc6c6c6c3c3c3c7c7c7
+bfbfbfbfbfbfbcbcbccacaca6262626c6c6cf9f9f9fdfdfdfcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+040404010101000000000000000000f1f1f1efefefe7e7e7cececec3c3c3b7b7b7b5b5b5
+bbbbbbc1c1c1c0c0c0bcbcbcbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbd
+bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbd
+bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbd
+bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbabababababababababababa
+babababababababababababa7a7a7a707070fffffffbfbfbfffffff7f7f7fffffffdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+0000000000000303030000000a0a0afefefeeaeaeac9c9c97474746e6e6e686868696969
+6e6e6e7171716f6f6f6c6c6c686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+6868686868686868686868686868686868686868686868686d6d6d6d6d6d6d6d6d6d6d6d
+6d6d6d6d6d6d6d6d6d6d6d6d494949616161f5f5f5fffffffffffff0f0f0f3f3f3efefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000050505040404000000010101f3f3f3d3d3d3a2a2a2646464636363646464666666
+6969696a6a6a6969696666666c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c
+6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c
+6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c
+6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c696969696969696969696969
+696969696969696969696969717171909090e6e6e6f9f9f9fffffffbfbfbffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000020202020202000000080808fffffff5f5f5d9d9d9f7f7f7f9f9f9fcfcfcfefefe
+fefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf8f8f8fffffffbfbfbfbfbfbfcfcfcf5f5f5f5f5f5f4f4f4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010101000000010101000000050505fafafafffffffffffffefefeffffffffffffffffff
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafffffff0f0f0fbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+050505000000020202000000000000e5e5e5efefeffcfcfcfdfdfdfdfdfdfcfcfcfafafa
+f8f8f8f8f8f8fafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcf9f9f9fffffffffffffffffffdfdfdf3f3f3f0f0f0f2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+000000000000000000010101070707fcfcfcffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcffffffffffffffffffffffff
+fffffffffffffffffffffffff1f1f1f1f1f1fdfdfdf8f8f8fcfcfcfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+010101020202000000000000000000fefefefffffff2f2f2fefefefdfdfdfdfdfdfefefe
+fffffffffffffefefefcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffff0f0f0fffffff5f5f5fffffffffffffbfbfbf2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefe030303000000020202000000000000
+0000000303030000000000000a0a0afffffff0f0f0ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f2f2f20e0e0e0000000505050000000f0f0f
+0c0c0c000000070707020202000000101010000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0e0e0e000000040404000000000000101010
+0000000000000404040000000505050000000f0f0f090909020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+0000000c0c0c000000000000000000000000
+0000000c0c0c0000000000000000000000000c0c0c000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0606060a0a0a000000040404141414000000
+0101010000000000001313130101010e0e0e000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000040404020202000000030303
+0b0b0b000000050505000000000000000000000000070707020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+0f0f0f0000000d0d0d000000000000050505
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dataframe8.gif b/lib/orber/doc/src/dataframe8.gif
new file mode 100644
index 0000000000..ef95c9a11f
--- /dev/null
+++ b/lib/orber/doc/src/dataframe8.gif
Binary files differ
diff --git a/lib/orber/doc/src/dataframe8.ps b/lib/orber/doc/src/dataframe8.ps
new file mode 100644
index 0000000000..91911b911c
--- /dev/null
+++ b/lib/orber/doc/src/dataframe8.ps
@@ -0,0 +1,20261 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/dataframe8.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 38 172 575 620
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 1611 string def
+
+% define space for color conversions
+/grays 537 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+38 172 translate
+
+% size of image (on paper, in 1/72inch coords)
+536.97600 447.98400 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+537 448 8 % dimensions of data
+[537 0 0 -448 0 448] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+00000400000408070c000004000002000002000002050507000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000010100000000000000000000000000000000000000010100
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000002000002000002000002000002000002000002000002000002000002000002000002
+000002000002000002000002000000000000000000000000020202020202010101000000
+000000000000000000000000010101000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000060606000000020202000000020202030303000000
+0504090b0a0f00000406050a00000209090b000002000002030303020202020202010101
+010100020200020200030301040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404020202020202020202020202
+020202020202020202020202030303030303030303030303030303030303030303030303
+020202020202020202020202020202020202010101010101020202020202020202020202
+020202020202020202020202030301020200010100010100010100010100020200030301
+040402030301030301020200020200030301030301040402040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040406030305030305020204020204030305030305040406030305030305030305030305
+030305030305030305030305040404030303020202020202030303030303030303030303
+000000000000010101030303040404050505050505060606020202030303030303030303
+030303030303030303020202040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404020202030303030303030303
+030303030303030303020202040404040404030303030303030303020202020202020202
+020202020202020202020202020202020202010101010101040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+040404030303030303020202020202030303030303040404040404030303030303020202
+020202030303030303040404040404030303030303020202020202030303030303040404
+030303000000000000000000010101050505000000000000000000
+0000040000040000040c0b10000002060608040404040404000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000030303000000090909020202070707050505000000
+0d0c1100000409080d0b0a0f030305000002010101000000040404030303030301020200
+020200030301030301040402040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404020202020202020202020202
+020202020202020202020202040404040404040404030303030303030303030303020202
+030303030303030303030303040404040404040404040404030303030303030303030303
+040404040404040404040404050503050503040402040402040402040402050503050503
+040402040402030301020200020200030301040402040402040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040402030303020200020202030301040404040402030303030301030303030301
+030303030301030303030303020202030303040404030303030303020202040404050505
+070707060606040404020202010101010101010101020202040404030303030303030303
+030303030303030303040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404030303030303030303
+030303030303030303040404030303030303030303030303030303030303030303030303
+030303030303030303030303040404040404040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+040404040404030303020202020202030303040404040404040404040404030303020202
+020202030303040404040404040404040404030303020202020202030303040404040404
+050505000000090909000000040404000000030303000000000000
+0000020000020505070000020000020f0f110d0d0d000000000000000000000000000000
+000100000100000100000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000100000000000100000000000100000000000100000000000100000000000100
+000000000100000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000010101030303040404000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000202021414140000000303030d0d0d060606000000
+0c0c0e0d0d0f00000200000209090be7e7e7fffffffffffffcfcfafbfbf9fbfbf9fafaf8
+fafbf6fbfcf7fbfcf7fcfdf8fbfbf9fbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfafafaf9f9f9f9f9f9f8f8f8
+f6f6f6f6f6f6f7f7f7f7f7f7f8f8f8f9f9f9f9f9f9fafafaf7f7f7f8f8f8f8f8f8f9f9f9
+fafafafafafafbfbfbfbfbfbfafaf8fafaf8f9f9f7f8f8f6f8f8f6f9f9f7fafaf8fafaf8
+fbfbf9fbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fbfbf9fbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbf9
+fbfcf7fbfcf7fafbf6fafbf6fafbf6fafbf6fbfcf7fbfcf7fafbf6fafbf6fafbf6fafbf6
+fafbf6fafbf6fafbf6fafbf6f4f4f2f8f8f8fcfcfcfcfcfcfafafaf9f9f9fafafafdfdfd
+f9f9f9f9f9f9fafafafbfbfbfbfbfbfafafafafafaf9f9f9fcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcf9f9f9f9f9f9f9f9f9fafafafafafafafafafbfbfbfbfbfb
+f6f6f6f6f6f6f7f7f7f7f7f7f8f8f8f9f9f9f9f9f9fafafafbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafa
+fafafafafafafbfbfbfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+ffffffffffffe9e9e9eaeaea111111121212000000000000000000
+000002000002020204040406050505fffffff9f9f9efefedfefefcfdfdfbfcfdf8fcfdf8
+fcfdf8fcfdf8fdfef9fefffafdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfefefcfefefcfdfdfbfcfcfafbfbf9fbfbf9fafaf8fafaf8
+f7f7f7f7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfbfbfbf7f7f7f8f8f8f8f8f8f9f9f9
+fafafafbfbfbfbfbfbfcfcfcfbfbf9fbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fbfbf9
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfef9fcfdf7fbfcf6fbfcf6fbfcf6fbfcf6fcfdf7fdfef8fcfdf7fcfdf7fcfdf7fcfdf7
+fcfdf7fcfdf7fcfdf7fcfdf8fafaf8fcfcfcfcfcfcf9f9f9f4f4f4f4f4f4f8f8f8fdfdfd
+f9f9f9fafafafcfcfcfcfcfcfbfbfbf8f8f8f5f5f5f3f3f3fefefcfdfdfbfbfbf9fafaf8
+fafaf8fbfbf9fdfdfbfefefcfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfefefcfdfdfbfbfbf9fafaf8
+fafaf8fbfbf9fdfdfbfefefcfbfbfbfbfbfbfafafaf9f9f9f8f8f8f7f7f7f7f7f7f6f6f6
+f7f7f7f7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfbfbfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+fdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9
+fbfbf9fbfbf9fcfcfafdfdfbfdfdfbfcfcfafbfbf9fbfbf9fbfbf9fbfbf9fcfcfafdfdfb
+e7e7e7fffffffdfdfdffffff000000000000000000121212000000
+08080a0000020e0e10000000000000ecececeeeeecfffffdfdfdfbfcfcfafcfdf8fbfcf7
+fbfcf7fcfdf8fcfdf8fdfef9fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fdfdfbfdfdfbfcfcfafbfbf9fafaf8f9f9f7f9f9f7f8f8f6
+f7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcf5f5f5f6f6f6f6f6f6f7f7f7
+f8f8f8f9f9f9fafafafafafafdfdfbfcfcfafcfcfafbfbf9fbfbf9fcfcfafcfcfafdfdfb
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfdf8
+fcfdf8fbfcf6fafbf5fafbf5fafbf5fafbf5fbfcf6fcfdf7fbfcf6fbfcf6fbfcf6fbfcf6
+fbfcf6fbfcf6fbfcf6fbfcf7fdfdfbfdfdfdf9f9f9f2f2f2ececececececf3f3f3fafafa
+e9e9e9edededf2f2f2f8f8f8fbfbfbfcfcfcfbfbfbfafafafdfdfbfcfcfafafaf8f8f8f6
+f8f8f6fafaf8fcfcfafdfdfbfcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafdfdfbfcfcfafafaf8f8f8f6
+f8f8f6fafaf8fcfcfafdfdfbfbfbfbfbfbfbf9f9f9f7f7f7f4f4f4f2f2f2f1f1f1f0f0f0
+f7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8
+fafaf8fafaf8fbfbf9fcfcfafcfcfafbfbf9fafaf8fafaf8fafaf8fafaf8fbfbf9fcfcfa
+fefefef2f2f2fffffff7f7f7030303000000080808000000000000
+000000010101020202000000010101f6f6f4fdfdfbfcfcfafffffbfffffbfffffbfffffb
+fffffafffffafffffafffffbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfffffdfefefcfdfdfbfcfcfafbfbf9fafaf8
+f2f2f2ecececf5f5f5fdfdfdfffffff0f0f0fffffff7f7f7f0f0f0ffffffe7e7e7fcfcfc
+f4f4f4fefefef6f6f6fbfbfbf2f2f0f5f5f3fefefcfffffdf9f9f7fdfdfbfffffdf7f7f5
+fefefcfffffdfffffdfefefcfcfcfafcfcfafefefcfffffdfefefcfffffdfffffdfffffd
+fffffdfdfdfbfdfdfbfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffb
+fdfef9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fffffafffffafffffafffffa
+fffffafdfef8fbfcf6fafbf6fbfbf9fffffff4f4f4fdfdfdfffffff5f5f5fcfcfcfafafa
+f5f5f5fffffff4f4f4fefefefbfbfbfffffff5f5f5fcfcfcfafaf8fefefcfefefcfafaf8
+fafaf8fffffdfffffdfdfdfbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fdfdfbfefefcfffffdfffffdfffffdfefefcfdfdfbfdfdfbfbfbf9fdfdfbfefefcfefefc
+fbfbf9f6f6f4f1f1efededebfcfcfcfffffffdfdfdf3f3f3f6f6f6e3e3e3fcfcfcffffff
+f7f7f7f7f7f7fdfdfdfdfdfdf8f8f8fffffffffffff9f9f9fffffdfefefcfcfcfafbfbf9
+fbfbf9fcfcfafefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fdfdfbfdfdfbfdfdfbfefefcfefefcfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+f8f8f8f7f7f7f7f7f7fafafa000000000000010101010101000000
+000000010101020202000000010100f6f6f4fdfdfbfcfcfafffffbfffffbfffffbfffffb
+fffffafffffafffffafffffafefffafefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfffffdfefefcfdfdfbfcfcfafbfbf9fafaf8
+fffffffafafafffffff4f4f4dbdbdbfffffff1f1f1ecececfefefee5e5e5fbfbfbffffff
+eaeaeaf2f2f2fffffffffffffffffdf6f6f4ececeaf2f2f0fbfbf9fbfbf9fcfcfafffffd
+fcfcfafefefcfffffdfefefcfcfcfafcfcfafdfdfbfffffdfefefcfefefcfffffdfefefc
+fefefcfdfdfbfdfdfbfefefcfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfef9
+fefffafefff9fdfef8fcfdf7fcfdf7fdfef8fefff9fefff9fffffafffffafffffafffffa
+fffffafefff9fcfdf7fafbf6fcfcfafffffff3f3f3edededd3d3d3fffffff4f4f4fafafa
+f4f4f4f9f9f9e7e7e7fefefee5e5e5f0f0f0f5f5f5fffffffafaf8fefefcfdfdfbfafaf8
+fafaf8fffffdfffffdfdfdfbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfdfdfbfffffdfffffdfffffd
+fffffdfefefcfbfbf9f9f9f7f4f4f4fcfcfcfdfdfddededeeaeaeaffffffe1e1e1f6f6f6
+f9f9f9f6f6f6f8f8f8f7f7f7f3f3f3fafafafffffff6f6f6fdfdfbfdfdfbfdfdfbfefefc
+fefefcfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fafafaf9f9f9f9f9f9fbfbfb000000000000010101010101000000
+000000010101020200000000010100f6f6f4fdfef9fcfdf8fffffbfffffbfffffafffffa
+fffffafffffafffff8fffffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafffffbfefffafdfef9fcfdf8fbfcf7fafaf8
+e1e1e1fefefeefefefe5e5e5f8f8f8fbfbfbe4e4e4fffffffffffff6f6f6ffffffd9d9d9
+fcfcfcffffffe0e0e0fdfdfde5e5e3fffffdfffffdf3f3f1f8f8f6f6f6f4eeeeecf2f2f0
+fcfcfafefefcfffffdfffffdfefefcfdfdfbfefefcfffffdfefffafdfef9fbfcf7fcfdf8
+fdfef9fefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fffffbfefffafdfef9fcfdf8fcfdf8fdfef9fefffafffffbfefffafffffbfffffbfffffb
+fffffbfefffafcfdf8fbfcf7f6f6f4fafafaf4f4f4fffffff3f3f3efefeff1f1f1f8f8f8
+fffffffffffff7f7f7eeeeeef8f8f8eaeaeaffffffe7e7e7fbfbf9fdfef9fdfef9fafbf6
+fbfcf7fefffafffffbfdfef9fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfefffafefffafdfef9fefffafefffafffffbfffffbfdfef9fefffafffffbfffffb
+fffffbfefffafdfef9fcfcfaffffffebebebe5e5e5ffffffdededef7f7f7f3f3f3cdcdcd
+fffffff9f9f9f8f8f8f7f7f7f4f4f4fcfcfcfffffff9f9f9fbfbf9fdfef9fffffbfffffb
+fffffbfffffbfdfef9fbfcf7fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefefc
+fcfcfcfbfbfbfafafafcfcfc000000000000010101000000000000
+000000010101020200000000010100f6f6f4fdfef9fcfdf8fefffafefffafefff9fefff9
+fefff9fefff9fefff7fefff7fefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafffffbfefffafdfef9fcfdf8fbfcf7fafbf6
+fbfbfbefefefffffffffffffffffffedededecececfafafaebebebfbfbfbffffffececec
+f0f0f0fffffff0f0f0ffffffe5e5e3efefede6e6e4ececeafffffdf9f9f7eeeeecfffffd
+fdfdfbfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffbfdfef9fafbf6fbfcf7
+fdfef9fffffbfffffbfefffafefffafefffafefffafffffbfffffbfffffbfffffbfffffb
+fdfef9fdfef9fefefcfefffafefefcfefffafdfdfbfdfef9fdfdfbfefffafffffdfffffb
+fffffdfefffafcfcfafbfbf9fefefeffffffeaeaead4d4d4fffffff7f7f7fefefef4f4f4
+e3e3e3f4f4f4f1f1f1d6d6d6ffffffefefeff8f8f8fffffdfdfdfbfefffafdfef9fcfdf8
+fcfdf8fdfef9fefffafefffafffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fefffafefffafdfef9fcfdf8fdfef9fefffafffffbfffffbfffffbfffffbfefffafefffa
+fdfef9fbfcf7fafbf6f9faf5fefefefdfdfdf5f5f5d6d6d6080808000000ffffffd1d1d1
+fffffff8f8f8f8f8f8fafafaf8f8f8fffffffffffffbfbf9fcfcfafdfef9fefffafffffb
+fffffbfefffafdfef9fcfdf8fefffafefffafefffafffffbfffffbfffffbfffffbfffffb
+fefffafefffafefffafdfef9fdfef9fdfef9fdfef9fcfdf8fefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefefefcfcfcfbfbfbfdfdfd000000000000010101000000000000
+000000010100020200000000010200f6f7f2fdfef9fcfdf8fefff9fefff9fefff9fefff9
+fefff7fefff7fefff7fefff7fefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafffffbfefffafdfef9fcfdf8fbfcf7fafbf6
+e5e5e50f0f0f0707070000000b0b0bebebebffffffdededefdfdfdfdfdfdfcfcfcfbfbfb
+2e2e2e000000030303050505242422c7c7c5fffffde0e0ded6d6d4fefefcfffffdeeeeec
+fbfbf9fdfdfbfffffdfefefcfdfdfbfcfcfafcfcfafefefcfefffafdfef9fcfdf8fcfdf8
+fdfef9fefffafefffafdfef9fcfdf8fdfef9fdfef9fdfef9fefffafefffafffffbfffffb
+fafaf8fbfbf9fefefefffffdfffffffefefcfbfbfbfafaf8fcfcfcfcfcfafefefefefefc
+fefefefdfdfbfbfbfbfafafaf6f6f6fdfdfdffffff0000001010100505050b0b0b040404
+0303030b0b0b171717030303d5d5d5ffffffe0e0e0f3f3f1fffffdfefffafdfef9fdfef9
+fdfef9fcfdf8fdfef9fefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fdfef9fefffafefffafffffbfffffbfffffbfffffb
+fefffafdfef9fcfdf8fbfcf7e3e3e3efefeffffffffefefe0e0e0e141414000000ffffff
+f8f8f8f1f1f1f4f4f4fafafaf8f8f8fcfcfcfefefef8f8f6fefefcfdfef9fcfdf8fbfcf7
+fbfcf7fcfdf8fdfef9fefffafcfdf8fdfef9fdfef9fdfef9fefffafefffafffffbfffffb
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefefefcfcfcfbfbfbfdfdfd000000000000010101000000000000
+000000010100020200000000010200f6f7f2fdfef9fcfdf8fdfef8fdfef8fdfef8fdfef8
+fdfef6fdfef6fdfef6fdfef6fefff9fefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafffffbfefffafdfef9fcfdf8fbfcf7fafbf6
+fcfcfae0e0e0ffffff1e1e1e040404030303f1f1f1fafafaffffffedededfcfcfce4e4e4
+f0f0f0ffffff000000fdfdfde4e4e2f9f9f7f9f9f7f1f1eff7f7f5f3f3f1efefedf9f9f7
+f8f8f6f9f9f7f9f9f7f8f8f6f7f7f5f7f7f5f9f9f7fbfbf9fbfcf7fdfef9fffffbfefffa
+fcfdf8fafbf6fafbf6fbfcf7f8f9f4f8f9f4f9faf5f9faf5fafbf6fbfcf7fbfcf7fbfcf7
+f8f8f8fafafafdfdfdfefefefefefefdfdfdfafafaf8f8f8f9f9f9fafafafcfcfcfcfcfc
+fcfcfcfbfbfbfafafaf9f9f9f7f7f7fafafa0000000a0a0a0b0b0befefeffafafaf9f9f9
+fdfdfdf6f6f6000000333333f2f2f2e3e3e3f5f5f5fefefcfefffafbfcf7fafbf6fcfdf8
+fcfdf8f9faf5fafbf6fdfef9fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8fcfdf8
+f8f9f4f9faf5fafbf6fbfcf7fcfdf8fcfdf8fcfdf8fcfdf8f7f8f3f8f9f4fafbf6fbfcf7
+fcfdf8fbfcf7fafbf6fafbf6f6f6f4fefefeedededffffff101010040404f7f7f7e3e3e3
+f8f8f8f2f2f2f8f8f8fffffffafafafafafafefefefafaf8fefffafcfdf8fafbf6f9faf5
+f9faf5fafbf6fcfdf8fefffaf8f9f4f8f9f4f9faf5f9faf5fafbf6fbfcf7fbfcf7fbfcf7
+fbfcf7fbfcf7fcfdf8fcfdf8fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fcfcfafbfbfbfafafafcfcfc000000000000010101000000000000
+000000010100020200000000010200f6f7f2fdfef9fcfdf8fdfef8fdfef8fdfef6fdfef6
+fdfef6fdfef6fdfef6fdfef6fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fffffafefff9fdfef8fcfdf7fbfcf6fafbf6
+f1f1eff7f7f7ffffff0000001e1e1e101010090909f0f0f0edededf6f6f6e5e5e5ffffff
+ecececdadada181818fefefefbfbf9f9f9f7f8f8f6fcfcfafffffdfffffdfefefcfffffd
+f9f9f7f9f9f7f8f8f6f5f5f3f4f4f2f5f5f3f8f8f6fcfcfaf5f6f1fbfcf6fffffafffffa
+f9faf4f4f5eff5f6f0f7f8f2f5f6f0f6f7f1f6f7f1f7f8f2f8f9f3f9faf4fafbf5fafbf6
+fafafafafafcfafafcfafafcfafafcfafafcfafafcfafafcf7f7f9f8f8faf9f9fbfafafc
+fbfbfdfafafcf8f8faf7f7f9f5f5f5000000252525191919e0e0e0f9f9f9f7f7f7f2f2f2
+f0f0f0ffffffffffff000000fffffff6f6f6ffffffd9d9d7fcfdf8f7f8f2f6f7f1f9faf4
+f9faf4f5f6f0f5f6f0f9faf4fbfcf6fbfcf6fbfcf6fbfcf6fbfcf6fbfcf6fbfcf6fbfcf6
+f4f5eff6f7f1f9faf4fbfcf6fcfdf7fbfcf6fafbf5f8f9f3f2f3edf4f5eff7f8f2f9faf4
+f9faf4f7f8f2f5f6f0f3f4effffffdebebebffffffe7e7e7ebebebfbfbfbefefefffffff
+fefefef8f8f8fefefefffffff9f9f9f6f6f6fdfdfdfffffdfafbf6fafbf5fafbf5f9faf4
+f9faf4fafbf5fafbf5fafbf5f5f6f0f6f7f1f6f7f1f7f8f2f8f9f3f9faf4fafbf5fafbf5
+f9faf4fafbf5fafbf5fcfdf7fdfef8fefff9fffffafffffafefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefffa
+fafaf8f9f9f9f9f9f9fbfbfb000000000000010101010101000000
+000000010100020200000000010100f6f7f2fdfdfbfcfdf8fdfef9fdfef9fdfef8fdfef8
+fdfef8fdfef8fdfef8fdfef8fefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafffffbfefffafdfef9fcfdf8fbfcf7fafbf6
+fffffdfbfbfbe7e7e7151515e6e6e6020202000000f8f8f8fffffff0f0f0fafafafefefe
+ebebebffffff0c0c0cf3f3f3f1f1eff1f1eff6f6f4f5f5f3f1f1eff5f5f3f2f2f0e3e3e1
+fdfdfbfcfcfafafaf8f7f7f5f5f5f3f7f7f5fbfbf9fffffdf1f2edfafbf6fffffbfffffb
+f6f7f2f0f1ecf0f1ecf4f5f0f6f7f2f7f8f3f7f8f3f8f9f4f9faf5fafbf6fbfcf7fbfcf7
+fdfdfdfafafcf7f7f9f5f5f7f5f5f7f7f7f9fafafcfdfdfff6f6f8f7f7f9f8f8faf9f9fb
+f9f9fbf9f9fbf7f7f9f7f7f9fbfbfb141414000000e9e9e9fffffffbfbfbd4d4d4f7f7f7
+fdfdfdededede5e5e5292929eeeeeef8f8f8e4e4e4fdfdfbf9faf5f4f5f0f3f4eff6f7f2
+f6f7f2f1f2edf1f2edf6f7f2fafbf6fafbf6fafbf6fafbf6fafbf6fafbf6fafbf6fafbf6
+f1f2edf4f5f0f8f9f4fbfcf7fcfdf8fbfcf7f8f9f4f6f7f2f9faf5fbfcf7fdfef9fefffa
+fcfdf8f8f9f4f4f5f0f1f2edfefefcdadadaf4f4f4f9f9f9ffffffedededfefefef2f2f2
+fffffff9f9f9fdfdfdfffffff2f2f2edededf7f7f7fdfdfbf7f8f3f8f9f4fafbf6fbfcf7
+fbfcf7fafbf6f8f9f4f7f8f3f6f7f2f7f8f3f7f8f3f8f9f4f9faf5fafbf6fbfcf7fbfcf7
+f8f9f4f9faf5fafbf6fbfcf7fdfef9fefffafffffbfffffbfefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+f8f8f6f7f7f7f7f7f7fafafa000000000000010101010101000000
+000000000000010101000000030303f5f5f3fbfbfbfdfdfbfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfefefcfefefcfffffdfffffdfffffdf9f9f7f5f5f3
+fcfcfce9e9e9ffffff010101f9f9f9000000212121151515ffffffcececeffffffd7d7d7
+f3f3f3f4f4f40a0a0afdfdfdfffffffffffffafafaefefeff3f3f3e6e6e6ffffffdfdfdf
+f9f9f9e6e6e6fffffffffffff7f7f7ffffffdededef3f3f3e4e4e2fafaf8f5f5f3fffffd
+f3f3f1fffffdfbfbf9fefefce5e5e3fffffdefefedf9f9f7fffffdfdfdfbe5e5e3fffffd
+ffffffefefefffffffeaeaeaf7f7f7fafafafefefeecececeeeeeeffffffecececffffff
+d6d6d6efefeff6f6f6fffffff4f4f4010101363636fafafae8e8e8ffffffe7e7e7ffffff
+f5f5f5fefefee2e2e2ffffffececece6e6e6fcfcfcecececfdfdfbf8f8f6fffffdfffffd
+ececeaf6f6f4fffffdfffffdebebe9fefefcf5f5f3fbfbf9fcfcfadddddbf8f8f6e6e6e4
+fdfdfbfefefcebebe9f7f7f5fdfdfbe8e8e6fafaf8f9f9f7fcfcfae5e5e3fcfcfaf5f5f3
+e4e4e2f5f5f3f9f9f7fcfcfaeaeaeaf5f5f5f3f3f3f8f8f8d6d6d6fafafaefefefffffff
+dbdbdbececece8e8e8fffffffffffffffffff5f5f5eeeeeefefefcf1f1eff0f0eef4f4f2
+f5f5f3fffffde2e2e0fffffdfffffdf0f0eefbfbf9fafaf8f3f3f1f1f1efececeafcfcfa
+fefefcfcfcfafbfbf9fbfbf9fdfdfbfefefcfefefcfdfdfbfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffffffffffffffafafaf5f5f5
+fafafaf9f9f9ffffff000000e5e5e5ffffff000000090909000000fdfdfdd7d7d7f6f6f6
+fcfcfcf1f1f10f0f0ff5f5f5e6e6e6f7f7f7e0e0e0f9f9f9ffffffffffff000000272727
+1515150000000b0b0b030303fbfbfbe5e5e5f6f6f6ffffffffffffe0e0e0121212000000
+f4f4f4fefefe1818180505050f0f0f232323eeeeeee7e7e7ffffff020202070707141414
+f1f1f1f0f0f0eeeeeefdfdfdfffffff1f1f1f7f7f7ffffff101010000000353535000000
+303030ffffffffffffd9d9d9ffffff020202050505000000ffffffefefeffbfbfbe3e3e3
+f5f5f5f8f8f8fcfcfcedededfffffffefefef9f9f9ffffffd4d4d4ffffff000000000000
+1d1d1d000000000000fcfcfcfdfdfde7e7e7edededf4f4f4ffffff1c1c1c000000ffffff
+f1f1f11616160202020808081818180000000303030000000b0b0b000000fefefeffffff
+0e0e0e2020200000001313130a0a0affffffffffffe6e6e6141414000000ffffffffffff
+d3d3d3ffffffe6e6e6fcfcfc050505000000000000131313fafafaf4f4f4fafafae6e6e6
+ffffffccccccffffff0000000000001d1d1d070707080808f1f1f1fbfbfbffffffededed
+fffffffefefefdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefffffffffffffefefefafafaf6f6f6
+f4f4f4ecececf7f7f7000000fffffff0f0f0ffffff000000020202e1e1e1f8f8f8f2f2f2
+fdfdfdffffff141414f1f1f1fffffff4f4f4fafafaffffff000000020202ffffffdfdfdf
+ffffffe8e8e80404040e0e0e080808fefefeffffffd1d1d10000000c0c0c131313121212
+1414140202020c0c0c000000000000030303ffffff111111000000131313050505000000
+040404ffffffffffffe7e7e7eeeeeeefefefffffff000000080808f0f0f0efefeffbfbfb
+000000090909fdfdfdefefefdedede060606000000161616000000fbfbfbfffffff4f4f4
+fefefee5e5e5fafafaf1f1f1d1d1d1f7f7f7f2f2f2fefefeffffff000000222222fdfdfd
+fffffff9f9f9000000101010ebebebfafafaffffff040404040404050505090909f7f7f7
+1212120000000000000a0a0addddddf3f3f3060606101010f8f8f8fafafaffffffcbcbcb
+e4e4e4f3f3f3080808dcdcdcf9f9f9f6f6f60000000b0b0b1d1d1d1e1e1eeaeaeacccccc
+ffffffd7d7d7fcfcfc101010171717e2e2e2ffffff010101000000121212fffffff3f3f3
+f3f3f3fdfdfd0a0a0a040404ffffffffffffececec0d0d0d131313f0f0f0f1f1f1ffffff
+fffffffefefefcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfafafaf8f8f8
+fffffff4f4f4eeeeee0d0d0df2f2f2f7f7f7d7d7d70e0e0e080808151515ffffffe9e9e9
+e9e9e9ffffff000000fffffffefefeddddddfffffff5f5f5000000212121f8f8f8eeeeee
+fafafaf2f2f2ffffff020202111111e4e4e4eeeeeeffffffe4e4e4f7f7f7090909090909
+fefefef4f4f4fefefefffffffbfbfb161616050505e3e3e3fffffffafafafdfdfdfefefe
+000000050505ededede9e9e9fffffff4f4f4000000131313ecececffffffffffffe0e0e0
+ffffff1e1e1e000000ffffffffffffcecece0c0c0c030303020202000000252525000000
+e2e2e2fffffffdfdfdecececfffffffffffff4f4f4f1f1f10000001f1f1ff8f8f8fbfbfb
+e6e6e6ffffffffffff000000020202ffffffe5e5e5cececef9f9f91414140000001c1c1c
+f3f3f3fffffffafafa0b0b0bf5f5f5ffffff000000010101f6f6f6fcfcfcd6d6d6fdfdfd
+fbfbfbffffff0f0f0ffefefeffffffe3e3e3fefefefefefe040404000000fffffffbfbfb
+fdfdfdf4f4f4030303000000ffffffffffffd9d9d90d0d0d090909010101e4e4e4f2f2f2
+ffffff010101000000ffffffe6e6e6e5e5e5ffffffefefef0e0e0e0e0e0eedededf8f8f8
+fcfcfcfbfbfbf9f9f9fafafafcfcfcfefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffdfdfdfbfbfbfafafaf9f9f9
+e7e7e7fffffff9f9f9000000ffffffd4d4d4fffffff1f1f1060606000000000000ffffff
+f8f8f8ffffff0e0e0eeaeaeaffffffeeeeeedfdfdffffffffffffffcfcfcf8f8f8f3f3f3
+dbdbdbfffffff7f7f70606061c1c1cfafafaecececf4f4f4fefefeffffff000000000000
+fffffff4f4f4fbfbfbeaeaeaffffff000000030303ebebebecececfdfdfdedededf9f9f9
+020202000000fffffff6f6f6fafafaf8f8f8000000fcfcfcfafafaf0f0f0e5e5e5e2e2e2
+ffffff000000040404ffffffe0e0e0fcfcfcffffff020202020202080808000000161616
+0202020000000e0e0efafafaf3f3f3e3e3e3f8f8f8f7f7f7121212ffffffe3e3e3f8f8f8
+f5f5f5fbfbfbf5f5f5191919060606eeeeeefbfbfbfefefef9f9f9030303070707f8f8f8
+e6e6e6fcfcfceaeaeaffffffeeeeeee9e9e9f9f9f91515150b0b0bfafafaffffffd6d6d6
+fcfcfc171717000000fffffff6f6f6f9f9f9fffffff3f3f3121212010101ffffffdadada
+eaeaeaffffff060606eeeeeef9f9f9f9f9f9f8f8f81515151111110c0c0cf5f5f5e9e9e9
+f3f3f3101010ffffffffffffffffffe5e5e5fffffff0f0f0040404121212fffffff4f4f4
+fbfbfbfafafaf9f9f9fafafafcfcfcfefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffcfcfcfafafafafafafafafa
+fafafad8d8d8eaeaea101010fffffff9f9f9f9f9f9e3e3e3ffffff090909141414ffffff
+f9f9f9f1f1f10b0b0bf1f1f1eaeaeaffffffe1e1e1ecececffffffd7d7d7f4f4f4ffffff
+ffffff000000000000171717000000ffffffe8e8e8fffffff9f9f9e4e4e4121212111111
+ebebebedededfffffffafafaffffff000000171717fffffffafafaf7f7f7eaeaeaffffff
+0c0c0c000000f7f7f7ffffffc4c4c40000000c0c0cfffffffffffff8f8f8f9f9f9ffffff
+ffffff000000040404efefefefefefeeeeeef8f8f8f6f6f6ecececfcfcfc0e0e0e030303
+1313130707071212120e0e0ef9f9f9e7e7e7ffffff000000090909f5f5f5ffffffffffff
+ffffffe2e2e2fefefe0000001a1a1ae3e3e3e0e0e0ffffffffffff020202080808f9f9f9
+fbfbfbf9f9f9ffffffe6e6e6ffffffedededf4f4f4080808010101f2f2f2f0f0f0f2f2f2
+fafafa000000fffffff5f5f5fcfcfcfafafaf0f0f0e6e6e61b1b1b030303e9e9e9f5f5f5
+ffffff070707030303fffffff1f1f1f3f3f3fbfbfbe6e6e6fcfcfce9e9e9ecececffffff
+1b1b1b040404f1f1f1ffffffddddddf5f5f5fffffffcfcfc1c1c1c000000fcfcfcf9f9f9
+fdfdfdfbfbfbfafafafbfbfbfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffcfcfcf9f9f9fafafafbfbfb
+fffffffffffffbfbfb010101fafafaf1f1f1f2f2f2fffffff5f5f5181818000000000000
+ffffffededed000000ffffffe4e4e4f3f3f3f1f1f1f5f5f5fbfbfbffffff000000000000
+0c0c0cf0f0f0f9f9f9000000080808fffffff6f6f6f8f8f8e8e8e8f8f8f8080808040404
+fffffffefefee9e9e9fffffff4f4f40d0d0d000000f7f7f7edededfffffff7f7f7f4f4f4
+151515060606e6e6e6f1f1f1ffffff070707141414000000050505111111050505000000
+000000272727000000fdfdfdffffffffffffeeeeeefbfbfbfefefefffffff4f4f4eeeeee
+fdfdfd1010100000000c0c0cf3f3f3f4f4f4fefefe0a0a0a0606060000000606060e0e0e
+080808111111030303202020000000fffffff4f4f4eaeaeaffffff0000000d0d0df6f6f6
+fdfdfdf1f1f1ffffffffffffdfdfdfffffffe8e8e80c0c0c050505f6f6f6f7f7f7ffffff
+0f0f0f010101edededfcfcfcfffffff9f9f9fcfcfce9e9e90e0e0e242424f7f7f7ececec
+fafafa000000171717e0e0e0e6e6e6fafafaf2f2f2fcfcfcf2f2f2ffffffe1e1e1f6f6f6
+0000000d0d0d2525250606061616160000000909090303030a0a0a0f0f0ffffffff4f4f4
+fcfcfcfbfbfbfafafafbfbfbfefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffbfbfbf9f9f9fafafafcfcfc
+eeeeeef7f7f7f1f1f10b0b0bfbfbfbfffffff6f6f6f3f3f3ffffffd9d9d91a1a1a1a1a1a
+000000fcfcfc010101edededfefefee6e6e6ffffffffffff050505000000eaeaeaffffff
+e4e4e4f6f6f6ffffff0a0a0a050505fafafaf9f9f9e6e6e6edededffffff000000141414
+f4f4f4dededef8f8f8f6f6f6f9f9f9121212000000fdfdfdf7f7f7f3f3f3f0f0f0fcfcfc
+020202020202f7f7f7f7f7f7f3f3f3020202000000fffffff9f9f9eaeaeaf8f8f8ffffff
+fffffff3f3f3fdfdfdf0f0f0fffffff4f4f4f1f1f1fefefeefefeff4f4f4f4f4f4f6f6f6
+e6e6e6ffffffffffff070707090909f2f2f2f9f9f9090909000000ffffffdadadaf2f2f2
+ffffffd9d9d9ffffffe0e0e0ffffffe3e3e3ecececfdfdfdfdfdfd050505020202f7f7f7
+ffffffe9e9e9fcfcfcf1f1f1f0f0f0f0f0f0fffffff1f1f10b0b0b000000fafafaf4f4f4
+000000fffffff7f7f7f7f7f7f2f2f2fefefee8e8e8ffffff040404000000fffffffefefe
+f4f4f4000000020202fffffffafafaf6f6f6fafafafefefef2f2f2fbfbfbf9f9f9ffffff
+121212000000fdfdfdf6f6f6efefeff7f7f7fefefef7f7f7f7f7f7ececece3e3e3ffffff
+f9f9f9f8f8f8f7f7f7f9f9f9fcfcfcfefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000020202000000010101f7f7f7fefefefdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfafafaf9f9f9
+eaeaeaf9f9f9ffffff000000e3e3e3f1f1f1fefefef7f7f7eaeaeafafafae8e8e8242424
+000000f6f6f60d0d0df5f5f5ffffffefefefe4e4e41e1e1e101010fdfdfdffffffe3e3e3
+fdfdfdffffffececec000000111111fcfcfcfdfdfdf2f2f2fdfdfdf1f1f1060606050505
+e9e9e9f2f2f2f0f0f0efefefffffff010101050505fefefeefefeff6f6f6f9f9f9eaeaea
+0808080d0d0df5f5f5ffffffe6e6e62020200e0e0ef4f4f4f0f0f0fffffffbfbfbdedede
+ffffffe5e5e5e7e7e7fdfdfdeeeeee0a0a0aebebebfcfcfcffffffffffffebebebfbfbfb
+fffffffafafae1e1e1030303000000fcfcfcffffff000000202020f7f7f7ffffffeeeeee
+edededf4f4f4ffffffe7e7e7e9e9e9fcfcfcfcfcfcddddddf5f5f50e0e0e050505f2f2f2
+fffffff0f0f0f0f0f0fffffff8f8f8f4f4f4fefefee1e1e1111111070707ffffffeaeaea
+060606f7f7f7fcfcfcfffffff0f0f0f1f1f1d4d4d4ffffff000000111111ffffffe3e3e3
+ffffff1111110a0a0acfcfcffffffffcfcfcf0f0f0fdfdfde1e1e1ffffffd3d3d3ededed
+0e0e0e0d0d0df1f1f1eaeaeafbfbfbf6f6f6ffffffe2e2e2ffffffdadadaf6f6f6f5f5f5
+fbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000020202000000010101f7f7f7fefefefdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefdfdfdfcfcfcfafafaf9f9f9f8f8f8
+fcfcfcffffffe9e9e9161616f7f7f7fefefee9e9e9fffffff8f8f8e3e3e3fefefe111111
+000000222222000000fefefef2f2f2f5f5f5ffffff000000080808ffffffedededfafafa
+e8e8e8f4f4f4ffffff0f0f0f000000fefefeefefefeeeeeef6f6f6e9e9e9090909000000
+fffffff6f6f6fffffff1f1f1fafafa0f0f0f030303f3f3f3f4f4f4fffffff7f7f7eeeeee
+1212120b0b0bfbfbfbe4e4e4ffffff000000000000fbfbfbffffffeeeeeeefefeff6f6f6
+fdfdfdf6f6f6ffffffe5e5e5dcdcdc000000ffffffe8e8e8e3e3e3dbdbdbf9f9f9ffffff
+ffffffe4e4e4ffffff000000010101fbfbfbe9e9e90f0f0f000000f6f6f6fafafaebebeb
+ffffffffffffe4e4e4fbfbfbf5f5f5fffffffdfdfdffffffcdcdcd1a1a1a080808e5e5e5
+e0e0e0fffffff0f0f0edededfffffff4f4f4edededfcfcfce4e4e4101010f3f3f3121212
+ffffffeeeeeef7f7f7d8d8d8ffffffecececffffffeeeeee080808090909f3f3f3f3f3f3
+e7e7e7202020000000fefefeffffffdbdbdbfffffff0f0f0f6f6f6f6f6f6ffffffffffff
+0000000a0a0afafafaf7f7f7e6e6e6f8f8f8e1e1e1f6f6f6e5e5e5fffffffffffffafafa
+fcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000020202000000010101f7f7f7fdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfafafaf8f8f8f7f7f7
+fcfcfcfbfbfbdcdcdc1d1d1df2f2f2fdfdfdf2f2f2f9f9f9fcfcfcfdfdfdf5f5f5d1d1d1
+111111131313111111eeeeeef4f4f4f6f6f6f6f6f6181818000000f3f3f3dcdcdcf5f5f5
+f6f6f6f1f1f1ededed000000000000fdfdfdd2d2d2fffffffdfdfdf2f2f2181818000000
+fefefedcdcdcfffffff2f2f2f6f6f6010101000000fffffff6f6f6efefefeaeaeaffffff
+131313000000fbfbfbffffffdcdcdcffffff212121000000f3f3f3f2f2f2f7f7f7fdfdfd
+f9f9f9f9f9f9e9e9e9e3e3e3ffffff111111ebebebfafafafffffffbfbfbffffffd7d7d7
+e0e0e0ececec000000111111e9e9e9fcfcfcf9f9f9f1f1f1050505272727f5f5f5eeeeee
+ffffffd4d4d4fbfbfbffffffffffffe7e7e7f3f3f3ffffffffffff0000000d0d0dfcfcfc
+f4f4f4fffffff8f8f8eaeaeaf2f2f2fcfcfcffffffeeeeeeeeeeee111111131313101010
+fbfbfbfffffff5f5f5fffffff3f3f3e6e6e6fafafad8d8d81f1f1f0f0f0ff6f6f6fcfcfc
+f2f2f2ffffff1b1b1b171717e6e6e6f9f9f9ebebebf2f2f2fffffff2f2f2dbdbdbeaeaea
+f2f2f20606060a0a0affffffecececf1f1f1f1f1f1fffffff5f5f5cececefffffffcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000020202000000010101f7f7f7fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefdfdfdfcfcfcfbfbfbfafafaf9f9f9
+d4d4d4ffffffe8e8e8030303f5f5f5fafafafcfcfcfafafafafafaf0f0f0f1f1f1ffffff
+f5f5f5010101010101ffffffffffffd5d5d5ffffff1c1c1c000000323232f4f4f4ffffff
+f5f5f5000000191919080808000000f7f7f7ffffffe1e1e1ffffffffffff0000000c0c0c
+eeeeeefffffff0f0f0f6f6f6e7e7e72525250a0a0ae7e7e7fafafafafafae4e4e4ffffff
+000000171717ecececf2f2f2ffffffe9e9e90000001e1e1e0e0e0edfdfdffdfdfdf6f6f6
+fcfcfcf1f1f1292929f5f5f5e8e8e8000000000000fffffff5f5f5fafafafffffff5f5f5
+ffffff151515000000000000eeeeeefdfdfdf7f7f7f3f3f3000000161616000000ececec
+f4f4f4fffffffdfdfdf5f5f5000000fffffff9f9f9ddddddefefef000000181818e0e0e0
+eaeaeae6e6e6e7e7e7ffffffffffffe8e8e8f1f1f1fcfcfcffffff0000000000001f1f1f
+edededffffffe8e8e8f7f7f7e2e2e2fafafaf3f3f3fefefe0b0b0b000000fcfcfcfbfbfb
+d4d4d4f3f3f3060606000000212121ffffffdededefcfcfcfdfdfd070707f5f5f5fbfbfb
+fdfdfd030303000000000000ffffffeeeeeeffffffe8e8e8fcfcfc151515f0f0f0f0f0f0
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101030303000000010101f6f6f6fcfcfcfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfb
+ffffff000000262626050505010101191919fffffff4f4f4eaeaeafffffffbfbfbf5f5f5
+ececec0b0b0b0c0c0cf4f4f4dbdbdbffffffe1e1e1f6f6f60e0e0e070707000000000000
+040404ffffffededed2424240b0b0b1b1b1b000000ffffff000000000000191919000000
+171717000000f9f9f9ffffff1b1b1b000000010101080808000000fcfcfcffffff000000
+090909222222060606060606f3f3f3ffffffe5e5e5ffffff0404040202020d0d0d0c0c0c
+000000010101f9f9f9ffffffffffff0404041313130101011010100606060000001b1b1b
+0000000c0c0cfdfdfde3e3e3ffffffe4e4e4fafafaffffffffffffe7e7e70000000e0e0e
+1717170000000c0c0c030303fcfcfcddddddffffff1313131818180101010000000d0d0d
+1d1d1dcfcfcfffffffe8e8e8f0f0f0fcfcfcf9f9f9f8f8f8f5f5f5ffffff040404e8e8e8
+fafafae3e3e3ffffffdbdbdbffffffebebeb0b0b0b0101010000000000000e0e0e000000
+e2e2e2ffffffffffff0303030707070000001c1c1c030303060606efefefffffffe9e9e9
+f0f0f0ffffffeeeeee0000000000000101010707070000000b0b0bdfdfdfffffffffffff
+fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101030303000000010101f6f6f6fcfcfcfbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfdfdfd
+ffffffecececfffffff1f1f1ffffffe0e0e0f9f9f9f9f9f9fefefeefefeff5f5f5e4e4e4
+fffffff7f7f7fbfbfbf7f7f7fffffff6f6f6fefefeeeeeeeffffffe9e9e9ffffffffffff
+fefefeffffffebebebe9e9e9f1f1f1ffffffe1e1e1ecececf6f6f6fffffff5f5f5ffffff
+fefefee2e2e2ffffffe1e1e1f9f9f9fffffffbfbfbfffffff3f3f3f8f8f8f1f1f1ffffff
+ffffffffffffe3e3e3ffffffffffffefefeffffffffafafafffffffffffff3f3f3fbfbfb
+fdfdfdfffffffafafaf6f6f6f1f1f1fffffff7f7f7fffffff4f4f4fffffffffffff1f1f1
+fffffffafafafffffffffffff1f1f1fffffff6f6f6f6f6f6f7f7f7fcfcfcffffffffffff
+e9e9e9fffffff5f5f5f0f0f0fffffffdfdfde8e8e8f5f5f5f7f7f7ffffffededede9e9e9
+fafafaffffffeaeaeae6e6e6fffffffffffffdfdfdf7f7f7f5f5f5fffffff7f7f7f6f6f6
+fffffff6f6f6e5e5e5ffffffecececf5f5f5f7f7f7fffffffffffffffffffbfbfbfcfcfc
+f8f8f8eeeeeedbdbdbfffffff1f1f1fffffff0f0f0fcfcfcefefefffffffe4e4e4f8f8f8
+ffffffe5e5e5eeeeeefffffffbfbfbfffffffffffffffffff1f1f1ffffffffffffe9e9e9
+fefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000020202030303000000010101f6f6f6fcfcfcfbfbfbfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffefefefdfdfdfcfcfc
+d9d9d9fffffffdfdfdf5f5f5fffffffbfbfbf8f8f8fefefeeaeaeafefefefbfbfbffffff
+ffffffffffffe3e3e3fffffff2f2f2fffffffffffffffffffafafafefefeebebebffffff
+e1e1e1fffffffcfcfcf8f8f8fdfdfdfbfbfbf4f4f4fffffff6f6f6ffffffe6e6e6efefef
+f4f4f4f3f3f3fffffffefefef0f0f0fffffff5f5f5e6e6e6fffffffbfbfbeeeeeefdfdfd
+fafafaecececfffffff7f7f7fcfcfcfffffffcfcfcf0f0f0ecececeeeeeeffffffffffff
+fefefefffffffbfbfbfffffffbfbfbfdfdfdf1f1f1fffffffdfdfde4e4e4edededffffff
+e7e7e7fffffff5f5f5efefefffffffe6e6e6fffffffbfbfbf2f2f2fcfcfcedededfbfbfb
+fafafaf4f4f4fdfdfdfdfdfdf8f8f8f6f6f6f8f8f8fefefefafafaf1f1f1fffffffafafa
+f3f3f3f0f0f0fffffffffffff4f4f4efefeffffffff2f2f2f3f3f3fafafaf9f9f9ffffff
+f3f3f3fbfbfbf5f5f5f1f1f1fefefeeeeeeeffffffefefeff7f7f7fafafaeaeaeafdfdfd
+f3f3f3fffffffbfbfbf0f0f0f5f5f5efefeffffffffafafafffffffafafaf9f9f9ffffff
+e2e2e2fffffffefefef4f4f4fefefeefefeff5f5f5f6f6f6fdfdfdf0f0f0fcfcfcffffff
+fefefefdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000004020204030301000100010100f5f7f4fafcf7f9fbfafdfdfffdfdfffdfefffdfeff
+fdfefffdfefffdfefffdfffefffffbfffffbfffffbfffffdfffffdffffffffffffffffff
+fffffffffffffffffffffffdfffffdfffffbfffffbfffffbfffefffffefffffeffffffff
+fffffdfffffdfffffbfffffbfffffbfffffbfffffbfffffdffffffffffffffffffffffff
+fefffffefffffefffffefffffefffffefffffefffffefffffdfffefdfffefdfffefdfffe
+fdfffefdfffefdfffefdfffcfdfffcfdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafefffbfefffbfffffdfefffdfffffdfefffdfffffdfefffb
+fffffbfefffafffffafefffafffffbfefffdfffffdfffffdfefffafefefcfefdfffefdff
+fefefefefefefefefefefefefefffafefff7fefff3fdfff7fdfefffdfefffdfefffdfeff
+fffffffffffffffffffffffffffffffffffdfffffdfffffbfffff8fffff8fffffdffffff
+fffffdfffffbfffffbfffffdfffffffffffffffffdfffffbfffffbfffffbfffffbfffffd
+fffffffffffffffefffffefffffffffffffffffffffffffdfefffdfefffbfefffbfefffb
+fefffbfefffbfefffbfefffbfcfef9fcfef9fdfffafdfffafdfffafcfef9fbfdf8fbfdf8
+f5f7f2f6f8f3fefffbfefffbfcfef9eaece7fefffbf9fbf6fefffbeceee9f3f5f0fefffb
+f6f8f3fbfdf8fafcf7f0f2edfcfef9eef0ebfcfef9fefffbf8faf5eceee9fefffbeaece7
+fdfffaf4f6f1f7f9f4fefffbfdfffaf6f8f3fdfffaf8faf5edefeafefffbfdfef9f1f3ee
+fffffbf7f9f4ecede8fefffbfffffbebede8fffffbf8faf5fffffbf1f3eefffffbf4f6f1
+fafcf7fdfffaf0f2edfdfffafafcf7f5f7f2fefffbfcfef9fefffbf8faf5fbfdf8eff1ec
+fefffbfdfffaf7f9f4f7f9f4fefffbfefffbfafcf7eff1ece8eae5fefffbf2f4effbfdf8
+fdfffaeceee9f6f8f3fefffbedefeafefffbf3f5f0fbfdfafefffde4e6e5fefffffeffff
+f3f5f4fefffff9fbfafcfefdf8faf9fefffff6f8f7eef0effefffff3f5f4f4f6f5fafcf9
+fefffdfbfdf8e6e8e3f4f6f1fefffbf4f6f1fafcf7fefffbfefffbfcfef9f5f7f2f4f6f1
+fcfef9f7f9f4fefffbfbfdf8f9fbf6f7f9f4f7f9f4f2f4effefffbfefffbf8faf5fefffb
+fdfffaf0f2edf4f6f1fefffbfbfdf8fefffbf2f4effafcf7fefffbf0f2edfefffbf7f9f4
+fbfdf8fefffbf1f3eef9fbf6f8faf5fafcf7fefffbfbfdf8f4f6f1fefffbebede8fdfffa
+fdfffafdfffafcfef9fbfdf8fbfdf8fbfdf8fcfef9fcfef9fdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffa
+fdfffafdfffafdfffafdfffafdfffafdfffafdfffafdfffafefffbfefffbfefffdfefffb
+fefffbfefffdfefffffffefffffffffffffdfffffbfffffdfffefffffefffffffdfffffb
+f7f7f5f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+05020d010004000100000200030500f4f9f3f8fef2f9fdfcf8fafff8f9fff8fdfff8fdff
+f8fbfff8fbfff8fdfff9fefafcfff4fdfff2fefff5fefff7fefffafefefefdfdfffdfdff
+fffffffffffffffffdfffffbfffff8fffff4fffff3fffff6fffbfffffafffffbfffefcfd
+fffcf9fefef6fffef2fefff1fefff1fefef2fefef4fefdf8fefdfbfefcfffdfcfffcfdff
+f9fdfcf8fefaf8fefaf8fefaf8fefaf8fefaf8fefaf8fefaf9fffbf9fffbf9fffbf9fffb
+f9fffbf9fffbf9fffbf9fff9f9fff6f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4fbfff3fbfff5fdfff7fbfff9fdfffafbfffafdfff9fbfff5
+fcfff1faffeffcffeffaffeffcfff2fafff6fcfef9fcfff8fffff6fefdf9fcf9fffcf8ff
+fcfafdfdfcfafafafcf9f9f7fcfff1fcffe6fbffdcf9ffe5f9fcfff9fafffafcfffafdff
+fdfefffffffffefefcfdfdfbfcfcfafbfcf7fcfdf7fefff3fdffe8feffebfefff7fffffd
+fffffafefff5fefff3fdfef6fefefffefefffefff9fefff5fefff5fefff5fefff5fefff9
+fffffffffefffffdfffffdfffefdfffdfdfdfdfdfbfcfff8fbfff7fafff5fafff5fafff5
+fafff5fafff5fafff5fafff5fafff5fafff5fafff5fafff5fafff5fafff5fafff5fafff5
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f8fff3f8fff3f8fff3f8fff3f8fff3f8fff3f8fff3f8fff3
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff3f9fff3fbfef3f9fff3
+fbfef3f9fff3fbfef3f9fff3fbfef3f9fff3fbfef3f9fff3fbfef3f9fff3fbfef3f9fff3
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff6fafffafafffcfafffcfafffc
+fafffcfafffcfafffcfafffcf9fffbf9fffbf9fffbf9fffbf9fffbf9fffbf9fffbf9fff9
+f9fff6f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4
+f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f9fff4f8fff5f8fff5f9fff6f8fff3
+f9fff1fafff9fbfefffdfdfffcfdfffefffafefff6fbfdf8faf9fffdfcfffefffbfdfff5
+f7f8f2f7f7f5f8f8f6fbfbf9000000000000010101000000000000
+04000e010004000200000200020400f2f7f0f7feecf9fef7fafcfffafcfffafffefafff9
+fafefffafefffafffefbfff5fdfff2fefff0fffff3fffff6fffffafffffbfefefefefefe
+f9f9f9f9f9f9f9f9f9f9f9f7f9faf5f9faf2f9fbf0faf9f5fcf6fffcf6fffcf6fffcf7fb
+fcf8f5fcf9f2fcfaeefcfaebfcfdedfcfdeffcfcf0fcfcf2fcfbf7fcfafbfbfafffafbfd
+f8fdf9f7fef6f7fef7f7fef6f7fef7f7fef6f7fef7f7fef6f5fcf5f5fcf4f5fcf5f5fcf4
+f5fcf5f5fcf4f5fcf5f5fcf4f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeefbfff1fbfff1fbfef5fbfdf8fbfdfafbfdfafbfef7fbfef3
+fafeeffaffebfaffebfafeedfafef0fafdf4fafcf9fbfcf6ffffedfffff3fff9fffdf8ff
+fefcfffffefafffffdfefff9f9fbf0f9fde6f7ffd5f6fddbf4f8fbf5f7fff6f9fff8f9fe
+f9f9fbfafafafafbf6f9faf5f8f8f6f8f8f6f9f9f7f9fbf0fbffe8fbfee9fbfcf7fcfcfc
+fcfdf5fbfdeffbfeebfbfdeffcfdf8fcfcfafcfdf5fcfef1fcffeefcffeefcfef0fcfdf5
+fdfdfdfdfcfffdfbfffcfafffcfbfffbfbfbfbfcf6fafdf2f9fff3f8fff1f8fff3f8fff1
+f8fff3f8fff1f8fff3f8fff1f7fff2f7fff0f7fff2f7fff0f7fff2f7fff0f7fff2f7fff0
+f7fff2f7fff0f7fff2f7fff0f7fff2f7fff0f7fff2f7fff0f5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef6fef1f6feeff6fef1f6feeff6fef1f6feeff6fef1f6feef
+f7fff2f7fff0f7fff2f7fff0f7fff2f7fff0f7fff2f7fff0f9fcf1f9fdeff9fcf1f9fdef
+f9fcf1f9fdeff9fcf1f9fdeff9fcf1f9fdeff9fcf1f9fdeff9fcf1f9fdeff9fcf1f7fdef
+f6fcf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdf0f5fcf4f5fcf4f5fcf5f5fcf4
+f5fcf5f5fcf4f5fcf5f5fcf4f5fcf5f5fcf4f5fcf5f5fcf4f5fcf5f5fcf4f5fcf5f5fcf4
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdee
+f5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdeef5fdf0f5fdf0f4fef6f3fdf5f5fcf5f4fbf3
+f5fbeff6fbf5f8f7fff9f8fffbfbfbfefff3feffecf9fcf1f9f8fffcfbfffdfff5fbffec
+f9faf2f8f9f4f9f9f7fcfcfa000000000000010101000000000000
+030009020003020200000200010100f3f6eff9fee8fbffecfbfcfffbfcfefbffe7fbffe1
+fbfff0fbfff1fbffe9fbffe7fcffecfcfef0fcfef1fcfef1fcfef3fcfdf5fcfdf5fcfdf7
+fefefcfefefefefdfffefdfffefdfffefcfffefcfffffbfffffbfffffbfffffcfffffdff
+fffefffffffbfffff8fffff6fffff3fffff3fefff5fefff5fefff9fefffafefefefefefc
+fefff8fefff4fefff6fefff4fefff6fefff4fefff6fefff4fefff6fefff4fefff6fefff4
+fefff6fefff4fefff6fefff6fefffafefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafffff8fffffafffffdfffefffffefffffefffffefffffffb
+fffff7fffff5fffff5fffff5fffefafffdfefffcfffffef9ffffdeffffe1fdf5fffcf4ff
+fef9fffffdf6fffeeffefef4fffdfffffeffffffecffffe7fffff7fffffdfffffafffff8
+fffff8fffff8fffff8fffffafffffffffefffffefffffefffefefcfefefcfefdfffefdff
+fefff9fefff0feffebfeffebfffff3fffff6fffff8fffff4ffffecffffecfffff1fffff6
+fffffbfffffdfffffafffffbfffffffefefcfefff5fefff3fefff8fefffafefffbfefffa
+fefffbfefffafefffbfefffafcfef9fcfff8fcfef9fcfff8fcfef9fcfff8fcfef9fcfff8
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafffffbfffffafffffbfffffa
+fffffbfffffafffffbfffffafffffbfffffafffffbfffffafffffbfffffafffffbfffffa
+fffffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefff6fefff4fefff6fefff4
+fefff6fefff4fefff6fefff4fefff6fefff4fefff6fefff4fefff6fefff4fefff6fefff6
+fefffafefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffafefffbfefffafefffbfefffffbfefffbfdfffcfcfffcfdff
+fdfdfbfdfdfffffbfffffbfffbfbf3feffeafdffe1f9fde6f8f9fefcfdfffaffedfaffe6
+fbfdf2fafbf6fbfbf9fdfdfb000000000000010101000000000000
+010000020100040400010100020003f6f5f3fcfee8fdffe5fcfdeffcfdebfcffd6feffd2
+feffe0fefee4feffdffeffe0ffffebfeffedfeffedfeffedfeffedfeffedfeffedfffff0
+fcfdeffcfcf0fcfcf4fcfbf7fcfbf9fcfafdfcfafffcfafffcf7fbfcf8f9fcf8f7faf9f4
+fcf9f2fafaeefcfaebfafbe9fbfae6f9fbe6f9fbe5f9fbe6f9fbe6f9fae8f9fae8f9fae8
+fcfbe7fcfbe7fcfbe7fcfbe7fcfbe7fcfbe7fcfbe7fcfbe7fefde9fefde9fefde9fefde9
+fefde9fefde9fefde9fefdebfefbf2fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf2fcf8edfcf8edfef7f1fcf7f4fef5f6fcf6f6fef6f4fcf7f3
+fdf6eefbf7ecfdf6ecfbf7eefdf5f2fbf5f7fdf3fcfbf6f2ffffdbfdfddbfdf7f7fef6ff
+fffbf7fffdeefffde4fefbeafef6fffef6fffdfbe6fffbdefff9ebfff9edfffbe5fefde1
+fefee4fbfde5fbfde7fcfdebfefef2fefdf8fdfbfcfcfafdf9f7f8f9f7f8f9f7f8f8f7f2
+f8f9e9f9fce1f9fddaf9fdd8f9fddaf9fcdff9fae8f9fbe6f9fddcf9fddaf9fbe3f9fbe6
+fafbe9fafce7f9fcdff9fce1f9faecf9f9edf9fbe6f9fbe6fbf9edfbf8f1fbf8f1fbf8f1
+fbf8f1fbf8f1fbf8f1fbf8f1faf7f0faf7f0faf7f0faf7f0faf7f0faf7f0faf7f0faf7f0
+fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3
+fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdfaf3fdf8f2fdf8f2fff8f2fdf8f2
+fff8f2fdf8f2fff8f2fdf8f2fff9f3fef9f3fff9f3fef9f3fff9f3fef9f3fff9f3fef9f3
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fffcf5fffcf5fffcf5fffcf5fffcf5fffcf5fffcf5fffcf5
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefcf0fefcedfefde9fefde9fefde9
+fefde9fefde9fefde9fefde9fefde9fefde9fefde9fefde9fefde9fefde9fefde9fefdeb
+fefbf2fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4
+fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefbf4fefaf7f9f6fdf8f5fefaf5fbf9f5f4
+faf6eafbf7ebfbf5f5fcf7f1ffffe3ffffd8ffffd1fafed9fafbf5fdfffcfaffe8f7ffe3
+fdfff2fcfdf8fcfcfafefefc000000010100000000000000000000
+01010002020007050003000006000afbf6fafffee9fdfcddffffe4ffffdfffffd1ffffd1
+ffffdbffffe2ffffe2ffffe2ffffe3ffffe2ffffe1ffffe0ffffe0ffffdfffffe0ffffe0
+ffffdeffffdcffffdcffffdcffffdeffffdeffffdeffffe0fffee2fffde4fffee2feffe0
+fffedffeffddffffdbfeffd9ffffdaffffd8ffffd6ffffd6ffffd6ffffd4ffffd4ffffd8
+ffffdeffffe2ffffe2ffffe2ffffe2ffffe2ffffe2ffffe2fffee0fffee0fffee0fffee0
+fffee0fffee0fffee0fffee1fffce9fffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffce9fffce5fffce5fffbe9fffbeafffaeefffaeefffaeefffbea
+fffae8fffbe6fffae6fffae9fff8effff8f4fff6f9fff8f6fffdeafffde2fffde4fffee5
+ffffe5ffffe2fffcdcfff9e1fff6f6fff6f2fffcd6fffbd1fff7e5fff7e7fffbd4fffecc
+ffffd0ffffd0feffd1ffffd7ffffdbffffe0fffee5fdfae9fffef5fffdf2fffdeaffffe1
+ffffdaffffd3ffffcdffffcbffffc7ffffccffffdaffffdaffffd0ffffceffffd7ffffda
+ffffd9ffffd1ffffc7ffffcaffffdaffffe0ffffdaffffdbfffde5fffceafffceafffcea
+fffceafffceafffceafffceafffdebfffdebfffdebfffdebfffdebfffdebfffdebfffdeb
+fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffceafffceafffceafffcea
+fffceafffceafffceafffceafffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9
+fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffbe9fffae9fff9e8fff9e8fff8e8fff9e8
+fff8e8fff9e8fff8e8fff9e8fff9e9fffae9fff9e9fffae9fff9e9fffae9fff9e9fffae9
+fffbeafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffdebfffdebfffdebfffdebfffdebfffdebfffdebfffdeb
+fffceafffceafffceafffceafffceafffceafffceafffde7fffde3fffee0fffee0fffee0
+fffee0fffee0fffee0fffee0fffee0fffee0fffee0fffee0fffee0fffee0fffee0fffee1
+fffce9fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffceafffcea
+fffceafffceafffceafffceafffceafffceafffceafffceafffae8fffae7fffae2fffada
+fffccffffdd0fffcdafffdd7ffffc6ffffbcfeffb8fbffc6fafde8fefff6fbffe7f7ffe3
+fdfff2fcfdf8fcfcfafefefc000000010100000000000000000000
+01010002020006040004000008000dfff6f9fffadaf5f4bcfbfabafdfbb0fdfda5fefda3
+fefbaafefab0fef9b5fef9b5fafab0f9f9aff7f7adf6f6acf6f6acf7f7adf9f9affafbaf
+feffb1feffadfeffacfeffa8feffa6feffa3feffa1fdffa4ffffaeffffafffffafffffaf
+ffffafffffafffffaeffffaefcffa9fcffa7fcffa5fcffa3fcffa3fcffa2fcffa2fdffa3
+ffffacfffeadfffeadfffeadfffeadfffeadfffeadfffeadfffdacfffdacfffdacfffdac
+fffdacfffdacfffdacfffcaefffcb0fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb0fffdacfffdabfffcaefffcb0fffbb3fffbb3fffbb3fffcb2
+fffaaffffbadfffaaffffab2fff9b8fff8bffff6c4fff6cdfff9dffbf9d3f9fcb7f9fda9
+f9fcaff9f9aff9f7adf7f4b1fff7c8fff7c0fffba2fffba0fff5bffff4c0fff9aafffda1
+ffffa3fcffa2fafda2fcffa4ffffa7ffffabfbfcb0f7f6b6fffbcefefacbfcfbbafbfcae
+fbfdaafcffa6feffa3ffff9efdff97fdff9cfdffabfdfeaefdffa7fdffa5fdfeaefdfeae
+fcffa8fcff9ffcff94fdff99fdffabfdfeb2feffafffffaffffdb0fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4
+fffdb3fffdb3fffdb3fffdb3fffdb3fffdb3fffdb3fffdb3fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4fffeb4
+fffdb3fffdb3fffdb3fffdb3fffdb3fffdb3fffdb3fffdb3fffcb2fffcb2fffbb2fffcb2
+fffbb2fffcb2fffbb2fffcb2fffdb4fffeb4fffdb4fffeb4fffdb4fffeb4fffdb4fffeb4
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb0fffcaefffdacfffdacfffdac
+fffdacfffdacfffdacfffdacfffdacfffdacfffdacfffdacfffdacfffdacfffdacfffcae
+fffcb0fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2
+fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffcb2fffbb3fffdb7fffdb7fffdb3fffdab
+fffea2ffffa3fffeaeffffadfefe9afcff96faff99f7feb0f9fddcfffff3feffeaf8ffe6
+fbfdf2fafbf6fbfbf9fdfdfb000000000000010101000000000000
+01000002010005010004000008000bfdf4edf7f5bce8e98beef277f0f565f1f65bf2f753
+f2f752f2f753f2f659f1f65cf1f65eeff55fedf35fecf15fecf161edf264eff466f0f565
+ebf05eebf159ebf254ebf34eebf449ebf644ebf73febf642edf64bebf650ebf650ebf652
+ebf554ebf554edf456edf456eaf153eaf251ebf151ebf14febf24debf24cebf24aebf348
+edf047edf047edf047edf047edf047edf047edf047edf047eff249eff249eff249eff249
+eff249eff249eff249eff347eff344eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff440edf339edf339eef23dedf23eeef142edf142eef142edf240
+edf03decf13dedf03fecf043edee4aeced51edec56eae772fdf9bcf4f5b3ecf774e7f655
+e7f258e9f15dedf35feef363ecee69edef60eef243eff146f1e96cf1e873f2ec60f0f054
+eef255e9f150e7ee50e9f150ecf54eebf34ee6ed52e0e45ce9e87ce8e77be6ea61e5eb55
+e5eb55e6ec54e8ef51e9f14ceaf247eaf149eaef55eaee5beaee5beaee5beaee5ceaee59
+e9ef51e9f04ae9f143eaf245eaf052ebef5aebef5decef58edf047edf240edf240edf240
+edf240edf240edf240edf240eef341eef341eef341eef341eef341eef341eef341eef341
+f0f543f0f543f0f543f0f543f0f543f0f543f0f543f0f543eff442eff442eff442eff442
+eff442eff442eff442eff442f1f644f1f644f1f644f1f644f1f644f1f644f1f644f1f644
+f0f543f0f543f0f543f0f543f0f543f0f543f0f543f0f543eff442eff442f0f342eff442
+f0f342eff442f0f342eff442f2f544f1f644f2f544f1f644f2f544f1f644f2f544f1f644
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eef341eef341eef341eef341eef341eef341eef341eef341
+eff442eff442eff442eff442eff442eff442eff442eff344eff347eff249eff249eff249
+eff249eff249eff249eff249eff249eff249eff249eff249eff249eff249eff249eff347
+eff344eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442eff442
+eff442eff442eff442eff442eff442eff442eff442eff249f1f259f1f15ff1ef5cf0ef57
+f0f050f1f155f2ef62f1ef66f3f762f3f965eff972f0f893f6f9cefdffeffeffeff8ffed
+f9faf2f8f9f4f9f9f7fcfcfa000000000000010101000000000000
+020100030200040001040004080008fbf1e5f3efa8e0e169eaf04eebf439edf434edf62d
+eef722edf822edf629edf52ef1f735f0f536eef334ecf132ecf133eef335f0f536f1f735
+f0f632f0f72df0f829f0f924f0fa20f0fb1bf0fb18effc19effb1deffb1feffa20effa22
+effa24eff926f0f827f0f829f5fd2ef5fd2ef7fc2ef7fc2cf7fc2cf7fd2bf7fd29f7fd27
+f7fc24f7fc24f7fc24f7fc24f7fc24f7fc24f7fc24f7fc24f5fa22f5fa22f5fa22f5fa22
+f5fa22f5fa22f5fa22f5fb1ff5fc1af5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd14f7ff11f7ff11f7ff13f7ff16f7ff18f7ff18f7ff18f7ff16
+f6fe13f6fe15f6fe17f6fc1cf6fb23f6fa2af6f832f3f353ffffa8f3f7a0e7f655dff02e
+ddec2fe3f031e9f52fedf734f3f941f4f93af5fc22f6fb25f7f443f9f24afaf63bf8f933
+f5fa2ef0f72beef52deff62cf2fb26f1fa27eaf02ce5e73cf2ed6bf0ec67eef142edf331
+edf233eef432f0f72ff2fa2bf6fc28f6fc28f6fb2ff6fa34f6f83bf6f83df6f93af6fa34
+f4f929f4fa24f5fc23f5fb25f6fb2bf6fa31f7fa3bf7fb35f7fd21f7ff18f7ff18f7ff18
+f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18f7ff18
+f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15
+f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f2fa13f2fa13f2fa13f2fa13
+f2fa13f2fa13f2fa13f2fa13f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15f4fc15
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14f3fb14
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fc1af4fa1ef4f921f4f921f4f921
+f4f921f4f921f4f921f4f921f5fa22f5fa22f5fa22f5fa22f5fa22f5fa22f5fa22f5fb1f
+f5fc1af5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16
+f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fd16f5fb1bf4f827f4f72ef4f52bf4f629
+f4f626f4f52bf5f43af3f440ebf034eaf23de8f251eaf37ef3f5c3fcffecfefff3f9fff1
+f7f8f2f7f8f3f8f8f6fbfbf9000000000000010101000000000000
+000100010000040001040004090009faeedef6f0a2ecee69f1f642ebf22af1f735edf42c
+f3fb1eedf818f8ff2eeef327f6f92ee4e51bfdff32fbfd2df4f720fbff24eaef0ffbff1d
+eaf00afcff1aedf30bf3f911faff1aecf20cffff25eff50dfbff12f0fa06f1f908ffff1a
+f5fc10fbff17ffff1cf5f813fafb19fafb19fcfa19fcfa19fcfa19fcfa19fcfb17fafb19
+fbfb1dfbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1f
+fbfb1ffbfb1ffbfb1ffbfb1dfbfc18fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fafc13fafc13fafc13fafc13
+fafc13fafc13fafc13fafc12faff0dfaff0dfaff0ffafe13fafe14fafe14fafe13fafe11
+f8fc0ff9fd10f9fd13f9fc19f9fa22f8f828f7f52ef2f14bfefd93ffff9efbff6ebfce19
+ebfa3ff1ff36eafa1bf4ff20d1d90affff36fdff25f3f71ae4e315f0ed22f4f31cfbfc1c
+eef10cfaff1cf4f81dfdff26ecf10ef2f619f0f127ffff5be5d865ffff89f4f23ff4f626
+f5f727fcff2aeef313edf00bf3f50cf5f70ef3f50cf6f715fffe2afffd2ef9f91fffff1e
+fbfd13f7fa0df3f50cfbfd14fdff13f8fa11ffff26f0f016f9fa16f9fb12f9fb12fafc13
+fafc13fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fafe14fafe14fafe14fafe14
+fafe14fafe14fafe14fafe14fafe14fafe14fafe14fafe14fafe14fafe14fafe14fafe14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfc18fbfb1dfbfb1ffbfb1ffbfb1f
+fbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1ffbfb1d
+fbfc18fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14fbfd14
+fafc13fafc13fafc13fafc13fafc13fafc13fafc13fafc12fbfe11fbfe0ffdfd0ffcfc0e
+fcfd0cf9fb11f9f91ff8f824eef31bf2fa2bf4fd48e5ec68fcffc5fdffeafefff4f7fdf3
+f7f8f2f7f8f3f8f8f6fbfbf9000000000000010101000000000000
+000100000100030200040002090009f9eddff4eea2eaea68ffff58f8fc43e8e643fcfa57
+d5da1ceaf02efeff4ee3e337fffd51efe837d5cf15f3ef2bdfde0ae1e202ffff1be8ec00
+f4f801edf200fdff0cf0f302f0f208eff00cf4f416fafb19f0f304fcff0dffff10f1f201
+fdfe0de3e400ffff13f2f005fefb10fefb10fffa10fffa12fffa12fffa12fffa12fefa13
+fdfa15fcfb15fdfa17fcfb15fdfa17fcfb15fdfa17fcfb15fefb18fdfc16fefb18fdfc16
+fefb18fdfc16fefb18fdfc16fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fdfb12fcfc10fdfb12fcfc10
+fdfb12fcfc10fdfb12fcfc0efcfd0bfafe0bfcfd0cfafd0efcfc10fafd10fcfc0efafd0c
+fbfc0bfafd0cfcfc12fafb17fcf91ef9f726faf42cf3f147ffff8eebf08ae0e763f7ff6c
+e1e74ff3fc53dfea22e0ea17ebf228eff22feced2de7e727ffff49e2df18dedb02f1f00a
+f9fc0ff2f40be5e509e8e80effff29dedd06fffb3d2d2100412b002f1a00dfd62fe9e718
+f8f625fdfc25f9fb14ffff15fffe10f9f808ffff0eedec00e3e000fdf91bedeb03fefd0d
+f9f905f9f905fdfc0ef5f406e6e600f8f802f2f007ffff1cfcfa11fbfb0ffcfa11fcfc10
+fdfb12fdfd11fefc13fdfd11fdfb12fcfc10fdfb12fcfc10fdfb12fcfc10fdfb12fcfc10
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fdfd13fbfe11fdfd13fbfe11
+fdfd13fbfe11fdfd13fbfe11fdfd13fbfe11fdfd13fbfe11fdfd13fbfe11fdfd13fdfd11
+fdfd13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd13fefb16fdfc16fefb18fdfc16
+fefb18fdfc16fefb18fdfc16fefb18fdfc16fefb18fdfc16fefb18fdfc16fefb18fdfc16
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11fefc13fdfd11
+fdfb12fcfc10fdfb12fcfc10fdfb12fcfc10fdfb12fcfd0cfdff04feff01feff03fefe00
+fefe00fdfc04fcfa11fbfa16f2f50ef4fc1ff4fe3be6ed5ffeffbefcfee6fefff4f9fcf5
+f9faf5f8f9f4f9f9f7fcfcfa000000000000010101000000000000
+0003000003000303000400010a000afaede4f4ecadeae678e5e553dad748f1e785eadf85
+fffc86eceb6dd0cc61faf18ce2d167e7d45effff84fcef55e8df2cffff3bffff23f8f908
+ffff06f4f700fdff06ffff15ffff1effff2bf0ec1befeb1af7f41bfffe20ffff29eae608
+e2df00ffff22f3ef0affff1bfff812fff911fff811fff712fff614fff614fff616fff712
+fefb0cfdfd09fefc0bfdfd09fefc0bfdfd09fefc0bfdfd09fffd0cfefe0afffd0cfefe0a
+fffd0cfefe0afffd0cfefd0cfffc0ffefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffefb10fdfc0efefb10fdfc0e
+fefb10fdfc0efefb10fdfc0efdfc0bfcfd0bfdfc0cfcfc0efdfb10fcfc10fdfc0efcfd0c
+fcfb0afcfd0bfdfb10fcfb15fdf91efbf724fbf32cf4f047ffff96ffffaae6e883f1f38e
+d5d17ad6d374eeed6ffcfc66ffff5fe6e442f4eb6aebdf67d3c646fffc63ffff3defef13
+f4f211ffff2af9f427f0ea24f4ef22ffff41f2e646ffea7d280800270800ffff7cf4ec31
+e1da18fef92cfdfb1cf4f30bffff1cf5f10cd9d600ffff25fbf710ffff19f4f008fffc11
+fefb10ffff20e9e500fffe19ffff13ffff10fbf80bedea00fdfa0ffcfb0dfdfa0ffdfc0e
+fefb10fefd0ffffc11fefd0ffefb10fdfc0efefb10fdfc0efefb10fdfc0efefb10fdfc0e
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffefc11fdfd0ffefc11fdfd0f
+fefc11fdfd0ffefc11fdfd0ffefc11fdfd0ffefc11fdfd0ffefc11fdfd0ffefc11fefd0f
+fefc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffd0cfefe0afffd0cfefe0a
+fffd0cfefe0afffd0cfefe0afffd0cfefe0afffd0cfefe0afffd0cfefe0afffd0cfefd0c
+fffc0ffefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0ffffc11fefd0f
+fefb10fdfc0efefb10fdfc0efefb10fdfc0efefb10fdfc0cfefe08fefe06fffd08fffc05
+fffd02fffb06fff814fdf818f6f50df6fb1af7fe36e8ee58ffffb8fdfde1fffff1fafdf4
+fbfcf6fafbf6fbfbf9fdfdfb000000000000010101000000000000
+000300000300010200030000090007fcf0e4f9f1b2f0ed82fffe753b37004335001a0a00
+2b2300fffb9dd3ce7d2c23003626002a18001d0c00fffd75f6ed4adcd91cf1f01af5f811
+eef100faff0ae9ec00e2e600f6f61aecec1afaf730fffd39fbf831f0ed22f4ef21fcf825
+ffff29f0ec0ef7f30ef1ed05fff90ffff90dfff90dfff90dfff70ffff711fff711fff90d
+fffb06fdfc01fdfc01fdfc01fdfc01fdfc01fdfc01fdfc01fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe04fffd0afffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfefc0bfefc0bfefc0bfefc0b
+fefc0bfefc0bfefc0bfefc09fcfc08fcfc08fcfb0afcfb0afcfb0bfcfb0afcfb0afcfc08
+fcfc06fdfd07fdfc0bfdfb10fdfa19fcf721fbf527f4f144fffd8cffffa7e6e885242400
+342e00382f002a22002e2900c8c832f7f660e8dc7a534200342300392e00ede739e8e71b
+f9f925eeee1ee9e426fffc3feeeb24e6e326ede346fcea863615022b0e00e2d451f7f33a
+ffff46e9e723efee1af7f71bffff27dfdc05fffe26dddb00f1ef04f9f90bfcfa12faf817
+f8f419f7f41bfffd20f4f214efeb10f3f110e9e800ffff19fdfb0afdfb0afdfb0afefc0b
+fefc0bfffd0cfffd0cfffd0cfdfb0afdfb0afdfb0afdfb0afdfb0afdfb0afdfb0afdfb0a
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfefd0cfefd0cfefd0cfefd0c
+fefd0cfefd0cfefd0cfefd0cfefd0cfefd0cfefd0cfefd0cfefd0cfefd0cfefd0cfefd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0afffe04fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe04
+fffd0afffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0cfffd0c
+fefc0bfefc0bfefc0bfefc0bfefc0bfefc0bfefc0bfefc09fefe0afefe0afffc0dfffb0c
+fffb07fff90bfff618fff71af9f70ef9fa18f8fd31eaef55ffffb3fdfddbffffedfbfff1
+fdfef8fcfdf8fcfcfafefefc000000010100000000000000000000
+000400000300000100010000070001fcf4ddfdf9aff8f781e5e853dddd5b322700302400
+e8e588e9eb7eebed8c292900261f00ffff95fff879e6e151f6f350f4f53ff9fb35f6fc26
+f2f81cfcff23fbff23ffff36dde110f0f42beff12ef8f93bfdfc42eae92dfafa36e2e417
+dfe008fcfd19f9f90bf9fb04fcfc04fcfd02fdfc02fffb02fffb02fffa04fffa04fffb02
+fdfc01fdfd00fdfd00fdfd00fdfd00fdfd00fdfd00fdfd00ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fefd02fefd02fefd02fefd02
+fefd02fefd02fefd02fefd02fcfd01fcfd02fcfd02fcfc04fcfc04fcfd02fcfd02fcfd01
+fcfd01fdfe02fdfe02fdfd07fdfb10fcf918fbf61ef4f23bf3f377feff9af1f779ccd15d
+2b27002b20000d0100ffffbcecef58feff61f4ea8be2d18c241400f1e579f6f157e5e52f
+dfe022fdff42f3f240f6f83ff4f828eef325f4f341e6dd642e1500392300cec836f4f734
+e2e228e3e52aedef29ffff35f5f72af5f62eebe829f3f528f4f80bfbff0ffafd1ae8eb16
+f0ee29fbfc34f8f921f9fc25fcfa36dcdd13eff306edf300fcfd01fdfc01fdfc01fefd02
+fefd02fffe03fffe03fffe03fdfc01fdfc01fdfc01fdfc01fdfc01fdfc01fdfc01fdfc01
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03feff03feff03feff03feff03
+feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03feff03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fefd02fefd02fefd02fefd02fefd02fefd02fefd02fefd05fefd0cfefc11fffb14fff913
+fff910fff712fff51dfff51dfcf811fbfa16f8fb2eebef52ffffaffbfbd5ffffe9fdfff1
+fdfef6fcfdf8fcfcfafefefc000000010100000000000000000000
+000408000303000100010000070000fcf5d8fefbaaf8fa7fd5da42ffff811d11001a1000
+ebeb95e4ea80f5fb992e3400e9eb66f0f260e6e954dbde45ebef52e7ec4afaff5ad9df37
+f6fc54dce23adbe03bcbd02cfcff61f1f55ad6d940eded57edec56fffc63f0ee4bfdfd4d
+f9fa3af1f522e9ee0dfeff15f9ff0bfafe07fcfe05fdfe03fefd03fefd03fefd03fefd03
+fefd03fefd03fefd03fefd03fefd03fefd03fefd03fefd03fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe03ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01fefe00fefe00fefe00fefe00
+fefe00fefe00fefe00fefe00fdfe02fdfe03fdfe03fdfe03fdfe03fdfe03fdfe00fdfe00
+fcfe00fdff00fdfe00fdfe03fdfc0efcf914fbf71cf4f339ffff8fecf383dfe75df0f773
+e7e68a221b00241500190f00f5f967e3e748e6dd7e2d2100392d00f8ef88ece66cede963
+fcfb6fdadc4de9ea60ffff66f4fe3be3ef21ecf43cecec6a2616000f0000ffff71dde52d
+f0f551f5f85ff7fb5ed6d837e6e743ffff64fffa6eebeb4be4eb11f3ff17f4f734feff57
+eeea55f4f35af7f940edf13cebe656f6f55cffff3cf0f908fbfd04fdfd00fdfd00fefe00
+fefe00ffff01ffff01ffff01fefe00fefe00fefe00fefe00fefe00fefe00fefe00fefe00
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01feff01feff01feff01feff01
+feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01feff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01fffe03fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe03
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01ffff01
+fefe00fefe00fefe00fefe00fefe00fefe00fefe00fdfe03fdfe0afdfd0ffffb13fffa12
+fff910fff712fff51dfff51dfffa12fbfa14f7fb2aebf04effffaefcfad3ffffe6fefff0
+fbfcf4fafbf6fbfbf9fdfdfb000000000000010101000000000000
+000208000104000200000100060100f9f4d4f8f7a5f1f27be6eb5bf1f17f1106000c0000
+f1f0afeaf096182000e5ee83eaf74fcddc1df1ff4af6ff5bd5dd4afaff7f1a1c00353400
+100d002a26003f3a00d4cf8b2b26001f1b00302c003330001e1800fbf593231f003a3900
+282800edef44ffff48e8ed1df7fd1ff8fe18fafe13fafe11fbfe0ffbfe0ffbfe11fdfd0f
+fdfc0efefb0cfefb0cfefb0cfefb0cfefb0cfefb0cfefb0cfffc0dfffc0dfffc0dfffc0d
+fffc0dfffc0dfffc0dfffd0cfffe06fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fefd03fefd03fefd03fefd03
+fefd03fefd03fefd03fefd05fdfd07fcfd09fcfd09fcfd09fcfd09fcfe07fcfe03fcff02
+fbfe00fcff00fcff02fcfe07fcfc12fbf918faf720f4f23dffff89fbff95e4ef64effb6b
+edf27a1c1b0033270d180c00f0f372e2e653fcf8951f1700fbf489e7e078e0d48a2a1e00
+2a2200231e00211d00272900f4ff5bd5e429f0fd4bd9de601f1300160a00cdd254e5ee53
+282b002c2b00151300eeec95fbf794161100241800161100ffff56e7f32fcccd43ede986
+372d002019003c3b002727003c3100ebe496e9ec53e9f024f9fb11fdfc02fdfc02fefd03
+fefd03fffe04fffe04fffe04fefd03fefd03fefd03fefd03fefd03fefd03fefd03fefd03
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04feff04fdff04fdff04fdff04
+fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04feff04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe06fffd0cfffc0dfffc0dfffc0d
+fffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffc0dfffd0c
+fffe06fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04fffe04
+fefd03fefd03fefd03fefd03fefd03fefd03fefd03fdfe03fdff04fdff04fffd08fffc07
+fffb07fff80bfff518fff618fffc10fbf910f8fb26edef4cffffacfbf9d0ffffe5fffff2
+f9faf2f8f9f4f9f9f7fcfcfa000000000000010101000000000000
+000205000104000304000000060300f6f3d2f0f1a1e6eb75dce355e6e978201500130806
+fdfbca131900191d00eff89be6f94feaff37def336d9e94aecf485292a00171600f9f7be
+f5f1c1e0dbb50801001c1600dddab10805002b2609090500dcd79feae69ffffeb21e1a00
+ffff7cfdff5cdadf21f8fd2df8fd24f9fe1bf9ff15fbff14fbff15fbfe17fbff15fbff14
+fdfd0ffefd0dfefd0ffefd0dfefd0ffefd0dfefd0ffefd0dfefd0ffefd0dfefd0ffefd0d
+fefd0ffefd0dfefd0ffefd0cfefe06feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04fdfe03fdfe03fdfe03fdfe03
+fdfe03fdfe03fdfe03fdfd05fdff08fbff08fdfe0afbff0afdff08fbff06fdff04fbff03
+fbfe00faff00fcfe03fafe09fcfc10f9fa16faf71cf3f33bffff8cf7ff90f1ff64d8e840
+d8e150f9fb980e0300231800f1ef88d1d25afffaa91b1400eced6eeeee762d24002d2300
+d7d0b6d0ccb1f8f4cf1a1b001d2600e4f350edfb4cf5fc7b1d12000f0400f3fc7fe5f358
+c1c95c292b00161600e8e6b3e7e59aefeaa82a1f01221c00d4dd46e9f44ef2f28e1c1500
+0b0000fffad1ebea90e5e38e0f0400221a00e5eb67e5ef2ef8fb14fcfd02fcfd02fdfe03
+fdfe03feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04fdff04fdff04fdff04fdff04
+fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04fefe06fefd0cfefd0dfefd0dfefd0d
+fefd0dfefd0dfefd0dfefd0dfefd0dfefd0dfefd0dfefd0dfefd0dfefd0dfefd0dfefd0c
+fefe06feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04feff04
+fdfe03fdfe03fdfe03fdfe03fdfe03fdfe03fdfe03fdfe02fdff03fdff03feff04fffc03
+fffc03fff908fff614fff614fffd0dfafa0cf7fa23ecf24affffa8faf9cdffffe3fffff1
+f7f8f0f7f8f3f8f8f6fbfbf9000000000000010101000000000000
+000300000303000209000005040100f4f4d2f2f5a6e8ef7be4ee5af3fb810903000d0400
+201e00141500191900141a00e3f56bdff747dbf242e8f871303000070000ece9c0dcdba2
+e9eaa8dddca3231e000f0d00eff6a9eff5ad0d0d00181502fbfcc3e5e6a02823001c1700
+f4f665ebf032f5fa1af9fe0efafd10fafd0efafe0bfbfe0dfafd16fbfe17f9ff12f9ff0d
+fbff08fdff04fdff06fdff04fdff06fdff04fdff06fdff04fdff06fdff04fdff06fdff04
+fdff06fdff04fdff06fdff04fdff03fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fbff01fbff03faff03fbff03faff03fbff03faff01fbff01faff01
+f9ff00f8ff00faff02faff06fbff0cfbff12fdff18f8fb38fbff81edf97de2f63ff5ff43
+d6e33bfdff901c1100190c00282100e7e195291e003b3600c6cd43eaf25edcde7bcfcd94
+1d1e001a1b091818002524001c2100eaf16de2ef40edf36b1c1000180c00e4ed5ef9ff56
+d6e45b232e001c2300e2e7b1f7fe9feef3970a0800181800f2fe78e8f46a080b00221e00
+e7e0ceebe6c9eaeca1e8eb9e1c18001c1c00ddeb5ae9f82df2fb0cf9fc00fafd00fafd00
+fbfe00fcff00fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fbff01fbff01fbff01fbff01
+fbff01fbff01fbff01fbff01fbff01fbff01fbff01fbff01fbff01fbff01fbff01fbff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01feff02feff02feff02feff02
+feff02feff02feff02feff02fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+feff02feff02feff02feff02feff02feff02feff02feff02fdff03fdff04fdff04fdff04
+fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff03
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01feff02feff02feff02feff02
+feff02feff02feff02feff02fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01feff02feff02feff02feff02feff02feff02feff02feff02
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fcff00fcff00fcff00fcff00fcff00fcff00fcff00fcff00fcff00fcff00fcff00fcff00
+fcff00fcff00fcff00fcff00fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff03feff02feff02feff02feff02feff02feff02feff02feff02
+fcff00fcff00fcff00fcff00fcff00fcff00fcff00fcff00fdff03fdff03fdff03fdff03
+fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03fdff03
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01faff03fdff06fefe0afffc0a
+fffc08fffa0bfff614fff611fffd08f7fb08f5fb1feaf245ffffa8fcfecffeffe3fcffed
+fafbf3f9faf5fafaf8fcfcfa000000000000010101000000000000
+00050000020000000a000007060300f6f6d4f2f5a8e7ee7cdeea56dde669130f001f1808
+e2ddbd201e0023210a040600f4ff96c0d145e1f45ceef8871d1700160b092b27002b2b00
+2b2c00191c00221f001a1900e3eb84e3ec8f232204120e02090800e5e5a7151100ece78b
+ffff64ecef24ffff18eff100fdfd09fefc0bfdfc0bfdfd0ffdfc14fafe14fbff0dfbff07
+fbff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff04fdff03fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04
+fdff04fdff04fdff04fdff04fbff06fbff06fbff06fbff04fbff04fbff04fbff04fbff04
+faff03faff05fafe07fafe0bfafd10fafc13f9fa16f5f734feff82ffff8ae1f532e7fb28
+e2ef3dd4d6573228000e0000100300f9ecbf180800d7ce97ebef67f1f966252400242000
+0e0d00cacabed9d6c51614002f2c00f6f88adde341fdff7a1707001e0e00e6ed5fd5e72f
+ebf9662530001d2400c7ca9dc1c674f8fca8201c00222100e8ef7debf47f191700171100
+190f05241f02232400191e003736000b0f00faff66e7f723f5fc10fafc03fbfd04fbfd04
+fcfe05fdff06feff07feff07fdff06fdff04fdff04fdff04fdff04fdff04fdff04fdff04
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06feff07feff07feff07feff07
+feff07feff07feff07feff07fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+feff07feff07feff07feff07feff07feff07feff07feff07fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06feff07feff07feff07feff07
+feff07feff07feff07feff07fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06feff07feff07feff07feff07feff07feff07feff07feff07
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05fcfe05
+fcfe05fcfe05fcfe05fcfe05fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06feff07feff07feff07feff07feff07feff07feff07feff07
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06fdff06
+fdff06fdff06fdff06fdff04fdff03fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01fdff01
+fdff01fdff01fdff01fdff01fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04
+fdff04fdff04fdff04fdff04fdff04fdff04fdff04fdff04f9fe04fcfe07fdfc0cfefb0c
+fffb09fff80bfff513fef510fffd0af7fa09f4fb21eaf149ffffacfcfdd3feffe7fcfff1
+fafbf3f9faf5fafaf8fcfcfa000000000000010101000000000000
+000500000300000004000004080500f8f8d6f2f4a9e5ec7ce4ed5eebf177150f00231804
+e5ddb8cac59b272202131000222400e9ed8ce7ef78eaec8b100600332508e9e397c8c85a
+e9ea68e3e568ddd97efdfca2dce169dee47a1b1700160d001f18002b2300322b00fffb83
+dad730faf92dfdfc18fffd0efffb0cfffa0efffa12fefa13fffb13fdfe0dfdff06feff07
+fefd0dfffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffc0ffffe06fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe06
+fffc0dfffc11fffc11fffc11fffc11fffc11fffc11fffc11fffc11fffc11fffc11fffc11
+fffc11fffc11fffc11fffc11fefc13fefc14fefc13fefc11fefd0ffefd0ffefd0ffefd0f
+fefc11fefc13fdfa15fcf918fbf71cfbf621faf422f6f13dffff85f9fe7de4f336e2f124
+ebf443fdfe74e0d77c352500261300301b00170100fff1bee2dc6abcb84a392a01100000
+d5ccc7fff9effff8e32018002e2400dfd979ebea5ce5de6a3a240f321e05e8e769ebf350
+f4fa741e2200222100e2ddc0f1e9c2f4eac60f00001e1500d6d470dbdc76180d00120500
+fff0e8e3d9b5fefb9ae9ed74d4d369d4d959f2fd47f0fb23f7f818fbf712fcf813fdf914
+fdf912fefa13fefa12fffb13fffb13fffc11fffc11fffc11fffc11fffc11fffc0ffffc11
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffc14fffc14fffc14fffc14
+fffc14fffc14fffc14fffc14fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffc14fffc14fffc14fffc14fffc14fffc14fffc14fffc14fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffc14fffc14fffc14fffc14
+fffc14fffc14fffc14fffc14fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffc14fffc14fffc14fffc14fffc14fffc14fffc14fffc14
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffc14fffc14fffc14fffc14fffc14fffc14fffc14fffc14
+fffc14fffc14fffc14fffc14fffc14fffc14fffc14fffc14fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13fffb13
+fffb13fffb13fffb13fffc0ffffd08fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03fffe03
+fffe03fffe03fffe03fffe06fffc0dfffc11fffc11fffc11fffc11fffc11fffc11fffc11
+fffc11fffc11fffc11fffc11fffc11fffc11fffc11fefd0dfeff0bfeff0bfffe0efffe0f
+fffc0dfffb0ffff817fff917fffc0ff7f910f4fa28eaf052ffffb5fcfbddfefff3fcfef9
+fafbf6f9faf5fafaf8fcfcfa000000000000010101000000000000
+0005000002000000020100020a0600fbf8d5f3f4a8e6ea7be0e759ffff85261e00180c00
+f3edb3fef9b9221d001b17002622001b1900ffffa1dcd77c3123002112001e1300fffc91
+fdf97ce4df67fff6972a2400fafa7eebeb79ebe4a01a10001e0e001b0d00f6ef87f0ec55
+f5f33ce5e314fffc1cfffa10fff80dfff70ffff719fff817fffa0efffe06feff03feff04
+fffc0dfffb13fffb13fffb13fffb13fffb13fffb13fffb13fffa12fffa12fffa12fffa12
+fffa12fffa12fffa12fffa0efffc07fffc03fffc05fffc03fffc05fffc03fffc05fffc03
+fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03
+fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc07
+fffb0cfffa10fffa10fffa10fffa10fffa10fffa10fffa10fffa10fffa10fffa10fffa10
+fffa10fffa10fffa10fffa12fff915fefa15fefa13fefa12fefb10fefb10fefb10fefb10
+fffb13fefa13fef919fef81cfdf621fdf524fcf425f8f141fff984f7f77ff4fc46f0f930
+ebed41ede952f4ec67251800250f00260e00220d00ecdb89faf074ffff9a140000402923
+2b1d12160b001a0e003d3200110400fff99dfff978f9ed7f351d00260e00ebe26debeb55
+dadc574442002c27002f2406241500231200200d003d2e07f5ee96ddd7793124002a1900
+200f00d7c998fffc98e4e269ffff8f2a2b00eef63eebf11bf9f518fcf513fcf513fdf614
+fdf614fef713fef713fff812fff913fffa12fffa12fffa12fffa12fffa10fffa10fffa10
+fff913fff913fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913
+fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913
+fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913
+fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913
+fff915fff913fff915fff913fff915fff913fff915fff913fffa16fffa14fffa16fffa14
+fffa16fffa14fffa16fffa14fff915fff913fff915fff913fff915fff913fff915fff913
+fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14
+fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14
+fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14
+fffa16fffa14fffa16fffa14fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12
+fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fff913fff913fff915fff913
+fff915fff913fff915fff913fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14
+fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fff915fff913fff915fff913
+fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913
+fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14fffa16fffa14
+fffa16fffa14fffa16fffa14fff915fff913fff915fff913fff915fff913fff915fff913
+fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12
+fffa12fffa12fffa12fffa12fffa14fffa14fffa16fffa14fffa16fffa14fffa16fffa14
+fffb17fffb15fffb17fffb15fffb17fffb15fffb17fffb15fffa12fffa12fffa12fffa12
+fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12fffa12
+fff913fff913fff915fff913fff915fff913fff915fff913fff915fff913fff915fff913
+fff915fff913fff915fffa10fffb09fffc03fffc05fffc03fffc05fffc03fffc05fffc03
+fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03
+fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03
+fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03fffc05fffc03
+fffc05fffc03fffc05fffc07fffb0cfffa10fffa10fffa10fffa10fffa10fffa10fffa10
+fffa10fffa10fffa10fffa10fffa10fffa10fffa10fefb0efdfe0afbff0afeff0dfffe0d
+fffc0afffb0cfff716fff718fefc13f7f816f4f82feaee59ffffbcfef9e5fffef9fdfdfd
+fafaf8f9faf5fafaf8fcfcfa000000000000010101000000000000
+000400000300000000010000090500faf8d2f4f5a7e8ed79dde250262800544e00150d00
+2d2800f7f38fdfdb771814003e38002c27001e1700efe68bf7e5b31500003d28002a1700
+2d1c002b1b002c1b002e2200dfd967f1ef78f3ed8b382d002e1c06180700f0ec67f8f840
+f9f82effff2dfff819f9f00bfff80dfff70ffff41bfff61bfffa0bfffd00ffff01ffff01
+fffd04fffc06fffc06fffc06fffc06fffc06fffc06fffc06fffb05fffb05fffb05fffb05
+fffb05fffb05fffb05fffb05fffb05fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05
+fffb05fffb05fffb05fffc07fffb0bfffb0cfffb0bfffb09fffb09fffc07fffc07fffc07
+fffa08fffb0bfffa10fff913fffa18fff91cfff91efef542fffe96ffffa0e9e93de1e51f
+f4f245e5e138fffd49f1e747291600493400e9d95ffcf25df4ed44d0c9333826002e1a00
+2816001c0e00faeda7443800291900342500f0e2652d1b00270d003d2500312500dfd947
+ffff73f2ed770f06002114002d1d00fae6b32e17001f0a002a1a00fff79bf2e2971f0d00
+311e003d2b00261700291c002a1c00362c00e9e840ffff35fcf717fff80cfff80cfff80c
+fff90dfff90bfff90bfff90afffa0bfffb09fffb09fffb09fffb09fffb07fffb07fffb09
+fffa0bfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffb0dfffb0cfffb0dfffb0c
+fffb0dfffb0cfffb0dfffb0cfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0c
+fffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0c
+fffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0c
+fffb0dfffb0cfffb0dfffb0cfffb07fffb05fffb05fffb05fffb05fffb05fffb05fffb05
+fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb07fffa0bfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0c
+fffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffa0cfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0c
+fffb0dfffb0cfffb0dfffb0cfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffb07fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05
+fffb05fffb05fffb05fffb07fffb0cfffb0cfffb0dfffb0cfffb0dfffb0cfffb0dfffb0c
+fffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffb07fffb05fffb05fffb05
+fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb07
+fffa0bfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0bfffa0cfffa0b
+fffa0cfffa0bfffa0cfffa0bfffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05fffb07fffb05
+fffb07fffb05fffb07fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05fffb05
+fffb05fffb05fffb05fffb05fffb05fffb05fffb05fefd05f7fc02f7fd05f8fc07fafb07
+fcfb03fbf906fcf511f9f414fdfd13f6f818f4f831eaee5bffffbefef9e5fffef9fdfdfd
+fafaf8f9faf5fafaf8fcfcfa000000000000010101000000000000
+000300000200020001030000060200f8f4cef5f6a6eef17ce9ef5bf8fc69f2ef7cffff96
+eae96ae0de55fffe6ef9f86cfaf774f9f675fffa78f5ef77f3e688fbea9af5e38fffed97
+f4e290f0df91f4e19df6e59df2e78beee684dbd178f2e4a3140100ffffc5f1ed58e4e71e
+e7e717f6f31cfef81cfaf311fff710fff614fff422fff51ffffa10fefd05fdfd05fdfd05
+fffe04fffd04fffd04fffd04fffd04fffd04fffd04fffd04fffb02fffb02fffb02fffb02
+fffb02fffb02fffb02fffb04fffa0afffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0b
+fff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0b
+fff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0a
+fffb06fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb04fdfb0afdfb0afdfb08fdfb06fdfb06fdfb06fdfc04fdfc04
+fdfb06fdfb0afefb0efffc11fffc15fffb19fffc1cfff545f9e992fff7a4f6f451fbfc3c
+faf64df2ec40e7e419fff836fff566ffef66fffc4cf2ef28fdfa2ffffc48e9dc5afaec89
+f7eb97eee48bebe46ff3eb6cfff67ef5e76cfff96dfff471ffef89ffec83fff56befe949
+dedd35ffff67fdf787f8f08ef5ea80fef188e6d77afff693dfd55ae2d956f6ec70f3e874
+f7ea82f8ea87f7ea84f4e77efff68af7ee6df4f248eeef25fefb18fffc0cfffc0dfffc0c
+fffc0dfffc0cfffd0dfffd0bfffa08fffa08fffa08fffa08fffb06fffb06fffb06fffb06
+fffa08fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffb0bfffb0bfffb0bfffb0b
+fffb0bfffb0bfffb0bfffb0bfffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffc0cfffc0cfffc0cfffc0c
+fffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0c
+fffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffb0bfffb0bfffb0bfffb0b
+fffb0bfffb0bfffb0bfffb09fffb04fffb02fffb02fffb02fffb02fffb02fffb02fffb02
+fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb04fffa08fffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0b
+fffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffc0cfffa0afffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0b
+fffb0bfffb0bfffb0bfffb0bfffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa08
+fffb04fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02
+fffb02fffb02fffb02fffb04fffb09fffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0b
+fffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb0bfffb09fffb04fffb02fffb02fffb02
+fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb02fffb04
+fffa08fffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0afffa0a
+fffa0afffa0afffa0afffa0afffa0bfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0b
+fff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0b
+fff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0b
+fff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0bfff90dfffa0b
+fff90dfffa0bfff90dfffa0afffb06fffb02fffb04fffb02fffb04fffb02fffb04fffb02
+fffb04fffb02fffb04fffb02fffb04fffb02fffb04fcfc06faff0cf8ff0dfbff10fcff0e
+fdfe0afdfc0cfcf918fbf91afbfd16f4f81bf2f834eaee5cffffbefef9e3fffff3fefdf9
+fafbf6f9faf5fafaf8fcfcfa000000000000010101000000000000
+010100010100040205030000040000f5f2c9f5f6a6f2f580f0f662f2f75cf1f364dbda4a
+f7f958f1f445f3f73ef1f540eff24df2f753e7eb3efbfe4dfafa4af5f547ebe93ff6f253
+d9d244fffa84fff295e5d58a3626002a1a00fff1cd110100362700d1c974eaeb4ffcff3a
+f8fb2ef8f824e7e60fffff24fcf61afcf61efdf429fcf529fcf81dfcfb15fafc13fafd10
+fdfe0dfdfe0cfdfe0cfdfe0cfdfe0cfdfe0cfdfe0cfdfe0cfbfc0afbfc0afbfc0afbfc0a
+fbfc0afbfc0afbfc0afbfb0dfbfa14fbf918fbf91afbf918fbf91afbf918fbf91afbf918
+fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918
+fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbfa16
+fbfb0ffbfc0bfbfb0dfbfc0bfbfb0dfbfc0bfbfb0dfbfc0bfbfb0dfbfc0bfbfb0dfbfc0b
+fbfb0dfbfc0bfbfb0dfbfb0dfbfb0ffbfb0ffbfb0ffbfb0dfbfb0dfbfc0bfbfc0bfbfc0b
+fcfc0efcfc10fcfb13fcfb15fcfa19fcfa1bfdfb1dfaf34afff5b3fff1b3f6f65af2f437
+e0dc3bffff59fffd36f2ef24ede636fff946e5e50bf8fc12ffff21e9eb1be3e12effff63
+efee60fcfc68f1f441e9eb30efed42f1ec46efe83ff5ee45f9ef4fe8e03df7f445f6f739
+f7fc2cecf32bf2f550eced51ffff4debee2ff8fc36faff31f0f620f5fb27f9fd36fcfe45
+f4f34be1df3ff9f757fcfa58ebea42eeee3effff48f1f524fbfc1afdfd11fcfc12fcfc10
+fcfc12fcfc10fcfc10fcfc10fbfb0ffbfb0dfbfb0dfbfb0dfbfb0dfbfb0dfbfb0dfbfb0d
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffcfc10fcfc10fcfc10fcfc10
+fcfc10fcfc10fcfc10fcfc10fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fcfc10fcfc10fcfc10fcfc10fcfc10fcfc10fcfc10fcfc10fdfd11fdfd11fdfd11fdfd11
+fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11
+fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fcfc10fcfc10fcfc10fcfc10
+fcfc10fcfc10fcfc10fcfc0efbfc0bfbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0a
+fbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0bfbfb0dfbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffcfc10fcfc10fcfc10fcfc10fcfc10fcfc10fcfc10fcfc10
+fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0d
+fbfc0bfbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0a
+fbfc0afbfc0afbfc0afbfc0bfcfc0efcfc10fcfc10fcfc10fcfc10fcfc10fcfc10fcfc10
+fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd11fdfd0ffbfc0bfbfc0afbfc0afbfc0a
+fbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0afbfc0b
+fbfb0dfbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0ffbfb0f
+fbfb0ffbfb0ffbfb0ffbfa12fbfa16fbf918fbf91afbf918fbf91afbf918fbf91afbf918
+fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918
+fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918
+fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918fbf91afbf918
+fbf91afbf918fbf91afbfa16fbfb0ffbfc0bfbfb0dfbfc0bfbfb0dfbfc0bfbfb0dfbfc0b
+fbfb0dfbfc0bfbfb0dfbfc0bfbfb0dfbfc0bfbfb0df9fc0ff9ff1af9ff1ffaff1ffbff1b
+fdff16fdff16fcfc22fafb23f8fd1cf2f91ff1f836e9ee5cffffbafefbdcffffebfefff1
+fafbf3f9faf5fafaf8fcfcfa000000000000010101000000000000
+010100020100070208030002040000f2efccf5f5adf4f78ef1f46feff360f7f967fafb62
+e1e43df6f946f0f332e8ed2fdfe640f4fc5be2ea3fdfe731f1f934eff730fcff42ebee3d
+fdfc63f9f472d2c960f3e896261a003427000e00002b2000ded791fcfa95e0e356e8ee46
+f2f840d9dc1bfafc36f1f22af7f530f7f435f7f33cf8f33ff6f539f7f737f6f833f6f930
+f7fa2df7fb2af8fa2bf7fb2af8fa2bf7fb2af8fa2bf7fb2af6f829f5f928f6f829f5f928
+f6f829f5f928f6f829f5f82bf6f731f5f732f6f632f5f732f6f632f5f732f6f632f5f732
+f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732
+f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f731
+f6f72df5f82bf6f72df5f82bf6f72df5f82bf6f72df5f82bf6f72df5f82bf6f72df5f82b
+f6f72df5f82bf6f72df6f82bf6f82bf6f82bf6f82bf6f829f6f829f6f828f6f829f6f829
+f8fa2bf8fa2df7f830f6f731f6f632f5f533f4f434f2ed5dfcedb6ffffcaf1f364edf144
+f2f05ff5f05ee4e237fdfc49f7f24cf0ed3cffff37e7ed11eff225f6f93affff54dfe13e
+edf057dae13cf4ff39f5fe33f7fb46f5f44ceae740f4f248e8e737fffe4cf8f84aebef36
+ebf523edf92be7ef41e5ec44ebf03be9f12afdff30e7f411f3ff1df6ff26eef828eff634
+eff440f9fc53eff24bf8fc50f0f541f3f941ecf23af0f539f3f52ff3f629f4f629f3f629
+f4f629f3f629f4f629f2f528f6f82bf5f929f6f82bf5f929f6f82bf5f929f6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf7f92cf6f92cf7f92cf6f92c
+f7f92cf6f92cf7f92cf6f92cf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f7f92cf6f92cf7f92cf6f92cf7f92cf6f92cf7f92cf6f92cf8fa2df7fa2df8fa2df7fa2d
+f8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df8fa2df7fa2d
+f8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df7f92cf6f92cf7f92cf6f92c
+f7f92cf6f92cf7f92cf6f92cf6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f928
+f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f929f6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf7f92cf6f92cf7f92cf6f92cf7f92cf6f92cf7f92cf6f92c
+f8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df8fa2df7fa2df6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f5f72af4f72af5f72af4f72af5f72af4f72af5f72af4f72af5f72af4f72af5f72af4f72a
+f5f72af4f72af5f72af4f72af6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f928
+f6f829f5f928f6f829f5f929f7f92cf6f92cf7f92cf6f92cf7f92cf6f92cf7f92cf6f92c
+f9fb2ef8fb2ef9fb2ef8fb2ef9fb2ef8fb2ef9fb2ef8fb2ef6f829f5f928f6f829f5f928
+f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f928f6f829f5f929
+f6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82bf6f82bf5f82b
+f6f82bf5f82bf6f82bf5f82df6f731f5f732f6f632f5f732f6f632f5f732f6f632f5f732
+f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732
+f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732
+f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732f6f632f5f732
+f6f632f5f732f6f632f5f731f6f72df5f82bf6f72df5f82bf6f72df5f82bf6f72df5f82b
+f6f72df5f82bf6f72df5f82bf6f72df5f82bf6f72df5f82ff1f731f0f833f2f834f4f82f
+f4f827f4f627f3f331f2f333f6fb2ff0f630eef742e7ed65ffffbefefbdcffffe5feffeb
+fafcf1f9faf5fafaf8fcfcfa000000000000010101000000000000
+0401000300000300050500060a0501faf6ddf7f6bdf2f4a1f0f38cf3f77ff5f676f1f26a
+f1f062f2f35af1f34aebf04eeef372e8f079eaf074eff76eeff85feaf155e9ed5aecee66
+eaea70f1f181f3f18ae9e989e3e38be5e891ecf091eff48ddee476e6ec7eecf288eef37f
+eef569f3f95bf4f954f4f750f4f657f4f55cf3f35ff3f262f2f067f1ef66eff064eff162
+e5e756ebef5ce6e857e2e653f2f463f4f865e4e655f1f562f0f261eff360f0f261eff360
+f0f261eff360f0f261eff360f0f35ceff45af0f35aeff45af0f35aeff45af0f35aeff45a
+eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359
+eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359eff259eef35b
+f0f261eff263f0f165eff263f0f165eff263f0f165eff263f0f165eff263f0f165eff263
+f0f165eff263f0f165f0f263f0f260f0f35ef0f35ef0f35ef0f35ef0f35cf0f35ef0f35e
+f3f661f2f462f2f463f3f566f4f569f4f56bf2f36befec81fffccbfaf5bef1f57cedf562
+f0f277f2f17df0ee77eee971f6f179f5f26ff4f45ef1f55af0f261eff16cf0ef79efef7d
+ebef76ecf369edf951f0f94ef0f660f0f26bf0ef70efef6bf0f35eedf05beaec64eaef5f
+eef750edf951ebf362e8ed6ce9ed74ecef6eedf35dedf554ecf453edf458eff55df1f664
+f4f870f2f574eff172eff26ff0f565f1f763f0f565eef363f2f663ebef5aebee59f0f45f
+f1f361e9ed5aebed5bf1f562f0f260eff35ef1f361f0f45ff1f361f1f560f2f462f1f562
+f1f361f0f461f1f361f0f461f1f361f0f461f1f361f0f461f1f361f0f461f2f462f2f663
+f2f462f1f562f1f361eff360f0f260f1f562f4f664f3f764f2f462eff360eff15feef25f
+f0f260eff360f0f260eff360f0f260eff360f0f260eff360f3f563f2f663f2f462f1f562
+f2f462f1f562f3f563f2f663f2f462f1f562f2f462f1f562f1f361f0f461f1f361eff360
+f2f462f1f562f2f462f1f562f2f462f1f562f2f462f1f562f2f462f1f562f2f462f0f461
+f1f361f0f461f1f361f0f461f4f664f1f562f1f361f0f461f2f462f1f562f0f260eef25f
+f2f462e5e956feff6eecf05deff15fe8ec59ebed5beaee5be1e351e3e754ecee5ce3e754
+e3e553e5e956f8fa68f2f663f3f563f2f663f4f664f3f764f3f563eff360eef05eebef5c
+edef5debef5ce3e553edf15eeef05ed8dc49f8fa68eef25ff2f462f2f663f4f664f4f865
+f5f765f3f764f2f462f0f461eff15fecf05dedef5eeef25ff0f261eef25ff0f261f2f663
+f1f362f2f663f4f665f3f764f2f463f1f562f2f463f2f663f1f361f1f562f3f563f3f764
+f4f664f2f663f1f361eff360f0f260e9ed5ae9eb59f9fd6aeff15fe9ed5af1f361edf15e
+e9eb59e1e552e6e856f0f461e3e553e2e653ffff6fecf05df2f462f1f562f2f462f1f562
+f2f462f1f562f2f462f1f562f2f462eef25feef05eeff360f4f664f4f865f3f563eef25f
+eff15feef25feef05eedf15eedef5decf05decee5cebef5cf1f361f0f461f1f361f0f461
+f1f361f0f461f1f361f0f461f0f260eff360f0f260eff360f0f260eff360f0f260eff360
+f1f361f1f562f3f564f2f663f1f362eff360f0f261eff360f2f463f1f562f3f564f2f663
+f3f564f2f663f2f463f1f562f2f462f0f461f1f361f0f461f2f462f0f461eff15fecf05d
+ecee5cebef5cedef5decf05deef05eedf15eeef05eeef25ff3f563f3f764f5f766f4f865
+f6f867f4f865f5f766f3f764f3f564f2f663f3f564f2f663f2f463f1f562f2f463f1f562
+f0f260eff360f0f260eff360f0f260eff360f0f260eff360f0f260eff360f0f260eff360
+f0f260eff360f0f260eff35ef0f35ceff45af0f35aeff45af0f35aeff45af0f35aeff45a
+eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359
+eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359
+eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359eff259eef359
+eff259eef359eff259eef35bf0f261eff263f0f165eff263f0f165eff263f0f165eff263
+f0f165eff263f0f165eff263f0f165eff263f0f165eff263edf15fedf15eeef15af0f155
+f0f34cf1f24cf1f057f1f057eff24bedf24deef45cf2f783f9f8c2fdfbe2ffffe5fdffea
+f7f9eef7f8f3f8f8f6fbfbf9000000000000010101000000000000
+050200030000030004030005090504fcf9eafffdd6fcfdc4f7f8b4fbfdaaffff9bfefd93
+fffc99ffff97ffff89ffff8cfbffa6f5fcaef5fdaafaffa4fbff96f7fe8cf6fb94f9fd9e
+f3f29ff8f9a9fbfcacf4f7a6f0f4a8f3fba8f9ffa3fbff9df1fe8af7ff9afcffbcf9fbba
+f7fc9ef9ff8cfbff83f9ff81feff90feff95feff93fefe9afefca5fefbaafefca7fdfda5
+fafaa0feffa6ffffaff9fca1fdffa5f2f59af4f79cfdffa5f9fca1f9fca1f9fca1f9fca1
+f9fca1f9fca1f9fca1f9fd9efaff98faff94faff96faff94faff96faff94faff96faff94
+fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95
+fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff9a
+fcffa2fcffa6fcffa8fcffa6fcffa8fcffa6fcffa8fcffa6fcffa8fcffa6fcffa8fcffa6
+fcffa8fcffa6fcffa8fcffa4feffa1feff9ffeff9ffeff9dfeff9ffeff9dfeff9ffeff9f
+ffffa0feffa1fdfea1fefea4ffffa5ffffa7fdfda7f9f9afffffd2fefec8faffa1f8ff91
+f8fd99fcfca6fefab0fffbb4fffbb1fffcabfffca1fdfd9dfcfc9cfbfba5fbf7b7faf9b9
+f7faadf8fe9cf9ff89fbff89fbff9afcfca4fbfaaafafaa4fbfe97fcff98fcfca4fafda2
+f9ff8ef8ff8cf9ff9bfafea9f8f8b2f9f9b1fafda6f9fd9ef8fc9df7fb9af8fd96faff98
+fbff9cf9fd9ff8faa6f7faa1f7fc96f8fe90f8fe92f7fd93faff99f7fc98f7fc98faff9b
+fbff9ef9fd9cfafe9dfeffa1fbff9efbff9efbffa0fbffa0fcffa1fcffa1fcffa1fcffa1
+fafe9ffafe9dfafe9ffafe9dfafe9ffafe9dfafe9ffafe9dfbffa0fbff9efafe9ffafe9d
+fafe9ffafe9dfbffa0fbff9ef9fd9efbff9efcffa1fcff9ffbffa0f9fd9cf8fc9df8fc9b
+fbffa0fbff9efbffa0fbff9efbffa0fbff9efbffa0fbff9efbffa0fbff9efbffa0fbff9e
+fbffa0fbff9efbffa0fbff9efdffa2fdffa0fcffa1fbff9efafe9ff9fd9cf8fc9df8fc9b
+f9fd9ef9fd9cf9fd9ef9fd9cf9fd9ef9fd9cf9fd9ef9fd9cfbffa0fbff9efbffa0fafe9d
+fafe9ffafe9dfafe9ffafe9dfeffa3fcff9ffbffa0fbff9efcffa1fcff9ffbffa0f9fd9c
+ffffa4f6fa99f6fa9bfbff9eecf091fdffa0fcffa1f6fa99ffffa9f0f493fcffa1fdffa0
+ffffacf6fa99f3f798eff392fcffa1fbff9efbffa0fafe9dfafe9ffafe9dfafe9ffafe9d
+f8fc9df5f998fcffa1ffffa5ffffa6ffffa4f1f596ffffa6f9fd9efafe9dfbffa0fcff9f
+fcffa1fbff9efafe9ff9fd9efeffa4fcffa4fbfea3fafda2fafda2f9fca1f9fca1fafda2
+fafda2fafda2f9fca1f8fba0f7fa9ff8fba0f9fca1fbffa1fafe9ffafe9dfafe9ffafe9d
+f9fd9ef9fd9cf9fd9ef9fd9cffffa6fafe9df4f899f4f897f9fd9effffa9f7fb9cfafe9d
+ffffa6ffffa5fdffa2fdffa0ffffa5feffa1fcffa1f2f695fbffa0fbff9efbffa0fbff9e
+fbffa0fbff9efbffa0fbff9ef9fd9efafe9dfbffa0fbff9efbffa0fafe9dfafe9ffbff9e
+ffffa5ffffa3ffffa4ffffa2ffffa4feffa1feffa3feffa1fbffa0fbff9efbffa0fbff9e
+fbffa0fbff9efbffa0fbff9efcffa1fcff9ffcffa1fcff9ffcffa1fcff9ffcffa1fcffa1
+fafea0fbfea3fcffa4fbfea3fafda2fafda2fafda2fafda2fbfea3fbfea3fcffa4fcffa4
+fcffa4fcffa4fbfea3fbffa1fbffa0fbff9efbffa0fbff9efbffa0fbff9ef9fd9ef8fc9b
+feffa3ffffa2ffffa4ffffa2ffffa4ffffa2ffffa4ffffa4f8fc9ef8fba0f9fca1fafda2
+fafda2f9fca1f9fca1f8fba0fbfea3fbfea3fbfea3fbfea3fbfea3fbfea3fbfea3fbffa1
+f9fd9ef9fd9cf9fd9ef9fd9cf9fd9ef9fd9cf9fd9ef9fd9cfcffa1fcff9ffcffa1fcff9f
+fcffa1fcff9ffcffa1fcff9dfaff98faff94faff96faff94faff96faff94faff96faff94
+fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95
+fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95
+fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95fbff97fbff95
+fbff97fbff95fbff97fbff9afcffa2fcffa6fcffa8fcffa6fcffa8fcffa6fcffa8fcffa6
+fcffa8fcffa6fcffa8fcffa6fcffa8fcffa6fcffa8fcffa4fcfd9ffcfe9bfdfd99fffe92
+ffff89ffff89fffd92fffd92fafa80f8fa7bf7fc84f8fda3fcfcd8fffef2ffffeefeffee
+f9faf2f8f9f4f9f9f7fcfcfa000000000000010101000000000000
+080600030000010002010005040205faf7f2ffffebffffe6faf8dffffddaffffc7ffffc4
+fffcd5ffffd9ffffccffffcaffffd8faffd8faffd6feffd0feffc4fcffbefdffc4ffffce
+f8f7cbfcfcd6ffffdbfafbdbf8f8def8fbe0faffdcfbffcbf5ffaafaffb7fcfee6fbf9ed
+fbfed1feffc1ffffb8fdffb6ffffc5ffffc9ffffc7ffffccffffddfffee4ffffe2ffffdf
+ffffd9dedfb5f3f4caf7f8cef5f6ccf9fad0ffffdaedeec4ffffd6ffffd6ffffd6ffffd6
+ffffd6ffffd6ffffd6ffffd2ffffcdffffc9ffffcbffffc9ffffcbffffc9ffffcbffffc9
+ffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffca
+ffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffce
+ffffd6ffffd8ffffdaffffd8ffffdaffffd8ffffdaffffd8ffffdaffffd8ffffdaffffd8
+ffffdaffffd8ffffdaffffd6ffffd1ffffcfffffcfffffcfffffd1ffffcfffffd1ffffd1
+ffffd1ffffd1ffffd0ffffd2ffffd3ffffd3ffffd3fcfdd1ffffd7ffffd3feffcafdffc0
+faffb8fbfdbefefcd5fffee1fffee4fffee1fffdddffffd4ffffc7feffcefffce9fffbf0
+fdfde5feffd8ffffccffffccffffd9ffffe0fffde4fffcdffffdd4ffffd8ffffe4ffffe2
+feffd1fbffcdfeffd9ffffe3fffee0ffffe4ffffe3ffffe2fefddefcfdd3fcffc3fdffbd
+ffffc1ffffc9ffffd5feffd5fdffcbfdffc0feffb8ffffb9feffc5ffffceffffcefdffcb
+feffceffffd1ffffd2ffffd0ffffd1ffffd1ffffd1ffffd1ffffd1ffffd1ffffd1ffffd1
+ffffd0ffffcfffffd0ffffcfffffd0ffffcfffffd0ffffcfffffd3ffffd1ffffd1ffffcf
+ffffd0ffffd0ffffd2ffffd2ffffd0ffffd0ffffd1ffffd0ffffd1ffffcffeffcffeffce
+ffffd2ffffd1ffffd2ffffd1ffffd2ffffd1ffffd2ffffd1ffffd0ffffd0ffffd1ffffd1
+ffffd2ffffd0ffffd1ffffcfffffd2ffffd1ffffd2ffffd0ffffd1ffffd0ffffd1ffffd0
+ffffd2ffffd1ffffd2ffffd1ffffd2ffffd1ffffd2ffffd1ffffd1ffffd0ffffd1ffffd0
+ffffd1ffffd0ffffd1ffffd0ffffd3ffffd1ffffd0ffffd0ffffd2ffffd1ffffd1feffce
+f0f2c1f7f9c7f3f5c4f8fac8ffffd4fbfdcbf7f9c8eef0bee3e5b4ffffd3eaecbbfdffcd
+f8fac9eaecbaffffd4fafccaffffd2ffffd0feffcffdffcdfeffcfffffd0ffffd3ffffd3
+ffffd3ffffd3e6e8b7f0f2c0f9fbcaf3f5c3ffffd1f3f5c3ffffd1ffffd1ffffd2ffffd2
+ffffd3ffffd2ffffd2ffffd2ffffd8ffffdaffffd8ffffd6feffd5ffffd6ffffd7ffffd7
+ffffd8ffffd7ffffd6feffd5feffd5ffffd6ffffd7ffffd6ffffd4ffffd2ffffd2ffffd0
+ffffd1ffffd0ffffd1ffffd0f0f2c1f8fac8ffffd4fcfecceef0bfffffd2fcfecdfbfdcb
+f2f4c3f9fbc9f0f2c1e7e9b7f1f3c2f9fbc9f2f4c3ffffd3ffffd1ffffd0ffffd1ffffd0
+ffffd1ffffd0ffffd1ffffd0fdffceffffd1ffffd4ffffd2feffcffcfeccffffd0ffffd2
+fdffcefdffcdfdffcefdffcdfcfecdfcfeccfcfecdfcfeccffffd1ffffd0ffffd1ffffd0
+ffffd1ffffd0ffffd1ffffd0ffffd2ffffd1ffffd2ffffd1ffffd2ffffd1ffffd2ffffd2
+ffffd6ffffd7ffffd7ffffd6ffffd7ffffd7ffffd8ffffd9ffffd8ffffd8ffffd8ffffd8
+ffffd8ffffd8ffffd8ffffd6ffffd1ffffd1ffffd2ffffd2ffffd2ffffd0ffffd0ffffcf
+fdffcefdffcdfdffcefdffcdfdffcefdffcdfcfecdfcfecdffffd4ffffd6ffffd7ffffd7
+ffffd7ffffd7ffffd6feffd5ffffd7ffffd7ffffd7ffffd7ffffd7ffffd7ffffd7ffffd5
+ffffd0ffffcfffffd0ffffcfffffd0ffffcfffffd0ffffcfffffd2ffffd1ffffd2ffffd1
+ffffd2ffffd1ffffd2ffffd1ffffcbffffc9ffffcbffffc9ffffcbffffc9ffffcbffffc9
+ffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffca
+ffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffca
+ffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffcaffffccffffca
+ffffccffffcaffffccffffceffffd6ffffd8ffffdaffffd8ffffdaffffd8ffffdaffffd8
+ffffdaffffd8ffffdaffffd8ffffdaffffd8ffffdaffffd8ffffd4ffffd2ffffcfffffc9
+ffffc1ffffc1ffffcbffffc9ffffb9ffffb1ffffb5feffcafffcf3fffcfffefff9fdfff4
+fbfcf6fafbf6fbfbf9fdfdfb000000000000010101000000000000
+080600040100010000010005000004f3f3f3f9faf2fafbf5faf8fbfdfcf7ffffe0fcfbdd
+fef6f4fff7fdfff8effdf7e7fbfdeff7feeef7fce8f8fce3f9ffddfafed9feffddffffe2
+fcfce2fcfee9fdfeeefafceff8f9f3f5f7f2f2f7f0f1f9e1eaf5b9f1f9c6f6f6f6f7f5ff
+fafbedffffe3ffffddfdffdafdffe5fffee9ffffe5fefde9fffaf7fff9fdfff9fbfefaf7
+f2f2e6fffff1fdfef0f3f6e5fffff3f7fae9f4f5e7fffff1fefff1fdffeffefff1fdffef
+fefff1fdffeffefff1fdffeffcfee9fbfee9fcfee9fbfee9fcfee9fbfee9fcfee9fbfee9
+fdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffea
+fdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffea
+feffeffdffeffeffeffdffeffeffeffdffeffeffeffdffeffeffeffdffeffeffeffdffef
+feffeffdffeffeffeffeffedfeffeafeffe6ffffe8feffe8ffffe8feffe8ffffeafeffea
+fffee9fcfee9fdfce8fbfde8fefde9fcfee9fcfbe9f7f9e1fbffdcf8ffd9faffe0f9ffdb
+f9ffcdfbfed3fdfceafffaf7fffbfbfffbfbfffaf7fffdeafeffd6fdffdefdfbfcfefbff
+fdfcf8fdfef0feffedfeffedfefef2fefef6fffcf7fdfcf7fdfbeffdfdf1fffef9fefdf8
+fbfbeffafbedfbfbf1fdfdf5fcfcf4fefef6fffffafffff8fffdf4fcfdebfeffe0fcffdb
+feffddfeffe2ffffebfdffeafdfde3fbffdaffffd3ffffd7fafeddffffe8ffffe7f7fbe0
+f7f9e1fdffe8ffffe9f8fce5feffeafdffeafdffe9fcffeafdffeafbfee9fcfdebfbfee9
+fdffeafcffe9fdffe9fcffe9fdffe9fcffe9fdffe9fcffe9feffeafdffeafeffeafdffea
+ffffebfeffebffffebffffecfeffeafcffe9fdffe9fcffe9feffeafdffeafdffe9fbffe8
+feffeafdffeafeffeafdffeafeffeafdffeafeffeafdffeafcfee8fcffe9feffeafeffeb
+ffffebfdffeafdffe9fbffe8fdffe9fcffe9fdffe9fdffeaffffebffffecffffecffffec
+ffffebfeffebffffebfeffebffffebfeffebffffebfeffebfdffe9fcffe9fdffe9fdffea
+feffeafdffeafeffeafeffebfeffeafcffe9fcfee8fbffe8feffeafdffeafdffe9fafee7
+ffffecffffeceff1dbf8fce5fcfee8f5f9e2fdffe9ffffecf6f8e2ffffecfcfee8f7fbe4
+f1f3ddffffecdfe1cbffffecfeffeafdffeafdffe9fbffe8fdffe9fdffeaffffebffffec
+f9fbe5e8ecd5ffffecffffecf3f5dff8fce5ffffecf1f5defeffeafdffeafeffeafeffeb
+ffffebfeffebffffebfeffecfbfcecfcffeefcfdeff9fcebfafbedfdffeffffff3fefff0
+fefff1fcffeefcfdeffcffeefefff1fdffeffdfef0fbfeedffffecfeffebffffebfeffeb
+ffffebfdffeafdffe9fcffe9ffffeceaeed7f0f2dcf6fae3ffffecf8fce5fcfee8f9fde6
+ffffecfbffe8f9fbe5ffffecffffecffffeceaecd6f3f7e0feffeafdffeafeffeafdffea
+feffeafdffeafeffeafdffeafdffe9feffebffffecfeffebfcfee8fafee7fdffe9feffeb
+feffeafdffeafeffeafdffeafeffeafdffeafeffeafdffeaffffebfeffebffffebfeffeb
+ffffebfeffebffffebfeffebfeffeafdffeafeffeafdffeafeffeafdffeafeffeafdffeb
+fffff1fdffeffdfef0fcffeefefff1fefff0fffff3fffff1fffff2fefff0fffff2fdffef
+fefff1fefff0fffff2fefff0fdffeafdffeaffffebfeffebfeffeafcffe9fdffe9fdffea
+ffffecffffecffffebfeffebffffebfeffebfeffeafdffebfffff0fffff1fffff3fffff1
+fffff3fefff0fefff1fdffeffefff1fdffeffefff1fdffeffefff1fefff0fffff2fefff0
+feffebfdffeafeffeafdffeafeffeafdffeafeffeafdffeafeffeafdffeafeffeafdffea
+feffeafdffeafeffeafdffeafcfee9fbfee9fcfee9fbfee9fcfee9fbfee9fcfee9fbfee9
+fdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffea
+fdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffea
+fdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffeafdffeafcffea
+fdffeafcffeafdffeafcffeafeffeffdffeffeffeffdffeffeffeffdffeffeffeffdffef
+feffeffdffeffeffeffdffeffeffeffdffeffeffeffefff1fcfcf0fefcf0fffcedfffde8
+fffde0fffde2fffaedfffbebffffdfffffd6ffffd3ffffe1fdfafffbf8fffafcfbf9fcf3
+fdfef8fcfdf8fcfcfafefefc000000010100000000000000000000
+050300030000010000000004010206f3f4f6f5faf6f6fafbfafbfffefefffeffedfbfeeb
+faf6fffef5fffef7fff8f6fbfbfdfcf9fef7f8fef2f8fcedfafdecfcffeafeffe6ffffe5
+fdffe3fcffe4fcfee9fcffecfafeedf5fbedf2f7f0f0f6eaeef4d8f5f9e2fafafcfbfaff
+fefefcfffff6fdfff2f8faeffffffbfffefcfefdfbfefcfdfffafffef8fffdf7fffdf8fc
+edeee8fbfef3eff0e8fefff6f4f5edf0f3e8f7f8f0f3f6ebfffff8fefff6fffff8fefff6
+fffff8fefff6fffff8fefff8fefffafdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffc
+fefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffc
+fefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffa
+fffff8fefff6fffff6fefff6fffff6fefff6fffff6fefff6fffff6fefff6fffff6fefff6
+fffff6fefff6fffff6fffff4fffff3fffff1fffff3fffff3fffff3fffff3fffff4fffff4
+fffff4fefff5fefef4fdfff4fffff3fdfff2fcfcf0f8fbeaf7ffe5f4fce4f2f8ecf7fbed
+feffe3ffffe6fffff8fffbfffffcfffffcfbfffdf4ffffe7ffffd7feffddfffef9fefeff
+fefff1feffedfefef2fefef2feffeffdffedfeffebfdffedfffff4fdfff2fcfdebfcfdeb
+fefef2fefef4fcfdeffafaeefbfaf5fcfdf5fffff0feffe9feffe4fdffe8fffff2fffffa
+fcfbf7fcfdf5fdffeafbffe6fbfde7fbfee9fdfeecfdffeff7fae9fcffeffdffeff6fae9
+f7f9ebfefff3fffff3f9fdeffefff3fdfff3fefff3fdfff5fefff5fdfff5fdfef6fcfff4
+fdfff2fcfff2fdfff2fcfff2fdfff2fcfff2fdfff2fcfff2fbfdf0fbfff1fefff3fefff4
+fffff4fefff4fefff3fcfff2fffff4fcfff2fbfdf0fbfff1fefff3fefff4fefff3fbfff1
+fffff4fefff4fffff4fefff4fffff4fefff4fffff4fefff4fcfef1fcfff2fdfff2fdfff3
+fefff3fcfff2fdfff2fbfff1fefff3fdfff3fefff3fdfff3fefff3fdfff3fefff3fdfff3
+fcfef1fbfff1fcfef1fbfff1fcfef1fbfff1fcfef1fbfff1fcfef1fbfff1fcfef1fcfff2
+fdfff2fdfff3fefff3fdfff3fffff4fcfff2fcfef1fcfff2fffff4fefff4fefff3fcfff2
+f2f4e7f4f8eafbfdf0f5f9ebfffff4eaeee0f3f5e8f4f8eafbfdf0eaeee0f0f2e5fefff4
+fffff4f7fbedf8faedf8fceefcfef1fcfff2fefff3fefff4fefff3fcfff2fcfef1fafef0
+fbfdf0fefff4d5d7cafefff4f9fbeeebefe1fffff4f7fbedfbfdf0fafef0fbfdf0fafef0
+fcfef1fbfff1fdfff2fcfff2f8faeffbfef3fdfef6f8fbf0fafbf3fefff6fffff8fbfef3
+f9faf2f8fbf0fafbf3fcfff4fffff8fdfff5fafbf3f5f8edf9fbeefafef0fdfff2fefff4
+fffff4fcfff2fbfdf0f8fceefcfef1fefff4f9fbeef3f7e9eff1e4eef2e4fffff4eef2e4
+f8faedf3f7e9f2f4e7fdfff3e8eaddf5f9ebf4f6e9fefff4fefff3fdfff3fefff3fdfff3
+fefff3fdfff3fefff3fdfff3fffff4fcfff2fbfdf0fafef0fdfff2fdfff3fefff3fbfff1
+fdfff2fcfff2fefff3fdfff3fefff3fdfff3fefff3fdfff3fefff3fdfff3fefff3fdfff3
+fefff3fdfff3fefff3fdfff3fdfff2fcfff2fdfff2fcfff2fdfff2fcfff2fdfff2fcfff2
+fffff6fdfff5fcfdf5fbfef3fffff8fefff6fffff8fcfff4fffff8fdfff5fdfef6fcfff4
+fdfef6fcfff4fefff7fefff6fafceffbfff1fffff4fdfff3fcfef1fafef0fcfef1fdfff3
+fffff4fefff4fffff4fefff4fffff4fefff4fffff4fefff4fefff5fdfff5fefff7fdfff5
+fefff7fcfff4fcfdf5fafdf2fdfef6fcfff4fdfef6fdfff5fefff7fefff6fffff8fefff6
+fffff4fefff4fffff4fefff4fffff4fefff4fffff4fefff4fffff4fefff4fffff4fefff4
+fffff4fefff4fffff4fefff6fefffafdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffc
+fefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffc
+fefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffc
+fefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffcfefefcfdfffc
+fefefcfdfffcfefefcfdfffafffff8fefff6fffff6fefff6fffff6fefff6fffff6fefff6
+fffff6fefff6fffff6fefff6fffff6fefff6fffff6fefffafcfefdfcfdfffdfdfffdfdfb
+fefef4fefdf8fffafffffafffffcf3ffffeafeffe6fcfef0f9f8fff6f7fff6fbf7f7fdf1
+fcfff8fcfdf8fcfcfafefefc000000010100000000000000000000
+030100010100020001010206020607f3f9f7f8fff8f7fffff3f8fff6fdfff9ffe8f6ffe5
+f7f8fffcf9fffdfafff9fafff8fcfdfafff9f9fff5f8fbf4f9f9f9fdfbfcfdfdf3fbfcea
+fcfbe6f5f7e1f5f6e6f8faecfbffecf7fdeff3f7f6f2f6f9fcfcfcfffffbfffff8fdfef6
+fefdf8fcfdf8f6f6f6eeeef0fefdfffdfcfffefbfffdfafffef9fffef9fdfdf9fafdf9f8
+ebece7fefffaeef1eafcfff8fefffaf3f6effbfef7f4f7f0fcfff8fcfff8fcfff8fcfff8
+fcfff8fcfff8fcfff8fcfef9fefffffefffffefffffefffffefffffefffffefffffeffff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfffe
+fefffafefff8fefff8fefff8fefff8fefff8fefff8fefff8fefff8fefff8fefff8fefff8
+fefff8fefff8fefff8fffff8fffff8fffff8fffff8fffffafffffafffffafffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfefff9fdfcf7f9faf2fcfff6f7fff4f3f7f6f7f9f4
+fcffecfdfeeef9f4faf2ecf6fefafbfdfaf3fdfbecfdfde5fdfedefcffe2fdfcf7fdfcf8
+fbfcecfbfceefaf8f9faf8f9fafaeef9fce7fafee3fafde8fffffbfcfdf8f9fce7fafde8
+fefdf9fffefcfbfbf3f7f7ebf9f9f1f9fbf0fbfceef9fce7fafde0fafee5fdfcf8fefdff
+fffcfffcfcfefbfceefbfee9fefef2fefff7fffef9fdfef8f3f4ecf5f8edf6f9eef5f8ef
+f8fbf2fdfff7fefffafefffafbfef7fbfdf8fbfdf8fcfefbfcfefbfdfffefdfffefdfffc
+fafcf7fafdf6fafcf7fafdf6fafcf7fafdf6fafcf7fafdf6f6f8f3f7faf3f9fbf6fbfef7
+fbfdf8fbfef7fbfdf8fafdf6fcfef9f9fcf5f6f8f3f7faf3fafcf7fcfff8fbfdf8f9fcf5
+fcfef9fcfff8fcfef9fcfff8fcfef9fcfff8fcfef9fcfff8fafcf7f9fcf5f9fbf6f8fbf4
+f8faf5f9fcf5f9fbf6fafdf6fefffbfefffafcfef9fbfef7f9fbf6f7faf3f5f7f2f4f7f0
+fbfdf8fbfef7fbfdf8fbfef7fbfdf8fbfef7fbfdf8fbfef7f6f8f3f6f9f2f7f9f4f8fbf4
+f8faf5f9fcf5fafcf7fafdf6fcfef9fbfef7fafcf7fbfef7fdfffafefffafdfffafcfff8
+fefffbe9ece5fbfdf8fefffad2d4cffefffafefffbe6e9e2f1f3eefdfff9fefffbe7eae3
+f4f6f1edf0e9f0f2edfafdf6f7f9f4f8fbf4fafcf7fbfef7fafcf7f8fbf4f6f8f3f4f7f0
+f8faf5fdfff9fafcf7fefffaebede8f7faf3eef0ebfefffafafcf7fafdf6f9fbf6fafdf6
+fafcf7fcfff8fdfffafefffaf7faf3fdfff9fefffaf9fcf5f8fbf4fcfff8fafdf6f3f6ef
+fbfef7fafdf6fafdf6fdfff9fefffafefffafbfef7f6f9f2f7faf3f9fcf5fbfdf8fdfff9
+fefffbfefffafcfef9fbfef7dcded9fefffadcded9fefffaf5f7f2fefffae1e3defdfff9
+f6f8f3fefffae5e7e2f3f6efeff1ecfefffaf4f6f1daddd6fbfdf8fbfef7fbfdf8fbfef7
+fbfdf8fbfef7fbfdf8fbfef7fbfdf8f7faf3f3f5f0f4f7f0f9fbf6fcfff8fafcf7f8fbf4
+f5f7f2f5f8f1f5f7f2f5f8f1f6f8f3f6f9f2f6f8f3f6f9f2fafcf7fafdf6fafcf7fafdf6
+fafcf7fafdf6fafcf7fafdf6fbfdf8fbfef7fbfdf8fbfef7fbfdf8fbfef7fbfdf8fbfef7
+fcfff8fafdf6f8fbf4f9fcf5fcfff8fcfff8f9fcf5f5f8f1fbfef7fafdf6f8fbf4f7faf3
+f7faf3f8fbf4fafdf6fbfef7f4f7f0f8fbf4fbfdf8fbfef7f8faf5f7faf3f8faf5fbfef7
+f6f8f3f6f9f2f6f8f3f7faf3f7f9f4f8fbf4f8faf5f8fbf4fcfff8fdfff9fdfff9fdfff9
+fcfff8fbfef7fafdf6f9fcf5f9fcf5f9fcf5fafdf6fafdf6fbfef7fcfff8fcfff8fdfff9
+fcfff8fcfff8fcfef9fcfff8fcfef9fcfff8fcfef9fcfff8fefffbfefffafefffbfefffa
+fefffbfefffafefffbfefffdfefffffefffffefffffefffffefffffefffffefffffeffff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfefffdfeff
+fdfefffdfefffdfefffdfffefefffafefff8fefff8fefff8fefff8fefff8fefff8fefff8
+fefff8fefff8fefff8fefff8fefff8fefff8fefff8fefffbfafefff9fefffafdfffafeff
+fcfefbfcfdfffdfafffdfafffcfcfefdfff4feffeefcfff4f8fafff6f9fff7fff4f9ffec
+fafdf4fafbf6fbfbf9fdfdfb000000000000010101000000000000
+030000010000020003000103000501f0f7eff4fff0f6fff8ecf7fdeffcf5f1ffd1efffcf
+f1faf5f7fbfff9fef8f6fcf0f3f9eff8fbf2f9fcf1f6f6f4f5f2fff9f4fffaf4fff5f1f2
+fdf8f2f5f2ebf0efedf6f7f2fbfdf0f8fbf2f5f5fdf4f3fffffbfffffdfffeffdff8fed2
+fafae2f9f9eff6f4f5f0eef1f9f8f6f9f8f6fcf7fdfcf8f9fefaeefefce7fffde8fffceb
+fffff6e9eae5242520000100eff0ebfffffbdfe0dbfffffbfbfcf7fbfcf7fbfcf7fbfcf7
+fbfcf7fbfcf7fbfcf7fbfcf7fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7
+fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7
+fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6
+fdfef6fdfef6fdfef6fdfef8fefdf9fefdfbfffcfbfefcfdfffcfdfefcfdfffbfffefcff
+fffdfffffdfffffbfffefcfdfffcfdfdfbfcfcf8f9f8f6f9fefffffafefff9fbf8f7faf1
+f7f9eef4f3eff0e9f9ece4f3fcf7f4fcf9eafbf9e2faf9e4fbf9edfaf9f4fbf9fafbfaf8
+faf7eefaf6f3f9f1fff6f1fff6f4f5f7f8eaf8fae4f8f9ebfcf9fffbf8fffafbedf9faec
+fbf5fffbf4fff9f4faf8f5f0fbf9ecf9f9edfaf6f7f6f4f5f6f4e8f6f6eafbf7f6fcfaff
+fffbfff9f7faf7f4edf7f7effffafffffefffffcf3f9faecf6f7eff3f4eff3f4eff6f6f4
+f7f7f5f6f6f4f7f7f7fbfbfbf6f6f6f6f6f8f7f7f9f8f7fcf9f8fdfaf9fffbfafffbfaff
+f8f8faf8f8f8f8f8faf8f8f8f8f8faf8f8f8f8f8faf8f8f8f7f7f9f6f6f6f5f5f7f4f4f4
+f5f5f7f7f7f7fafafcfcfcfcfbfbfdf7f7f7f4f4f6f5f5f5f9f9fbfcfcfcfbfbfdf8f8f8
+f8f8faf8f8f8f8f8faf8f8f8f8f8faf8f8f8f8f8faf8f8f8fafafcf9f9f9f6f6f8f5f5f5
+f5f5f7f6f6f6f9f9fbfafafafafafcfafafaf9f9fbf8f8f8f6f6f8f5f5f5f4f4f6f4f4f4
+fbfbfdfbfbfbfbfbfdfbfbfbfbfbfdfbfbfbfbfbfdfbfbfbf3f3f5f3f3f3f4f4f6f5f5f5
+f6f6f8f6f6f6f7f7f9f7f7f7f8f8faf7f7f7f6f6f8f7f7f7f9f9fbfbfbfbfafafcf8f8f8
+ececeefffffffbfbfd000000ffffffbdbdbddcdcdef9f9f9ffffff000000010103fbfbfb
+fafafcffffffe3e3e5f9f9f9f4f4f6f4f4f4f5f5f7f6f6f6f6f6f8f6f6f6f6f6f8f5f5f5
+f3f3f5f5f5f5e6e6e80d0d0df6f6f8ffffff000002000000f9f9fbf8f8f8f8f8faf8f8f8
+f9f9fbfafafafcfcfefdfdfdf1f2edfafbf6fdfef9f8f9f4f8f9f4fbfcf7f7f8f3eeefea
+fffffbfbfcf7f8f9f4fafbf6fefffafffffbfdfef9f9faf5f8f8f8f8f8f8f8f8faf8f8f8
+fafafcfcfcfcffffffffffffffffffe8e8e8f9f9fbeeeeee030305fafafae9e9eb1a1a1a
+08080ad4d4d4ffffffffffffeaeaecebebebf5f5f7fffffff9f9fbf9f9f9f9f9fbf9f9f9
+f9f9fbf9f9f9f9f9fbf9f9f9f5f5f7f3f3f3f2f2f4f2f2f2f4f4f6f7f7f7f9f9fbfafafa
+fafafcfafafafbfbfdfbfbfbfbfbfdfcfcfcfcfcfefcfcfcf7f7f9f7f7f7f7f7f9f7f7f7
+f7f7f9f7f7f7f7f7f9f7f7f7f8f8faf8f8f8f8f8faf8f8f8f8f8faf8f8f8f8f8faf8f8f8
+fafbf6f8f9f4f6f7f2f9faf5fbfcf7fafbf6f4f5f0eeefeaf8f9f4f7f8f3f5f6f1f4f5f0
+f4f5f0f5f6f1f7f8f3f8f9f4f3f3f3f7f7f7fbfbfdfbfbfbf7f7f9f6f6f6f8f8fafbfbfb
+fafafcfbfbfbfcfcfefdfdfdfefefffffffffffffffffffffdfef9fdfef9fdfef9fdfef9
+fcfdf8fbfcf7f9faf5f9faf5f7f8f3f7f8f3f8f9f4f9faf5fafbf6fbfcf7fbfcf7fcfdf8
+fbfbfbfbfbfbfbfbfdfbfbfbfbfbfdfbfbfbfbfbfdfbfbfbfdfdfffdfdfdfdfdfffdfdfd
+fdfdfffdfdfdfdfdfffdfdfdfdfef9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7
+fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7
+fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7fcfdf7
+fcfdf7fcfdf7fcfdf7fcfdf7fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6
+fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fcfff6f7fff4f5fff6f7fef6f7fef6
+f8fef2f8fdf9f8f9fff8f9fffbfcfefbfff3fcffecfbfff2f7fcfff6fbfff8ffe9faffe5
+f8fceef8f9f4f9f9f7fcfcfa000000000000010101000000000000
+040000010000010103000002000200eaf2e7effaeaf1fdf1eef8f9f1fdf3f1ffd5f0ffd3
+f0faeff6fcfcf6fef1f4fbebf3f6ebf8fbf2fafbf3f5f5f5f5f0fff8f3fff8f1fff2ecf6
+fffefffbf7f8f5f3f8fbf9fcfefff9fbfcf7f6f6fef6f3fffef5fffcf6fff8f9d9f3f9cb
+f8f8e0fdfdf3fffdfefcfafdf7f6f2f7f6f2f9f7fafdf9f8fefcedffffe8ffffe8ffffed
+0505001b1c17000000191a15fafaf8f1f2edfffffdf5f6f1fffffdfffffbfffffdfffffb
+fffffdfffffbfffffdfffffbfdfef8fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6
+fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7
+fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7
+fffffafffffafffffafffffafffffafffffafffffafffffafffffafffffafffffafffffa
+fffffafffffafffffafffffbfffffdfffefffffdfffffefffffdfffffefffffdfffffeff
+fffdfffffefffffcfffefcfffffcfffdfbfefdf8fcf8f6fbf1f1fbf5f5fdf9fbf8fbfcf6
+f9faf4f9f7fafaf3fffbf5fffffaf6fffcedfdfce8fdfbecfefaf9fdfbfffefcfffffefc
+fdfaf5fcf7fbfbf3fff8f3fff8f5fcf9f9f1fafbebfbfbf3f9f5fffcf8fffefef6fcfcf4
+f7f3fff7f0fff9f3fdfbf7f6fffff3fefef4fdf8fef7f4fdf7f3f2f6f5f0fcf8f9fefcff
+fcf7fbf3f1f2efebe8f0efedfaf4fefcf9fffaf7f0f2f2e6fffffaf7f7f5f5f5f5fafafa
+f8f8f8f0f0f0f0f0f2f6f6f8f3f3f5f4f3f8f5f4f9f6f5faf8f7fdfaf9fffbfafffbfaff
+fcfbfffcfcfefcfbfffcfcfefcfbfffcfcfefcfbfffcfcfefdfcfffafafcf5f4f9f3f3f5
+f4f3f8f8f8fafefdfffffffffffefffafafcf6f5faf8f8fafcfbfffffffffefdfffbfbfd
+f6f5faf6f6f8f6f5faf6f6f8f6f5faf6f6f8f6f5faf6f6f8fffefffcfcfef9f8fdf6f6f8
+f6f5faf9f9fbfcfbfffffffff7f6fbf7f7f9f8f7fcf9f9fbfaf9fefbfbfdfcfbfffcfcfe
+f6f5faf6f6f8f6f5faf6f6f8f6f5faf6f6f8f6f5faf6f6f8f5f4f9f5f5f7f6f5faf7f7f9
+f8f7fcf9f9fbf9f8fdfafafcf7f6fbf6f6f8f5f4f9f6f6f8f8f7fcf9f9fbf9f8fdf8f8fa
+fffefffbfbfdfcfbff0f0f11e5e4e9f4f4f6fffeffe3e3e5000004f7f7f9141318ffffff
+dfdee3f2f2f4fffeffe9e9ebf6f5faf5f5f7f5f4f9f5f5f7f6f5faf8f8fafbfafffdfdff
+e6e5eaf7f7f9fffeff000002f2f1f6fdfdfff4f3f80a0a0cf4f3f8f4f4f6f3f2f7f3f3f5
+f4f3f8f6f6f8f8f7fcf9f9fbececeaf7f8f3fcfcfaf9faf5fafaf8fefffafafaf8f0f1ec
+fffffdf9faf5f3f3f1f2f3eef7f7f5fafbf6fbfbf9f9f9f7f6f6f8f4f4f6f1f0f5f0f0f2
+f2f1f6f7f7f9fdfcfffffffffffeffeeeef0f5f4f9ffffff000004fffffff1f0f5efeff1
+0a090efffffffbfaffeeeef0f7f6fbfffffff6f5faf2f2f4fdfcfffdfdfffdfcfffdfdff
+fdfcfffdfdfffdfcfffdfdfff3f2f7f6f6f8f7f6fbf6f6f8f4f3f8f6f6f8fbfaffffffff
+f4f3f8f4f4f6f5f4f9f5f5f7f6f5faf6f6f8f7f6fbf7f7f9f9f8fdf9f9fbf9f8fdf9f9fb
+f9f8fdf9f9fbf9f8fdf9f9fbf8f7fcf8f8faf8f7fcf8f8faf8f7fcf8f8faf8f7fcf8f8fa
+fdfdfbfafbf6fafaf8fcfdf8fffffdfdfef9f5f5f3eeefeafbfbf9f9faf5f7f7f5f6f7f2
+f6f6f4f7f8f3f9f9f7fbfbf9f7f7f9fcfcfefffefffffffffcfbfffafafcfdfcffffffff
+f4f3f8f4f4f6f5f4f9f7f7f9f8f7fcfafafcfbfafffcfcfefcfcfafcfdf8fcfcfafcfdf8
+fbfbf9f9faf5f8f8f6f7f8f3fafaf8fafbf6fbfbf9fcfdf8fdfdfbfefffafffffdfffffd
+fffffffffffffffefffffffffffefffffffffffefffffffffffefffffffffffeffffffff
+fffefffffffffffefffffffffdfef9fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6fdfef6
+fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7
+fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7
+fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7fefff7
+fefff7fefff7fefff7fefff7fffffafffffafffffafffffafffffafffffafffffafffffa
+fffffafffffafffffafffffafffffafffffafffffafefff8f9fff4f7fff4f9fff6f9fff6
+fafff4fafff9fafcfffafcfff8fcfbfafff4fcffeffafff1f7fbfcf6faf9f6ffe7faffe6
+f6f9eef7f7f5f8f8f6fbfbf9000000000000010101000000000000
+050304000000000000000000060807fafcf9fbfdf8f7fcf8fafeff000200151c0c0c1001
+000100feffff00010004060111120d04040200000027272700000517161edbd9de1d1b1e
+010000050304030305000000070705090907f3f3f5faf9fff2eff8dcdaddfffff6fefff2
+fffff8e6e7e2f2f2f20202020f0f0d000000000000fffeffecebe6fafaf2fafaf2fffffa
+fafaf8f8f8f6111111040402f2f2f2fdfdfbfffffffdfdfbfffffffffffdfffffffffffd
+fffffffffffdfffffffffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffffffffffffefffffffffffefffffffffffeffffffff
+fefcfffdfdfffffdfffffffffffefffdfdfdf9f7f8f4f4f6fdfcffd5d5d7ffffffe9e9e7
+0000000c0c0c0c0a0fedebf0010000181712030200010000030102050507ffffffffffff
+f7f6f4f4f2f308050c23222a000002f8f8f6edeee8f9f9f7fffefff9f8fdf9f9f7f0f0ee
+eeedf2fffdfffffefffaf8f9f7f6f2fffffbfffeffeeeef0e8e6e7fffffde4e2e3fefefe
+e6e4e5fffffffbfaf8fffffff9f7faf6f6f8e6e5e3f9faf5ececeaefefeff5f5f5f9f9f9
+fbfbfbf4f4f4fdfdfde2e2e2fcfcfce9e9ebffffffefeff1e7e7e9efeff1ffffffffffff
+f6f6f8fbfbfbffffffe9e9e9f9f9fbffffffe3e3e5f6f6f6e6e6e8f6f6f6fbfbfdfdfdfd
+f8f8faebebebf5f5f7f4f4f4ffffffffffffebebedf4f4f4f5f5f7f8f8f8dfdfe1f7f7f7
+ffffffececec202022e7e7e7fffffff0f0f0f5f5f7010101131315020202202022fbfbfb
+fafafcf5f5f5fffffff2f2f2ebebedffffffeeeef0f1f1f1fffffffdfdfddddddffdfdfd
+efeff1efefefffffff000000202022121212f2f2f4efefefffffff0000000a0a0c060606
+f1f1f3ecececfffffffbfbfbfffffff3f3f3fdfdfff4f4f4f9f9fbfafafafffffff9f9f9
+fdfdfff5f5f5f9f9fb121212f6f6f8f0f0f0f1f1f3030303ffffffe9e9e9ececeefdfdfd
+fffffffdfdfdf2f2f4f5f5f5f8f8faf1f1f11414160b0b0b0303050707070b0b0d0c0c0c
+1a1a1ce0e0e0ffffff070707ebebedfafafadcdcde171717f7f7f9fafafaefeff1ffffff
+ececeefbfbfbfcfcfef6f6f6f6f6f6fffffdffffffececeafafafadededceaeaeaf0f0ee
+f6f6f6e2e2e0fffffffffffdecececebebe9f7f7f7fafafaf7f7f7050505f7f7f9000000
+0d0d0f03030319191b000000000002171717f4f4f6e8e8e80a0a0cd1d1d1fffffff2f2f2
+0c0c0ee6e6e6ebebedfffffff8f8fafdfdfdededeff9f9f9fdfdfff1f1f1f2f2f4ffffff
+e7e7e9ffffffe7e7e9ecececf5f5f7fbfbfbf2f2f4fafafafcfcfe0606060e0e10000000
+0a0a0c000000050507141414ececeefdfdfdeaeaecf7f7f7fbfbfdfffffff2f2f4e6e6e6
+ffffffdcdcdcffffffe8e8e8fefefffefefefffffffafafafbfbfdf8f8f8e8e8eafdfdfd
+f0f0f0fbfbf9ededede0e0deeeeeeef6f6f4f5f5f5f6f6f4ffffffececeaf0f0f0ececea
+fffffffafaf8d4d4d4fffffffefefef1f1f1f1f1f3fdfdfdf2f2f4fefefedddddfefefef
+e6e6e8f5f5f5f1f1f30707070d0d0ffbfbfbf5f5f7f9f9f9fafafafefefcf6f6f6f4f4f2
+fffffff9f9f7f6f6f60909070d0d0d0d0d0becececfffffdfffffffdfdfbf2f2f2fbfbfb
+fefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefffbfefffbfefffdfefffd
+fefffbfefffdfefffffefffffefffffefffbfefffafefffbfefffffefffffefff8fefff8
+f7f8f3f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+020202000000020202010101030303f4f4f4f8f8f8f9f9f9ffffffe4e4e41c1c1c080808
+f5f5f5e9e9e9ffffff040404151515f1f1f1ffffffd9d9d9e1e1e10e0e0efffffff2f2f2
+1f1f1f000000e6e6e6101010070707040404010101fbfbfbe7e7e7fffffff2f2f2f5f5f5
+ececece7e7e7fffffff2f2f2030303303030e5e5e5fffffff3f3f3dfdfdffbfbfbf2f2f2
+e6e6e6fefefe101010121212ffffffe8e8e8f3f3f3f9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfefefefffffffffffffdfdfdf8f8f8f5f5f5f8f8f8f3f3f3fdfdfdebebeb
+f9f9f9020202ffffffffffffffffff060606f5f5f5cececeffffffebebeb000000060606
+f9f9f9f8f8f8ededed050505ffffffeeeeeefdfdfdeeeeeef4f4f4e8e8e8ffffffeaeaea
+ffffffe1e1e1ddddddf1f1f1dfdfdffefefef5f5f5efefefffffffcdcdcdffffffe6e6e6
+fffffffafafae3e3e3efefeff3f3f3f6f6f6eeeeeeffffffffffffefefeff0f0f0f3f3f3
+edededfcfcfcebebebfdfdfdedededf5f5f5e4e4e4ffffffeeeeeeffffffe1e1e1ebebeb
+eeeeeef7f7f7f1f1f1e9e9e9eaeaeac8c8c8fffffff7f7f7ffffffebebebeeeeeef6f6f6
+d8d8d8fffffffffffff1f1f1fbfbfbecececf9f9f9f3f3f3fdfdfdffffffe6e6e6ffffff
+f1f1f10f0f0fe1e1e1f5f5f5ffffff1b1b1b0f0f0ffffffff4f4f4e5e5e5d5d5d5060606
+f0f0f0f6f6f6edededfffffff2f2f2f7f7f7e8e8e8f1f1f1e0e0e0ffffffffffffc0c0c0
+fcfcfcfafafaecececffffff0000000a0a0af1f1f1fffffff5f5f5fefefe020202e6e6e6
+ffffffffffffecececebebebfafafadfdfdfffffffdbdbdbffffffefefef000000f6f6f6
+ffffffe0e0e0fcfcfcffffffdfdfdffbfbfbfafafa030303ebebebfffffff3f3f3ffffff
+edededfdfdfdd8d8d8fffffff1f1f1fefefee2e2e2000000fffffff4f4f4f0f0f0eaeaea
+0c0c0cf5f5f5e9e9e9d3d3d3fffffff3f3f3f2f2f2070707fbfbfbfcfcfcf3f3f3000000
+fffffff6f6f6efefeffdfdfdf5f5f5eaeaead1d1d1f4f4f4fffffffbfbfbfbfbfbffffff
+f3f3f3f5f5f5dbdbdbf4f4f4e9e9e9ffffffdddddde5e5e51a1a1affffffd7d7d7e7e7e7
+111111f3f3f3f7f7f7fefefef5f5f50f0f0ff8f8f8e0e0e0fffffff8f8f8eaeaeae9e9e9
+040404e4e4e4fbfbfbfefefe000000f2f2f2f6f6f6fffffff1f1f1f4f4f4f2f2f2ffffff
+ecececddddddfffffff9f9f9f8f8f8c3c3c3ffffffffffffedededffffff020202ffffff
+fffffff9f9f9fcfcfc080808e7e7e7f2f2f2f7f7f7e9e9e9f9f9f9edededfbfbfbf3f3f3
+fbfbfbffffffe2e2e2ffffffffffffe2e2e2ededed0b0b0bdededef3f3f3fffffff0f0f0
+f5f5f5f9f9f9fafafaffffffffffffe0e0e0ffffffe1e1e1f8f8f8f6f6f6fffffff6f6f6
+e7e7e7e6e6e6fcfcfcf5f5f5fafafafffffffbfbfbf2f2f2fbfbfbe3e3e3fbfbfbffffff
+fefefeffffff020202f1f1f1030303f5f5f5efefefe8e8e8f8f8f8fffffffefefef8f8f8
+eeeeeee5e5e5020202f8f8f8e8e8e8f5f5f5000000ffffffe8e8e8f9f9f9fffffff4f4f4
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101040404010101000000efefeff5f5f5f9f9f9eeeeeef8f8f80b0b0b000000
+fdfdfdf7f7f7e1e1e10b0b0b000000f6f6f6fbfbfbf3f3f3f7f7f7202020fbfbfbe6e6e6
+0101012d2d2df8f8f8efefef0000001111110e0e0ef6f6f6f9f9f9ffffffdbdbdbf1f1f1
+fffffffbfbfbebebebfdfdfd1e1e1e000000f7f7f7fbfbfbfffffff9f9f9fffffff6f6f6
+ffffffefefef000000010101fffffffdfdfdffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffdfdfdf9f9f9f6f6f6f9f9f9e8e8e8fffffff5f5f5
+ffffff1a1a1af9f9f9efefefdcdcdc141414f3f3f3f5f5f5e3e3e3ffffffffffff000000
+1a1a1af7f7f7ededed161616e3e3e3f5f5f5fafafae9e9e9fdfdfde1e1e1ffffffd9d9d9
+f3f3f3fffffffffffffafafafbfbfbfefefef9f9f9ffffffeaeaeafcfcfcfefefef1f1f1
+f0f0f0f7f7f7eaeaeaf9f9f9edededfefefef5f5f5fefefed6d6d6ffffffe5e5e5ffffff
+e5e5e5e8e8e8ffffffeeeeeeffffffedededfbfbfbfffffff0f0f0e3e3e3fffffff2f2f2
+e5e5e5ffffffffffffffffffecececffffffe3e3e3ffffffdfdfdffffffff8f8f8eeeeee
+fffffffbfbfbe9e9e9f2f2f2ffffffedededf8f8f8fbfbfbfcfcfcebebebffffffefefef
+e5e5e5080808f8f8f8f9f9f9000000000000ffffffc8c8c8f7f7f7fffffff6f6f6030303
+fffffff2f2f2ffffffdbdbdbffffffeeeeeefcfcfcf0f0f0f2f2f2fdfdfdeeeeeeffffff
+f8f8f8d3d3d3fafafaffffff0d0d0d070707000000fafafaffffffeaeaea030303eeeeee
+ffffffe0e0e0fffffff3f3f3fdfdfdf7f7f7fdfdfdfcfcfcfdfdfdfafafa1c1c1cffffff
+eaeaeaf3f3f3e9e9e9ffffffecececffffffffffff000000f5f5f5e1e1e1f9f9f9ffffff
+f9f9f9f1f1f1fdfdfdfefefefbfbfbfafafaffffff000000dbdbdbf5f5f5fffffffdfdfd
+ffffffe2e2e2ffffffffffffebebebf2f2f2ececec131313eaeaeafefefeededed131313
+ffffffe0e0e0f1f1f1ffffffddddddfefefefffffff1f1f1ddddddf3f3f3fbfbfbf9f9f9
+fffffff4f4f4fcfcfcf7f7f7dcdcdcf0f0f0efefefffffff000000edededfffffffafafa
+1b1b1bfefefecdcdcdfffffff6f6f6ffffffe0e0e0ffffffd2d2d2ffffffffffffededed
+272727f5f5f5f6f6f6f4f4f4090909f6f6f6fcfcfcf8f8f8e9e9e9f8f8f8ffffffeaeaea
+fefefefffffff3f3f3ffffffe7e7e7ffffffedededf5f5f5fdfdfdf9f9f9000000ececec
+d2d2d2f3f3f3f5f5f5e7e7e7ffffffe1e1e1ffffffffffffe4e4e4fffffff4f4f4ffffff
+ededede8e8e8edededf8f8f8eeeeeefdfdfdf4f4f4090909ffffffe5e5e5ffffffeaeaea
+e2e2e2f8f8f8cbcbcbffffffe6e6e6fffffff1f1f1f3f3f3fffffff1f1f1fefefef4f4f4
+fffffffcfcfcf1f1f1ffffffe1e1e1f1f1f1fcfcfcfdfdfdf0f0f0fffffffcfcfce5e5e5
+f0f0f0e6e6e6f4f4f4fcfcfc000000f3f3f3fffffff7f7f7fffffff1f1f1f4f4f4ffffff
+eeeeee252525f0f0f0dcdcdcffffffefefefffffff0c0c0ce0e0e0f7f7f7ffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000020202000000010101f1f1f1f6f6f6f8f8f8f3f3f3f8f8f80303031d1d1d
+ffffffd4d4d4f4f4f4131313000000ffffffddddddfffffff6f6f6c9c9c9f7f7f7f0f0f0
+000000111111cbcbcbfafafa0808081c1c1c000000e9e9e9ffffffeeeeeef9f9f9f9f9f9
+f7f7f7f8f8f8f8f8f8ececec0000001a1a1afcfcfce1e1e1f7f7f7030303090909040404
+0909090808080a0a0a2f2f2fdededeffffffe7e7e7f7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefffffffefefefafafaf7f7f7fbfbfbf6f6f6fffffffcfcfc
+e8e8e8070707e9e9e9f3f3f3ffffff171717fffffff6f6f6fafafae8e8e8efefefffffff
+040404f4f4f4dddddd0b0b0bf8f8f8ebebebfffffffefefefffffff9f9f9dbdbdb171717
+0a0a0acfcfcff2f2f2fafafae4e4e4292929030303000000ffffffe7e7e7f2f2f20b0b0b
+0e0e0e0707071212121a1a1a0f0f0f0303030000000000000d0d0df2f2f2e6e6e6ffffff
+0000000101010000000b0b0bfffffffffffffcfcfcdddddde5e5e5f8f8f8dfdfdfededed
+fcfcfc1b1b1b050505000000efefeff0f0f0f5f5f50f0f0f090909fafafa111111000000
+e9e9e9fdfdfd0000001212120000001d1d1de6e6e6fffffff5f5f5eeeeeefbfbfbf1f1f1
+0d0d0dffffffeeeeeef2f2f2050505ffffffeaeaeaffffffffffffd4d4d4f3f3f3efefef
+f4f4f4f9f9f9ffffff000000000000060606fbfbfbe4e4e4fffffffcfcfc000000010101
+0303030c0c0cf7f7f7ffffff050505f6f6f6090909fcfcfcf7f7f7fcfcfc070707fbfbfb
+e6e6e6f7f7f7fafafa090909121212000000fafafae4e4e4eaeaea010101000000050505
+010101fdfdfd090909000000ffffffeaeaea000000070707141414000000000000000000
+121212fbfbfbffffff000000000000f2f2f2f7f7f7101010f9f9f9fbfbfbf1f1f1050505
+fffffff4f4f4000000000000fdfdfdffffffe6e6e6000000f0f0f0ffffff060606141414
+000000111111fffffff2f2f2efefef030303000000101010fffffff5f5f5191919000000
+e9e9e90606060a0a0ae8e8e8fffffff9f9f9d8d8d8060606fbfbfbfdfdfde9e9e9ffffff
+000000fdfdfdffffffd1d1d1060606f9f9f9eeeeee1e1e1e0f0f0ff8f8f8d2d2d2fbfbfb
+000000f9f9f9f0f0f0080808000000202020060606f4f4f4ffffffffffff000000161616
+1b1b1be4e4e4f6f6f6000000171717fbfbfb0000000e0e0ef9f9f9e8e8e8040404ffffff
+ffffffe5e5e5060606f1f1f1fafafaffffff0c0c0c0000000a0a0afbfbfbf0f0f0f5f5f5
+f2f2f2ffffff151515000000fffffff6f6f61b1b1b111111000000090909e9e9e9ffffff
+ffffff0c0c0c0808080c0c0cecececffffffeaeaea1a1a1a000000ffffff0f0f0f000000
+0e0e0e000000000000fdfdfdffffff010101101010fbfbfbf9f9f9000000141414ffffff
+fffffffefefef0f0f0ffffff1e1e1eedededfcfcfcf2f2f2ebebebfffffff1f1f1ffffff
+e5e5e50b0b0bfffffff9f9f9e0e0e0fbfbfbdbdbdb0c0c0cfffffff6f6f6fcfcfcf6f6f6
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+020202000000000000000000050505f8f8f8fafafaf8f8f8fafafadcdcdc151515000000
+f9f9f9f8f8f8fdfdfd070707070707fbfbfbffffffe6e6e61e1e1ef6f6f6efefefffffff
+1c1c1c000000fffffff8f8f80a0a0a000000ffffffecececf7f7f7e5e5e5ffffffffffff
+e6e6e6fafafafffffff8f8f8000000000000fffffff3f3f3fbfbfb090909000000ffffff
+e1e1e1ffffff000000000000ffffffeaeaeaf9f9f9f9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffefefefbfbfbf9f9f9fffffffbfbfbf7f7f7f7f7f7
+f9f9f9020202fffffff8f8f8e2e2e20c0c0cf6f6f6fffffff9f9f9f7f7f7fcfcfcdfdfdf
+131313fffffff8f8f8000000ffffffffffffcbcbcbfefefef0f0f0fdfdfdffffff030303
+000000f9f9f9fdfdfdffffff000000f1f1f1ffffffe8e8e8070707f7f7f7fffffff7f7f7
+010101ffffffeeeeeef7f7f7070707fffffff3f3f3ffffff020202f3f3f3ffffff050505
+efefeffffffff4f4f4f2f2f2010101131313fffffff3f3f3fbfbfbf2f2f2fffffffcfcfc
+000000efefeff9f9f9d7d7d7262626fffffff4f4f4f3f3f3030303000000f0f0f0fdfdfd
+f3f3f30b0b0bfdfdfdfffffffafafad3d3d3373737000000eeeeeef5f5f5eeeeeeffffff
+000000f6f6f6fefefefefefe010101ffffffe1e1e1e8e8e8f7f7f7dfdfdfffffffececec
+ffffffe9e9e90d0d0dffffffffffffffffff000000f3f3f3fdfdfd000000ffffffffffff
+ededed1a1a1affffffe5e5e5050505ffffffefefef111111fcfcfcffffff080808f9f9f9
+ffffffdfdfdf0d0d0df3f3f3f0f0f0fdfdfd000000fafafaffffffe9e9e9101010ffffff
+f4f4f4fffffff3f3f3030303fbfbfbefefefffffff060606f1f1f1ffffffffffff070707
+fefefefafafaf6f6f6070707f8f8f8ffffffffffff000000202020020202090909101010
+f2f2f2fafafaffffff010101ebebebd4d4d4ffffff101010fbfbfbe2e2e2ffffff000000
+f5f5f5fafafaebebebf9f9f90c0c0cffffffffffffdcdcdc0b0b0bffffffeaeaea1a1a1a
+090909fffffff7f7f7fdfdfdd9d9d9efefefffffff000000fbfbfbf6f6f6f3f3f3fcfcfc
+1212120000000202020a0a0a060606efefeffffffff3f3f3151515ecececfffffffbfbfb
+1d1d1dffffffe3e3e3ffffff0c0c0cdfdfdff0f0f0fffffff0f0f0000000fffffff8f8f8
+eaeaea030303fffffffefefe0000001e1e1efbfbfbf9f9f9fdfdfdfefefe0a0a0a0b0b0b
+000000000000040404fbfbfbffffff000000000000fffffffbfbfb070707f3f3f3f4f4f4
+ffffff000000f1f1f1fdfdfd000000ffffffe6e6e60d0d0df4f4f4f8f8f8f7f7f7ffffff
+000000f5f5f5ebebebe1e1e1101010ecececf4f4f4ffffff111111161616ffffffebebeb
+e9e9e9101010f0f0f0ffffffd6d6d6080808f6f6f6fdfdfdf2f2f2020202000000ffffff
+d7d7d7f6f6f6ffffffdbdbdb000000fdfdfdfefefefffffff4f4f4f9f9f9fcfcfce9e9e9
+ffffff000000e0e0e0f8f8f8e7e7e7ffffffffffff000000e8e8e8fffffff5f5f5fefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+030303000000000000000000060606fafafafbfbfbf8f8f8f6f6f6ffffff000000090909
+f5f5f5fffffff7f7f7060606030303080808070707070707070707fcfcfcedededfafafa
+0000000707070000000f0f0feeeeeefffffffffffffafafafafafaf1f1f1e1e1e1ffffff
+efefefffffffe1e1e1e6e6e61f1f1f0d0d0de0e0e0fafafa020202151515ffffffffffff
+fefefed9d9d91e1e1e090909e6e6e6fffffffffffff4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffffffffcfcfcfafafafafafae5e5e5fffffffbfbfb
+e8e8e8141414dbdbdbf1f1f1fbfbfb1b1b1befefeff2f2f2f6f6f6fefefefdfdfdffffff
+000000fefefeffffff060606f7f7f7fffffffafafafdfdfdfbfbfbffffffefefefffffff
+fdfdfde2e2e2fefefe000000fffffffffffff4f4f4fffffff1f1f1060606e8e8e8ececec
+0e0e0ef8f8f8f6f6f6f4f4f4070707eeeeeef3f3f3fefefe020202f3f3f3eaeaea000000
+ddddddfefefeeaeaeaffffff080808dcdcdcdcdcdcfefefeedededfffffff4f4f4000000
+fffffff2f2f2fcfcfcffffffe8e8e8000000fffffffefefe131313fbfbfbe7e7e7eaeaea
+ffffff000000eaeaeaebebebfffffff1f1f1020202ffffffffffffffffffe5e5e5060606
+ffffffc0c0c0ffffffd9d9d91b1b1bf8f8f8e4e4e4fffffffafafaffffffdfdfdfe8e8e8
+fbfbfb060606f0f0f0f5f5f5fefefeebebebf4f4f4000000fbfbfb141414020202ffffff
+ffffffe2e2e2e4e4e4f8f8f8151515f1f1f1ffffff000000000000ffffff0a0a0afbfbfb
+bdbdbd151515fdfdfdf4f4f4fefefefafafaffffff131313dadadae9e9e9000000f5f5f5
+ffffffcdcdcdefefef171717ffffffeaeaeafbfbfb040404ffffffefefeffdfdfd0d0d0d
+000000f4f4f4ffffff010101f2f2f2c9c9c9ffffff0e0e0ef3f3f3f5f5f5ffffff030303
+fbfbfbfdfdfdfefefe090909f6f6f6ffffffededed000000fffffff6f6f6ffffff050505
+ffffffe1e1e1f2f2f20b0b0bf5f5f5d2d2d2efefeff1f1f1060606fffffff3f3f3050505
+ffffffe0e0e0f3f3f3fffffff0f0f0fbfbfb000000fefefefffffff4f4f4fdfdfdf6f6f6
+090909eaeaeafffffffdfdfd000000e6e6e6ffffffebebeb101010f9f9f9e4e4e4dfdfdf
+000000fefefefdfdfdeeeeee111111ffffffebebebf7f7f7050505fffffff6f6f6d1d1d1
+ffffff0b0b0beaeaeae6e6e6101010f4f4f4f4f4f4ffffffe4e4e4f3f3f30f0f0fe6e6e6
+fffffff3f3f3000000f9f9f9ffffffe6e6e6f7f7f7f5f5f51414140b0b0bfffffff6f6f6
+000000ffffffebebebffffffe7e7e7ffffffd6d6d6141414fafafaffffffffffff000000
+ffffffd2d2d2fffffffffffff4f4f40e0e0ef2f2f2f4f4f40f0f0fefefefe7e7e7ffffff
+fcfcfc000000000000ebebebffffff000000f7f7f7f4f4f4f7f7f7ffffffefefeff4f4f4
+fbfbfbedededf0f0f0f8f8f8070707fefefefffffff5f5f5f3f3f3fffffff6f6f6e6e6e6
+fefefe1c1c1ce0e0e0f5f5f5ffffffdfdfdfffffff000000f9f9f9fdfdfdebebebffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101000000000000000000030303f5f5f5f8f8f8f7f7f7f9f9f9ffffff0d0d0d020202
+ffffffe5e5e5efefef0606061f1f1fe8e8e8fcfcfcffffff080808fafafaf9f9f9f5f5f5
+161616121212f7f7f7000000000000010101f8f8f8f6f6f6f7f7f7ffffffe7e7e7fbfbfb
+eaeaeaf4f4f4eeeeeeffffff0101010c0c0cfffffff3f3f30d0d0d040404ffffffd2d2d2
+f3f3f3e1e1e1101010000000e0e0e0f0f0f0f8f8f8fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfefefefffffffffffffdfdfdfcfcfcf2f2f2f3f3f3fdfdfdffffff
+ffffff030303ffffffffffffffffff000000fffffff0f0f0f9f9f9ffffffe7e7e7f8f8f8
+1d1d1dedededc1c1c1222222f7f7f7f4f4f4fffffff2f2f2ffffffcbcbcbe0e0e0fbfbfb
+f5f5f5fafafaf9f9f9040404fefefef8f8f8e9e9e9eaeaeae9e9e90e0e0ef8f8f8ffffff
+000000f6f6f6ffffffffffff030303f8f8f8fcfcfcfafafa181818dfdfdff9f9f9ffffff
+0707070606060404040a0a0affffffe9e9e9fffffffdfdfdebebebf5f5f5eaeaea212121
+d2d2d2fcfcfcf2f2f2fffffffcfcfc000000f3f3f3ffffff000000fffffffffffffefefe
+e8e8e8f6f6f6141414161616000000303030dedededededeefefefe3e3e3161616ececec
+fdfdfdf6f6f6ffffffffffff000000f6f6f6ffffffe0e0e0dbdbdbeeeeeefcfcfcededed
+ededed0a0a0adadadafafafaf4f4f4cdcdcdffffff070707f2f2f2ffffff000000070707
+1d1d1dd9d9d9ffffffe9e9e9000000fffffff5f5f5ffffff060606e7e7e70f0f0fe4e4e4
+ffffff010101e3e3e3ffffffeeeeeee8e8e8ffffff000000ffffffffffff000000f5f5f5
+f7f7f7ffffffe5e5e5000000e8e8e8ffffffe6e6e6020202fdfdfdffffffd8d8d8ffffff
+2d2d2dffffff181818f3f3f3fffffffdfdfde7e7e7010101efefeff8f8f8f4f4f4fcfcfc
+edededf7f7f7f1f1f1000000ffffffdfdfdff1f1f12f2f2ff3f3f3dededefdfdfd0c0c0c
+fafafaf4f4f4ffffff0000000808082626260505050d0d0d020202f2f2f2f2f2f2171717
+f1f1f1fffffff9f9f9e7e7e7fbfbfb0c0c0cf1f1f1f6f6f6f0f0f0ffffffe9e9e9ffffff
+070707ecececf2f2f2ebebebfffffff6f6f6f3f3f3f7f7f7101010fefefee5e5e5ffffff
+060606fafafaf9f9f9ffffff0a0a0ae0e0e0ffffffdfdfdf0101010808080000002a2a2a
+202020000000ffffffffffff101010cdcdcdedededf2f2f2e4e4e4ffffff090909f5f5f5
+f8f8f8fffffff6f6f6e9e9e9ddddddfafafa151515000000dbdbdb000000ffffffffffff
+131313ffffffffffffe5e5e5f9f9f9f4f4f4ffffff000000f2f2f2e7e7e7fdfdfd000000
+f5f5f5fcfcfce8e8e8e8e8e8fdfdfd000000fbfbfbf6f6f6050505fffffff6f6f6dcdcdc
+ffffffe1e1e11d1d1dfafafa000000edededfffffff7f7f7e0e0e0f0f0f0ffffffe4e4e4
+ffffffe9e9e9ffffffe9e9e9090909e7e7e7fcfcfce6e6e6f4f4f4f8f8f8f2f2f2ffffff
+f8f8f8000000ffffffffffffdfdfdffbfbfbececec111111fafafae7e7e7fffffff4f4f4
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000020202000000000000eeeeeef4f4f4f7f7f7f8f8f8f1f1f1151515050505
+f2f2f2fbfbfbffffff000000000000fdfdfdfffffff3f3f3e3e3e3efefeff8f8f8efefef
+0101010a0a0af7f7f7f7f7f70e0e0e050505000000fffffff7f7f7f2f2f2fafafaf6f6f6
+f9f9f9efefefffffffdcdcdc2c2c2c080808e9e9e9ffffff0c0c0c060606d7d7d7ffffff
+fafafaffffff000000070707ffffffefefeffafafafefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefcfcfcfffffffcfcfcdadadafdfdfd
+dfdfdf0f0f0ff0f0f0fbfbfbe6e6e60c0c0cfffffffcfcfcfbfbfbfcfcfcffffff000000
+050505fefefeffffff000000fcfcfcf9f9f9e3e3e3ffffff000000ffffffffffffececec
+e6e6e6f9f9f9f9f9f9010101f4f4f4fffffffffffff7f7f7fcfcfc0c0c0cf3f3f3f5f5f5
+151515f2f2f2f1f1f1fbfbfb080808f8f8f8f9f9f9f0f0f0000000fffffff1f1f1e5e5e5
+121212f0f0f0eaeaeaf3f3f3fffffffcfcfcf4f4f4ecececfefefef8f8f8ffffff000000
+f7f7f7ffffffdbdbdbfafafaffffff0b0b0bfdfdfde0e0e0161616dededef1f1f1f0f0f0
+f3f3f3ffffff020202ddddddfafafae3e3e3fefefef7f7f7fffffff7f7f70d0d0dffffff
+e0e0e0f9f9f9eeeeeeffffff1d1d1d000000d7d7d7fafafaffffffdadadafcfcfc010101
+fdfdfd0a0a0afdfdfdf4f4f4fffffffcfcfce1e1e1000000edededf6f6f6ffffffdedede
+e9e9e9000000efefeff7f7f7000000f3f3f3f7f7f7dadada1313131c1c1c000000fafafa
+e7e7e7171717f6f6f6fcfcfce8e8e8ffffffe4e4e4050505fdfdfdededed010101fdfdfd
+ebebebe3e3e3ffffff080808fafafae6e6e6ffffff000000ffffffe6e6e6fcfcfcffffff
+000000ffffff000000fcfcfce7e7e7f0f0f0ffffff000000fffffff0f0f0e6e6e6fafafa
+fefefee8e8e8ffffff181818e7e7e7f8f8f8ffffff040404f0f0f0fffffffcfcfc030303
+eaeaeaf0f0f0e9e9e90b0b0bffffffebebebe4e4e4fffffff8f8f8eaeaeaf8f8f8000000
+f1f1f1f3f3f3f2f2f2fdfdfdf9f9f9020202ffffffe7e7e7fdfdfdf9f9f9eeeeeefefefe
+040404ffffffedededf6f6f6ffffffdbdbdbfffffff8f8f8010101f1f1f1ffffffededed
+020202edededfefefeeeeeee070707f5f5f5fafafaf6f6f6000000fffffffffffff8f8f8
+e6e6e6ffffffe6e6e6eeeeee000000fffffffffffffdfdfdfafafaebebeb080808ffffff
+fafafaf4f4f4fbfbfbffffffffffff000000fffffffafafaffffff121212e2e2e2e4e4e4
+0a0a0afdfdfde0e0e0ffffffdbdbdbfefefef5f5f50f0f0fefefeffdfdfdf1f1f1222222
+ecececf5f5f5fffffff7f7f7ffffff030303fffffff5f5f50f0f0fecececf3f3f3ffffff
+edededfafafa000000f7f7f7000000ffffffe1e1e1f8f8f8ffffffffffffe7e7e7ffffff
+eeeeeefdfdfdf1f1f1e5e5e5070707fbfbfbfbfbfbfffffffffffff7f7f7f1f1f1d9d9d9
+f7f7f72d2d2dfbfbfbe2e2e2fafafaffffffefefef000000f2f2f2fffffff9f9f9f9f9f9
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000000000000000030303f3f3f3f5f5f5f3f3f3f0f0f0f5f5f50b0b0b080808
+fdfdfdf3f3f3e8e8e80505050e0e0effffffebebebfcfcfcf0f0f0fffffffcfcfceeeeee
+2121210c0c0cecececeeeeee1c1c1c000000101010f8f8f8fefefee3e3e3f9f9f9eeeeee
+efefeffdfdfde9e9e9ffffff040404000000fcfcfcdfdfdf0404040f0f0f2222220c0c0c
+2020200a0a0a000000040404fcfcfcefefeffffffffffffffdfdfdfdfdfdfefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefef7f7f7f2f2f2e1e1e1fcfcfcffffffe1e1e1
+fefefe151515f5f5f5fbfbfbffffff090909f9f9f9dededef8f8f8f6f6f60808080d0d0d
+ffffffddddddebebeb000000fbfbfbffffffeaeaeaeaeaea080808ecececebebeb111111
+0e0e0efffffffffffff8f8f8060606f8f8f8fffffff4f4f4050505eeeeeef1f1f1e9e9e9
+101010edededeeeeeef1f1f1141414ebebebefefeffefefe000000ffffffeeeeeee8e8e8
+050505040404202020020202212121dfdfdffafafa0707070b0b0becececefefefffffff
+010101f2f2f2f4f4f4f6f6f6000000eaeaeaf2f2f2fefefe000000f9f9f9f3f3f3f7f7f7
+fcfcfcffffff0f0f0f1919190000000d0d0d0b0b0beeeeeef7f7f7070707f0f0f0f1f1f1
+f3f3f3fafafaefefeff4f4f4fcfcfc111111030303f6f6f6fefefefffffff6f6f6020202
+f5f5f5f7f7f7000000f8f8f8fdfdfdfefefe000000fdfdfdfcfcfc000000ffffffffffff
+f7f7f70d0d0df9f9f9ffffff0e0e0effffffeaeaeaffffffffffff000000080808ffffff
+f7f7f7f1f1f1080808f5f5f5fefefefcfcfc0e0e0efdfdfde6e6e6fcfcfc000000ffffff
+f9f9f9f0f0f0efefef000000fffffffcfcfcfefefe070707fefefef2f2f2ffffffe9e9e9
+ffffff0e0e0eedededf1f1f1fafafaffffffc9c9c90b0b0bf9f9f9ebebebffffffe9e9e9
+f1f1f1e9e9e9ececec0c0c0ceeeeeeffffffe2e2e2141414fafafae8e8e8fafafa050505
+fffffff7f7f7ececec000000000000ffffffebebebe4e4e40b0b0bf4f4f4ffffff070707
+d5d5d5fffffff2f2f2dcdcdc000000fafafafcfcfcfbfbfbf6f6f6ffffffc0c0c0fafafa
+0f0f0fe3e3e3fbfbfbf8f8f8f7f7f7ebebebfcfcfce9e9e9040404f6f6f6fbfbfbe4e4e4
+191919f0f0f0fffffff4f4f4080808e7e7e7eaeaeaffffff0000001b1b1bfdfdfdf4f4f4
+ffffff000000fffffffcfcfc000000ffffffefefefe5e5e5d5d5d5f9f9f90b0b0beaeaea
+fafafafefefeffffffebebebe5e5e50a0a0affffffe4e4e40a0a0a131313efefeffdfdfd
+090909000000ffffffeeeeee1a1a1af6f6f6fdfdfd000000f5f5f5f9f9f9f8f8f8f9f9f9
+181818fcfcfcefefefffffff000000fcfcfcf9f9f9fcfcfc080808ecececf6f6f6f9f9f9
+fafafaf3f3f3fefefe121212edededfafafaf7f7f7f0f0f0ffffff060606000000f9f9f9
+ffffffecececf7f7f7fefefe080808fbfbfbfdfdfdd6d6d6f8f8f8020202060606fcfcfc
+fcfcfce3e3e3070707fcfcfcf0f0f0ffffff000000f7f7f7fffffffcfcfcf2f2f2fefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000010101f1f1f1f2f2f2f1f1f1ffffff0505051b1b1b020202
+000000ffffff000000070707111111000000000000ffffffffffffecececffffff0f0f0f
+070707000000080808ffffffdcdcdc1616160404040a0a0a080808fbfbfbe9e9e9fdfdfd
+fdfdfdeaeaeafcfcfc0909090b0b0b000000030303fffffffcfcfc000000000000000000
+0c0c0cf3f3f3070707070707141414fcfcfcddddddf9f9f9fdfdfdfefefefefefefefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefef9f9f9f4f4f4fdfdfde5e5e5edededfafafa
+171717000000000000ffffff030303060606000000030303020202191919f1f1f1fbfbfb
+d1d1d1ffffff0000002626260101010000000a0a0a1010101f1f1ffcfcfcfbfbfb181818
+000000ccccccf9f9f9f5f5f5cfcfcf2121210d0d0d000000f2f2f2ffffffeeeeee191919
+0b0b0b131313f6f6f60d0d0d000000232323ffffff0000001e1e1e000000ffffff131313
+f3f3f3fffffffefefedddddd000000202020ffffff000000131313fffffff6f6f6f7f7f7
+f2f2f2282828181818000000fffffff5f5f5eaeaea0b0b0b1212120d0d0de2e2e2ffffff
+d4d4d4000000fffffff8f8f8ecececf7f7f7030303090909ffffff000000f9f9f9f9f9f9
+ffffffe3e3e3fffffff2f2f2eaeaeaffffffdcdcdc0f0f0f000000262626000000f5f5f5
+fffffff6f6f6f4f4f40f0f0f0101010a0a0affffffe3e3e3ffffff0202020000000f0f0f
+0b0b0bfbfbfbffffff0505050000002a2a2aefefeff8f8f8f4f4f4f1f1f1000000fafafa
+ffffffffffffffffff000000000000090909fefefefefefeebebebffffff000000000000
+000000ffffff0f0f0f030303030303fdfdfd020202090909000000fbfbfbdfdfdff4f4f4
+f4f4f4010101ffffffd4d4d4fbfbfbf2f2f20000001111111e1e1efafafac1c1c1f6f6f6
+f2f2f2ffffff0707070e0e0e141414dcdcdc050505080808121212e9e9e9f8f8f8060606
+010101000000fffffffdfdfd1414140000002c2c2c303030f2f2f2f8f8f80505050a0a0a
+1f1f1ff3f3f3eaeaeaffffff1f1f1fd4d4d4f2f2f2fefefeedededdfdfdfffffff0f0f0f
+0000001d1d1dfffffff3f3f3fffffffefefefdfdfd0000001616160b0b0be2e2e20f0f0f
+010101080808ebebebf0f0f00b0b0b2a2a2a000000ffffffffffff000000222222030303
+000000fefefef3f3f30c0c0c000000050505fefefef1f1f1ffffff0707070000000e0e0e
+ffffffdadadacbcbcbf4f4f4fdfdfdffffff0a0a0a121212e8e8e8000000181818fefefe
+f7f7f71c1c1c000000080808000000fafafafcfcfc1414140000000f0f0ffdfdfdebebeb
+ffffff191919101010090909e3e3e3fafafaf8f8f80000000000000c0c0cffffffd6d6d6
+fffffffefefefcfcfc000000fefefedbdbdbe7e7e7ffffffeaeaea050505181818ffffff
+ebebebf4f4f42727270000000707070f0f0ffefefef4f4f4f9f9f90d0d0d020202ffffff
+f2f2f2fffffff3f3f30000000d0d0d070707f0f0f0f8f8f8fbfbfbefefefffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+010101000000000000000000000000efefeff1f1f1f0f0f0ffffffcdcdcdf3f3f3ffffff
+ececece0e0e0f9f9f9ecececfafafaf6f6f6fffffff9f9f9e0e0e0ffffffebebebf1f1f1
+e8e8e8f3f3f3f8f8f8fafafaefefefffffffdadadaf5f5f5f8f8f8f5f5f5ffffffe8e8e8
+e7e7e7fffffff0f0f0f2f2f2f6f6f6f9f9f9fffffff0f0f0f7f7f7fffffff5f5f5ffffff
+f4f4f4f3f3f3fdfdfdffffffe4e4e4edededfffffff9f9f9fdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffefefefbfbfbf8f8f8ffffffffffffeaeaeaf4f4f4
+f2f2f2f6f6f6f5f5f5f2f2f2ffffffeeeeeefffffff9f9f9f5f5f5f6f6f6ffffffdbdbdb
+fffffff6f6f6ffffffecececf3f3f3fafafaedededfbfbfbeaeaeaf1f1f1e9e9e9e6e6e6
+ffffffffffffe9e9e9f8f8f8fefefeeaeaeaf9f9f9fffffffafafae3e3e3f4f4f4ffffff
+f7f7f7f6f6f6fcfcfcfcfcfcf5f5f5f2f2f2f0f0f0e7e7e7f4f4f4f4f4f4e4e4e4040404
+fefefee7e7e7eeeeeeffffffffffff020202efefefe8e8e8f7f7f7ffffffe7e7e7ffffff
+ffffffe6e6e6dfdfdffffffff6f6f6f6f6f6f3f3f3ffffffebebebf7f7f7f5f5f5f8f8f8
+f1f1f1101010f9f9f9ecececfffffff9f9f9ededed0c0c0c000000fffffff5f5f5f1f1f1
+e9e9e9fffffff9f9f9e6e6e6f5f5f5efefefe9e9e9fafafafcfcfcfdfdfdf6f6f6eeeeee
+fbfbfbf2f2f2fbfbfbfbfbfbeaeaeaebebebfbfbfbf9f9f9fdfdfdfffffffcfcfcfefefe
+f9f9f9d3d3d3fefefefffffff9f9f9fcfcfcf3f3f3e9e9e9f0f0f0ffffffffffffd5d5d5
+f4f4f4ffffffcececeffffffffffffc6c6c6f7f7f7fdfdfdfbfbfbc1c1c1ffffffffffff
+f7f7f7f1f1f1eaeaeafffffff4f4f4f4f4f4ecececfafafaf3f3f3f0f0f0ffffffffffff
+d7d7d7040404e8e8e8ffffffffffffffffffededede7e7e7e9e9e9fffffff7f7f7f0f0f0
+fbfbfbd9d9d9fffffff2f2f2efefeff8f8f8fffffff0f0f0f6f6f6ffffffe9e9e9e4e4e4
+ffffffe8e8e8ffffffe3e3e3f9f9f9ffffffeeeeeef7f7f7dfdfdff2f2f2fffffff4f4f4
+f8f8f8f5f5f5fcfcfc000000f9f9f9ffffffebebebfcfcfcfffffff3f3f3f4f4f4f6f6f6
+fffffff8f8f8f6f6f6f4f4f4e9e9e9f6f6f6c9c9c9ffffffe6e6e6f0f0f0fdfdfde6e6e6
+fefefef7f7f7f5f5f5fffffff8f8f8f1f1f1ffffffffffffffffffedededfffffff3f3f3
+fffffffcfcfcffffffe2e2e2fdfdfdfffffff7f7f7e4e4e4edededeeeeeefffffff2f2f2
+e7e7e7fffffffffffff7f7f7ffffffd7d7d7fffffffffffffefefeffffffdfdfdfececec
+ffffffe3e3e3eeeeeeffffffe6e6e6f7f7f7f6f6f6ffffffffffffd0d0d0fefefef5f5f5
+ffffffc9c9c9fbfbfbe4e4e4ffffffcfcfcffffffff8f8f8ffffffc1c1c1d5d5d5ffffff
+dadadae9e9e9ffffff000000eeeeeefffffffffffff0f0f0fffffff4f4f4f1f1f1ebebeb
+fafafafcfcfce5e5e5fcfcfcfffffffefefee8e8e8fffffffbfbfbe9e9e9fbfbfbe8e8e8
+eeeeeef7f7f7fffffff9f9f9ffffffd8d8d8ffffffffffffdadadaf1f1f1ffffffededed
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000000000000000000000f1f1f1f4f4f4f5f5f5f3f3f3fcfcfce0e0e0f8f8f8
+f7f7f7ffffffe7e7e7fbfbfbffffffe4e4e4fffffffcfcfce0e0e0f9f9f9fffffff2f2f2
+fbfbfbffffffd0d0d0eaeaeaf5f5f5f3f3f3f3f3f3fbfbfbfdfdfdfffffff9f9f9f7f7f7
+f6f6f6f6f6f6fefefef8f8f8ffffffe7e7e7f3f3f3ffffffe1e1e1ddddddfffffffcfcfc
+fbfbfbdbdbdbffffffecececedededeaeaeafbfbfbebebebfdfdfdfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffdfdfdfcfcfcd4d4d4fffffff5f5f5ffffff
+f4f4f4fffffffafafaddddddefefefebebebf1f1f1fffffffdfdfdebebebf3f3f3f4f4f4
+d3d3d3ebebebf6f6f6f7f7f7eeeeeeffffffffffffd7d7d7f9f9f9ffffffffffffe7e7e7
+eaeaeae0e0e0f5f5f5fdfdfdf9f9f9fffffffdfdfde7e7e7f7f7f7fbfbfbfefefeeeeeee
+fcfcfcf6f6f6f7f7f7fffffff7f7f7fffffffcfcfce8e8e8ffffffe2e2e2f9f9f9000000
+edededffffffffffffe1e1e1000000fffffff1f1f1fefefef9f9f9efefefebebebfdfdfd
+f8f8f8f5f5f5fbfbfbe1e1e1fbfbfbf4f4f4fdfdfdedededfdfdfdffffffefefeffbfbfb
+ffffff030303e9e9e9fffffff4f4f4ffffff111111fcfcfcbebebef6f6f6fffffff9f9f9
+fbfbfbf1f1f1ecececfcfcfcf4f4f4fffffffffffff3f3f3f0f0f0f3f3f3ffffffffffff
+ffffffffffffdadadae8e8e8fcfcfcebebebffffffe1e1e1f1f1f1fcfcfcedededebebeb
+f8f8f8ffffffe6e6e6f0f0f0f6f6f6e8e8e8fafafaeeeeeeffffffc7c7c7e6e6e6ffffff
+cdcdcdf1f1f1ecececf7f7f7eaeaeaf8f8f8eeeeeef2f2f2f0f0f0fefefeeeeeeef9f9f9
+ecececf4f4f4fffffff5f5f5fcfcfcf1f1f1fffffffdfdfdeeeeeeececec000000f2f2f2
+050505f4f4f4fffffff7f7f7f2f2f2efefeffefefefffffff0f0f0ecececf6f6f6f2f2f2
+fcfcfcffffffe7e7e7e0e0e0ffffffffffffd5d5d5fffffffcfcfce2e2e2f8f8f8fcfcfc
+efefefffffffe1e1e1fafafaedededfcfcfcf6f6f6f5f5f5fffffffdfdfde6e6e6ffffff
+e4e4e4fffffffffffff1f1f1f0f0f0d6d6d6ffffffe6e6e6f8f8f8fefefef4f4f4e0e0e0
+f1f1f1e2e2e2e7e7e7fffffff5f5f5ecececffffffeaeaeaf1f1f1ffffffe5e5e5fefefe
+fbfbfbefefeffcfcfcddddddfcfcfcecececfafafaf0f0f0fbfbfbe3e3e3dadadafafafa
+ffffffdcdcdcf7f7f7f3f3f3ffffffeaeaead3d3d3f2f2f2f8f8f8edededffffffffffff
+efefefd6d6d6e8e8e8f7f7f7c7c7c7f8f8f8fafafaddddddecececfffffff2f2f2ffffff
+fffffffffffffffffff4f4f4fafafafcfcfcffffffddddddefefefffffffdfdfdfffffff
+ebebebffffffeaeaeaf0f0f0eaeaeaffffffeaeaeaf4f4f4f2f2f2fefefeffffffe0e0e0
+0c0c0cfcfcfc060606ffffffecececdededee9e9e9fdfdfdfffffffffffffbfbfbeeeeee
+fffffffafafaedededffffffe4e4e4e3e3e3ffffffeeeeeef7f7f7edededfffffff5f5f5
+f3f3f3f1f1f1e9e9e9fcfcfcf4f4f4ffffffe1e1e1fffffffbfbfbfafafadbdbdbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000020202f4f4f4fafafafcfcfcfefefefffffffcfcfceaeaea
+eaeaeaecececfffffff7f7f7f3f3f3ffffffdadadafdfdfdffffffd3d3d3fafafaf0f0f0
+e8e8e8fffffffffffffafafae6e6e6fbfbfbfffffffdfdfdf6f6f6f1f1f1f7f7f7fefefe
+fefefef6f6f6f0f0f0f5f5f5ffffffecececf9f9f9f0f0f0f9f9f9fffffff1f1f1f9f9f9
+e5e5e5ffffffe4e4e4e8e8e8ffffffdfdfdff8f8f8fffffffbfbfbfcfcfcfcfcfcfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfdffffffe5e5e5ffffffe7e7e7
+fffffff6f6f6fbfbfbfffffffefefef1f1f1fdfdfde1e1e1e3e3e3ffffffe4e4e4f3f3f3
+ffffffe5e5e5ffffffd8d8d8fffffff2f2f2fbfbfbfbfbfbf4f4f4e6e6e6ebebebf4f4f4
+ffffffe7e7e7fbfbfbf2f2f2e9e9e9f0f0f0efefefe4e4e4fbfbfbffffffffffffffffff
+f2f2f2f5f5f5e9e9e9fffffffefefefafafaeaeaeafffffffcfcfce9e9e9e8e8e8ffffff
+010101000000000000131313fcfcfcf2f2f2eaeaead1d1d1ffffffefefefffffffffffff
+f9f9f9f9f9f9fcfcfce7e7e7fffffff6f6f6fbfbfbf5f5f5eaeaeaf5f5f5ffffffefefef
+f3f3f3f3f3f30d0d0d0000000000000a0a0afafafaf2f2f2ffffffe9e9e9fafafaf3f3f3
+ffffffffffffeeeeeefcfcfcf0f0f0eeeeeee2e2e2fffffff6f6f6fafafaeaeaeaf8f8f8
+dadadaffffffe0e0e0fffffffafafaffffffcbcbcbfffffff5f5f5fafafafffffff9f9f9
+f3f3f3ebebebffffffecececffffffecececedededfffffffcfcfcf5f5f5ffffffe0e0e0
+fffffff8f8f8fafafae1e1e1f9f9f9f8f8f8e6e6e6fffffffdfdfde5e5e5eaeaeaffffff
+ffffffe1e1e1f1f1f1fffffff2f2f2eeeeeefbfbfbeeeeeef8f8f8ffffff030303000000
+ffffffe3e3e3e2e2e2f3f3f3fafafaf4f4f4f7f7f7f5f5f5fffffffffffffffffff9f9f9
+f4f4f4ebebebfffffffffffff2f2f2fafafafffffffcfcfcf8f8f8fffffff6f6f6f2f2f2
+f0f0f0fafafafefefed2d2d2ffffffffffffffffffedededffffffe3e3e3ffffffdadada
+fbfbfbddddddf1f1f1ffffffffffffffffffe1e1e1f5f5f5ebebebffffffffffffeeeeee
+fffffffffffff3f3f3cdcdcdfefefeeeeeeeffffffffffffffffffe5e5e5e7e7e7fefefe
+ddddddfffffffffffff0f0f0f9f9f9f5f5f5ffffffebebebdadadafffffffffffff2f2f2
+efefefffffffefefefffffffe8e8e8f5f5f5ffffffffffffe7e7e7fafafafbfbfbe6e6e6
+fefefef9f9f9f5f5f5e5e5e5fffffff6f6f6fffffff1f1f1fefefeededede3e3e3ffffff
+edededfffffffffffff2f2f2f9f9f9f2f2f2ecececfffffff8f8f8eaeaeaf6f6f6f0f0f0
+fefefeeeeeeefbfbfbf6f6f6f5f5f5f8f8f8ffffffeeeeeeefefefefefefe1e1e1ffffff
+0000000c0c0cfffffff2f2f2f9f9f9fffffffffffff5f5f5e7e7e7f4f4f4f8f8f8f6f6f6
+dededee5e5e5ffffffdfdfdffefefef0f0f0ececece3e3e3f9f9f9ffffffe9e9e9f2f2f2
+f2f2f2efefeffcfcfceeeeeefafafaf6f6f6eeeeeeecececf8f8f8fffffff9f9f9efefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000020202010101030303f5f5f5fdfdfdffffffecececfefefee9e9e9ffffff
+fafafaf9f9f9ffffffeeeeeefbfbfbfdfdfdfffffff5f5f5f7f7f7fffffffffffffdfdfd
+fdfdfdf1f1f1ecececfffffff9f9f9eeeeeefefefef3f3f3f4f4f4fffffff3f3f3f0f0f0
+f1f1f1f5f5f5fffffff7f7f7e9e9e9fcfcfcfffffff7f7f7f7f7f7f5f5f5f2f2f2fdfdfd
+fffffffffffff6f6f6f5f5f5e2e2e2f5f5f5fdfdfdf1f1f1f9f9f9fafafafbfbfbfcfcfc
+fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffefefefdfdfdf3f3f3ffffffe7e7e7fcfcfc
+f6f6f6fbfbfbfafafae6e6e6e3e3e3fffffffffffffffffffdfdfdfdfdfdfffffffdfdfd
+edededfbfbfbf9f9f9fafafafffffffafafaefefeffffffffafafafbfbfbfffffff5f5f5
+f9f9f9f4f4f4fffffffffffffafafafbfbfbfffffff2f2f2ffffffe3e3e3f7f7f7ffffff
+f8f8f8fffffffffffff8f8f8f0f0f0fffffffffffff0f0f0f1f1f1fffffff3f3f3e6e6e6
+fffffffffffffafafafbfbfbfdfdfdf9f9f9f8f8f8ffffffdbdbdbedededffffffe9e9e9
+fefefefffffffbfbfbfefefefffffffcfcfcf9f9f9fffffffffffffffffff2f2f2f8f8f8
+e9e9e9fbfbfbe6e6e6fbfbfbffffffeeeeeefafafaf8f8f8e0e0e0f8f8f8f9f9f9ffffff
+e5e5e5fefefefefefefefefeeeeeeefffffffffffff2f2f2ffffffecececfffffff3f3f3
+ffffffe8e8e8ffffffdfdfdff4f4f4fefefefbfbfbfffffff9f9f9f0f0f0ecececf4f4f4
+f8f8f8edededf0f0f0fffffff7f7f7fdfdfde9e9e9fffffffdfdfdfafafae7e7e7f8f8f8
+e0e0e0fbfbfbeeeeeefffffffafafafdfdfdffffffeeeeeef6f6f6fffffff6f6f6f8f8f8
+fefefefcfcfcfffffff1f1f1fffffffafafafdfdfdf3f3f3fbfbfbf8f8f8fffffff9f9f9
+efefefffffffe7e7e7fdfdfdfbfbfbfffffff9f9f9f4f4f4f3f3f3f7f7f7e9e9e9f8f8f8
+ffffffe8e8e8f5f5f5edededf4f4f4eeeeeefffffffafafaf5f5f5f7f7f7f2f2f2fcfcfc
+ffffffe1e1e1fffffffffffffbfbfbeeeeeee5e5e5fbfbfbfffffffcfcfcf9f9f9ffffff
+fffffff2f2f2ffffffecececfefefee3e3e3f6f6f6fffffff7f7f7e5e5e5fcfcfcf0f0f0
+fbfbfbe3e3e3fffffffffffffcfcfcfcfcfcf7f7f7f2f2f2ecececf7f7f7fffffffcfcfc
+fffffff6f6f6f2f2f2fcfcfcf7f7f7ffffffe9e9e9fffffffafafaf9f9f9f1f1f1efefef
+ffffffe6e6e6ffffffe8e8e8fafafaf8f8f8f0f0f0d6d6d6fdfdfdfefefee9e9e9ffffff
+f5f5f5ffffffffffffeaeaeafffffff2f2f2e8e8e8fbfbfbfffffffdfdfdf1f1f1ffffff
+f2f2f2fafafaf3f3f3fbfbfbefefeffcfcfcf6f6f6fffffffafafaebebebffffffebebeb
+fffffffafafaf6f6f6fafafafefefefbfbfbf9f9f9fdfdfdffffffe7e7e7fffffffbfbfb
+e5e5e5f2f2f2fdfdfdf7f7f7fffffffbfbfbedededf3f3f3fffffffffffffbfbfbffffff
+f6f6f6fffffff0f0f0efefeffefefefffffff7f7f7fffffffbfbfbeeeeeeffffffefefef
+fffffffffffffafafaf3f3f3edededfffffff0f0f0ffffffe8e8e8ddddddffffffeeeeee
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000020202000000010101f3f3f3fcfcfcfffffffefefefffffffffffff9f9f9
+f5f5f5f7f7f7e2e2e2fffffffdfdfdfbfbfbeeeeeefafafafbfbfbf4f4f4f2f2f2ffffff
+fffffffefefefcfcfcfefefef4f4f4f0f0f0fffffffffffff8f8f8f2f2f2f5f5f5ffffff
+fffffff6f6f6f4f4f4fafafafffffff0f0f0f9f9f9fffffff7f7f7f3f3f3fbfbfbf3f3f3
+f8f8f8dededeffffffedededffffffffffffdfdfdff8f8f8f7f7f7f8f8f8f9f9f9fafafa
+fbfbfbfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfffffff3f3f3f2f2f2ffffff
+f6f6f6fdfdfdeaeaeafffffffefefef8f8f8eeeeeef6f6f6fffffff3f3f3f7f7f7f6f6f6
+f0f0f0fffffffffffff8f8f8f8f8f8fcfcfcf4f4f4fbfbfbfffffff5f5f5fefefefefefe
+fffffffbfbfbf9f9f9f3f3f3f4f4f4fffffffcfcfcffffffedededfcfcfcf8f8f8fefefe
+fdfdfdf6f6f6ffffffedededffffffeeeeeef7f7f7edededfcfcfcecececfbfbfbfdfdfd
+f4f4f4efefeffffffff0f0f0fdfdfdf4f4f4ffffffedededf7f7f7fffffff4f4f4fdfdfd
+fbfbfbfafafafffffff2f2f2fefefefbfbfbfffffff7f7f7f9f9f9f3f3f3f6f6f6ffffff
+ffffffe7e7e7fffffffdfdfdf6f6f6f3f3f3f9f9f9fffffffbfbfbfffffff5f5f5f1f1f1
+fffffffbfbfbf1f1f1f9f9f9f7f7f7fffffffcfcfcf8f8f8f7f7f7f6f6f6fffffff1f1f1
+f7f7f7f7f7f7eeeeeefffffffdfdfdf9f9f9eaeaeaf0f0f0ecececfcfcfcfcfcfcffffff
+ffffffe3e3e3fafafaf1f1f1e5e5e5f7f7f7ffffffe6e6e6f8f8f8f8f8f8ffffffffffff
+f8f8f8e8e8e8ffffffe7e7e7fcfcfcfffffff1f1f1ebebebfafafafffffff4f4f4fafafa
+fdfdfdf8f8f8f9f9f9f5f5f5fffffff5f5f5f7f7f7fbfbfbfefefefffffff2f2f2e7e7e7
+ffffffefefefe5e5e5fffffffffffff9f9f9f8f8f8e4e4e4fffffffbfbfbfcfcfcf8f8f8
+f2f2f2fffffffcfcfcfffffffffffffcfcfcf4f4f4fcfcfcfffffffcfcfcffffffececec
+f5f5f5fefefef6f6f6f1f1f1fbfbfbf8f8f8fffffff1f1f1fffffffcfcfcffffffefefef
+fbfbfbfbfbfbe1e1e1f1f1f1f6f6f6f8f8f8fffffff9f9f9f0f0f0fdfdfdffffffffffff
+f7f7f7fffffff6f6f6edededfcfcfcf0f0f0fffffff8f8f8fffffffffffff0f0f0efefef
+f6f6f6f9f9f9f9f9f9fffffffbfbfbfffffff3f3f3eeeeeefefefefafafafffffffefefe
+f2f2f2fffffff0f0f0fdfdfdffffffffffffffffffffffffe6e6e6fffffff9f9f9fafafa
+fbfbfbf8f8f8fffffffffffffffffff3f3f3fffffffbfbfbf0f0f0fffffffcfcfcffffff
+fffffffdfdfdeeeeeefffffff6f6f6fafafafdfdfdf1f1f1fffffffcfcfce9e9e9ffffff
+f2f2f2fffffff9f9f9e0e0e0fffffffafafaf0f0f0fcfcfcf4f4f4edededfdfdfdf2f2f2
+fdfdfdf7f7f7fffffffbfbfbf4f4f4fdfdfdfffffffffffffffffffbfbfbfdfdfdf8f8f8
+ffffffe9e9e9fafafaf8f8f8fffffff6f6f6fdfdfdf1f1f1f9f9f9ffffffececece2e2e2
+ffffffebebebf9f9f9ffffffffffffefefefffffffebebebfffffff1f1f1fbfbfbffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000030303000000000000f1f1f1f9f9f9fefefefdfdfdfdfdfdf3f3f3ffffff
+f3f3f3fffffff4f4f4fdfdfdf2f2f2fffffffffffff9f9f9f7f7f7ffffffefefefffffff
+f7f7f7fffffff5f5f5f4f4f4fffffffefefefafafaf8f8f8fdfdfdf5f5f5fffffff5f5f5
+f5f5f5fffffff5f5f5fdfdfdfffffffffffffbfbfbfffffffdfdfdfefefeffffffefefef
+fbfbfbfffffffbfbfbefefefeeeeeeddddddf4f4f4f9f9f9f6f6f6f7f7f7f8f8f8f9f9f9
+fafafafcfcfcfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfafafaf8f8f8fffffff7f7f7fefefe
+fcfcfcfffffffffffff0f0f0fcfcfcf2f2f2fffffff1f1f1f9f9f9fcfcfcf8f8f8ffffff
+fdfdfdfcfcfcf6f6f6fdfdfdfffffff4f4f4fcfcfcf9f9f9fafafaf3f3f3fffffff9f9f9
+f9f9f9fffffff8f8f8fffffffdfdfdf2f2f2f9f9f9f8f8f8fdfdfdfafafafffffffcfcfc
+f5f5f5ffffffefefeffffffffffffffdfdfde5e5e5fffffff8f8f8f1f1f1fdfdfdffffff
+eeeeeefffffff3f3f3fafafafffffffcfcfcfffffffbfbfbf8f8f8f1f1f1f9f9f9ffffff
+f9f9f9f9f9f9fdfdfdfffffff7f7f7fbfbfbffffffffffffecececfffffff9f9f9f5f5f5
+f1f1f1fffffff6f6f6fffffff8f8f8fffffffffffff9f9f9fcfcfcefefeffafafafdfdfd
+e3e3e3f3f3f3fffffffffffff9f9f9f9f9f9fcfcfcfffffffffffffffffff0f0f0fcfcfc
+fffffffefefefffffff5f5f5f2f2f2fcfcfcfdfdfdfffffffffffff3f3f3fcfcfcf6f6f6
+f8f8f8fdfdfdddddddebebebfffffffffffff0f0f0fffffff7f7f7edededf4f4f4f8f8f8
+fffffffffffff7f7f7f9f9f9fffffff0f0f0fafafafffffff5f5f5f3f3f3fffffff8f8f8
+fdfdfdfdfdfdf8f8f8fdfdfdf1f1f1fffffffffffff8f8f8fffffff7f7f7f6f6f6ffffff
+f3f3f3f2f2f2ffffffecececf9f9f9fefefefefefefffffff5f5f5f1f1f1f1f1f1ffffff
+fffffffffffffffffff5f5f5f2f2f2f8f8f8ffffffedededf4f4f4fbfbfbfcfcfcfdfdfd
+f6f6f6fefefef0f0f0fffffffffffff9f9f9fffffffffffff2f2f2fffffff9f9f9fefefe
+f8f8f8fdfdfdfefefef9f9f9fffffff7f7f7f2f2f2fdfdfdfffffffcfcfcf7f7f7ededed
+fafafaf7f7f7fdfdfdfffffff4f4f4ffffffe8e8e8fffffff9f9f9f8f8f8f4f4f4ffffff
+fffffff9f9f9fffffffffffffefefef2f2f2fffffffefefefffffffffffff6f6f6fdfdfd
+fffffffefefeecececfffffffffffffffffff9f9f9f6f6f6fdfdfdf9f9f9fffffffafafa
+fffffffffffff8f8f8fffffff5f5f5fffffffffffff9f9f9fffffffffffffbfbfbf5f5f5
+fdfdfdfffffff6f6f6f6f6f6fdfdfdfffffffffffff8f8f8fefefeffffffeeeeeef5f5f5
+fdfdfdf6f6f6fffffffffffff1f1f1f5f5f5fffffffffffff8f8f8fffffff4f4f4f6f6f6
+fefefefffffff3f3f3ffffffffffffefefeffafafaf8f8f8fafafaf4f4f4fffffffcfcfc
+fcfcfcfffffff9f9f9fffffff8f8f8f9f9f9f9f9f9fffffff8f8f8e9e9e9fdfdfdffffff
+e7e7e7ffffffffffffefefeffffffff6f6f6fafafaffffffe1e1e1fffffff9f9f9f6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfefefef9f9f9fefefef6f6f6ffffff
+fcfcfcecececfffffff9f9f9fffffff1f1f1fffffffdfdfdf3f3f3fefefefcfcfcf6f6f6
+fefefefdfdfdfdfdfdfefefefffffffdfdfdfefefefffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffe5e5e5fdfdfdf3f3f3fffffff1f1f1fffffff0f0f0ffffffe3e3e3e7e7e7f3f3f3
+f4f4f4fbfbfbfefefee8e8e8ffffffe8e8e8ffffffffffffebebebfefefefffffffafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdffffff
+fffffffffffffdfdfdfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefefdfdfdfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffe3e3e3fcfcfce4e4e4
+ffffffefefeff5f5f5fffffffefefefffffffffffffffffffefefefefefeffffffffffff
+ffffffe8e8e8fbfbfbf0f0f0fdfdfdf7f7f7fffffff9f9f9fcfcfcffffffedededf6f6f6
+fcfcfcf7f7f7fffffff7f7f7fffffffffffffffffffffffffffffffffffffefefefcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafafafafffffff9f9f9
+fbfbfbf9f9f9f3f3f3fefefefefefeffffffffffffedededf6f6f6f7f7f7ffffffe4e4e4
+ffffffe2e2e2fafafaf8f8f8e6e6e6fcfcfcfffffff6f6f6fdfdfdfefefefefefeffffff
+fffffffefefefefefefdfdfde5e5e5fffffff0f0f0fffffffdfdfdf8f8f8fbfbfbf4f4f4
+fffffff1f1f1fffffffbfbfbfffffffcfcfcf9f9f9efefeff0f0f0fefefefafafae6e6e6
+f1f1f1f5f5f5f0f0f0fcfcfcfffffffffffffefefefdfdfdfdfdfdffffffffffffffffff
+f9f9f9fbfbfbfffffffafafaf6f6f6ffffffe8e8e8f7f7f7fffffff2f2f2fffffffcfcfc
+fffffffbfbfbfffffffefefefffffff3f3f3fffffff2f2f2fdfdfdefefeffffffffafafa
+fffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfbfbfbfcfcfcfdfdfdffffff
+fffffffffffffffffffcfcfcfdfdfdfefefefffffffffffffffffffefefefdfdfdfcfcfc
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffbfbfbffffffececec
+ffffffffffffe2e2e2fffffff4f4f4fffffffefefee8e8e8fefefef4f4f4f1f1f1ffffff
+fffffffefefefffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefefffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+e7e7e7f9f9f9f4f4f4fffffff6f6f6ffffffebebebdcdcdce3e3e3fffffffffffff7f7f7
+fefefefbfbfbfdfdfdfffffffffffff8f8f8f5f5f5ffffffffffffffffffffffffefefef
+fefefefefefefefefefffffffffffffefefefefefefefefefdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffffffffefefefffffffefefefdfdfdfefefe
+fffffffffffffffffffdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefef2f2f2fffffff6f6f6ffffff
+e4e4e4fffffffdfdfdf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+f2f2f2fffffffdfdfdfefefefbfbfbe0e0e0ffffffe5e5e5fcfcfcfdfdfdf3f3f3f7f7f7
+fafafaf9f9f9fffffffafafafdfdfdfdfdfdfefefefffffffffffffffffffffffffefefe
+fcfcfcfdfdfdfefefefffffffffffffffffffffffffefefefffffff3f3f3f2f2f2fbfbfb
+ffffffffffffeeeeeefffffff2f2f2f2f2f2fafafafffffffbfbfbefefefdfdfdffbfbfb
+fcfcfcfffffff5f5f5f4f4f4fcfcfcf7f7f7f2f2f2f5f5f5fefefefefefefefefeffffff
+fffffffefefefefefefefefeffffffd6d6d6f2f2f2fbfbfbfdfdfdf4f4f4fafafaececec
+edededf1f1f1dededeffffffe7e7e7f6f6f6fffffffdfdfdf4f4f4fffffffcfcfcf5f5f5
+f7f7f7fafafafffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fffffffbfbfbfafafaf8f8f8fffffffffffff6f6f6fdfdfdfafafafbfbfbfffffffefefe
+f7f7f7fffffffffffff4f4f4f8f8f8e9e9e9f1f1f1f9f9f9f1f1f1fffffffcfcfcf0f0f0
+fdfdfdfefefefefefefefefefefefefefefefffffffffffffefefefdfdfdfdfdfdfdfdfd
+fefefefffffffffffffffffffdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000020202f4f4f4fafafafdfdfdf4f4f4fdfdfdffffffe0e0e0
+fafafafcfcfcf5f5f5ffffffedededfcfcfcfdfdfdfbfbfbfffffffefefefffffff3f3f3
+fbfbfbfcfcfcfefefefefefefefefefdfdfdfcfcfcfbfbfbfcfcfcfdfdfdfefefeffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfd
+fbfbfbfffffff2f2f2ffffffecececeeeeeefffffffffffffffffffdfdfde3e3e3f4f4f4
+fffffffffffffdfdfdedededf8f8f8fffffffbfbfbebebebfffffff9f9f9e6e6e6f8f8f8
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffffffffefefefefefefffffffffffffefefefefefe
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefffffff8f8f8ffffffefefef
+fffffff2f2f2f9f9f9fffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9f5f5f5e5e5e5fcfcfcfffffff7f7f7f9f9f9fffffffcfcfcf6f6f6fcfcfcf8f8f8
+f8f8f8fdfdfdf8f8f8fdfdfdfcfcfcfdfdfdfefefefefefefffffffefefefefefefdfdfd
+fcfcfcfdfdfdfefefefffffffffffffffffffffffffffffffafafafafafafffffffafafa
+fefefef2f2f2ffffffecececfffffffbfbfbfcfcfce8e8e8f7f7f7fffffff4f4f4fcfcfc
+e5e5e5fffffff9f9f9ffffffe5e5e5f8f8f8fffffff9f9f9fefefefefefefefefefefefe
+fefefefefefefefefefefefee8e8e8ffffffffffffeeeeeefefefefefefef6f6f6ffffff
+fdfdfdfffffff4f4f4fffffff2f2f2fafafaffffffefefefffffffe2e2e2dededeffffff
+e3e3e3f7f7f7fbfbfbedededfcfcfcfdfdfdfffffffffffffffffffffffffffffffefefe
+fafafaf5f5f5f6f6f6f7f7f7f9f9f9f1f1f1f7f7f7fffffff7f7f7fbfbfbfdfdfdf7f7f7
+ffffffeaeaeaf0f0f0fffffffffffff7f7f7fffffff4f4f4f4f4f4fffffff1f1f1fdfdfd
+fefefefefefefefefefefefefefefefffffffffffffffffffffffffffffffdfdfdfcfcfc
+fcfcfcfefefefffffffffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000020202f4f4f4fafafafcfcfce9e9e9f9f9f9f3f3f3ffffff
+f6f6f6fffffffefefef3f3f3fffffff2f2f2e5e5e5ffffffe5e5e5eaeaeafafafaf7f7f7
+fbfbfbfefefefffffffefefefefefefffffffdfdfdf9f9f9fdfdfdfefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f6f6f6e4e4e4ffffffe5e5e5ecececfcfcfcf1f1f1000000000000e6e6e6ffffffdddddd
+f3f3f3fffffff9f9f9fffffff8f8f8fffffffffffff7f7f7fffffff5f5f5fcfcfcffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfffffffffffffefefeffffff
+fffffffffffffffffffdfdfdfffffffffffffefefefefefefefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffffdfdfdf1f1f1ffffff
+fcfcfcffffffeeeeeeedededfefefefdfdfdfcfcfcfdfdfdfefefefefefefefefefdfdfd
+fbfbfbfbfbfbffffffffffffebebebfdfdfd000000080808fcfcfcf1f1f1fffffff9f9f9
+f7f7f7fffffff2f2f2fffffffefefefffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4f8f8f8ffffffffffff
+f1f1f1fafafafffffff9f9f9f6f6f6f1f1f1fafafafffffff9f9f9f4f4f4f4f4f4fafafa
+ffffff020202020202eeeeeee1e1e1ffffffebebebf9f9f9fefefefefefefefefefdfdfd
+fdfdfdfefefefefefefefefeffffffe5e5e5f2f2f2fffffffcfcfcf6f6f6fafafaf5f5f5
+f7f7f7f9f9f9fcfcfc000000000000ffffffe0e0e0fafafadfdfdffffffff4f4f4d9d9d9
+0e0e0ee4e4e4fffffffcfcfcfcfcfcfdfdfdfefefefefefefffffffffffffffffffefefe
+fffffff7f7f7f9f9f9fffffffcfcfcfffffffcfcfcfdfdfdfdfdfdfffffffafafafafafa
+ffffffefefeff2f2f2fffffff6f6f6e2e2e2f6f6f6e9e9e9fffffff1f1f1ffffffffffff
+fffffffffffffefefefefefefefefefefefefdfdfdfbfbfbfefefefefefefefefefdfdfd
+fcfcfcfcfcfcfefefefffffffdfdfdfefefefefefeffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000010101f3f3f3f9f9f9fbfbfbfffffff5f5f5f6f6f6ebebeb
+fbfbfbfffffff6f6f6ffffffebebebfffffff6f6f6fafafafffffffffffff6f6f6ffffff
+fdfdfdfffffffffffffffffffffffffffffffffffffbfbfbfefefefefefeffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfffffffffffffffffffffffffefefefefefefefefefefefe
+ffffffe8e8e8fffffff6f6f6ebebeb111111161616040404353535e7e7e7fafafafcfcfc
+f5f5f5f4f4f4fffffffefefefefefeeaeaeafefefefffffffbfbfbeeeeeeffffffe0e0e0
+fffffffffffffefefefefefefefefefefefefffffffffffffdfdfdfdfdfdfcfcfcfcfcfc
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdffffff
+fffffffffffffdfdfdf9f9f9fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffefefefefefefefefef8f8f8f9f9f9f4f4f4ffffff
+fafafafcfcfcfffffffffffffffffffffffffdfdfdfefefefffffffffffffffffffefefe
+ffffffe9e9e9fffffff0f0f0ffffffecececffffff000000fdfdfdf0f0f0fffffff9f9f9
+f8f8f8fffffff1f1f1fffffffbfbfbfdfdfdfefefefefefefcfcfcfcfcfcfefefeffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfbfbfbffffffe8e8e8e9e9e9fafafa
+fdfdfdffffffeaeaeafffffffffffffbfbfbfefefefffffffafafae9e9e9ffffffebebeb
+ebebebf9f9f9030303fbfbfbffffffe7e7e7fffffffdfdfdfefefefdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfefefefafafafafafafffffffcfcfcf0f0f0fffffffdfdfdfbfbfb
+f9f9f9f9f9f9ffffffffffff020202fcfcfce7e7e7fbfbfbfffffff6f6f6eeeeeefdfdfd
+0a0a0afffffff8f8f8f4f4f4fcfcfcfcfcfcfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefe
+edededeeeeeefefefeffffffebebebeeeeeef3f3f3fafafae9e9e9f9f9f9fdfdfdededed
+fffffff8f8f8ffffffe2e2e2f9f9f9ffffffe6e6e6fffffff6f6f6eeeeeefffffff2f2f2
+fdfdfdfbfbfbfafafafbfbfbfefefefffffffefefefcfcfcfafafafdfdfdffffffffffff
+fdfdfdfbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefeffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000000000000000010101f2f2f2f8f8f8fafafae8e8e8f7f7f7131313000000
+000000000000313131000000262626eaeaeafcfcfcfafafa070707f1f1f1f6f6f6f3f3f3
+f9f9f9fefefefefefef7f7f7f7f7f7fcfcfcfbfbfbf6f6f6fcfcfcfcfcfcfdfdfdfdfdfd
+fcfcfcfafafaf7f7f7f6f6f6fcfcfcfbfbfbfbfbfbfbfbfbfafafafafafafafafafafafa
+f1f1f1f1f1f1fefefeeeeeeef9f9f9f0f0f0f9f9f9040404000000fffffff8f8f8e6e6e6
+fffffffbfbfbe6e6e6edededfffffffafafafafafac2c2c21d1d1d020202efefefffffff
+fcfcfcfbfbfbfafafaf9f9f9f9f9f9fafafafbfbfbfcfcfcf5f5f5f5f5f5f5f5f5f6f6f6
+f8f8f8fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcf9f9f9f9f9f9fafafafcfcfc
+fefefefdfdfdfafafaf7f7f7fafafafbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafa
+f7f7f7f7f7f7f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcf3f3f3ffffffefefeff7f7f7
+f6f6f6ededede7e7e7000000fcfcfcf9f9f9f7f7f7f8f8f8fbfbfbfcfcfcfafafaf7f7f7
+ebebebffffffeeeeeee9e9e9edededfffffff7f7f7050505fefefef4f4f4f9f9f9fafafa
+fbfbfbfbfbfbf5f5f5fffffff5f5f5f8f8f8fbfbfbfbfbfbfafafafbfbfbffffffffffff
+fdfdfdfdfdfdfdfdfdfcfcfcfbfbfbf9f9f9f8f8f8f7f7f7dbdbdbfffffffbfbfbfcfcfc
+f3f3f3e9e9e90000000f0f0f0000000c0c0c0000000c0c0c0000001414141515150f0f0f
+f1f1f1ffffff111111ececece7e7e7f7f7f7e7e7e7f8f8f8fcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcf4f4f4d8d8d8f4f4f40000002121210505051b1b1bececec
+f2f2f2ffffffedededeeeeee131313f6f6f6fefefed8d8d8e2e2e2f9f9f9eaeaeaf6f6f6
+000000ffffffe8e8e8fafafaf9f9f9f9f9f9fafafafafafafbfbfbfbfbfbfbfbfbfbfbfb
+fffffff3f3f3e9e9e9fbfbfbffffffdbdbdbffffffe9e9e9ffffff1b1b1b000000131313
+ecececf3f3f3fefefe0a0a0a080808000000ffffffe7e7e7f0f0f0fffffffcfcfce7e7e7
+f8f8f8f6f6f6f5f5f5f8f8f8fdfdfdfffffffffffffdfdfdf7f7f7fbfbfbffffffffffff
+fbfbfbf9f9f9f8f8f8fafafafbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000000000000000000000f2f2f2f7f7f7f9f9f9fcfcfc141414080808060606
+ffffffffffffd7d7d72c2c2c000000ffffffececec0000000e0e0efbfbfbfffffffcfcfc
+f7f7f7fcfcfcfafafaf1f1f1f0f0f0f7f7f7f8f8f8f2f2f2f7f7f7f8f8f8f9f9f9fafafa
+f9f9f9f7f7f7f5f5f5f4f4f4fafafafafafaf9f9f9f9f9f9f9f9f9f8f8f8f8f8f8f8f8f8
+fcfcfcfffffffdfdfdfffffff5f5f5f8f8f8ffffff0a0a0a2a2a2af6f6f6e7e7e7fcfcfc
+f9f9f9e7e7e7f9f9f9ffffffececece7e7e7ffffff0d0d0d0c0c0c252525000000fefefe
+fbfbfbfafafaf8f8f8f7f7f7f7f7f7f8f8f8fafafafbfbfbf7f7f7f6f6f6f6f6f6f6f6f6
+f8f8f8fbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfafafaf8f8f8f6f6f6f5f5f5
+f7f7f7f8f8f8f8f8f8f8f8f8f6f6f6f7f7f7fafafafbfbfbfbfbfbfafafaf7f7f7f6f6f6
+f7f7f7f7f7f7f7f7f7f7f7f7f6f6f6f6f6f6f6f6f6f6f6f6fffffff1f1f1fdfdfdeeeeee
+f8f8f8ffffff151515fffffff8f8f8f4f4f4f1f1f1f3f3f3f7f7f7f8f8f8f5f5f5f2f2f2
+fafafafffffff5f5f5fffffffffffff0f0f0f9f9f90c0c0cfffffff9f9f9efefeffbfbfb
+fefefef6f6f6fcfcfcfdfdfdf5f5f5f8f8f8fafafaf9f9f9f5f5f5f5f5f5fafafafefefe
+f8f8f8f8f8f8f9f9f9fafafafafafaf9f9f9f9f9f9f8f8f8f6f6f6f7f7f7f5f5f5f6f6f6
+fefefe090909fefefe0e0e0ef7f7f7fcfcfcffffff000000f9f9f9ffffffededed030303
+f7f7f7ffffff050505edededfffffffdfdfdf2f2f2fffffffbfbfbfafafaf8f8f8f7f7f7
+f7f7f7f8f8f8fafafafbfbfbfafafa2121211a1a1affffffe4e4e4f8f8f8d5d5d5202020
+0d0d0dffffffd4d4d4fcfcfc050505fdfdfdd8d8d8ffffffffffffc9c9c9ffffffe4e4e4
+f2f2f2eaeaeafffffff1f1f1f2f2f2f5f5f5f9f9f9fcfcfcfdfdfdfafafaf7f7f7f5f5f5
+c7c7c7f0f0f0fefefefcfcfcd7d7d7262626e8e8e8f8f8f8f5f5f5c7c7c7444444070707
+f4f4f4f0f0f0fffffff6f6f6000000ffffffecececfffffffbfbfbf6f6f6c8c8c8ffffff
+fafafaf7f7f7f4f4f4f7f7f7fbfbfbfdfdfdfbfbfbf8f8f8f7f7f7fafafafdfdfdfcfcfc
+f7f7f7f5f5f5f7f7f7fafafafafafaf9f9f9f9f9f9f9f9f9fafafafbfbfbfdfdfdfefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000000000f1f1f1f7f7f7f9f9f9f9f9f9060606090909efefef
+fdfdfdccccccfffffff6f6f60c0c0cfafafafafafa060606161616f3f3f3ffffffffffff
+fcfcfcfffffffefefef3f3f3f2f2f2fbfbfbfdfdfdf7f7f7f3f3f3f4f4f4f6f6f6f8f8f8
+f8f8f8f7f7f7f5f5f5f4f4f4fbfbfbfbfbfbfafafafafafafafafaf9f9f9f9f9f9f9f9f9
+f4f4f4f8f8f8e7e7e7f7f7f7ffffffebebebeaeaea050505010101fffffff4f4f4f6f6f6
+fffffffdfdfdf8f8f8e9e9e9f9f9f9f2f2f2dcdcdc131313000000050505252525ececec
+fcfcfcfbfbfbf9f9f9f7f7f7f7f7f7f9f9f9fbfbfbfcfcfcfffffffefefefcfcfcfafafa
+f9f9f9fafafafcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcf8f8f8f2f2f2efefef
+f1f1f1f5f5f5f8f8f8fafafaf2f2f2f5f5f5f8f8f8fbfbfbfbfbfbf8f8f8f5f5f5f2f2f2
+fefefefdfdfdfbfbfbf8f8f8f5f5f5f2f2f2f0f0f0efefeff7f7f7f1f1f1f2f2f2ffffff
+e8e8e8ebebeb5c5c5cf1f1f1fcfcfcf8f8f8f5f5f5f7f7f7fbfbfbfdfdfdfafafaf6f6f6
+f4f4f4eaeaeafefefef2f2f2f4f4f4f6f6f6fcfcfc020202fffffffdfdfde9e9e9fbfbfb
+fffffff2f2f2fffffffcfcfcf9f9f9fcfcfcfcfcfcf7f7f7f1f1f1eeeeeef1f1f1f5f5f5
+f6f6f6f7f7f7f8f8f8fafafafbfbfbfcfcfcfcfcfcfcfcfce7e7e7fafafae7e7e7fafafa
+ffffff000000fffffff4f4f4ffffffe8e8e8efefef0a0a0af3f3f3fffffff3f3f3efefef
+f2f2f2f8f8f8101010f5f5f5f8f8f8eaeaeaffffffefefeffafafaf9f9f9f7f7f7f5f5f5
+f5f5f5f7f7f7f9f9f9fafafa090909000000f1f1f1e7e7e7fffffffffffff3f3f3ffffff
+1c1c1c000000fbfbfbffffff020202ecececffffffe7e7e7ddddddf4f4f4ecececf7f7f7
+fffffff6f6f6e3e3e3ffffffedededf2f2f2fafafafffffffffffffbfbfbf4f4f4efefef
+fcfcfcffffffedededf9f9f9ffffff000000ffffffebebebfffffffbfbfb020202000000
+0d0d0dfffffffffffff0f0f0050505edededf0f0f0f6f6f6f1f1f1ffffffffffffe1e1e1
+fffffffcfcfcf7f7f7f7f7f7f9f9f9f9f9f9f4f4f4efefeff8f8f8fbfbfbfbfbfbf8f8f8
+f3f3f3f2f2f2f7f7f7fcfcfcf9f9f9f8f8f8f8f8f8f8f8f8f9f9f9fbfbfbfdfdfdfefefe
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+020202000000000000000000040404f4f4f4f5f5f5f3f3f3fefefe030303080808171717
+000000f7f7f7f1f1f1f4f4f4fafafaf3f3f30505052e2e2e000000000000090909ffffff
+ffffff0000000b0b0b000000050505171717010101ffffffffffff1111110c0c0c000000
+f2f2f2070707282828fafafaf0f0f0d8d8d81b1b1b090909030303121212020202f9f9f9
+fbfbfbf9f9f92121210505050000000e0e0e282828000000070707f3f3f3fffffff8f8f8
+e8e8e8ffffffffffffe8e8e8f2f2f2f8f8f8181818181818efefef000000050505f8f8f8
+f8f8f8fafafaffffffe9e9e9050505060606030303131313000000161616ffffffeeeeee
+f9f9f9fffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffefefef9f9f9f5f5f5fbfbfbedededf8f8f8fbfbfb
+fefefee6e6e60000001c1c1c070707fafafaffffffececec000000060606fdfdfd171717
+020202f9f9f9fafafa060606070707171717000000fffffffbfbfbfafafaeaeaeaefefef
+ffffff515151edededfcfcfcf0f0f0fffffffdfdfd171717020202000000ffffffefefef
+111111131313ffffff000000010101ffffffefefef020202fcfcfcf9f9f9f7f7f7232323
+020202020202f7f7f7e5e5e5f1f1f11e1e1e0606060101011111110a0a0a101010f2f2f2
+e9e9e9ffffff030303010101000000000000f0f0f0f0f0f0eeeeeee3e3e3f2f2f2ffffff
+060606f1f1f1f5f5f5ebebebfafafafbfbfbfbfbfb040404fefefef1f1f1ebebebfdfdfd
+f6f6f6fefefe060606000000030303171717fefefee1e1e1fefefef8f8f8fafafa161616
+1a1a1a000000f7f7f7fcfcfc090909e2e2e2fffffffdfdfdfafafaf6f6f6fffffff0f0f0
+fafafa000000fcfcfcfcfcfc151515000000040404010101191919f5f5f5fefefe050505
+000000ffffffefefeff4f4f4ffffff0000000c0c0c0e0e0ef2f2f2ebebebfffffffbfbfb
+050505070707fffffff8f8f80000000f0f0f000000181818d4d4d4ffffff131313fdfdfd
+121212fafafaf1f1f1f7f7f7020202f7f7f7f4f4f4ffffff0000000c0c0c000000ffffff
+ecececf4f4f40606060000000000001313130909090e0e0e0202020b0b0b040404212121
+fcfcfcffffffefefefebebeb0b0b0b171717070707fffffff3f3f3fffffffbfbfbfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+020202000000000000000000020202f1f1f1f2f2f2f0f0f0ffffff000000070707161616
+0b0b0b0e0e0e0a0a0a161616efefeffefefef6f6f60b0b0b1d1d1dffffffe1e1e1e2e2e2
+ffffff010101060606f3f3f3f6f6f60b0b0b010101f9f9f9e5e5e5dadada111111242424
+050505161616000000e3e3e3ffffff000000000000f3f3f3eaeaeaededed434343000000
+ffffffdedede000000202020f6f6f6edededf4f4f40d0d0d070707ffffffe1e1e1fbfbfb
+eeeeeeffffffe6e6e6fcfcfce3e3e3ffffff000000080808dddddd242424040404161616
+f8f8f8fffffff0f0f0090909020202f4f4f4f8f8f8f5f5f5ffffff000000f7f7f7e8e8e8
+f8f8f8f5f5f5ffffffe8e8e8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffffffffffffffffefefef9f9f9f6f6f6fafafaf0f0f0ffffffffffff
+f6f6f6060606fffffff1f1f1ffffff000000efefeff0f0f0ffffff0b0b0b080808fefefe
+fdfdfdfafafa1b1b1bdfdfdfeeeeeeffffffffffff000000070707e8e8e8ffffffefefef
+ffffff515151fffffff2f2f2ffffffd5d5d5525252fffffff8f8f8ffffff000000ffffff
+ececec0000001e1e1efffffff1f1f1f5f5f5ffffff000000ffffffe3e3e30e0e0e000000
+fffffff3f3f30c0c0cfffffffffffff0f0f0141414f1f1f1ffffffeaeaea000000f4f4f4
+ffffff000000fffffff5f5f5ffffffffffff0000001d1d1dedededfffffff5f5f5f7f7f7
+000000fbfbfbfbfbfbfdfdfdf2f2f2dcdcdce3e3e3060606fbfbfbfbfbfbeeeeeefefefe
+f9f9f9f3f3f3070707ffffffeaeaeaffffff212121fafafaf8f8f8ffffff030303ffffff
+ebebebf8f8f80a0a0aefefef050505ffffffe4e4e4f5f5f5f0f0f0fffffff3f3f3f4f4f4
+ffffff040404f7f7f7f5f5f5000000fffffff2f2f2ffffff0c0c0c0e0e0ef3f3f3ffffff
+060606f1f1f1fffffff5f5f5030303fbfbfbf0f0f0ededed000000ffffffd1d1d1080808
+f9f9f9fcfcfc000000f8f8f8ffffff000000fffffff5f5f5fffffffbfbfb000000e1e1e1
+f6f6f6000000fafafaffffff090909ffffffffffff000000191919efefefffffff000000
+efefefffffffe5e5e5161616ffffffdededee1e1e1000000fbfbfbf6f6f6f9f9f90e0e0e
+efefeff5f5f5ffffff080808f7f7f7f4f4f4f6f6f6000000fbfbfbe9e9e9fefefef7f7f7
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+030303000000000000000000000000efefeff1f1f1f0f0f0e7e7e7ffffff000000000000
+0404040606060000000a0a0a040404fdfdfdf6f6f6010101000000fffffff1f1f1fcfcfc
+0b0b0b0f0f0ffefefeefefefefefeffdfdfd0d0d0d080808f8f8f8f8f8f80707070f0f0f
+edededf6f6f60b0b0bfcfcfc000000000000fefefefffffffbfbfbe4e4e4000000070707
+dfdfdf161616000000ffffffd8d8d8ffffffeeeeee0d0d0d030303f4f4f4eeeeeef0f0f0
+fafafaffffffffffffe3e3e3ffffffffffff000000ffffffffffff000000060606010101
+ffffffefefeff8f8f81f1f1f030303080808070707030303ffffffccccccfffffff1f1f1
+e8e8e8fffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefafafaf7f7f7f7f7f7ffffffe9e9e9d8d8d8
+090909fffffff9f9f9f4f4f4eeeeeeffffff000000ffffffe7e7e7000000ffffffececec
+e1e1e1ffffff000000fffffffefefeedededf8f8f8080808ecececffffffe9e9e9fcfcfc
+646464f2f2f2e2e2e2f4f4f4ececec535353fffffff4f4f4fefefef0f0f02b2b2bf4f4f4
+fdfdfd282828e0e0e0d8d8d8e9e9e9ffffffeaeaea151515f6f6f6f8f8f8f2f2f2ffffff
+e2e2e20c0c0c060606e3e3e3ebebebffffff030303f9f9f9ebebebf0f0f0222222ebebeb
+ffffff000000f0f0f0ffffffefefeff2f2f2070707fefefefbfbfbdbdbdbe9e9e9333333
+f5f5f5ffffffe7e7e7e4e4e4fafafaf2f2f2ffffff030303e5e5e5f3f3f3f7f7f7ffffff
+f7f7f7dedede080808f5f5f5fefefef1f1f1080808fffffffdfdfd030303fffffff1f1f1
+fefefefcfcfc0b0b0bebebeb151515f3f3f3fdfdfdf3f3f3fffffff1f1f1f0f0f0ffffff
+eaeaea0d0d0dedededffffff0c0c0ce5e5e5ececece6e6e6f5f5f5000000edededf7f7f7
+1a1a1afffffff4f4f4030303ecececf6f6f6efefefffffff161616f0f0f0191919f5f5f5
+eeeeeeffffffffffffcdcdcdffffff232323eaeaeadddddde8e8e8ffffff000000ffffff
+f7f7f71a1a1a000000f7f7f7070707f5f5f5f4f4f4fffffff0f0f0e0e0e0060606060606
+fffffff3f3f3f4f4f40b0b0bebebebf7f7f7ffffff373737fcfcfcf2f2f2eaeaea000000
+fffffff5f5f5000000ffffffeeeeeefffffffefefe040404ffffffffffffe8e8e8fcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101000000010101000000000000f0f0f0f4f4f4f4f4f4fefefef5f5f5ebebebffffff
+f2f2f2fbfbfb0404040000000a0a0afffffffbfbfb1e1e1e131313efefefffffffededed
+0000001b1b1bf3f3f3fbfbfbfafafaf3f3f31e1e1e050505e7e7e7ffffff131313000000
+eeeeeeffffffeeeeeeefefef1414140303030404041010100000000b0b0b090909090909
+fafafa101010090909e5e5e5ffffffdbdbdbdbdbdb1a1a1a030303fcfcfcffffffececec
+ffffffe8e8e8fcfcfcfafafaf8f8f80202021b1b1b0000000000000a0a0a0000002c2c2c
+dbdbdbfffffffbfbfbececec0c0c0c1717170b0b0b252525030303080808f6f6f6fbfbfb
+ffffffededede5e5e5f0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfbf8f8f8efefeff0f0f0fffffff3f3f3
+0e0e0ee9e9e9e7e7e7fffffffcfcfcd2d2d2080808ffffffffffff131313ffffffe5e5e5
+fffffff2f2f2ffffff000000111111000000343434dcdcdcffffffd2d2d2f7f7f7bbbbbb
+f5f5f5f7f7f7ffffffe5e5e5ffffff2929291c1c1c212121252525505050444444ffffff
+fafafa2b2b2bf3f3f3fffffff6f6f6e0e0e0ffffff000000ffffffecececffffff020202
+090909ffffff0b0b0bffffffe5e5e5f9f9f9090909fffffff5f5f5fcfcfc000000f7f7f7
+e8e8e8ffffff0707070000000202020c0c0cf4f4f4f4f4f4fafafaffffff010101d4d4d4
+f0f0f0e2e2e2fcfcfcfdfdfdf9f9f9f2f2f2e9e9e9000000e5e5e5ffffffeeeeeef4f4f4
+ffffffffffff000000ffffffdadadaf7f7f71f1f1ff4f4f4ffffff0e0e0e121212000000
+0000002a2a2a000000f0f0f0000000ffffffe3e3e3f4f4f4f5f5f5fafafafcfcfcf7f7f7
+f8f8f8010101eaeaeaffffff000000ffffffffffffeeeeeefdfdfd010101ffffffefefef
+000000e7e7e7f3f3f3111111090909020202181818000000050505f9f9f9060606e2e2e2
+ffffffdadadae9e9e9fdfdfddedede0f0f0fedededfffffffcfcfcdfdfdf1b1b1bfcfcfc
+d7d7d7ffffff191919e4e4e4030303fdfdfdecececf2f2f20f0f0f171717eeeeee141414
+f6f6f6dededef5f5f5101010e4e4e4fbfbfbf1f1f1000000f4f4f4f5f5f5ffffff000000
+ecececffffff0000000505051313130000001212120d0d0dd0d0d0f5f5f5ffffffefefef
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000020202f3f3f3f9f9f9fbfbfbececec020202fefefef0f0f0
+f3f3f3e7e7e7ffffff000000000000ffffffe6e6e6000000070707f3f3f3f5f5f5efefef
+0a0a0a000000fdfdfdfafafaf9f9f9fcfcfc0000000f0f0ffffffffbfbfb0000000d0d0d
+fffffff0f0f0fafafaffffff020202000000ffffffe7e7e7ffffffffffffd5d5d5ffffff
+c7c7c7090909191919f0f0f0dededeffffffffffff000000121212f3f3f3e0e0e0e5e5e5
+fffffff2f2f2dcdcdcfffffff1f1f1151515edededfefefeffffffeeeeee121212020202
+000000fffffff6f6f6000000fbfbfbeaeaeaffffff0000001f1f1f0b0b0bedededececec
+f2f2f2fffffffffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffcfcfcfafafaf6f6f6ffffffeaeaeafefefe
+000000fffffffafafae8e8e8e6e6e6ffffff000000f9f9f9ffffff090909d8d8d8fefefe
+dededefffffff6f6f6181818fbfbfbffffffd5d5d5fffffff3f3f3e2e2e2ffffff797979
+e3e3e3ffffffedededeeeeeefefefe585858fcfcfcffffffe3e3e3f6f6f6f3f3f3eeeeee
+f5f5f5676767f6f6f6ffffffc4c4c4ffffffe8e8e8181818eeeeeef1f1f1000000fefefe
+fafafafefefe000000f1f1f1ffffffe4e4e4010101e0e0e0edededffffff0e0e0ef7f7f7
+ffffffc9c9c90b0b0bfffffff7f7f7fffffffcfcfcf6f6f6e2e2e2ffffff020202f6f6f6
+fbfbfbf7f7f7f6f6f6f4f4f4fffffff8f8f8f5f5f50f0f0ffffffff3f3f3eaeaeafbfbfb
+d4d4d4f2f2f2181818f1f1f1f3f3f3ffffff000000f6f6f6e9e9e9000000ffffffffffff
+fffffff6f6f6fefefefdfdfd1818180c0c0cf7f7f7fbfbfbfffffffffffff1f1f1fdfdfd
+000000121212fefefee8e8e8131313dadadaf3f3f3ffffffffffff000000f7f7f7ececec
+1f1f1ffefefeffffff070707e2e2e2ffffffdededeeaeaeaf0f0f0ededed020202fdfdfd
+f3f3f3fbfbfbf8f8f8fafafafcfcfc151515e5e5e5eeeeeeefefefffffff000000efefef
+ffffffececec111111131313000000ffffffe4e4e4181818ffffffcdcdcdffffff030303
+f4f4f4fffffffefefe000000fefefefefefefafafa060606f8f8f8e5e5e5ffffff050505
+f9f9f9ededed191919e7e7e7f4f4f4f5f5f5e1e1e1fffffff8f8f8f7f7f7fffffff1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000020202000000020202f4f4f4fbfbfbffffffffffff000000f4f4f4ffffff
+f8f8f8ffffff000000000000080808f2f2f2fdfdfd101010000000ffffffffffffececec
+ffffff0d0d0d0e0e0efdfdfdfcfcfc0b0b0b080808fdfdfdfafafaf7f7f71616160e0e0e
+ebebebfbfbfbe8e8e8f1f1f10000000b0b0b000000d9d9d9fcfcfcdcdcdcffffff080808
+f2f2f22020200000000000001e1e1e000000070707131313060606d7d7d7ffffffe3e3e3
+f8f8f8fefefefcfcfcffffff000000191919f6f6f6f0f0f0e7e7e7ebebeb111111050505
+050505f0f0f0f0f0f0020202f2f2f2f6f6f6ffffffffffff070707000000ffffffe3e3e3
+f4f4f4ebebebf6f6f6fdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffdfdfdfbfbfbfffffff1f1f1edededefefef
+e1e1e10c0c0cf7f7f7fefefefbfbfb040404eeeeeef7f7f7f8f8f8000000ffffffffffff
+f6f6f6fffffff6f6f60000001f1f1f0101010000001a1a1ad7d7d7fcfcfc161616e8e8e8
+ffffffedededfcfcfcfffffffdfdfd737373585858f2f2f2fffffff6f6f6414141ececec
+fdfdfd646464e9e9e9e8e8e8fffffff5f5f5ffffff161616fcfcfcfefefe212121f0f0f0
+ffffff000000131313f1f1f1eeeeeeffffff090909fffffff0f0f0f3f3f3000000ffffff
+ffffffffffff1616160000000b0b0b0000001c1c1ce3e3e3ffffff101010ffffffededed
+eaeaeafffffff1f1f1ecececf5f5f5f5f5f5f3f3f3000000f2f2f2e4e4e4ffffffe7e7e7
+ffffffececec0f0f0fe8e8e8f0f0f0ffffff0c0c0cedededffffff000000131313f5f5f5
+ebebebffffff030303d5d5d5fbfbfb000000161616efefeff9f9f9eeeeeefcfcfc111111
+000000fcfcfcf8f8f8f1f1f10a0a0affffffffffffe9e9e9040404ffffffebebebf6f6f6
+000000fefefee0e0e0111111181818f2f2f2d6d6d6ffffff030303fbfbfb0f0f0f000000
+efefefffffff0a0a0afdfdfdf2f2f2000000fffffffbfbfbf3f3f3ffffff040404e6e6e6
+fffffff7f7f7e9e9e9000000000000fafafaffffff000000f6f6f6ffffff000000292929
+c5c5c5efefefffffff040404fefefee6e6e6ffffff000000ffffffffffffd7d7d7060606
+f1f1f1f5f5f5000000202020fffffff0f0f0ffffff000000efefeffdfdfdebebebffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000020202000000000000f2f2f2fafafafefefee6e6e61111110b0b0b010101
+0606060a0a0a090909484848fafafae7e7e7f4f4f40c0c0c040404000000050505f9f9f9
+f6f6f60e0e0e0000000a0a0a0c0c0c000000090909ececece5e5e5161616010101060606
+080808f7f7f7f8f8f8f1f1f1ffffff0909091212121919190f0f0f0e0e0e000000171717
+f5f5f5e1e1e11b1b1b0b0b0b000000020202ffffff1010101818180a0a0ad2d2d2ffffff
+d7d7d7fcfcfcffffff0000002626260000000b0b0be7e7e7fffffffcfcfc0000000e0e0e
+0f0f0f000000fefefe0505051d1d1d131313000000030303010101fdfdfdfffffff7f7f7
+f5f5f5fffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffffffffefefefdfdfdecececfefefeffffffffffff
+f2f2f2ebebeb0b0b0b080808000000f5f5f5ffffffd2d2d21111110404040c0c0ccfcfcf
+f4f4f4f6f6f6000000ffffffedededcacacaffffff000000222222dfdfdf020202fafafa
+f0f0f0ffffffffffffe2e2e2f8f8f8e0e0e0909090737373383838474747eeeeeefcfcfc
+3f3f3f6262625e5e5ef6f6f6ddddddededed5252523636363c3c3cfffffffefefe4c4c4c
+1b1b1bededed0909090a0a0affffff030303000000050505fafafa0808082020200c0c0c
+f7f7f70c0c0cfafafafdfdfdf5f5f5fefefe0000002f2f2ff2f2f2000000f5f5f5fefefe
+fbfbfbf2f2f2fbfbfbf6f6f6eeeeeef8f8f81616160c0c0c000000ffffffd7d7d7f5f5f5
+cfcfcf1111110d0d0d1a1a1afdfdfd000000080808000000eaeaeaffffff0c0c0c060606
+121212060606ebebebfffffff4f4f4fefefefcfcfc0606061818180a0a0a000000e6e6e6
+ffffffefefeff4f4f4ededed0000000808080000000f0f0ff4f4f4f8f8f8fffffffcfcfc
+000000ffffffececece2e2e2020202000000303030060606f4f4f4f9f9f9f5f5f50b0b0b
+0f0f0f0000000d0d0dfffffffdfdfd0808080c0c0c070707e8e8e8000000101010101010
+e1e1e1fefefef6f6f6ffffff090909f5f5f5ffffffffffff070707010101ffffff000000
+0a0a0affffff000000151515060606ffffff0000000c0c0c000000e8e8e81e1e1e050505
+040404e5e5e5ffffff000000000000161616101010fffffff1f1f1fffffffffffff4f4f4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000020202000000000000efefeff7f7f7fcfcfcf7f7f7eeeeeefffffff6f6f6
+f4f4f4ffffffe9e9e9d3d3d3f9f9f9ffffffe6e6e6fffffffbfbfbebebebfffffff3f3f3
+fffffff8f8f8f8f8f8fbfbfbfffffffffffffafafafcfcfcfafafae7e7e7fcfcfcf8f8f8
+fefefefcfcfcdadadafefefee0e0e0ffffffedededfafafaf5f5f5fffffffbfbfbf4f4f4
+fcfcfcfefefeebebebf6f6f6f1f1f1ffffffe4e4e4edededfffffff7f7f7ffffffededed
+f2f2f2fffffff6f6f6fffffff7f7f7fffffffbfbfbfcfcfcfdfdfdefefeffefefef5f5f5
+e6e6e6edededffffffe3e3e3f4f4f4f8f8f8f4f4f4fbfbfbfdfdfdfffffff6f6f6f6f6f6
+e8e8e8f4f4f4fffffff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffffffffffffffdfdfdfffffff6f6f6f5f5f5f5f5f5
+ffffffffffffd8d8d8fffffffffffff0f0f0f0f0f0fffffff2f2f2f2f2f2f5f5f5ffffff
+ffffffdddddd191919fffffff6f6f6fdfdfdedededfefefe161616000000fefefeffffff
+f3f3f3f8f8f8fffffff3f3f3fefefef9f9f9f7f7f7f5f5f5f7f7f7fbfbfbffffffe3e3e3
+fffffff6f6f6f8f8f8efefeffefefeefefeffffffff4f4f4fafafaf3f3f3eeeeeeeaeaea
+fdfdfdefefefffffffebebebfcfcfcfcfcfcfffffffafafae7e7e7fcfcfcecececf1f1f1
+e6e6e6000000f8f8f8dfdfdffffffff9f9f9fdfdfd020202040404ffffffe7e7e7ffffff
+f6f6f6f5f5f5e7e7e7fefefefdfdfdf4f4f4fdfdfdf0f0f0fefefeecececffffffe0e0e0
+fffffffbfbfbfbfbfbf2f2f2fffffff0f0f0fbfbfbe9e9e9ffffffe1e1e1f9f9f9fefefe
+e9e9e9f1f1f1f6f6f6f4f4f4f8f8f8f3f3f3f3f3f3efefeffffffff4f4f4f7f7f7efefef
+e1e1e1ffffffd0d0d0e0e0e0fffffff1f1f1fffffffbfbfbefefefdededeffffffe6e6e6
+080808fcfcfcffffffffffffefefefffffffe0e0e0e1e1e1fffffff1f1f1e5e5e5f7f7f7
+fffffff4f4f4ffffffeaeaeae4e4e4ffffffdadadaf5f5f5fbfbfbffffffefefefffffff
+e6e6e6e5e5e5ffffffd8d8d8fcfcfcdfdfdff7f7f7d2d2d2ffffffecececefefeffdfdfd
+e5e5e5f8f8f8fafafaf9f9f9edededf6f6f6e9e9e9fdfdfdfffffffefefef7f7f7ffffff
+fdfdfdfffffff6f6f6ffffffffffffdbdbdbf3f3f3fafafaf3f3f3fefefeebebebffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000050505f5f5f5f6f6f6f3f3f3fffffffbfbfbfffffff1f1f1
+fcfcfcf0f0f0f9f9f9f5f5f5f7f7f7fafafafbfbfbf7f7f7f2f2f2f1f1f1f6f6f6fcfcfc
+f6f6f6f9f9f9fbfbfbfafafaf6f6f6f2f2f2f2f2f2f3f3f3f7f7f7f6f6f6f5f5f5f4f4f4
+f6f6f6f9f9f9fcfcfcfefefef8f8f8f7f7f7f6f6f6f3f3f3f2f2f2f5f5f5fafafafefefe
+f6f6f6f7f7f7fafafafcfcfcfdfdfdfcfcfcfbfbfbf9f9f9fafafaf9f9f9f9f9f9fbfbfb
+fefefefffffffffffffffffff4f4f4f8f8f8fbfbfbfbfbfbf7f7f7f5f5f5f7f7f7f9f9f9
+f7f7f7f7f7f7f7f7f7f8f8f8f9f9f9fcfcfcfefefefffffffefefef9f9f9f9f9f9ffffff
+fffffffdfdfdfdfdfdfffffffcfcfcfefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffefefefefefefefefe
+fffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcf6f6f6f9f9f9ffffff
+fffffff4f4f4f6f6f6ffffffeeeeeeecececf3f3f3fffffffffffffdfdfdf5f5f5f3f3f3
+d9d9d9ffffff000000fffffff3f3f3e1e1e1ffffff000000f6f6f6fbfbfbfcfcfcf8f8f8
+f9f9f9fffffffffffffbfbfbf1f1f1f7f7f7fcfcfcfbfbfbf7f7f7f6f6f6fbfbfbffffff
+fdfdfdfafafaf7f7f7f9f9f9fbfbfbfafafaf4f4f4eeeeeefbfbfbfcfcfcfcfcfcf9f9f9
+f6f6f6f6f6f6fafafafefefef5f5f5fcfcfcfffffffcfcfcfbfbfbfdfdfdf9f9f9f2f2f2
+f8f8f81a1a1af6f6f6fdfdfdfbfbfbeeeeee0f0f0febebebefefeff3f3f3f7f7f7f8f8f8
+f7f7f7f7f7f7fafafafdfdfdf3f3f3f6f6f6f9f9f9fbfbfbfbfbfbfafafafbfbfbfbfbfb
+f9f9f9f8f8f8f6f6f6f6f6f6f8f8f8fbfbfbfffffffffffff7f7f7f6f6f6f6f6f6fbfbfb
+fffffffffffff9f9f9f3f3f3fffffffcfcfcf7f7f7f3f3f3f3f3f3f6f6f6fbfbfbffffff
+f9f9f9f8f8f8f6f6f6f4f4f4f3f3f3f4f4f4f5f5f5f6f6f6ffffff0b0b0be8e8e8fefefe
+0a0a0af4f4f4ffffffedededf6f6f6f7f7f7f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8
+f6f6f6f7f7f7f8f8f8f7f7f7f7f7f7f9f9f9fcfcfcfffffffafafaf9f9f9f1f1f1e9e9e9
+f0f0f0fcfcfcfbfbfbf0f0f0fefefefdfdfdfcfcfcfafafaf8f8f8f6f6f6f5f5f5f4f4f4
+fffffff0f0f0e9e9e9f5f5f5fffffffffffff8f8f8f6f6f6fbfbfbf1f1f1eaeaeaededed
+f7f7f7fafafaf1f1f1e6e6e6fffffffdfdfdfbfbfbfbfbfbfdfdfdfefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000020202000000000000f0f0f0f6f6f6f9f9f9f8f8f8f7f7f7fcfcfcf5f5f5
+f9f9f9f4f4f4fafafafbfbfbf1f1f1f5f5f5f9f9f9fafafaf7f7f7f5f5f5f6f6f6f7f7f7
+f7f7f7fdfdfdfbfbfbfffffffafafafffffffcfcfcfffffff8f8f8f8f8f8f8f8f8f8f8f8
+f8f8f8f8f8f8f9f9f9f9f9f9fefefefafafaf6f6f6f5f5f5f7f7f7fafafafafafafafafa
+fcfcfcfdfdfdfefefefefefefefefefcfcfcf9f9f9f8f8f8f9f9f9f7f7f7f7f7f7f8f8f8
+fafafafbfbfbfafafaf9f9f9fbfbfbf9f9f9f7f7f7f6f6f6f6f6f6f7f7f7f7f7f7f7f7f7
+f5f5f5f5f5f5f6f6f6f8f8f8fafafafbfbfbf9f9f9f8f8f8fbfbfbeeeeeef4f4f4e9e9e9
+fbfbfbefefeffefefefffffffefefeffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfcfcfcf8f8f8fafafaffffff
+fefefef7f7f7f7f7f7fefefefffffffcfcfcf7f7f7f9f9f9fafafaf8f8f8f8f8f8fbfbfb
+fdfdfdf7f7f7ffffff0000000a0a0a1d1d1d000000fffffff2f2f2f6f6f6f7f7f7f4f4f4
+f5f5f5fafafafafafaf7f7f7fbfbfbfefefefffffffdfdfdf9f9f9f6f6f6f8f8f8fbfbfb
+fcfcfcf9f9f9f8f8f8fbfbfbfffffffffffffafafaf5f5f5fafafafafafaf9f9f9f8f8f8
+f6f6f6f7f7f7fafafafdfdfdf8f8f8fdfdfdfffffffdfdfdfdfdfdfffffffcfcfcf6f6f6
+f9f9f9f6f6f60a0a0a0202020303030f0f0ffdfdfdfffffff9f9f9fbfbfbfdfdfdfdfdfd
+fcfcfcfcfcfcfdfdfdfdfdfdf5f5f5f6f6f6f7f7f7f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9
+fffffffffffffbfbfbf8f8f8f5f5f5f4f4f4f4f4f4f4f4f4f9f9f9f7f7f7f7f7f7fafafa
+fffffffffffffafafaf5f5f5fcfcfcfafafaf9f9f9f7f7f7f7f7f7f9f9f9fbfbfbfcfcfc
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8f8f8f8f7f7f7e6e6e60101010e0e0e080808
+e5e5e5ebebebe3e3e3fbfbfbf5f5f5f5f5f5f6f6f6f7f7f7f8f8f8f8f8f8f7f7f7f7f7f7
+f6f6f6f7f7f7f8f8f8f8f8f8f8f8f8f9f9f9fcfcfcfffffff0f0f0f9f9f9fcfcfcf8f8f8
+f9f9f9fdfdfdf9f9f9efefeff6f6f6f6f6f6f7f7f7f8f8f8f9f9f9f9f9f9fafafafafafa
+fffffff5f5f5f2f2f2fbfbfbfffffffcfcfcf9f9f9fdfdfdf7f7f7f4f4f4f3f3f3f6f6f6
+fcfcfcfefefefcfcfcf8f8f8fafafaf9f9f9f8f8f8f9f9f9fcfcfcfefefefffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101040404000000000000edededf6f6f6fdfdfdf3f3f3f8f8f8f8f8f8fdfdfd
+f5f5f5f9f9f9f8f8f8fcfcfcf6f6f6f9f9f9fcfcfcfefefefbfbfbf6f6f6f0f0f0ececec
+f5f5f5fafafaf4f4f4fcfcfcf0f0f0f6f6f6efefeff3f3f3fafafafbfbfbfcfcfcfbfbfb
+fafafaf8f8f8f6f6f6f5f5f5fffffffafafaf5f5f5f5f5f5fafafafcfcfcf8f8f8f4f4f4
+fcfcfcfcfcfcfdfdfdfefefefdfdfdfbfbfbf9f9f9f8f8f8f7f7f7f7f7f7f6f6f6f7f7f7
+f8f8f8f7f7f7f4f4f4f1f1f1fefefef8f8f8f3f3f3f2f2f2f6f6f6fafafafafafaf8f8f8
+f8f8f8f8f8f8f8f8f8fbfbfbfefefefdfdfdf8f8f8f4f4f4fafafaebebebf8f8f8e6e6e6
+ffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfcfcfc
+fcfcfcfbfbfbf9f9f9f7f7f7f9f9f9f6f6f6f7f7f7fbfbfbfdfdfdfbfbfbf9f9f9fafafa
+e0e0e0ffffffedededffffffeeeeeee7e7e7fafafaf7f7f7f5f5f5f8f8f8f8f8f8f6f6f6
+f7f7f7fafafafbfbfbf9f9f9fefefefefefefdfdfdfbfbfbfafafaf8f8f8f7f7f7f7f7f7
+fcfcfcfafafaf9f9f9fcfcfcfffffffffffffbfbfbf7f7f7fafafaf8f8f8f6f6f6f6f6f6
+f8f8f8fafafafbfbfbfbfbfbf9f9f9fcfcfcfdfdfdfbfbfbfbfbfbfefefefdfdfdfafafa
+fcfcfce7e7e7fdfdfdf1f1f1f1f1f1fcfcfce6e6e6fafafafbfbfbfafafafafafafafafa
+fbfbfbfafafaf8f8f8f6f6f6fafafaf7f7f7f4f4f4f5f5f5f8f8f8f9f9f9f8f8f8f6f6f6
+f9f9f9f8f8f8f8f8f8f8f8f8f7f7f7f7f7f7f7f7f7f7f7f7f9f9f9f7f7f7f6f6f6f8f8f8
+fbfbfbfcfcfcfafafaf6f6f6f5f5f5f7f7f7f8f8f8fafafafafafafafafaf9f9f9f9f9f9
+f7f7f7f8f8f8fafafafcfcfcfcfcfcfbfbfbf9f9f9f8f8f8f0f0f0fbfbfbedededffffff
+f6f6f6fffffff2f2f2f9f9f9f4f4f4f5f5f5f6f6f6f7f7f7f7f7f7f7f7f7f7f7f7f6f6f6
+f7f7f7f8f8f8fafafafafafaf9f9f9fafafafdfdfdffffffecececfafafaffffffffffff
+fafafaf9f9f9f8f8f8f4f4f4fbfbfbfafafafafafaf9f9f9f7f7f7f6f6f6f6f6f6f5f5f5
+fcfcfcf9f9f9fafafafffffffdfdfdf7f7f7f8f8f8fffffff3f3f3f6f6f6fafafafcfcfc
+fbfbfbfcfcfcfefefefffffff6f6f6f5f5f5f5f5f5f7f7f7fbfbfbfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000030303000000000000efefeff6f6f6fbfbfbf9f9f9fefefef6f6f6ffffff
+f5f5f5fffffff3f3f3f5f5f5fbfbfbfbfbfbfbfbfbfcfcfcfbfbfbf8f8f8f3f3f3efefef
+fffffffdfdfdfffffff9f9f9fafafaf4f4f4f5f5f5f3f3f3fdfdfdfdfdfdfcfcfcfcfcfc
+fafafaf9f9f9f8f8f8f7f7f7fbfbfbf7f7f7f5f5f5f6f6f6f9f9f9fafafaf7f7f7f2f2f2
+f6f6f6f7f7f7f9f9f9fafafafbfbfbfbfbfbfafafafafafaf9f9f9f8f8f8f8f8f8fafafa
+fafafaf8f8f8f4f4f4f1f1f1fafafaf7f7f7f5f5f5f5f5f5f9f9f9fcfcfcfdfdfdfdfdfd
+fcfcfcf9f9f9f8f8f8fafafafdfdfdfcfcfcf7f7f7f2f2f2f7f7f7f2f2f2fcfcfcf6f6f6
+fffffffbfbfbfffffffcfcfcfffffffffffffefefefefefefffffffffffffefefefefefe
+fffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffffffffefefefdfdfdfcfcfcfefefefffffffcfcfcf9f9f9
+fbfbfbfefefefafafaf3f3f3f3f3f3f4f4f4f8f8f8fcfcfcfefefefdfdfdfbfbfbf9f9f9
+ffffffffffffe5e5e5e8e8e8f2f2f2ffffffefefeffffffff9f9f9fafafafafafafafafa
+fafafafcfcfcfcfcfcfbfbfbf9f9f9f7f7f7f5f5f5f7f7f7fafafafbfbfbfafafaf8f8f8
+fefefefcfcfcfbfbfbfbfbfbfcfcfcfbfbfbf7f7f7f4f4f4fcfcfcf8f8f8f6f6f6f7f7f7
+fcfcfcfefefefefefefcfcfcf8f8f8f9f9f9f9f9f9f8f8f8f9f9f9fafafafbfbfbfbfbfb
+f6f6f6f6f6f6f8f8f8fffffffffffff0f0f0ebebebe9e9e9fafafaf7f7f7f5f5f5f6f6f6
+f8f8f8f8f8f8f5f5f5f1f1f1fffffff9f9f9f4f4f4f5f5f5f9f9f9fbfbfbf9f9f9f5f5f5
+f2f2f2f3f3f3f6f6f6f9f9f9fbfbfbfcfcfcfdfdfdfdfdfdf9f9f9f6f6f6f5f5f5f6f6f6
+f8f8f8fafafaf9f9f9f7f7f7f3f3f3f4f4f4f7f7f7f9f9f9fafafafafafaf9f9f9f8f8f8
+f6f6f6f7f7f7f9f9f9fafafafbfbfbfbfbfbfafafaf9f9f9ffffffe7e7e7fdfdfde0e0e0
+d2d2d2ebebebfffffff4f4f4f5f5f5f6f6f6f7f7f7f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8
+f8f8f8fafafafbfbfbfbfbfbfbfbfbfbfbfbfdfdfdfffffff3f3f3fbfbfbfefefef8f8f8
+f3f3f3f5f5f5f9f9f9fbfbfbfffffffefefefdfdfdfbfbfbf9f9f9f7f7f7f5f5f5f5f5f5
+fbfbfbfafafafcfcfcfefefefafafaf5f5f5f7f7f7fdfdfdf5f5f5f8f8f8fbfbfbfafafa
+f7f7f7f5f5f5f6f6f6f9f9f9f8f8f8f6f6f6f6f6f6f8f8f8fcfcfcffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101000000000000000000030303f4f4f4f6f6f6f4f4f4fffffffffffff4f4f4ffffff
+f9f9f9fffffff3f3f3f1f1f1fbfbfbf8f8f8f6f6f6f5f5f5f8f8f8fcfcfcfefefeffffff
+fafafaf2f2f2ffffffeeeeeefffffff3f3f3fffffffbfbfbfefefefdfdfdfbfbfbf9f9f9
+f9f9f9fafafafcfcfcfefefef5f5f5f7f7f7f9f9f9fafafaf9f9f9f9f9f9f9f9f9f9f9f9
+f8f8f8f8f8f8f9f9f9fafafafbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfefefe
+fffffffefefefbfbfbf8f8f8f8f8f8fbfbfbfdfdfdfdfdfdfbfbfbfafafafbfbfbfdfdfd
+fbfbfbf8f8f8f6f6f6f5f5f5f7f7f7f8f8f8f6f6f6f3f3f3f6f6f6fbfbfbf5f5f5ffffff
+f7f7f7fffffff6f6f6f7f7f7fffffffefefefbfbfbfbfbfbfdfdfdfffffffefefefdfdfd
+fafafafdfdfdfffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfffffffffffffdfdfdf9f9f9
+fbfbfbfefefefafafaf2f2f2fffffffffffffdfdfdf6f6f6f5f5f5f8f8f8fefefeffffff
+f8f8f8dcdcdcfffffffdfdfdfdfdfdfdfdfdf6f6f6e2e2e2f9f9f9f8f8f8f9f9f9fafafa
+fafafaf9f9f9fafafafbfbfbf7f7f7f5f5f5f3f3f3f6f6f6fcfcfcfffffffefefefbfbfb
+fefefefdfdfdfcfcfcfcfcfcfcfcfcfbfbfbf9f9f9f8f8f8fdfdfdfbfbfbf9f9f9fbfbfb
+fffffffffffffffffffefefefafafaf9f9f9f8f8f8f9f9f9fafafafafafafcfcfcfdfdfd
+f0f0f0fffffff6f6f6f9f9f9f9f9f9f8f8f8fffffff2f2f2fcfcfcfafafaf8f8f8fafafa
+fefefefffffffcfcfcf9f9f9fffffffdfdfdf8f8f8f8f8f8fcfcfcfefefefbfbfbf8f8f8
+fbfbfbfcfcfcfdfdfdfefefefdfdfdfbfbfbf9f9f9f7f7f7fbfbfbf9f9f9f8f8f8f8f8f8
+fafafafbfbfbfcfcfcfcfcfcf8f8f8f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfdfdfd
+fbfbfbfafafaf9f9f9f9f9f9fafafafbfbfbfdfdfdfefefefbfbfbecececf4f4f4ffffff
+eaeaeafefefee6e6e6fafafaf9f9f9f9f9f9fafafafbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f9f9f9fbfbfbfdfdfdfdfdfdfdfdfdfcfcfcfefefefffffffcfcfcfcfcfcfafafaf5f5f5
+f5f5f5f9f9f9fcfcfcfdfdfdf9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+fffffffcfcfcfbfbfbfdfdfdfcfcfcfafafaf9f9f9fbfbfbfbfbfbfbfbfbfafafaf9f9f9
+f8f8f8f7f7f7f5f5f5f4f4f4fdfdfdfbfbfbfafafafbfbfbfdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101000000000000000000050505f6f6f6f6f6f6f2f2f2fbfbfbfafafaf4f4f4fdfdfd
+fdfdfdfffffffafafaf6f6f6fffffffefefef9f9f9f5f5f5f4f4f4f7f7f7fbfbfbfefefe
+f8f8f8efefeffcfcfceaeaeafffffff0f0f0fefefef6f6f6fffffffdfdfdfbfbfbf9f9f9
+fafafafcfcfcfffffffffffff8f8f8fbfbfbfefefefefefefcfcfcfcfcfcfdfdfdffffff
+fffffffffffffffffffefefefdfdfdfdfdfdfcfcfcfcfcfcfefefefefefefefefeffffff
+fffffffffffffffffffdfdfdfbfbfbfffffffffffffffffffafafaf6f6f6f6f6f6f9f9f9
+fdfdfdfcfcfcfbfbfbf9f9f9f9f9f9fafafafbfbfbfdfdfdfcfcfcffffffefefefffffff
+e9e9e9fffffff2f2f2f8f8f8fffffffbfbfbf8f8f8f8f8f8fcfcfcfefefefefefefcfcfc
+f4f4f4f8f8f8fcfcfcfdfdfdfcfcfcfcfcfcfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfcfcfc
+fbfbfbfafafafafafafafafafafafafbfbfbfcfcfcfdfdfdfffffffdfdfdfcfcfcfcfcfc
+fcfcfcfafafaf8f8f8f6f6f6f9f9f9fcfcfcfdfdfdfafafaf9f9f9fcfcfcfefefefefefe
+fdfdfdfefefeedededffffffe4e4e4f2f2f2f2f2f2fafafafefefefcfcfcfcfcfcfefefe
+fefefefcfcfcfcfcfcfffffffdfdfdfbfbfbf9f9f9fbfbfbfffffffffffffffffffdfdfd
+fdfdfdfdfdfdfefefefefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffffffffcfcfcfcfcfcfefefefefefefdfdfdfdfdfdffffff
+fdfdfdf6f6f6f9f9f9fbfbfbfcfcfcfcfcfcfafafafffffffbfbfbfbfbfbfcfcfcfefefe
+fffffffffffffffffffffffffffffffffffffcfcfcfcfcfcfffffffffffffefefefbfbfb
+fffffffffffffffffffffffffffffffdfdfdfafafaf9f9f9fefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdffffffffffffffffff
+fffffffffffffdfdfdfcfcfcfcfcfcfefefefffffffffffff3f3f3fbfbfbf4f4f4f2f2f2
+f0f0f0f8f8f8fffffff2f2f2fbfbfbfcfcfcfdfdfdfefefefefefefefefefefefefdfdfd
+fafafafdfdfdfffffffffffffefefefdfdfdfefefefffffffefefefdfdfdfcfcfcfdfdfd
+fffffffffffffefefefafafafdfdfdfdfdfdfefefefefefefefefefefefeffffffffffff
+fffffffffffffdfdfdfefefefffffffffffffefefefcfcfcfffffffefefefcfcfcfefefe
+fffffffffffffdfdfdfafafafffffffffffffdfdfdfdfdfdfffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000020202f2f2f2f6f6f6f6f6f6f3f3f3f3f3f3f9f9f9f7f7f7
+fefefef9f9f9fdfdfdfcfcfcfefefefffffffdfdfdf9f9f9f4f4f4f2f2f2f5f5f5f8f8f8
+fffffffefefef9f9f9fbfbfbfbfbfbfefefefbfbfbfbfbfbfefefefdfdfdfdfdfdfcfcfc
+fdfdfdfefefefffffffffffffffffffefefefdfdfdfefefefffffffffffffffffffefefe
+fffffffffffffffffffffffffefefefefefefefefefefefefffffffefefefdfdfdfdfdfd
+fffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfafafaf8f8f8f7f7f7f8f8f8f8f8f8
+f7f7f7fbfbfbfefefefefefefbfbfbfbfbfbfefefefffffffbfbfbfffffff3f3f3fafafa
+ecececfdfdfdf3f3f3f4f4f4fcfcfcf8f8f8f4f4f4f5f5f5fafafafefefefefefefcfcfc
+f4f4f4f9f9f9fdfdfdfcfcfcf9f9f9f8f8f8fafafafefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffefefefdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9
+fbfbfbf9f9f9f7f7f7f6f6f6f6f6f6f8f8f8fbfbfbfdfdfdfffffffafafafbfbfbffffff
+fdfdfdf6f6f6f5f5f5fbfbfbe3e3e3f0f0f0fbfbfbfffffffffffffffffffdfdfdf7f7f7
+fffffff0f0f0fffffff6f6f6fdfdfdfffffff9f9f9ffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffefefefefefefdfdfdfefefefffffffffffffffffffefefe
+fefefefefefefffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffff
+fffffffefefefffffffffffffffffffefefefefefefffffffffffffdfdfdfdfdfdffffff
+ebebebfffffffbfbfbfafafaf9f9f9f8f8f8ffffffe6e6e6f9f9f9fbfbfbfdfdfdfefefe
+fefefefefefefefefefffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fbfbfbfcfcfcfdfdfdfffffffffffffffffffffffffffffffefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff2f2f2ffffffebebebf4f4f4
+fffffff9f9f9e7e7e7fffffffcfcfcfdfdfdfefefefffffffffffffffffffffffffefefe
+fbfbfbfefefefffffffffffffffffffefefefffffffffffffdfdfdfcfcfcfefefeffffff
+fffffffffffffdfdfdfafafafffffffffffffffffffffffffdfdfdfcfcfcfafafafafafa
+fffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101030303000000000000edededf6f6f6fcfcfceeeeeef0f0f0fffffff4f4f4
+fbfbfbeeeeeefdfdfdfefefeeaeaeaf1f1f1f9f9f9fbfbfbf8f8f8f7f7f7fafafafefefe
+ecececf3f3f3e0e0e0fafafae6e6e6fffffff2f2f2fbfbfbfdfdfdfefefeffffffffffff
+fffffffffffffdfdfdfdfdfdfffffffefefef9f9f9fafafafefefefffffffdfdfdf8f8f8
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffffffffffffffdfdfdfafafafafafa
+fbfbfbfbfbfbfafafaf9f9f9fafafaf5f5f5f1f1f1f2f2f2f7f7f7fcfcfcfdfdfdfcfcfc
+eaeaeaf2f2f2fafafafbfbfbf7f7f7f4f4f4f7f7f7fbfbfbf1f1f1f6f6f6f6f6f6f5f5f5
+f4f4f4f7f7f7f1f1f1e8e8e8fafafaf6f6f6f2f2f2f3f3f3f9f9f9fefefefefefefcfcfc
+fafafafefefefffffffdfdfdf6f6f6f2f2f2f3f3f3f6f6f6fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffffefefefdfdfdfcfcfcfafafaf8f8f8f7f7f7f7f7f7
+fafafaf8f8f8f5f5f5f3f3f3f4f4f4f7f7f7fbfbfbfdfdfdfffffff8f8f8fafafaffffff
+fffffff3f3f3f4f4f4fffffff3f3f3fbfbfbfffffffbfbfbf9f9f9fdfdfdfefefefcfcfc
+f4f4f4f5f5f5f0f0f0fefefef6f6f6f7f7f7f3f3f3f9f9f9fffffffbfbfbfbfbfbffffff
+fffffffbfbfbfafafafffffffafafafbfbfbfcfcfcfdfdfdfdfdfdfefefeffffffffffff
+fffffffffffffffffffefefefcfcfcfcfcfcfdfdfdfefefefcfcfcffffffffffffffffff
+fdfdfdfbfbfbfdfdfdfffffffffffffdfdfdfdfdfdfffffffffffffbfbfbfafafafefefe
+fffffff3f3f3f5f5f5fffffffffffff6f6f6f5f5f5fffffffbfbfbffffffffffffffffff
+fffffffdfdfdfffffffffffffcfcfcfffffffffffffffffffffffffffffffefefeffffff
+fffffffffffffffffffefefefefefefefefefefefefefefefafafafcfcfcfefefefefefe
+fefefefdfdfdfdfdfdfefefefdfdfdfdfdfdfefefefefefefefefefdfdfdfcfcfcfbfbfb
+fefefefffffffffffffffffffffffffefefefcfcfcfafafafdfdfdeeeeeefffffff1f1f1
+eeeeeefffffffffffffafafafcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffffffffffffffffffffffffffffffffefefefcfcfcfdfdfdfefefe
+fdfdfdfcfcfcfcfcfcfefefefafafafbfbfbfbfbfbfdfdfdfefefeffffffffffffffffff
+fcfcfcfffffffffffffefefefdfdfdfdfdfdfffffffffffffefefeffffffffffffffffff
+fefefefcfcfcfcfcfcfdfdfdfffffffffffffdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000020202f7f7f7fbfbfbf8f8f8efefeffffffffffffff7f7f7
+dbdbdbffffffffffffd2d2d2fefefef7f7f7fbfbfbeaeaeaebebebfdfdfdededede3e3e3
+efefefffffffffffffdbdbdbfffffff6f6f6f1f1f1fcfcfcffffffeaeaeaf2f2f2ffffff
+f0f0f0f7f7f7fffffffdfdfdf5f5f5fffffffffffff7f7f7fdfdfdfffffffbfbfbf7f7f7
+f2f2f2fafafafffffffffffff3f3f3f9f9f9fffffffffffffdfdfdedededfafafaffffff
+f3f3f3efefeffffffffdfdfdffffffd5d5d5fbfbfbf9f9f9292929070707010101e4e4e4
+fffffff2f2f2ffffffffffffe3e3e3fdfdfdfcfcfcf4f4f4edededf8f8f8e9e9e9ffffff
+d7d7d7f7f7f7fafafaf8f8f8fcfcfcf5f5f5fefefe1f1f1f010101fffffff9f9f9ededed
+fffffff4f4f4f0f0f0ffffffededed0a0a0a3d3d3dcacacaf7f7f7fffffff9f9f9fafafa
+f8f8f8fffffffffffffffffffffffffcfcfcfafafafcfcfcf3f3f3fffffffafafadfdfdf
+ffffffffffffd9d9d9fafafafafafaf8f8f8f4f4f4fefefef6f6f6ffffffefefeff4f4f4
+ffffffdadadaffffff010101000000fffffff4f4f4dadadafcfcfcf9f9f9fffffff6f6f6
+070707232323fdfdfdf1f1f1f7f7f7f7f7f7fffffff2f2f2f0f0f0f2f2f2e8e8e8ffffff
+fafafafffffff3f3f3f8f8f8fffffffefefefefefefdfdfdfdfdfdfdfdfdfefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101010101010101000000000000f2f2f2f5f5f5f2f2f2fffffff0f0f0d0d0d0f5f5f5
+f3f3f3f1f1f1fffffff9f9f9fafafaf0f0f0ffffffffffffe3e3e3fffffff6f6f6f6f6f6
+f7f7f7f8f8f8dcdcdcf2f2f2f2f2f2f0f0f0fffffff4f4f4ebebebffffffffffffe9e9e9
+fffffff9f9f9e3e3e3ffffffffffffeaeaeaf5f5f5fbfbfbfffffffcfcfcfffffff5f5f5
+ffffffe5e5e5efefeffbfbfbf6f6f6ffffffedededfbfbfbfffffffffffff9f9f9fafafa
+f8f8f8fffffffefefee6e6e6efefefffffffe4e4e4bcbcbcfefefe000000373737fcfcfc
+efefeff7f7f7f6f6f6f5f5f5e6e6e6fdfdfdecececfffffff6f6f6f4f4f4fffffff0f0f0
+fffffffafafaffffffddddddfafafaf5f5f50a0a0a0101011b1b1bf9f9f9f5f5f5ffffff
+e9e9e9f0f0f0fffffff8f8f8efefef0f0f0f000000ffffffffffffe8e8e8f8f8f8f6f6f6
+fefefeddddddd3d3d3f7f7f7ecececfffffff8f8f8fffffff3f3f3f5f5f5edededffffff
+edededdededeffffffe7e7e7f9f9f9fafafaffffffdbdbdbe2e2e2ffffffffffffe2e2e2
+f8f8f8ffffff000000ffffff090909dcdcdcf8f8f8ffffffececece7e7e7f1f1f1fefefe
+f0f0f0000000f1f1f1fdfdfdf7f7f7f4f4f4f2f2f2fffffffffffff1f1f1fffffff2f2f2
+f1f1f1efefeffffffffffffffffffffffffffefefefefefefdfdfdfefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+010101010101010101000000000000f2f2f2f5f5f5f2f2f2eaeaea0303030d0d0d202020
+0404040000001111110e0e0e0b0b0bf8f8f8efefefd0d0d0f7f7f7e7e7e7ffffffe0e0e0
+f5f5f5eeeeeefffffffafafad9d9d9141414e5e5e5e7e7e7fbfbfbfffffff0f0f0f0f0f0
+f9f9f9fefefeffffffebebebf4f4f4fffffffffffffdfdfdf1f1f1ffffffedededebebeb
+edededfffffffffffffffffff8f8f8fefefef0f0f0fcfcfce8e8e8f4f4f4fffffff8f8f8
+fbfbfbf5f5f5fefefefefefef1f1f1dadadafffffffffffffbfbfb171717010101f4f4f4
+ffffffefefefddddddffffffffffffe6e6e6fafafaedededffffff0101010b0b0b000000
+000000090909ebebebfffffff4f4f4ffffffebebeb0a0a0a020202f5f5f5f9f9f9fbfbfb
+f9f9f9fffffff6f6f6e1e1e1ffffff1e1e1e000000ffffffeeeeeedcdcdcfdfdfdffffff
+f0f0f0f9f9f9ffffffebebebfcfcfcf7f7f7efefeff3f3f3fefefefafafaf1f1f1f1f1f1
+f7f7f7ffffffdbdbdbffffff020202fbfbfbdfdfdfffffffffffffe7e7e7eeeeeef0f0f0
+fdfdfd000000fdfdfdfffffff5f5f5fdfdfdfefefebfbfbffffffff6f6f6f9f9f9fbfbfb
+f0f0f01d1d1dffffffdbdbdbf0f0f0f9f9f9fdfdfdffffffe9e9e9fcfcfcf1f1f1efefef
+fffffff8f8f8fbfbfbfafafafffffffffffffffffffefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000020202f7f7f7fbfbfbf8f8f8fefefeefefef0909090a0a0a
+e9e9e9e8e8e8f2f2f2000000080808f5f5f5fefefefffffff3f3f3fcfcfcfafafaeeeeee
+fbfbfbfafafaedededd8d8d80000001d1d1de4e4e4ffffffe1e1e1fcfcfce8e8e8ffffff
+f6f6f6e8e8e8f0f0f0fffffffefefeeeeeeefffffff3f3f3ffffffdadadaf1f1f1ffffff
+f4f4f4fefefef2f2f2f3f3f3f9f9f9fffffff4f4f4fefefefffffff4f4f4f4f4f4f1f1f1
+ffffffe9e9e9fffffff2f2f2fffffff5f5f5e8e8e8ecececededed141414000000fcfcfc
+ddddddfffffffffffff9f9f9f9f9f9e4e4e4f5f5f51414140000000b0b0bf3f3f3ffffff
+ffffff000000000000101010f5f5f5f8f8f8ffffff050505080808ffffffdbdbdbfcfcfc
+f4f4f4f3f3f3f4f4f4fdfdfdf5f5f5060606222222e5e5e5fffffffffffff4f4f4e6e6e6
+dfdfdffcfcfcedededfefefef1f1f1f8f8f8fffffff5f5f5ffffffe5e5e5fffffff1f1f1
+f0f0f0f6f6f6f0f0f00a0a0a040404efefeffdfdfdf8f8f8e9e9e9ebebebfffffffefefe
+eeeeee151515ffffffdadadaecececffffffd4d4d4ffffffdededeefefefffffffd2d2d2
+ffffff0f0f0fcacacaffffffebebebe7e7e7fefefef3f3f3f6f6f6fffffff8f8f8f9f9f9
+ffffffe7e7e7fffffffffffffffffffffffffffffffefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000020202f7f7f7fbfbfbf8f8f8fcfcfcf1f1f1010101070707
+fffffffffffff4f4f4fffffff8f8f8ebebebfffffffafafae9e9e9fdfdfde2e2e2fefefe
+fcfcfcf6f6f6fdfdfdffffff000000000000fdfdfde2e2e2fffffffffffff0f0f0eeeeee
+fffffffbfbfbfffffff6f6f6fcfcfcfffffff9f9f9f5f5f5f5f5f5fffffffcfcfce9e9e9
+fffffff8f8f8fdfdfdfffffffffffffffffff9f9f9f8f8f8fcfcfcefefeff7f7f7ffffff
+e9e9e9fffffff9f9f9f9f9f9e8e8e8efefeffbfbfbffffffffffff000000000000ffffff
+ecececfffffff6f6f6dededee1e1e1ffffffe5e5e5171717040404fffffffefefee6e6e6
+fbfbfbf5f5f50f0f0f000000e6e6e6e7e7e7ececec202020000000fffffff6f6f6fcfcfc
+fffffffdfdfdffffffeaeaeafffffff9f9f9f0f0f0f7f7f7ebebebe2e2e2f3f3f3ececec
+fffffffffffff1f1f1fffffffffffff3f3f3f9f9f9fffffff9f9f9ffffffe5e5e5ffffff
+edededfafafaffffff0000000c0c0cffffffe5e5e5fcfcfcf6f6f6fffffff1f1f1fbfbfb
+fefefe080808dbdbdbffffffe1e1e1fffffff0f0f0e4e4e4fffffffefefee1e1e1ffffff
+ededed000000ffffffe1e1e1fdfdfdfffffffbfbfbfafafafbfbfbeeeeeeeeeeeef8f8f8
+fffffffdfdfdf8f8f8f6f6f6fefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101010101010101000000000000f2f2f2f5f5f5f2f2f2f9f9f9fdfdfd1a1a1a000000
+f2f2f2fdfdfd000000ffffffd9d9d9000000141414040404000000fffffff5f5f50b0b0b
+050505000000ececec0101010f0f0f151515050505121212dbdbdbf9f9f9f3f3f3030303
+0a0a0a1616160606060a0a0adfdfdfffffff0000001212120d0d0de0e0e0212121030303
+f6f6f60a0a0a080808070707000000000000000000050505151515ddddddfafafae1e1e1
+2626260202020000000c0c0c0d0d0dfffffffffffff6f6f6f0f0f00d0d0d141414dadada
+fbfbfbf3f3f3f3f3f3fffffff0f0f0f6f6f61f1f1f0000001d1d1ddcdcdce7e7e7f8f8f8
+fbfbfbececec0e0e0e000000242424ffffffd6d6d61111110e0e0e0000000909090b0b0b
+030303000000fdfdfdfafafa131313070707060606fffffff2f2f2f2f2f2ffffff121212
+000000000000000000151515ecececeeeeeefefefeffffff0000000000000c0c0c060606
+fffffff5f5f50000000a0a0a070707010101080808f9f9f9edededebebebf3f3f3f7f7f7
+0c0c0c000000181818000000ffffffffffff0b0b0b000000000000ffffffecececffffff
+ffffff000000f4f4f4e7e7e7ffffff000000000000000000000000fffffffefefeffffff
+000000242424010101fffffffbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101010101010101000000000000f2f2f2f5f5f5f2f2f2f7f7f7e6e6e6000000242424
+070707000000292929ccccccffffffffffff0000000f0f0f181818eeeeeeffffff000000
+fffffffafafaf4f4f4e7e7e7000000171717f4f4f4f1f1f1fefefefdfdfd050505070707
+ebebebe7e7e7f5f5f50d0d0d181818efefefefefef0000001414140404040b0b0b0c0c0c
+cbcbcbffffff000000000000ffffffeeeeeef9f9f91414140c0c0cf5f5f5ffffff000000
+000000fffffffffffff3f3f30f0f0f0e0e0ee3e3e3ebebebf2f2f2131313090909ffffff
+f7f7f7ffffffffffffececececececfefefe0a0a0a070707000000ffffffffffffefefef
+e4e4e4fafafa060606070707000000fffffff7f7f7000000171717fdfdfdfffffff7f7f7
+0505051d1d1d0e0e0ee0e0e0fafafa262626000000e3e3e3fffffff8f8f8000000070707
+fefefeffffffffffff070707000000fffffffcfcfc0000000b0b0bffffff040404060606
+060606fbfbfbfafafa151515000000fdfdfdeaeaeafffffffefefefafafaf4f4f4eeeeee
+ffffff090909f1f1f1eeeeeef2f2f2000000040404fffffffafafa0d0d0dffffffe7e7e7
+f5f5f5131313efefefffffff000000fffffffdfdfdececec111111e6e6e6ffffff1d1d1d
+fefefee8e8e8ffffff000000f7f7f7f8f8f8f8f8f8f9f9f9fbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000020202f7f7f7fbfbfbf8f8f8fffffff1f1f1111111000000
+fbfbfbfcfcfc080808f6f6f6dadadaeeeeeef8f8f8010101191919000000131313ffffff
+f4f4f4ffffffe8e8e8ffffff0606060e0e0ef4f4f4fdfdfdf1f1f1000000131313fdfdfd
+f5f5f5f7f7f7ffffff000000000000ffffffffffff131313020202ffffffffffff0d0d0d
+f6f6f6d2d2d21f1f1f050505e3e3e3ffffffffffff010101010101f7f7f7f3f3f3efefef
+ffffff0000000a0a0a000000020202030303fffffffafafafbfbfb0c0c0c000000ffffff
+f7f7f7edededefefefedededffffffdedede2a2a2a010101020202fffffff0f0f0e2e2e2
+f3f3f3ffffff0000000909090f0f0ff7f7f7f0f0f00e0e0e0a0a0afcfcfcdededef9f9f9
+fdfdfd000000131313fbfbfbf7f7f7000000090909ffffffdfdfdf171717060606dedede
+f5f5f5e7e7e7f4f4f41f1f1f111111ececec0b0b0b030303f6f6f6ebebeb0f0f0f111111
+000000fbfbfbffffff000000080808f5f5f5ffffffd9d9d9e8e8e8f7f7f7fefefefefefe
+f5f5f5000000f8f8f8f8f8f8f8f8f8e5e5e5fcfcfcf2f2f2070707000000f9f9f9ffffff
+fefefe000000f5f5f5fbfbfb040404040404fffffff5f5f5f1f1f1f9f9f9000000fcfcfc
+f2f2f2ffffffffffff2e2e2ef5f5f5f5f5f5f6f6f6f8f8f8fafafafdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+020202000000010101020202060606f6f6f6f6f6f6f2f2f2ffffffffffff000000101010
+f4f4f4e3e3e3fafafafefefef6f6f6f8f8f8fffffff1f1f10e0e0e060606000000f6f6f6
+e0e0e0fbfbfbf9f9f9fbfbfb282828000000ffffffffffffffffff0000000f0f0f040404
+0606060808080000001212120a0a0affffffeeeeee0000000b0b0bf9f9f9fbfbfbf9f9f9
+fdfdfdeeeeee111111202020f3f3f3d6d6d6ffffff030303000000fdfdfdfdfdfd000000
+141414000000fffffff1f1f1050505040404f5f5f5fdfdfdf8f8f8000000343434e2e2e2
+fbfbfbe8e8e8ecececf2f2f2fcfcfcfefefe0c0c0c010101171717ffffffd7d7d7ffffff
+ececece8e8e81d1d1d000000030303ffffffdfdfdf0b0b0b2a2a2af5f5f5fafafad9d9d9
+fefefe080808111111f6f6f6f1f1f1070707060606f9f9f9fbfbfb131313000000272727
+030303171717060606010101080808f9f9f9000000181818fefefefbfbfbf9f9f9f4f4f4
+f7f7f7edededededed070707141414fafafaedededfffffffffffff2f2f2fcfcfcf3f3f3
+f9f9f9191919fcfcfcf4f4f4fefefeffffff000000050505ffffff0b0b0becececf6f6f6
+fefefe0e0e0efbfbfbf3f3f3ffffff0606060d0d0d010101fffffff1f1f1040404020202
+0909090808081f1f1f2f2f2ffffffffffffffffffffefefefcfcfcfefefefffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000020202000000000000f1f1f1f6f6f6f8f8f8ddddddf3f3f32a2a2a090909
+f2f2f2f6f6f6f0f0f0fcfcfc010101f3f3f3dadada0f0f0f0000001010102d2d2d030303
+fffffffbfbfbebebebfdfdfd000000000000fffffff5f5f5ffffff111111010101e7e7e7
+ffffffe7e7e7ffffffd0d0d0efefefddddddf7f7f72e2e2e000000fefefee9e9e9f2f2f2
+f1f1f1fbfbfb0e0e0e000000fafafafdfdfdececec101010101010f0f0f0e1e1e10e0e0e
+080808f6f6f6e2e2e2f5f5f5080808000000fafafaf3f3f3fefefe0e0e0e000000fdfdfd
+e1e1e1fffffffffffffafafaddddddeeeeeef7f7f71f1f1f0b0b0b000000ffffffe5e5e5
+ffffffffffff0c0c0c161616fdfdfdfffffff6f6f61414140d0d0dfcfcfcf0f0f0ffffff
+e8e8e81b1b1b040404f2f2f2fbfbfb0707070f0f0ffffffffafafa0c0c0c121212f1f1f1
+dededeeeeeeef6f6f6efefeff4f4f4ffffff030303000000ffffffd2d2d2f1f1f1e6e6e6
+fefefefafafaffffff141414000000ecececfffffff2f2f2dededefbfbfbfcfcfcfbfbfb
+f7f7f7000000fefefeeaeaeaf6f6f6222222f6f6f6ffffffd8d8d8000000fffffff7f7f7
+ebebeb0e0e0efffffffffffff3f3f3f5f5f5e5e5e5f8f8f8000000f6f6f61a1a1af2f2f2
+fefefef9f9f9e8e8e8fefefef3f3f3f8f8f8fafafaf7f7f7f8f8f8fdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000020202000000000000edededf7f7f7fefefef9f9f9fdfdfd000000090909
+fcfcfcfcfcfcf2f2f2090909070707ffffff0505050c0c0ce2e2e2f6f6f6000000080808
+000000e7e7e7fffffff7f7f7010101181818ffffffe5e5e5f1f1f10c0c0c000000252525
+e0e0e0dbdbdbedededffffff050505fffffffdfdfd000000090909ffffffffffffffffff
+f9f9f9ededed171717020202ffffffdfdfdfebebeb000000272727dbdbdbffffff000000
+1616160909090000000909090303030c0c0cfbfbfbffffffe9e9e90c0c0c0c0c0cededed
+f6f6f6eeeeeef3f3f3e8e8e8fffffffffffff0f0f0000000000000232323fcfcfce7e7e7
+ffffff000000020202f9f9f9fefefed7d7d7ffffff010101000000fffffffafafafcfcfc
+060606000000f1f1f1e9e9e9d9d9d91d1d1d000000edededfbfbfb0000000e0e0e000000
+ffffffffffffd3d3d3ffffff000000ededed0909090f0f0f000000fffffff4f4f4ffffff
+040404e9e9e9ffffff000000171717fffffffffffff3f3f3f7f7f7ebebebfdfdfdd8d8d8
+fdfdfd2a2a2afffffff2f2f2ffffff000000ecececffffff000000050505e7e7e7f2f2f2
+ffffff000000fffffff5f5f50b0b0bedededfffffff6f6f6000000fefefe000000030303
+ffffffd4d4d4ffffff707070eeeeeef3f3f3f6f6f6f4f4f4f6f6f6fbfbfbffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000000000000000000000f1f1f1f9f9f9ffffffeeeeee0b0b0b0707070b0b0b
+0101010000000a0a0a0000000707070d0d0d020202151515fffffff5f5f50000002b2b2b
+191919000000eeeeeeffffff0000000c0c0c000000010101f6f6f6ffffff0808080b0b0b
+1212121d1d1d000000101010090909f0f0f00000000a0a0a171717000000f3f3f3f3f3f3
+ffffff0000000c0c0c000000000000ffffff1313130303030000002d2d2dececec020202
+0d0d0d000000111111ffffff000000161616000000ececec0000000000000a0a0a0e0e0e
+fdfdfdf4f4f4ffffffe9e9e9f2f2f2f5f5f5edededfbfbfbffffff0b0b0b000000010101
+010101060606fffffffafafafdfdfddcdcdcffffff0d0d0d0f0f0f151515060606000000
+0c0c0ceaeaeaf7f7f7fdfdfdffffff000000040404fafafaf3f3f3fefefe0f0f0f141414
+0000000303030000000b0b0b000000ffffffffffff0202020a0a0a000000030303000000
+000000ffffffe4e4e4101010151515000000000000fffffffafafae3e3e3f8f8f8fafafa
+060606000000040404f8f8f8f7f7f7f4f4f41d1d1d020202ffffff000000121212f0f0f0
+0606060a0a0a131313ffffff0000000808081b1b1b000000ffffffe1e1e1ffffff0b0b0b
+000000727272606060efefeff5f5f5fafafafbfbfbf8f8f8f8f8f8fcfcfcfffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000000000000000050505f8f8f8fcfcfcfbfbfbf3f3f3f9f9f9e9e9e9eaeaea
+ffffffffffffefefeffffffffffffffcfcfcfcfcfcedededeaeaeaecececffffffe8e8e8
+e9e9e9fdfdfdf1f1f1fefefef6f6f6fffffffefefeffffffe7e7e7fefefeececece4e4e4
+e5e5e5ffffffedededfffffffefefef4f4f4ffffffffffffecececfffffff5f5f5fefefe
+f2f2f2f2f2f2fffffff9f9f9fffffff6f6f6d1d1d1f9f9f9fffffffffffffffffff8f8f8
+f4f4f4fdfdfdc2c2c2fffffffffffff3f3f3f0f0f0ffffffdfdfdfffffffd6d6d6f3f3f3
+fffffffafafaeaeaeafffffffcfcfcfbfbfbf6f6f6e5e5e5efefeffffffffffffffbfbfb
+fdfdfdf5f5f5ffffffdfdfdff0f0f0ffffffe2e2e2ffffffe9e9e9f8f8f8cdcdcdffffff
+fdfdfdffffffecececd8d8d8fafafa0000000e0e0ef2f2f2f3f3f3f3f3f3fdfdfdfefefe
+fffffffafafaffffffcfcfcfffffffe7e7e7e7e7e7fefefed6d6d6fffffffdfdfdfefefe
+f8f8f8f1f1f1fefefef0f0f0eeeeeefffffffffffffcfcfcdcdcdcf9f9f9e9e9e9ffffff
+f1f1f1fdfdfdffffffdbdbdbfefefefefefeededede0e0e0f9f9f9fbfbfbf3f3f3ffffff
+e3e3e3ffffffffffffe0e0e0fafafaf1f1f1f1f1f1fffffffbfbfbffffffe0e0e0dfdfdf
+fafafacdcdcdfffffffffffffbfbfbfffffffffffffcfcfcfbfbfbfdfdfdfffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+020202000000000000000000070707fafafafcfcfcfafafaf4f4f4ffffffedededffffff
+fffffffffffff8f8f8e7e7e7fcfcfceaeaeaffffffe8e8e8efefeffdfdfdf2f2f2fafafa
+f7f7f7ffffffe7e7e7edededffffffebebebf8f8f8fbfbfbffffffe6e6e6ffffffffffff
+f2f2f2f6f6f6fffffff7f7f7efefeffbfbfbf6f6f6f7f7f7e5e5e5f0f0f0fffffffbfbfb
+fffffff8f8f8f6f6f6f3f3f3f5f5f5f0f0f0fffffffffffffefefef5f5f5f2f2f2f7f7f7
+fffffffdfdfdfffffff2f2f2f4f4f4ebebebffffffeeeeeeeaeaeae4e4e4ffffffffffff
+fcfcfcfcfcfcf6f6f6fafafafdfdfdfbfbfbfffffff6f6f6efefeff9f9f9f6f6f6ffffff
+f9f9f9e2e2e2e8e8e8f7f7f7f1f1f1f7f7f7fbfbfbf6f6f6fffffffbfbfbffffffffffff
+f7f7f7f5f5f50707072e2e2ef9f9f9030303f9f9f9eaeaeafbfbfbfffffff6f6f6f6f6f6
+edededfafafad2d2d2fffffff7f7f7fafafafcfcfcfefefefbfbfbfdfdfdd5d5d5ffffff
+ffffffeaeaeaf9f9f9ffffffefefefeaeaeaf0f0f0f4f4f4ffffffe8e8e8fffffff8f8f8
+ffffffecececf6f6f6fdfdfdf3f3f3fffffff8f8f8f8f8f8fefefefffffffefefee2e2e2
+ffffffd8d8d8ecececfafafaffffffffffffdbdbdbf8f8f8f3f3f3f1f1f1ffffffffffff
+e4e4e4ffffffffffffdededefafafafefefefffffffcfcfcfbfbfbfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+020202000000000000000000020202f5f5f5fbfbfbfdfdfdecececf7f7f7ecececf4f4f4
+fffffffafafaf4f4f4fffffffffffff5f5f5f7f7f7fdfdfdf7f7f7fffffffafafaf3f3f3
+ffffffd7d7d7fffffffffffff1f1f1fbfbfbfffffff4f4f4fafafafefefeecececf7f7f7
+f5f5f5f6f6f6fffffff4f4f4ffffffdfdfdffbfbfbfffffff2f2f2f4f4f4fbfbfbf3f3f3
+f4f4f4ffffffeaeaeafefefef2f2f2fffffff9f9f9f2f2f2fdfdfdefefeffffffffefefe
+f5f5f5efefeffdfdfdfffffffffffffffffffbfbfbffffffffffffffffffe8e8e8ebebeb
+fcfcfcf7f7f7ffffffebebebfffffffafafadcdcdcfafafafffffff3f3f3fafafae1e1e1
+fefefeffffffe2e2e2fffffffffffff7f7f7fffffffffffffafafaf0f0f0f1f1f1f9f9f9
+ffffffe9e9e9f0f0f0000000101010e3e3e3fffffff2f2f2ffffffe9e9e9fffffff5f5f5
+f8f8f8f4f4f4fffffff7f7f7ffffffffffffffffffe5e5e5fffffffffffffdfdfdffffff
+fffffff7f7f7f1f1f1f4f4f4fffffffffffff6f6f6fefefef9f9f9fdfdfdfafafaffffff
+f9f9f9f5f5f5fbfbfbfbfbfbf7f7f7e3e3e3fbfbfbfffffff6f6f6f4f4f4f5f5f5ffffff
+fffffffffffffdfdfdf3f3f3ffffffebebebfffffffffffffffffffafafafdfdfdececec
+f7f7f7fefefee0e0e0fffffff9f9f9fdfdfdfefefefbfbfbfafafafdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+010101010101020202000000000000efefeffafafaffffffffffffebebebfffffff0f0f0
+fafafafffffffffffff1f1f1f6f6f6f7f7f7fafafaf0f0f0fffffff1f1f1f5f5f5ffffff
+f5f5f5ffffffe9e9e9edededfffffff5f5f5fffffffffffff4f4f4fdfdfdf2f2f2ffffff
+fcfcfcfffffffbfbfbf1f1f1ebebebffffffefefefecececfffffff2f2f2f2f2f2ffffff
+fefefeeaeaeafffffff4f4f4fafafafcfcfcfffffff8f8f8fdfdfdfefefef7f7f7ffffff
+fafafafbfbfbf4f4f4f0f0f0f5f5f5fbfbfbfbfbfbfffffffffffffcfcfcfbfbfbffffff
+f7f7f7fffffff7f7f7fffffff8f8f8ffffffefefeffcfcfcfcfcfcfcfcfcfcfcfcffffff
+eeeeeef0f0f0fffffff5f5f5f0f0f0ffffffecececf5f5f5fffffffffffff8f8f8f6f6f6
+f4f4f4f2f2f2fffffffdfdfdfffffffbfbfbe6e6e6f7f7f7fffffff6f6f6f8f8f8ffffff
+f9f9f9fbfbfbfffffffcfcfcfdfdfdf2f2f2f6f6f6f7f7f7fcfcfcf5f5f5fffffffdfdfd
+fbfbfbfcfcfcfffffff9f9f9f7f7f7f7f7f7eeeeeefefefefafafafcfcfcfffffffafafa
+fffffff9f9f9fffffffcfcfcf6f6f6ffffffefefeffefefef8f8f8fffffff7f7f7f8f8f8
+f8f8f8fcfcfcfffffff2f2f2ffffffeeeeeeffffffffffffefefeff8f8f8efefeffcfcfc
+ffffffe8e8e8fffffffafafafcfcfcfffffffffffffcfcfcfafafafcfcfcfefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000050505fafafafbfbfbf6f6f6f8f8f8fefefeecececffffff
+fffffff5f5f5fefefef1f1f1f6f6f6fffffff9f9f9fffffff6f6f6fffffff9f9f9f3f3f3
+fffffffbfbfbfafafafffffffffffffdfdfdfcfcfcfffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffff7f7f7fdfdfdf0f0f0fffffff7f7f7fffffff8f8f8
+fbfbfbfffffffffffffdfdfdf4f4f4f5f5f5f7f7f7fdfdfdfdfdfdfefefefbfbfbffffff
+f9f9f9fcfcfcfffffffafafafffffff2f2f2f4f4f4fffffffefefef1f1f1ffffffffffff
+f5f5f5fcfcfcf7f7f7fdfdfdf4f4f4eeeeeefcfcfcfffffffdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbfbfbfb
+f8f8f8fbfbfbeeeeeef2f2f2f8f8f8eaeaeaf2f2f2f7f7f7fbfbfbfcfcfcfefefefefefe
+fefefefcfcfcfafafaf9f9f9fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfcfcfcfbfbfbfafafafafafafbfbfbfdfdfdfefefef7f7f7fffffff8f8f8f2f2f2
+fffffff8f8f8ecececfffffff9f9f9e9e9e9fffffff7f7f7fffffffcfcfcfffffff5f5f5
+f3f3f3efefeffffffff4f4f4f9f9f9fffffffffffff6f6f6fafafafefefeffffffffffff
+fffffffefefefffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000000000f4f4f4fafafafbfbfbfffffff8f8f8fdfdfdffffff
+e0e0e0ebebebf9f9f9ffffffffffffecececefefeff1f1f1fcfcfcf3f3f3f6f6f6ffffff
+fffffffbfbfbfafafafffffffffffffdfdfdfcfcfcfefefefefefeffffffffffffffffff
+fffffffffffffffffffffffffbfbfbf7f7f7fffffffffffff5f5f5f4f4f4ffffffffffff
+fffffffffffffcfcfcf3f3f3fffffffffffffdfdfdfefefef7f7f7fefefeffffffffffff
+fafafafefefefcfcfcf2f2f2f7f7f7f9f9f9fffffffffffff6f6f6fafafafffffff7f7f7
+fffffffbfbfbe8e8e8fafafaffffffedededfffffff2f2f2fdfdfdfefefeffffffffffff
+fefefefefefefffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+f0f0f0fcfcfcffffffebebebfffffffffffff4f4f4fffffffafafafafafafafafafbfbfb
+fcfcfcfdfdfdfffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefefffffffffffff6f6f6f9f9f9fdfdfd
+fefefef0f0f0fcfcfcfafafafcfcfcfffffff8f8f8f1f1f1ffffffebebebfcfcfcffffff
+ffffffe7e7e7e3e3e3f3f3f3ffffffefefeff4f4f4fffffffcfcfcfefefeffffffffffff
+fffffffefefefffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101030303000000000000efefeffafafafefefee8e8e8ffffffe6e6e6ffffff
+fffffffdfdfdf8f8f8f9f9f9fffffff1f1f1fffffffcfcfcffffffffffffeeeeeef4f4f4
+fffffffcfcfcfbfbfbfefefefffffffefefefcfcfcfefefeffffffffffffffffffffffff
+fffffffffffffffffffefefef6f6f6fffffff7f7f7f3f3f3fffffffcfcfcf2f2f2ffffff
+fefefeeeeeeefffffffcfcfcfafafaf3f3f3fffffff6f6f6fffffff8f8f8f9f9f9f1f1f1
+f4f4f4f7f7f7fdfdfdfffffffffffffafafafffffffefefef6f6f6fffffffefefef5f5f5
+efefeff8f8f8fffffffbfbfbe1e1e1ffffffecececfefefefffffffefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbffffffe9e9e9f5f5f5e1e1e1f5f5f5fcfcfcefefeffbfbfbfafafaf9f9f9f9f9f9
+fafafafdfdfdfffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff4f4f4ffffff
+fafafaefefeffffffff6f6f6e6e6e6f1f1f1fefefef5f5f5fdfdfdf7f7f7fdfdfdfcfcfc
+f2f2f2fffffffffffff8f8f8fffffffffffffcfcfce2e2e2fffffffdfdfdfcfcfcfdfdfd
+fefefefffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101030303000000000000f1f1f1fafafafcfcfcf9f9f9fffffffafafaf6f6f6
+fefefef3f3f3fcfcfcfffffffffffff7f7f7f9f9f9fafafae8e8e8ffffffedededffffff
+fffffffefefefcfcfcfefefefffffffffffffefefefdfdfdffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfffffffffffffcfcfcf2f2f2fffffff5f5f5f2f2f2f3f3f3
+f4f4f4f1f1f1fefefefefefef9f9f9f7f7f7fffffffcfcfcfafafaeaeaeafafafaffffff
+fffffff2f2f2eaeaeaebebebfcfcfcefefefeaeaeafffffffffffffffffff4f4f4f7f7f7
+fffffffffffffffffffcfcfceaeaeafffffff6f6f6fffffffffffffffffffefefefefefe
+fffffffffffffefefefdfdfdfffffffefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcf7f7f7e1e1e1fcfcfce6e6e6fffffff0f0f0fffffffefefefdfdfdfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfce9e9e9ffffffebebeb
+f5f5f5ffffffefefefecececffffffe3e3e3fefefefbfbfbf8f8f8fffffff6f6f6f7f7f7
+edededf5f5f5f2f2f2f6f6f6fbfbfbf1f1f1fdfdfdfffffffffffffdfdfdf9f9f9fafafa
+fdfdfdfffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f8f8f8fbfbfbf7f7f7ffffffcfcfcfffffffe9e9e9
+f6f6f6fffffffffffff8f8f8fffffff6f6f6fffffffffffff8f8f8fafafaeaeaeaffffff
+fffffffffffffdfdfdfdfdfdfffffffffffffffffffdfdfdfefefefefefeffffffffffff
+fefefefdfdfdfcfcfcfbfbfbf7f7f7e4e4e4fffffff9f9f9f8f8f8eeeeeefffffff8f8f8
+fcfcfcfffffff8f8f8f8f8f8ffffffffffffe8e8e8f7f7f7fbfbfbfefefefffffff3f3f3
+eeeeeeebebebfffffff5f5f5f0f0f0fffffffdfdfdfefefef3f3f3f8f8f8f2f2f2ffffff
+f9f9f9fffffff9f9f9ffffffffffffdadadafffffffcfcfcfffffffefefefcfcfcfdfdfd
+fffffffffffffefefefcfcfcfdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcf3f3f3ffffffe6e6e6ffffffffffffcdcdcdf8f8f8fafafafbfbfbfcfcfcfdfdfd
+fefefefdfdfdfcfcfcfbfbfbfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfffffff4f4f4e6e6e6fefefe
+f9f9f9f5f5f5f8f8f8ffffffe9e9e9fefefef2f2f2f6f6f6fffffff7f7f7efefefffffff
+ffffffe2e2e2fffffff9f9f9fffffffffffffffffff0f0f0fffffffcfcfcf9f9f9f9f9f9
+fdfdfdfffffffffffffdfdfdfefefefefefefefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000060606fbfbfbfcfcfcf5f5f5fdfdfdffffffefefefd9d9d9
+ffffffe7e7e7f8f8f8efefefe5e5e5efefeffcfcfce7e7e7fafafaf8f8f8ffffffececec
+fcfcfcfdfdfdfcfcfcfafafafcfcfcfffffffefefefafafafdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfbfbfbfafafaf9f9f9fcfcfcfffffff9f9f9e8e8e8fffffff4f4f4ecececeeeeee
+eaeaeae6e6e6f7f7f7ffffffecececf3f3f3fffffffffffffefefefafafae8e8e8e0e0e0
+fffffffefefecdcdcd0404040b0b0bc4c4c4e9e9e9fffffffffffffffffff6f6f6eaeaea
+e6e6e6f3f3f3fefefef8f8f8edededfffffff4f4f4f9f9f9fdfdfdfafafaf8f8f8fafafa
+fefefefffffffdfdfdfbfbfbfbfbfbfafafafafafaf9f9f9f9f9f9f9f9f9fafafafafafa
+fffffff0f0f0ffffffe9e9e9fdfdfde6e6e6ffffffedededf5f5f5f7f7f7fafafafefefe
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffefefefdfdfdfbfbfbfafafaf3f3f3f6f6f6edededf9f9f9
+ffffffe8e8e8ededed0000000c0c0cfffffff8f8f8f0f0f0ffffffeaeaeaf9f9f9fdfdfd
+000000060606f2f2f2fffffff2f2f2fbfbfbfefefef7f7f7fcfcfcfbfbfbfafafafafafa
+fcfcfcfdfdfdfdfdfdfdfdfdfafafafafafafafafafafafafbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000020202000000010101f6f6f6fbfbfbf9f9f9f5f5f5fffffffbfbfbffffff
+fffffffcfcfcfafafae9e9e9fefefeffffffe2e2e2fbfbfbf8f8f8f6f6f6f5f5f5e0e0e0
+f8f8f8fafafaf9f9f9f6f6f6f8f8f8fcfcfcfbfbfbf6f6f6fbfbfbfbfbfbfbfbfbfbfbfb
+fafafaf9f9f9f8f8f8f7f7f7eeeeeefcfcfcfafafafffffff1f1f1fbfbfbf7f7f7ffffff
+fffffff0f0f0fcfcfce8e8e8fffffff3f3f3fffffff1f1f1d7d7d7fbfbfbfefefef9f9f9
+fbfbfbf4f4f4f9f9f91d1d1d0e0e0efffffffbfbfbf0f0f0e8e8e8efefefffffffffffff
+fafafafbfbfbf1f1f1e8e8e8f1f1f1f2f2f2fefefef3f3f3f8f8f8f5f5f5f3f3f3f5f5f5
+fafafafdfdfdfbfbfbf8f8f8f9f9f9f8f8f8f7f7f7f7f7f7f7f7f7f8f8f8f8f8f8f9f9f9
+f8f8f8f0f0f0e8e8e8fffffffbfbfbeeeeeee9e9e9fffffff6f6f6f7f7f7f9f9f9fbfbfb
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9dededefffffff5f5f5
+dededef3f3f32b2b2bf2f2f2000000efefeffffffff4f4f4fffffff4f4f4f8f8f8f5f5f5
+ededed1d1d1decececfafafafafafaf8f8f8ecececfffffff9f9f9fafafafcfcfcfcfcfc
+fcfcfcfbfbfbfcfcfcfdfdfdf8f8f8f8f8f8f8f8f8f8f8f8f9f9f9fbfbfbfcfcfcfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101030303000000000000f0f0f0fafafafefefeffffff000000161616090909
+000000f8f8f8ffffffececec000000050505040404f2f2f2fffffffcfcfcd8d8d8ffffff
+f4f4f4f8f8f8f6f6f6f3f3f3f4f4f4f9f9f9f8f8f8f2f2f2fafafafbfbfbfafafafafafa
+f9f9f9f8f8f8f6f6f6f5f5f5fbfbfbcbcbcbf8f8f8fcfcfc0202020404042f2f2f000000
+0505053232320d0d0d000000fffffff5f5f5d3d3d3fffffffffffffcfcfce0e0e0f4f4f4
+ffffffefefeffdfdfd0a0a0a000000fffffff3f3f3fbfbfbfffffff1f1f1fefefefdfdfd
+dcdcdcfffffff0f0f0ebebebffffff000000fdfdfdfffffff4f4f4f0f0f0eeeeeef2f2f2
+f7f7f7fbfbfbf9f9f9f5f5f5f7f7f7f7f7f7f6f6f6f6f6f6f6f6f6f7f7f7f7f7f7f8f8f8
+fbfbfbfffffff0f0f0f2f2f2f6f6f6ffffff000000f0f0f0fdfdfdfcfcfcfafafafafafa
+fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfbfbfbfafafaf2f2f2ffffffdcdcdcf2f2f2
+fbfbfb080808fafafae0e0e0fffffffdfdfdf2f2f2fcfcfcf8f8f8fdfdfde0e0e0fefefe
+fefefe030303fffffff8f8f8efefeffafafaeaeaeafbfbfbf6f6f6fafafafefefefefefe
+fbfbfbf9f9f9fbfbfbfdfdfdf9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101030303000000030303f6f6f6f8f8f8f3f3f3ebebebf9f9f9010101080808
+191919f8f8f8e9e9e9ffffffffffff000000ffffffe7e7e7f3f3f3fdfdfdfbfbfbd7d7d7
+f3f3f3f1f1f1d9d9d9fffffff8f8f8fafafafffffffafafae9e9e9e4e4e4fdfdfdf7f7f7
+fffffffdfdfdfffffffafafae9e9e9fffffff4f4f4fffffff0f0f0202020000000f4f4f4
+e9e9e9e8e8e8060606000000f9f9f9fefefeffffffcececeffffffedededecececffffff
+f3f3f3fbfbfbe1e1e10303030a0a0af2f2f2ecececfffffffffffff4f4f4eaeaeaf3f3f3
+f9f9f9f4f4f4fffffffdfdfd080808000000f7f7f7f9f9f9fafafafefefeffffffe6e6e6
+fffffffdfdfdfcfcfcf1f1f1edededffffffefefeffbfbfbfafafaf8f8f8f7f7f7f5f5f5
+ffffffe3e3e3e9e9e9fffffff4f4f40b0b0b121212fbfbfbefefefdededefffffff4f4f4
+f4f4f4f3f3f3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5fcfcfcf4f4f4e9e9e9ffffff
+f0f0f0000000f6f6f6fbfbfbefefeffafafadfdfdfefefeff5f5f5f6f6f6fffffff2f2f2
+d9d9d9171717e6e6e6f7f7f7ffffffe1e1e1fffffffcfcfcffffffe8e8e8ddddddf8f8f8
+e6e6e6ededede6e6e6f7f7f7fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101030303000000000000f3f3f3f8f8f8f8f8f8ebebebfefefe000000020202
+1f1f1f090909fefefed8d8d8e0e0e0171717f2f2f2fffffff3f3f3fbfbfbe2e2e2ffffff
+fefefeffffffe6e6e6eaeaeadfdfdffdfdfde1e1e1fafafaffffffebebebfffffffcfcfc
+eaeaeaefefefe1e1e1f8f8f8fffffff3f3f3f7f7f7ffffffefefef070707131313f4f4f4
+fcfcfcfafafaffffffe7e7e7ffffffe9e9e9ebebebfffffffffffffafafaf0f0f0efefef
+f3f3f3f0f0f0ffffffeaeaeafbfbfbfffffff5f5f5edededf8f8f8fffffffbfbfbfafafa
+ffffffedededfdfdfdececec1d1d1d252525f4f4f4fbfbfbe4e4e4edededfffffff3f3f3
+fbfbfbfbfbfbecececffffffffffffd7d7d7fffffffffffffafafaf3f3f3fffffff8f8f8
+fefefeffffffffffffbdbdbdffffff090909030303f9f9f9f7f7f7f1f1f1ffffffffffff
+fafafafffffff8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5fafafaffffffddddddf7f7f7
+f2f2f2070707e4e4e4fffffffdfdfdfefefee9e9e9ffffffedededf8f8f8f3f3f3f8f8f8
+ffffff0a0a0afffffff5f5f5f6f6f6f4f4f4dcdcdcfafafaeaeaeafdfdfdf0f0f0ededed
+eeeeeeffffffefefeffffffffbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000000000f1f1f1f9f9f9fbfbfbf3f3f3ffffff0d0d0dffffff
+0000000f0f0f060606f9f9f9ffffff131313edededc6c6c6ffffff000000070707080808
+0606060303030a0a0af4f4f4f6f6f61313130000000c0c0c1717170e0e0e1c1c1c000000
+313131edededf9f9f9fdfdfdf8f8f8ffffffffffffeaeaeafcfcfc000000191919ffffff
+eaeaea000000e9e9e9ffffff0000002525250000001c1c1ce3e3e3fbfbfb141414101010
+000000ffffff000000181818101010fcfcfcffffffe5e5e50c0c0c000000202020000000
+000000131313fbfbfb0000000000000303030606060f0f0ff1f1f1ffffffcdcdcd0c0c0c
+151515000000040404000000ffffffe9e9e90000000000000d0d0d111111000000212121
+0a0a0a000000d9d9d9ffffff0c0c0c0000001b1b1b070707000000fffffff7f7f7cccccc
+fcfcfcffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5e1e1e1c2c2c2fffffffafafa
+0505050404042e2e2e000000ebebebf0f0f00e0e0e040404000000ffffffefefeff1f1f1
+dcdcdc2c2c2cd1d1d1f3f3f3ffffff000000242424101010111111f8f8f8f7f7f7ffffff
+0000000b0b0b060606e9e9e9f9f9f9f9f9f9f9f9f9fafafafbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101000000000000000000000000f6f6f6fbfbfbf8f8f8ecececfcfcfc000000e8e8e8
+121212000000222222f3f3f3fdfdfd000000e0e0e0fefefef4f4f4141414020202f6f6f6
+fafafa0b0b0b050505fffffffffffff5f5f5030303040404f4f4f4fafafae1e1e10a0a0a
+020202f1f1f1fafafae0e0e0f0f0f0f9f9f9fdfdfde6e6e6fcfcfc2424240000000a0a0a
+0f0f0f0d0d0dfffffffafafafcfcfc000000060606161616ffffffffffff171717e2e2e2
+dfdfdff6f6f6ececec0c0c0c030303e0e0e0ffffff000000151515fdfdfdedededf1f1f1
+ffffff0c0c0ce5e5e5ffffff2b2b2b070707ebebebfdfdfdfdfdfdf3f3f3101010000000
+fffffff6f6f6ffffff030303000000fffffff7f7f7040404171717efefefffffffeaeaea
+0b0b0b171717f3f3f3f2f2f2fafafa050505070707fcfcfcffffffe2e2e2eeeeeefafafa
+e6e6e6fcfcfcf6f6f6f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5fffffff5f5f5dadadafbfbfb
+f3f3f3000000fefefeffffffffffff1c1c1c0b0b0befefefefefef0c0c0cf4f4f4f9f9f9
+f6f6f6000000fdfdfdf3f3f3050505f8f8f8fdfdfdfefefe030303f7f7f7f4f4f4010101
+fcfcfce6e6e6ffffff020202f7f7f7f7f7f7f8f8f8f9f9f9fbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+030303000000000000000000060606fcfcfcfbfbfbf2f2f2ffffffeeeeee1b1b1bffffff
+f6f6f60f0f0f141414000000f7f7f71b1b1bfafafad7d7d7202020000000ffffffe5e5e5
+e0e0e0f0f0f0212121000000eeeeeefefefe0606060b0b0bf5f5f5f2f2f2fafafa040404
+070707f7f7f7ffffffffffffefefeffcfcfce8e8e8fbfbfbffffff000000111111f1f1f1
+ffffff1b1b1bf6f6f6f4f4f4f3f3f3f9f9f92e2e2e0000001e1e1e000000dededeffffff
+ffffffddddddf8f8f80a0a0a000000ffffffeaeaea000000323232060606000000222222
+e5e5e5fffffff4f4f4f8f8f8000000000000fffffffdfdfdf8f8f8000000000000ffffff
+f5f5f5efefeffcfcfc0000000c0c0cd9d9d9f0f0f00606060a0a0aebebebecececffffff
+010101070707e3e3e3f5f5f5ebebeb171717010101fafafaf0f0f0fffffffefefef8f8f8
+fcfcfcefefefffffffefefefffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5f6f6f6eaeaeaf9f9f9ffffff
+e6e6e60e0e0ef9f9f9eeeeeee0e0e0ecececf2f2f2fdfdfd0808080c0c0ce8e8e8ffffff
+f9f9f9050505f3f3f3ffffff000000070707ececececececfefefeffffff050505ffffff
+f9f9f9fdfdfde3e3e3232323f7f7f7f7f7f7f8f8f8f9f9f9fbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+030303000000000000000000060606fbfbfbf9f9f9efefeff3f3f3f4f4f4000000e7e7e7
+e7e7e7ffffff0000002d2d2d0000000a0a0af7f7f7e8e8e80000000e0e0ee0e0e0ffffff
+fffffff1f1f10a0a0a212121ffffffffffff090909040404ffffffeeeeeefbfbfb010101
+111111f6f6f6f5f5f5e2e2e2fffffff6f6f6efefefffffffdcdcdc0909092f2f2ff7f7f7
+f3f3f3ddddddf6f6f6f6f6f6fffffff3f3f3f6f6f60404040000001b1b1bffffffc2c2c2
+e9e9e9fafafaffffff171717000000ffffffffffffececec0101010000001c1c1c141414
+000000000000e5e5e5ffffff1e1e1e000000fcfcfcebebebffffff1e1e1e020202080808
+0b0b0b000000010101070707000000edededfafafa282828000000fefefefdfdfdececec
+151515070707fdfdfdf3f3f3f2f2f20101010b0b0bffffffffffffdededeffffffdddddd
+fbfbfbffffffe7e7e7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5f9f9f9efefeff9f9f9f0f0f0
+f2f2f2020202e9e9e9fffffffefefefbfbfb070707000000ffffff000000fafafaffffff
+e4e4e40e0e0ee9e9e9f0f0f0f2f2f2171717000000222222e5e5e5f4f4f4000000191919
+000000282828040404000000f9f9f9f9f9f9f9f9f9fafafafbfbfbfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000000000f2f2f2f5f5f5f2f2f2fffffffefefe000000f5f5f5
+fbfbfbf3f3f30404040505051a1a1a010101e4e4e4ffffff0d0d0d151515fafafaf6f6f6
+e9e9e9f7f7f71d1d1d000000f7f7f7ffffff000000060606eeeeeef5f5f5ffffff0a0a0a
+000000f5f5f5fffffffffffffffffffcfcfce0e0e0f0f0f0ffffff141414000000e5e5e5
+e9e9e9fffffff6f6f6000000ffffffededed1313130000000b0b0b0f0f0f000000ffffff
+f6f6f6e7e7e7fefefe0000000a0a0af2f2f2f8f8f80f0f0ffefefef7f7f7dddddd040404
+0707070e0e0efcfcfcfafafa000000050505ffffffecececeaeaea101010060606ffffff
+fffffffbfbfbfdfdfdefefefffffffe0e0e0f0f0f0000000101010f7f7f7fffffff2f2f2
+000000000000ffffffffffffffffff0000000d0d0dfcfcfcfcfcfcf3f3f3edededf8f8f8
+f9f9f9f3f3f3fffffff2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5f6f6f6fffffff4f4f4eeeeee
+ffffff000000ebebebf9f9f9f3f3f30c0c0cfcfcfcdfdfdff3f3f3101010f3f3f3f7f7f7
+f8f8f8202020ebebebffffffffffffdededed8d8d8ebebeb181818f5f5f5080808eeeeee
+ffffffd8d8d8f5f5f5e8e8e8fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000020202050505000000000000e9e9e9f2f2f2f6f6f6d9d9d9f1f1f1000000ffffff
+f6f6f6f1f1f1ffffff000000010101000000f9f9f9ecececdddddd0b0b0b070707f4f4f4
+ffffff010101000000fffffff8f8f8eaeaea101010060606ffffffeeeeeee1e1e10c0c0c
+080808fffffff7f7f7f3f3f3f2f2f2f6f6f6fefefeefefefeaeaea0707070a0a0affffff
+f8f8f8f7f7f7080808000000ffffff000000040404fffffff8f8f81a1a1a000000030303
+fafafaf9f9f9ffffff212121040404f0f0f0fefefe141414edededf5f5f5ffffffe9e9e9
+010101101010f8f8f8f2f2f2010101121212f7f7f7f2f2f2f8f8f80a0a0a060606000000
+eaeaeaefefefd1d1d1f8f8f8000000fcfcfcffffff000000080808f1f1f1fffffffefefe
+101010040404d9d9d9f0f0f0f0f0f0050505020202fcfcfcf9f9f9fbfbfbeeeeeeffffff
+eaeaeaf9f9f9fffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdf9f9f9f5f5f5fbfbfbfdfdfdf3f3f3ffffff
+fcfcfc030303ffffffe6e6e6fcfcfc171717d5d5d5ffffff1d1d1d000000fffffff0f0f0
+e6e6e6040404fafafae4e4e4000000fffffffffffff3f3f3000000ffffff0a0a0a000000
+e9e9e9f2f2f2ffffff1c1c1cfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+040404060606010101000000010101fefefef9f9f9e6e6e6fefefe070707000000050505
+dfdfdffffffff1f1f1f9f9f90e0e0e121212e3e3e3fffffffcfcfc101010000000282828
+000000030303151515efefefededed111111010101010101080808f3f3f3030303393939
+000000040404fffffffbfbfbf3f3f3f7f7f7f7f7f7e3e3e31c1c1c060606030303050505
+2323230000001111111313130f0f0f0000001e1e1ef4f4f4eeeeee0b0b0b161616000000
+111111f2f2f20000000303030c0c0c222222e8e8e80000000f0f0f0f0f0f000000000000
+151515f5f5f5f8f8f8f8f8f80505050a0a0a000000151515fffffff6f6f6131313060606
+0000000404040c0c0c161616000000f0f0f0090909000000040404131313fbfbfb070707
+0606060909090a0a0af6f6f6f7f7f70d0d0d0e0e0e0c0c0c121212bdbdbdffffffe8e8e8
+ebebebfffffffcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f9f9f9d5d5d5fafafae5e5e5
+1b1b1b000000080808eaeaeaf7f7f7ffffff000000101010fbfbfb0c0c0c080808ffffff
+0d0d0d000000090909fdfdfd000000080808161616000000fffffffbfbfbebebeb0a0a0a
+101010131313080808f9f9f9f0f0f0f8f8f8fafafaf2f2f2f2f2f2fafafafffffffdfdfd
+fefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000000000060606010101e2e2e2e8e8e8f7f7f7f1f1f1e9e9e9fffffff4f4f4
+f7f7f7fafafaedededfcfcfcffffffffffffffffffdededeefefeffafafaffffffd6d6d6
+fcfcfcf9f9f9f2f2f2fcfcfcfefefef5f5f5f8f8f8f6f6f6f2f2f2ffffffeaeaeae1e1e1
+e5e5e5ffffffe0e0e0f6f6f6f2f2f2edededfcfcfcffffffeaeaeaf3f3f3fffffffcfcfc
+f7f7f7ffffffffffffdfdfdff6f6f6ffffffdfdfdff4f4f4ffffffecececfdfdfdffffff
+e1e1e1fffffffffffffffffff3f3f3e9e9e9fffffffefefef0f0f0fefefee2e2e2fefefe
+f0f0f0fbfbfbeeeeeeffffffffffffedededf8f8f8ecececeeeeeeffffffdcdcdcfcfcfc
+fffffffbfbfbf2f2f2e3e3e3f1f1f1fafafaecececfafafafcfcfcf1f1f1fefefef3f3f3
+f6f6f6dededef6f6f6f6f6f6f7f7f7f8f8f8e1e1e1fafafad4d4d4ffffffffffffebebeb
+fcfcfcfffffff8f8f8fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9f4f4f4f7f7f7fcfcfcffffff
+e9e9e9ffffffdbdbdbf8f8f8fefefef6f6f6f9f9f9dcdcdcffffffeaeaeaffffffebebeb
+fbfbfbffffffecececf5f5f5f4f4f4f1f1f1fdfdfdf2f2f2f7f7f7f4f4f4ffffffececec
+f5f5f5f9f9f9edededf9f9f9fbfbfbfefefefefefef9f9f9f6f6f6f9f9f9fcfcfcfdfdfd
+fffffffffffffefefefefefefefefefefefefffffffffffffdfdfdfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000010101f6f6f6f4f4f4e9e9e9f8f8f8f7f7f7f2f2f2e9e9e9
+fcfcfcf1f1f1f5f5f5d8d8d8f1f1f1fbfbfbe0e0e0fffffff3f3f3f6f6f6f9f9f9f0f0f0
+e6e6e6edededffffffdededee3e3e3ffffffedededdbdbdbdfdfdfffffffecececffffff
+f9f9f9cececefafafafffffffbfbfbffffffe6e6e6f7f7f7ebebebfdfdfde0e0e0ededed
+f5f5f5ebebebf2f2f2f2f2f2f1f1f1e2e2e2d9d9d9ffffffeeeeeeedededf6f6f6fcfcfc
+f5f5f5dbdbdbffffffd4d4d4f0f0f0e7e7e7cececef6f6f6f0f0f0f2f2f2f3f3f3ffffff
+f7f7f7efefefecececeeeeeef6f6f6f5f5f5fffffffffffffdfdfde2e2e2fafafaeaeaea
+e5e5e5ebebebfffffffffffffefefeffffffebebebf5f5f5f6f6f6edededfffffffafafa
+f6f6f6f8f8f8ffffffdcdcdcdcdcdcfffffff9f9f9f7f7f7fdfdfdf6f6f6e6e6e6e6e6e6
+f7f7f7fafafaf8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf4f4f4f0f0f0f8f8f8f6f6f6
+e0e0e0efefefffffffe7e7e7e5e5e5eeeeeeffffffdcdcdcffffffffffffe4e4e4ffffff
+f7f7f7efefefffffffd7d7d7fffffffffffff4f4f4f8f8f8d0d0d0fefefef6f6f6ffffff
+f6f6f6f3f3f3fcfcfcedededfffffffefefefdfdfdfdfdfdfbfbfbf8f8f8fafafaffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffefefefcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000050505020202000000010101fffffffcfcfce3e3e3f2f2f2f0f0f0e9e9e9f9f9f9
+ffffffe7e7e7fefefefffffffffffff6f6f6e7e7e7fffffff3f3f3e7e7e7f5f5f5ffffff
+fffffffbfbfbeeeeeef0f0f0f4f4f4f3f3f3fafafafdfdfdffffffe2e2e2eaeaeae1e1e1
+f6f6f6fffffff9f9f9f4f4f4f5f5f5fbfbfbffffffe5e5e5ffffffeaeaeaf3f3f3fefefe
+fffffff8f8f8f7f7f7fffffffffffff6f6f6fbfbfbfefefefefefee4e4e4f3f3f3f7f7f7
+eeeeeefffffff2f2f2e0e0e0fafafaf4f4f4ffffffedededf3f3f3f6f6f6f4f4f4f7f7f7
+e0e0e0ffffffffffffffffffd7d7d7ffffffe6e6e6efefefffffffe0e0e0fffffff4f4f4
+f3f3f3efefeff2f2f2ddddddf4f4f4f4f4f4f4f4f4f2f2f2f3f3f3f5f5f5f2f2f2efefef
+f5f5f5fefefee4e4e4fdfdfdfdfdfde3e3e3fdfdfdf3f3f3efefeff3f3f3fafafaf9f9f9
+f5f5f5f7f7f7fafafaf6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfbfbfbfbfffffff3f3f3f4f4f4
+ffffffdfdfdfe9e9e9f4f4f4ffffffe4e4e4f2f2f2ffffffecececf3f3f3ffffffdfdfdf
+fcfcfcd8d8d8fbfbfbffffffe2e2e2f2f2f2eaeaeafefefefffffff9f9f9fbfbfbf4f4f4
+e5e5e5fdfdfdfcfcfcf4f4f4fcfcfcf6f6f6f6f6f6fdfdfdfefefef9f9f9fcfcfcffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfc
+fbfbfbfbfbfbfcfcfcfcfcfcfffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000020202080808030303e6e6e6edededfbfbfbf7f7f7ffffffe6e6e6ffffff
+e3e3e3ffffffeeeeeeedededfffffff4f4f4fffffff8f8f8f9f9f9fffffff9f9f9f0f0f0
+f0f0f0fefefef0f0f0ffffffffffffedededfcfcfcefefefeaeaeafcfcfcf7f7f7ffffff
+f3f3f3ecececfdfdfdeaeaeafdfdfdffffffe5e5e5ffffffdededeffffffebebebf8f8f8
+fcfcfcfffffff9f9f9fafafafafafaffffffffffffd8d8d8ebebebf5f5f5eeeeeeffffff
+e1e1e1f4f4f4fbfbfbf9f9f9fbfbfbecececf9f9f9f8f8f8ebebebffffffdcdcdcf2f2f2
+fcfcfce8e8e8f9f9f9eeeeeefafafafffffff4f4f4fcfcfcfffffff4f4f4f2f2f2f0f0f0
+fefefefffffffffffffffffff9f9f9e6e6e6fffffffcfcfcfefefeffffffe7e7e7f8f8f8
+fffffff9f9f9f7f7f7f4f4f4f4f4f4f7f7f7f8f8f8ffffffffffffffffffffffffffffff
+f9f9f9fffffffffffff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfcfcfcffffffdfdfdfebebebffffff
+f1f1f1ffffffffffffdcdcdcf6f6f6ffffffe9e9e9fcfcfcfdfdfdf7f7f7fefefee5e5e5
+f9f9f9fcfcfcffffffeaeaeafbfbfbfffffffbfbfbfbfbfbf0f0f0ffffffedededd2d2d2
+ffffffffffffd3d3d3fdfdfdfafafaf3f3f3f4f4f4fcfcfcfffffffbfbfbfdfdfdffffff
+fcfcfcfdfdfdfffffffffffffffffffffffffdfdfdfcfcfcfdfdfdfdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000030303020202020202f1f1f1f6f6f6f8f8f8f1f1f1fcfcfcfffffff5f5f5
+e0e0e0fcfcfcf2f2f2fffffffbfbfbedededfffffffafafae8e8e8fafafaf0f0f0ffffff
+fffffffffffffffffff3f3f3f0f0f0fafafafdfdfdfffffffdfdfdf9f9f9e5e5e5ffffff
+f0f0f0f6f6f6fffffffffffffbfbfbedededf6f6f6f8f8f8efefeff4f4f4fffffff8f8f8
+fcfcfcf6f6f6f6f6f6fffffff5f5f5ebebebfbfbfbfffffffffffffffffffefefeffffff
+fbfbfbfcfcfcfffffff6f6f6f5f5f5fbfbfbf0f0f0fdfdfdf3f3f3fbfbfbf8f8f8fafafa
+ffffffefefeffffffff2f2f2fdfdfdf5f5f5f4f4f4ffffffefefeffffffff2f2f2fdfdfd
+fffffff4f4f4f6f6f6f0f0f0f2f2f2ffffffedededebebebeeeeeef2f2f2fffffff3f3f3
+f2f2f2f2f2f2fefefef6f6f6f6f6f6fffffff2f2f2f3f3f3f9f9f9edededf1f1f1fcfcfc
+fafafafafafaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefffffffffffffbfbfb
+f3f3f3ffffffe6e6e6fffffffffffff6f6f6f8f8f8fffffffcfcfcf5f5f5f4f4f4ffffff
+dededef8f8f8f2f2f2ebebebfffffffcfcfcf1f1f1e8e8e8f9f9f9e9e9e9f4f4f4fdfdfd
+e4e4e4d5d5d5fdfdfdeeeeeefdfdfdf9f9f9f8f8f8fcfcfcfefefefcfcfcfbfbfbfdfdfd
+f8f8f8f9f9f9fafafafbfbfbfbfbfbfafafaf9f9f9f8f8f8fcfcfcfcfcfcfcfcfcfcfcfc
+fafafaf9f9f9f7f7f7f6f6f6fffffffefefefcfcfcfbfbfbfbfbfbfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000080808040404000000000000ffffffffffffedededfbfbfbe2e2e2ffffffececec
+ffffffe9e9e9ededede4e4e4e6e6e6eeeeeefcfcfcf7f7f7f7f7f7fffffff9f9f9dbdbdb
+f7f7f7ebebebf7f7f7f8f8f8f8f8f8f7f7f7e9e9e9f4f4f4fffffffffffff4f4f4ffffff
+fcfcfcf5f5f5f6f6f6fbfbfbf9f9f9fffffffafafaffffffeaeaeaf9f9f9f7f7f7ffffff
+f8f8f8fefefefffffff9f9f9fefefefffffff7f7f7e3e3e3edededeaeaeafffffff3f3f3
+f7f7f7fefefefcfcfcfffffff1f1f1fffffffffffff1f1f1ffffffeaeaeafffffffafafa
+f9f9f9f9f9f9fafafaf9f9f9f8f8f8fffffffafafaf7f7f7fdfdfdfffffffcfcfcfafafa
+f6f6f6f0f0f0fffffffefefeffffffebebebfafafafffffffffffffdfdfdedededffffff
+fefefefffffff1f1f1fffffffffffff3f3f3fffffffffffffbfbfbfafafafefefeffffff
+fffffff3f3f3f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdffffffe6e6e6f8f8f8ffffff
+fafafafdfdfdf6f6f6f5f5f5e7e7e7f6f6f6fffffff7f7f7f7f7f7fcfcfcf0f0f0ebebeb
+fffffff3f3f3f2f2f2ffffffecececf9f9f9fdfdfdffffffeeeeeefbfbfbe2e2e2ffffff
+fbfbfbf8f8f8ffffffedededfbfbfbfcfcfcfafafaf8f8f8f9f9f9fcfcfcf9f9f9f3f3f3
+fbfbfbf9f9f9f8f8f8f6f6f6f6f6f6f8f8f8f9f9f9fbfbfbf8f8f8f9f9f9fafafaf9f9f9
+f8f8f8f4f4f4f0f0f0eeeeeefefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000010101000000e8e8e8f3f3f3fffffffffffffdfdfdf7f7f7efefef
+fdfdfdf5f5f5fffffff7f7f7fefefef2f2f2fbfbfbfafafafdfdfdcbcbcbfafafaffffff
+fefefefffffff2f2f2fefefefffffff9f9f9fffffff4f4f4f8f8f8fafafafefefef0f0f0
+fcfcfcfffffff9f9f9f8f8f8fefefefbfbfbffffffe9e9e9fffffff5f5f5fbfbfbfbfbfb
+fbfbfbf7f7f7fffffff8f8f8fafafafbfbfbf1f1f1fffffff8f8f8ffffffe6e6e6ffffff
+fcfcfcfcfcfcfffffff0f0f0ffffffedededfafafaf7f7f7fffffff7f7f7f5f5f5fbfbfb
+fffffffafafafffffffafafaffffffe6e6e6f8f8f8fffffffdfdfde7e7e7fffffffdfdfd
+fbfbfbf8f8f8fffffff4f4f4fcfcfcfcfcfcfefefefbfbfbfcfcfcfffffffcfcfcf8f8f8
+f8f8f8f7f7f7fcfcfcfbfbfbfcfcfcfffffffbfbfbfdfdfdfffffffffffff9f9f9f1f1f1
+fbfbfbfffffffefefefcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefefefefffffffafafaf4f4f4
+f6f6f6f9f9f9fffffff6f6f6fffffffbfbfbf3f3f3f7f7f7ffffffebebebfefefef9f9f9
+fdfdfdebebebffffffe9e9e9fefefefefefef6f6f6f5f5f5f9f9f9fffffff1f1f1fcfcfc
+dcdcdcfffffff7f7f7f5f5f5f5f5f5fafafaf8f8f8f2f2f2f4f4f4fafafaf7f7f7eeeeee
+fffffffdfdfdf8f8f8f5f5f5f5f5f5f8f8f8fdfdfdffffffedededf0f0f0f7f7f7fcfcfc
+fffffffffffffffffffffffffefefefdfdfdfbfbfbf9f9f9f9f9f9fbfbfbfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000040404f6f6f6fbfbfbfbfbfbfbfbfbeaeaeafffffffcfcfc
+f6f6f6f7f7f7f2f2f2f5f5f5f1f1f1f5f5f5f9f9f9ffffffecececf8f8f8fdfdfdefefef
+fdfdfdf9f9f9f1f1f1d7d7d7ebebebfefefeeeeeeefffffff1f1f1fafafafdfdfdf7f7f7
+f7f7f7fffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef9f9f9fefefef9f9f9ffffff
+fffffff3f3f3edededfffffff9f9f9fffffff5f5f5f1f1f1fffffff2f2f2fffffff9f9f9
+c9c9c9fffffff9f9f9fffffff0f0f0f1f1f1fffffff6f6f6fbfbfbfcfcfcf0f0f0f6f6f6
+fefefeffffffffffffe7e7e7f6f6f6fffffff6f6f6edededf2f2f2fffffffbfbfbf2f2f2
+fefefee7e7e7fffffff5f5f5f6f6f6fafafafafafafffffffafafaf9f9f9fafafaf2f2f2
+f1f1f1efefeff7f7f7ffffffdadadaffffffe5e5e5fafafafefefefcfcfcf5f5f5ffffff
+fdfdfdf6f6f6fffffffffffff2f2f2fffffffffffffcfcfcffffffffffffffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+020202000000000000000000020202f4f4f4f8f8f8f8f8f8eaeaeaffffffe4e4e4f5f5f5
+fffffff6f6f6f6f6f6fffffffffffff4f4f4f9f9f9efefeffffffff5f5f5fffffffefefe
+f9f9f9e7e7e7f9f9f9f9f9f9f5f5f5f9f9f9e0e0e0ecececf6f6f6fffffffffffffafafa
+fafafafffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefefefefffffffffffff2f2f2
+e8e8e8f9f9f9fffffffffffff7f7f7f8f8f8fefefefffffff2f2f2fbfbfbebebebffffff
+ffffffededededededd0d0d0ffffffebebebffffffebebebf5f5f5fafafaf9f9f9f0f0f0
+fbfbfbdededeeeeeeefdfdfdfffffffcfcfcecececfffffff2f2f2efefeff5f5f5fefefe
+f4f4f4fdfdfdefefefffffffffffffd1d1d1eeeeeef8f8f8f8f8f8f0f0f0fefefef6f6f6
+ffffffeeeeeefdfdfdedededfffffffdfdfde9e9e9f1f1f1f7f7f7fffffffffffff4f4f4
+f8f8f8fffffff2f2f2fdfdfdfffffff1f1f1ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+020202000000000000000000010101f2f2f2f5f5f5f5f5f5ffffffe5e5e5eaeaeaffffff
+dfdfdfecececffffffe1e1e1fafafaf0f0f0ffffff000000090909ffffffe7e7e7e4e4e4
+fefefeefefefffffffefefefececec0b0b0b323232f0f0f0f9f9f9fffffffffffffbfbfb
+fafafafffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefefefee8e8e8ffffffffffff
+f6f6f6fffffffdfdfdf9f9f9f8f8f8ffffffecececfffffff1f1f1fdfdfde7e7e7fcfcfc
+eaeaeaecececfdfdfdf8f8f8fafafaeeeeeeedededfbfbfbf7f7f7fefefeffffffe9e9e9
+fffffffbfbfbfefefefefefef1f1f1f4f4f4efefefffffffffffffe1e1e1ffffffeeeeee
+f7f7f7eeeeeeedededcbcbcbfffffff1f1f1fefefefafafadddddde7e7e7fefefefcfcfc
+e1e1e1fafafafffffff5f5f5ffffffeeeeeefffffff9f9f9efefeff2f2f2fefefef8f8f8
+fffffff4f4f4fffffff8f8f8eeeeeeffffffedededfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+020202000000000000000000020202f3f3f3f7f7f7f6f6f6f7f7f7d7d7d7ffffffebebeb
+d6d6d6ffffffdfdfdfffffffe7e7e7edededffffff101010000000ffffffeeeeeeffffff
+d7d7d7fcfcfce3e3e30808081111110c0c0c070707f2f2f2f7f7f7fdfdfdfefefefafafa
+f9f9f9fdfdfdfefefefcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffeeeeeef8f8f8efefef
+f3f3f3fffffff3f3f3fefefefefefefafafafafafafffffff0f0f0fefefefffffff4f4f4
+fffffffffffffffffff5f5f5f7f7f7fafafafdfdfdf5f5f5fefefef5f5f5fbfbfbf9f9f9
+d6d6d6fefefef5f5f5eeeeeefcfcfce7e7e7f6f6f6fafafae7e7e7ffffffe1e1e1f8f8f8
+f2f2f2efefeff9f9f9f7f7f7fbfbfbffffffdadadaf7f7f7ffffffffffffe0e0e0e2e2e2
+f8f8f8f7f7f7ffffffe1e1e1fffffff1f1f1e7e7e7fffffffffffff2f2f2fffffff6f6f6
+fffffffffffff1f1f1ffffffebebebf9f9f9ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101000000000000000000040404f6f6f6fafafafafafaededed1111110000000c0c0c
+000000030303020202f0f0f0ffffffececece9e9e90e0e0e050505fbfbfbeaeaeaf0f0f0
+ffffffe2e2e2ffffffe6e6e6ffffff0000001c1c1cfffffff7f7f7fbfbfbfdfdfdfbfbfb
+fbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef3f3f3fffffffffffff0f0f0
+fafafaffffffeaeaeaf9f9f9fefefef0f0f0f9f9f9fffffffffffff1f1f1f1f1f1efefef
+e6e6e6dfdfdf000000141414000000fffffffbfbfbfbfbfbefefeff2f2f2fffffff2f2f2
+0101011a1a1a000000090909090909060606e1e1e1eaeaeafffffff3f3f31c1c1c101010
+070707f2f2f2fffffff2f2f20000001a1a1a0f0f0f1515150000000000000e0e0efcfcfc
+fffffffefefed0d0d0fffffff2f2f2ffffff5050509c9c9c999999e8e8e8fefefefefefe
+efefeff4f4f4ffffffe5e5e5fffffff6f6f6f0f0f0fffffffffffffefefefdfdfdfdfdfd
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101000000000000000000040404f7f7f7fbfbfbfcfcfceaeaeaf7f7f71d1d1d000000
+ffffff070707090909000000efefefffffffefefef0b0b0b0e0e0ef2f2f2f2f2f2fdfdfd
+f4f4f4fcfcfce6e6e6f7f7f7f3f3f31d1d1d000000edededfafafafcfcfcfefefeffffff
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef3f3f3f8f8f8f9f9f9ffffff
+fffffff1f1f1edededffffffebebebf4f4f4ffffffe9e9e9000000fffffff0f0f0ffffff
+ffffff000000f1f1f1ffffffffffff141414fefefef2f2f2fffffff4f4f4e1e1e1ebebeb
+151515fbfbfbfffffffdfdfdebebebfffffffafafaffffffffffff000000fbfbfbe8e8e8
+f8f8f8000000f5f5f5ffffff000000f8f8f8e3e3e3fefefef4f4f4101010fffffff1f1f1
+ecececf4f4f4ffffffddddddffffff000000ffffffd8d8d8fafafa9a9a9afefefeececec
+ffffff000000f1f1f1ffffffebebebfffffff9f9f9efefeffdfdfdfcfcfcfcfcfcfbfbfb
+fcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101000000000000000000030303f5f5f5f9f9f9f9f9f9fcfcfcfdfdfd000000090909
+f0f0f0e0e0e00c0c0c050505090909f2f2f2dbdbdbfffffff6f6f6fffffff2f2f2fdfdfd
+bdbdbdfffffff6f6f6f6f6f6f4f4f4000000040404fffffffdfdfdfefefeffffffffffff
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefffffff8f8f8e3e3e3f9f9f9
+f0f0f0e8e8e8f9f9f9d3d3d3f4f4f4ffffff050505000000ffffffffffffd0d0d0ffffff
+000000fffffff2f2f2f1f1f1efefefdcdcdc1b1b1bfbfbfbc5c5c5f7f7f7fefefeffffff
+000000fafafaefefefeaeaeae8e8e8fdfdfdf1f1f1efefef030303ffffffdbdbdbffffff
+f2f2f2ffffff1a1a1ab9b9b9ffffffe8e8e8fafafafbfbfbf8f8f8000000f0f0f0f0f0f0
+f5f5f5fcfcfcfafafafdfdfd000000ffffffe7e7e7eeeeeeffffffefefef414141ffffff
+ebebebffffff0a0a0a1a1a1ae9e9e9e0e0e0fffffff1f1f1fcfcfcfbfbfbfafafaf9f9f9
+fafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+020202000000000000000000010101f2f2f2f6f6f6f5f5f5fffffff5f5f50f0f0f252525
+fbfbfbfefefe020202090909050505ffffff0e0e0e0000000e0e0ef7f7f7f2f2f2ffffff
+202020000000060606010101191919020202000000fefefefefefefdfdfdfefefeffffff
+fdfdfdfafafafbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefee8e8e8fffffffbfbfbfbfbfb
+e7e7e7ffffffececec2121210c0c0c000000f2f2f2f7f7f7f2f2f2e7e7e7fffffff6f6f6
+000000e8e8e8fffffffffffffefefef3f3f3020202f6f6f6fffffff9f9f9dededeffffff
+171717ffffffe3e3e3fffffffafafaf1f1f1f2f2f2ffffff000000f5f5f5fbfbfbfafafa
+f7f7f7fcfcfc000000fbfbfbfffffff6f6f6f9f9f9f1f1f1121212d4d4d4f0f0f0fbfbfb
+fbfbfbeaeaeaf5f5f5f7f7f70c0c0cf5f5f5fdfdfdf0f0f0f1f1f1f6f6f62a2a2ae8e8e8
+ffffffefefeff6f6f6ffffff3434341010103f3f3ffafafafbfbfbfafafaf8f8f8f8f8f8
+f9f9f9fbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000000000f0f0f0f8f8f8fcfcfcf7f7f7e8e8e80606060f0f0f
+fafafa030303191919030303ffffffe9e9e9ffffff070707111111fcfcfcf4f4f4f8f8f8
+000000171717f3f3f3e9e9e9fafafa0b0b0b0f0f0ffdfdfdfffffffffffffdfdfdfcfcfc
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefeffffffebebebfafafaffffff
+fcfcfc000000000000f8f8f8fbfbfbfcfcfcf7f7f7fffffff7f7f7fefefeffffffffffff
+101010eeeeeefffffff4f4f4f6f6f6f5f5f52c2c2cddddddffffffe9e9e9fffffff3f3f3
+0c0c0c000000040404010101010101fefefef8f8f8f8f8f8050505040404fffffffcfcfc
+fafafa202020000000ffffffe8e8e8f8f8f8fefefefdfdfd000000fbfbfbf7f7f7fdfdfd
+fffffff6f6f6f2f2f2f0f0f0000000fffffffcfcfce2e2e2ffffffffffff0e0e0ef4f4f4
+ffffffe2e2e2ffffffe9e9e9ffffffeeeeeef4f4f46a6a6a262626f0f0f0ffffffececec
+fffffff6f6f6fffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000000000f2f2f2f7f7f7f9f9f9f6f6f6dbdbdb323232050505
+0d0d0d0c0c0c000000fbfbfbfbfbfbdfdfdfe9e9e90d0d0d040404fcfcfcf7f7f7121212
+1f1f1ffffffffffffff4f4f4e1e1e10f0f0f010101f3f3f3fafafafafafafbfbfbfcfcfc
+fdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef2f2f2ffffffecececffffff
+ffffff040404000000f6f6f6fefefef4f4f4f1f1f1fffffff3f3f3efefeff1f1f1fcfcfc
+030303fcfcfcf7f7f7fefefefffffffafafa000000ffffffefefefffffffebebebe6e6e6
+fffffffffffffffffff9f9f9111111000000fffffff2f2f2ededed0e0e0e000000030303
+191919000000000000fffffff4f4f4d6d6d6f9f9f9010101f9f9f9ffffffe7e7e7e9e9e9
+eeeeeeffffffffffffededed0c0c0cecececfcfcfcf0f0f0f5f5f5ececec000000ffffff
+f6f6f6ffffffffffffd6d6d6f7f7f7fefefee2e2e25454542e2e2edcdcdcffffffffffff
+ffffffe6e6e6f6f6f6ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+020202000000000000000000030303f4f4f4f6f6f6f4f4f4ffffffffffff000000191919
+f6f6f6fdfdfdfdfdfde1e1e1f0f0f0fffffff7f7f70c0c0c000000e8e8e8ffffff000000
+010101e0e0e0f4f4f4ffffffececec141414000000fffffff8f8f8fafafafcfcfcffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef4f4f4e7e7e7fbfbfbf8f8f8
+dededefffffffdfdfd131313010101000000f8f8f8e0e0e0fafafaffffffe8e8e8ffffff
+020202e0e0e0ffffffefefeff4f4f4ffffff1c1c1ccfcfcfeaeaeae5e5e5e5e5e5fefefe
+f1f1f1dededee1e1e1fffffffdfdfd0c0c0cecececffffffebebebf6f6f6f6f6f6ffffff
+ffffff333333ffffffd5d5d5e1e1e1ffffffffffff040404f7f7f7eaeaeafffffffcfcfc
+fefefeefefefdcdcdcffffff0b0b0be8e8e8ffffffcececef5f5f5ffffff202020f1f1f1
+fffffff1f1f1e5e5e5ffffff242424030303121212ebebebe6e6e6fffffff0f0f0e8e8e8
+fffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+040404000000000000000000050505f5f5f5f5f5f5f1f1f1f3f3f3f6f6f6070707000000
+fffffffcfcfceeeeeeffffffdddddde8e8e8eeeeee000000131313fffffffcfcfc070707
+141414fafafafffffffefefee8e8e8040404000000fdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefffffff7f7f7eeeeeeffffff
+eaeaeae9e9e9ffffffdfdfdff6f6f6ffffff000000141414ffffffdfdfdffdfdfdffffff
+010101ffffffeeeeeeecececfbfbfbe7e7e7090909fffffff3f3f3f9f9f9fffffff3f3f3
+eeeeeeffffffe1e1e1e8e8e8ededed121212fafafaf9f9f9fffffffafafacacacaffffff
+000000cececefffffff7f7f7fefefee2e2e2000000fffffffffffff6f6f6f3f3f3f9f9f9
+fdfdfdfffffff3f3f3efefef000000fdfdfdf5f5f5fffffff4f4f4ededed000000efefef
+f5f5f5ffffff000000000000fcfcfcffffffe6e6e6eeeeeefffffffefefef6f6f6f3f3f3
+fefefefffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+040404000000000000000000050505f5f5f5f5f5f5f1f1f1ffffffededed151515020202
+ffffffdededefcfcfce0e0e0fcfcfcf8f8f8ffffff1616160c0c0cf4f4f4ebebeb0e0e0e
+0404040101010000001717170d0d0d0e0e0e0b0b0beeeeeefffffffffffffffffffefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef6f6f6f5f5f5f6f6f6ffffff
+fefefefefefef5f5f5fafafafefefee6e6e6fffffffdfdfd000000f6f6f6ffffffeeeeee
+fafafa000000ffffffffffffffffff0d0d0dfafafaf8f8f8060606000000f9f9f90e0e0e
+000000ffffffffffffffffff000000fefefeededede5e5e5efefeff7f7f70b0b0b000000
+fbfbfbffffffdededef8f8f8fffffff7f7f7050505fbfbfbeaeaeaf9f9f9ffffffeaeaea
+000000101010e6e6e6fdfdfdffffff000000f9f9f9fdfdfdf1f1f10f0f0ff3f3f3ffffff
+ffffff000000fffffffffffffdfdfdebebebfffffffdfdfde5e5e5e8e8e8ffffffffffff
+f8f8f8fafafaf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+020202000000000000000000030303f4f4f4f6f6f6f4f4f4e7e7e70000001919190a0a0a
+000000fffffffffffff3f3f3f9f9f9dddddd000000030303020202000000f6f6f6f7f7f7
+151515020202121212000000e2e2e20d0d0d0808080c0c0cfefefefdfdfdfbfbfbf9f9f9
+f9f9f9fbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef7f7f7fffffffafafae5e5e5
+fafafaffffffecececf5f5f5fefefefffffffafafae3e3e3ffffffffffffe3e3e3ffffff
+fffffff5f5f5090909030303000000f7f7f7fefefee3e3e3212121090909ffffffe0e0e0
+181818000000181818000000e8e8e8fffffffffffff9f9f9fbfbfb1e1e1ef4f4f4fefefe
+e7e7e7ffffffecececf7f7f7e2e2e2151515ebebebfffffff5f5f5f5f5f5ffffffffffff
+0000000e0e0effffffffffffecececffffff1919190000001e1e1effffffe8e8e8ededed
+fffffffbfbfbefefefeeeeeef8f8f8ffffffeeeeeef0f0f0fffffffcfcfcfcfcfcf7f7f7
+f8f8f8fffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101000000000000000000000000f2f2f2f7f7f7f9f9f9fefefee2e2e2f3f3f3ffffff
+fafafadededefefefeffffffe7e7e7ffffffe0e0e0f6f6f6fffffff2f2f2eeeeeefafafa
+f1f1f1fafafaffffffccccccfffffff4f4f4f2f2f2dfdfdff8f8f8f8f8f8f8f8f8f9f9f9
+fbfbfbfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef9f9f9fdfdfdfefefeffffff
+ffffffeaeaeaf5f5f5fffffff5f5f5fdfdfdebebebfffffff5f5f5ffffffeaeaeafafafa
+efefeffafafad6d6d6ffffffefefefffffffffffffffffffe9e9e9f4f4f4f1f1f1ffffff
+ecececf7f7f7fbfbfbffffffffffffeaeaeaf0f0f0ffffffffffffd6d6d6fafafaffffff
+ebebebffffffeeeeeef9f9f9ffffffeaeaead5d5d5fafafafffffff6f6f6e3e3e3ffffff
+d2d2d2dadadaffffffeaeaeaffffffeaeaeaeaeaeaffffffe7e7e7f6f6f6ffffffececec
+ffffffeeeeeeffffffffffffe8e8e8fefefef3f3f3ffffffefefeff5f5f5fdfdfdffffff
+fdfdfdfafafafffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000000000f0f0f0f8f8f8fcfcfce2e2e2ffffffefefefeeeeee
+fcfcfcfcfcfcf7f7f7fffffffdfdfdf0f0f0f2f2f2f5f5f5ddddddfffffff7f7f7f9f9f9
+f9f9f9fbfbfbfffffffbfbfbe2e2e2fffffff9f9f9fdfdfdf3f3f3f5f5f5f9f9f9fdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefefefefefefef8f8f8fffffff4f4f4f7f7f7
+fefefee9e9e9ffffffedededfdfdfdfcfcfcfffffff6f6f6fbfbfbfffffff9f9f9fefefe
+fffffff5f5f5f9f9f9f4f4f4ffffffe4e4e4e6e6e6eeeeeef4f4f4ffffffecececd7d7d7
+fffffff1f1f1f5f5f5f8f8f8edededfffffffffffff7f7f7dadadaffffffe9e9e9fbfbfb
+f1f1f1f9f9f9f5f5f5f3f3f3e5e5e5f9f9f9fffffffbfbfbf8f8f8fffffffdfdfde4e4e4
+fffffffdfdfdd8d8d8f2f2f2fefefee8e8e8f5f5f5fefefef5f5f5f6f6f6f5f5f5ffffff
+f6f6f6fafafafdfdfde9e9e9fffffffdfdfdffffffedededfffffffffffff6f6f6ffffff
+fffffff3f3f3fdfdfdf9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000010101f5f5f5f6f6f6f0f0f0fffffffefefefcfcfcf9f9f9
+f7f7f7f9f9f9fdfdfdfffffff7f7f7fbfbfbfffffffffffffcfcfcf9f9f9f9f9f9fbfbfb
+f0f0f0f4f4f4f6f6f6f4f4f4f5f5f5f8f8f8f7f7f7f3f3f3f7f7f7f8f8f8fafafaf9f9f9
+f9f9f9fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefffffffffffffdfdfdffffffffffffffffff
+fefefefcfcfcfcfcfcfdfdfdf9f9f9fdfdfdfffffffffffffcfcfcfbfbfbfdfdfdffffff
+f2f2f2fdfdfdfffffff7f7f7f6f6f6fefefefffffffbfbfbfafafafbfbfbfcfcfcfdfdfd
+fdfdfdfbfbfbf9f9f9f8f8f8fffffffefefefafafaf9f9f9fafafafbfbfbfcfcfcfcfcfc
+f7f7f7f6f6f6f8f8f8fafafaf9f9f9f8f8f8fcfcfcfffffffafafaf4f4f4fdfdfdf0f0f0
+fefefef4f4f4fefefefbfbfbfafafaf9f9f9f8f8f8f7f7f7f8f8f8fafafafdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefefffffffcfcfcfdfdfdffffffffffff
+fffffffdfdfdfbfbfbfafafafdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000020202f6f6f6f8f8f8f2f2f2f9f9f9fbfbfbfcfcfcfbfbfb
+f9f9f9f9f9f9fafafafcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfafafaf7f7f7f4f4f4
+f7f7f7fbfbfbfcfcfcfafafafafafafdfdfdfcfcfcf8f8f8f8f8f8f9f9f9fafafafafafa
+f9f9f9fafafafcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffff
+fefefefdfdfdfdfdfdfefefefefefefefefefefefefefefefefefefdfdfdfbfbfbf9f9f9
+f4f4f4eeeeeef0f0f0f8f8f8f7f7f7eeeeeef0f0f0fbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfafafafafafafcfcfcfafafaf8f8f8f9f9f9fafafafafafaf9f9f9f8f8f8
+fffffffffffffefefefdfdfdf8f8f8f2f2f2f3f3f3f8f8f8fefefefefefefafafafbfbfb
+f7f7f7f9f9f9f8f8f8fafafaf9f9f9f8f8f8f7f7f7f6f6f6f7f7f7fafafafcfcfcfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafafafafafafafafafafbfbfbfdfdfdfefefefffffffcfcfcfdfdfdffffffffffff
+fffffffdfdfdfbfbfbfafafafdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000020202f8f8f8fbfbfbf6f6f6f5f5f5f8f8f8fcfcfcfdfdfd
+fcfcfcf9f9f9f8f8f8f7f7f7fefefefbfbfbf8f8f8f9f9f9fbfbfbfbfbfbf5f5f5f0f0f0
+f6f6f6fafafafafafaf7f7f7f7f7f7f9f9f9f8f8f8f5f5f5f9f9f9fafafafbfbfbfafafa
+fafafafafafafcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fefefefdfdfdfefefefffffffffffffefefefcfcfcfdfdfdfffffffefefef8f8f8f2f2f2
+fffffff8f8f8f9f9f9fffffffffffff7f7f7f8f8f8fffffffefefefdfdfdfcfcfcfbfbfb
+fbfbfbfbfbfbfbfbfbfcfcfcf5f5f5f5f5f5f5f5f5f7f7f7f9f9f9f9f9f9f6f6f6f4f4f4
+fcfcfcfafafafafafafcfcfcfafafaf6f6f6f8f8f8fcfcfcfefefefffffff5f5f5ffffff
+f1f1f1fefefef4f4f4fafafaf7f7f7f7f7f7f6f6f6f7f7f7f8f8f8fafafafdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8f9f9f9fafafafcfcfcfefefefffffffdfdfdfefefeffffffffffff
+fffffffefefefcfcfcfbfbfbfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f8f8f8fdfdfdfafafaf5f5f5f9f9f9fcfcfcfefefe
+fcfcfcfafafaf8f8f8f8f8f8fdfdfdfbfbfbf9f9f9fafafafbfbfbfbfbfbf7f7f7f4f4f4
+f5f5f5f8f8f8f8f8f8f4f4f4f4f4f4f6f6f6f5f5f5f2f2f2fafafafbfbfbfcfcfcfbfbfb
+fafafafbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfefefefefefefefefe
+fdfdfdfdfdfdfefefefffffffefefefdfdfdfdfdfdfefefefffffffcfcfcf7f7f7f3f3f3
+f5f5f5fefefefefefef5f5f5f4f4f4fcfcfcfcfcfcf4f4f4fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfbfbfbfafafafafafaf9f9f9f8f8f8f8f8f8f9f9f9fcfcfcfcfcfcfbfbfbfafafa
+f6f6f6f4f4f4f6f6f6fafafafcfcfcfbfbfbfdfdfdfffffff9f9f9fcfcfcf5f5f5fcfcfc
+f4f4f4fdfdfdf8f8f8fdfdfdf8f8f8f8f8f8f8f8f8f9f9f9fafafafcfcfcffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f9f9f9f9f9f9f9f9f9fafafafcfcfcfdfdfdfefefefefefefefefeffffffffffff
+fffffffefefefcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000020202f8f8f8fefefefdfdfdfbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfdfdfdf9f9f9fcfcfcfefefefefefefcfcfcfbfbfbfcfcfcfefefe
+fbfbfbfdfdfdfdfdfdf9f9f9f8f8f8fbfbfbfbfbfbf8f8f8fbfbfbfcfcfcfdfdfdfcfcfc
+fbfbfbfbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfcfcfc
+fbfbfbfbfbfbfdfdfdfffffff8f8f8fbfbfbfefefefefefefbfbfbf9f9f9f8f8f8f9f9f9
+f5f5f5fdfdfdfcfcfcf4f4f4f4f4f4fdfdfdfcfcfcf3f3f3f9f9f9fafafafcfcfcfefefe
+fdfdfdfbfbfbf9f9f9f7f7f7fffffffefefefbfbfbfbfbfbfefefeffffffffffffffffff
+fdfdfdfafafaf9f9f9fcfcfcfcfcfcf8f8f8f7f7f7f9f9f9fbfbfbf7f7f7fdfdfdf4f4f4
+fefefef8f8f8fffffffdfdfdfafafafbfbfbfbfbfbfcfcfcfdfdfdffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000000000f6f6f6fdfdfdfdfdfdfffffffffffffffffffdfdfd
+fbfbfbfcfcfcfefefefffffffafafafefefefffffffffffffdfdfdfcfcfcffffffffffff
+fdfdfdfffffffffffffbfbfbfbfbfbfefefefffffffcfcfcfdfdfdfefefefefefefdfdfd
+fcfcfcfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf8f8f8fcfcfcfdfdfdfcfcfcfafafa
+f8f8f8f8f8f8fafafafcfcfcf5f5f5f9f9f9fdfdfdfcfcfcf9f9f9f7f7f7fafafafefefe
+fffffff6f6f6f5f5f5fefefefffffff8f8f8f7f7f7fefefef8f8f8f9f9f9fbfbfbfcfcfc
+fbfbfbfafafaf7f7f7f6f6f6fdfdfdfafafaf6f6f6f5f5f5f7f7f7fafafafcfcfcfcfcfc
+fffffffafafaf9f9f9fcfcfcfdfdfdf9f9f9f6f6f6f7f7f7fffffff9f9f9fffffff4f4f4
+fffffff6f6f6fffffffdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefdfdfdfefefefefefeffffffffffffffffffffffff
+fefefefefefefefefefefefefdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000000000f4f4f4fcfcfcfdfdfdfefefefffffffffffffefefe
+fcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfffffffefefefafafafafafafefefefffffffefefefefefefffffffffffffefefe
+fcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfafafaf6f6f6f4f4f4fdfdfdfdfdfdfbfbfbf8f8f8
+f5f5f5f5f5f5f7f7f7f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfcfcfc
+f6f6f6ebebebeaeaeaf4f4f4f7f7f7f0f0f0efefeff6f6f6fafafaf9f9f9f8f8f8f6f6f6
+f6f6f6f7f7f7f8f8f8f8f8f8f9f9f9f7f7f7f4f4f4f4f4f4f5f5f5f6f6f6f6f6f6f5f5f5
+f9f9f9f5f5f5f6f6f6fbfbfbfefefefcfcfcfafafafbfbfbfbfbfbf9f9f9fafafaf7f7f7
+fbfbfbfafafafefefefffffffefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000000000f3f3f3fbfbfbfcfcfcfdfdfdfefefeffffffffffff
+fefefefdfdfdfefefefffffffffffffffffffdfdfdfdfdfdfffffffffffffffffffcfcfc
+fefefefffffffffffffcfcfcfdfdfdfffffffffffffffffffefefefffffffffffffefefe
+fcfcfcfcfcfcfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefcfcfcf8f8f8f4f4f4f2f2f2fdfdfdfcfcfcfafafaf7f7f7
+f4f4f4f3f3f3f5f5f5f7f7f7fefefef9f9f9f5f5f5f5f5f5f8f8f8fbfbfbfbfbfbf9f9f9
+f4f4f4fafafaf9f9f9f2f2f2f6f6f6fffffffffffff5f5f5fdfdfdfafafaf5f5f5f2f2f2
+f1f1f1f4f4f4f8f8f8fbfbfbfefefefdfdfdfcfcfcfdfdfdfefefefdfdfdfbfbfbf8f8f8
+fcfcfcf8f8f8f7f7f7fcfcfcfefefefbfbfbf8f8f8f7f7f7f0f0f0f5f5f5ecececfafafa
+f0f0f0fffffffafafafffffffefefefffffffffffffffffffffffffefefefdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefffffffffffffffffffffffffffffffffffffffffffefefe
+fefefefefefefefefefffffffdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefdfdfdfcfcfcfbfbfbf9f9f9f8f8f8f6f6f6ffffffe1e1e1efefef
+fbfbfbeeeeeefffffff4f4f4fafafaf4f4f4fdfdfdffffffe8e8e8e8e8e8fdfdfdfafafa
+fffffff4f4f4e6e6e6f5f5f5fefefefdfdfdf2f2f2f7f7f7f4f4f4f8f8f8f3f3f3f5f5f5
+ffffffe7e7e7fffffffcfcfcddddddf8f8f8eeeeeedadadafffffff8f8f8f3f3f3f8f8f8
+ffffffecececdbdbdbffffffdcdcdcfbfbfbffffffe9e9e9f9f9f9f5f5f5f4f4f4ffffff
+f8f8f8fffffff5f5f5ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefcfcfcfbfbfbf9f9f9f8f8f8ffffffdededeeeeeeed9d9d9
+101010181818060606ecececefefeff2f2f2ffffff0000001c1c1c000000010101e0e0e0
+e9e9e9f3f3f3f0f0f00909090000000000000f0f0f090909060606fffffff4f4f4e3e3e3
+e3e3e3f2f2f2f9f9f9cfcfcffffffffffffffbfbfbffffff000000060606050505ffffff
+f7f7f7eeeeeefffffff9f9f90000002d2d2d000000f4f4f4fffffffffffff4f4f4fcfcfc
+f8f8f8fffffff9f9f9fcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbf9f9f9f8f8f8e9e9e9fdfdfdffffffffffff
+ffffff000000f7f7f7fffffffefefe0707070b0b0bfafafafafafafffffff7f7f7151515
+020202ffffffffffffffffff181818fffffffafafaededed1b1b1b010101fcfcfcf3f3f3
+e8e8e8fffffff3f3f3fffffff8f8f8e3e3e3ffffff060606f4f4f4fffffff5f5f5000000
+f7f7f7fafafaffffff030303f9f9f9f2f2f2ffffff060606e3e3e3fdfdfdf9f9f9fbfbfb
+f5f5f5fffffffcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9fdfdfdfafafae8e8e8e1e1e1
+e7e7e7090909ffffffe2e2e2191919000000eeeeeeebebebfbfbfbfafafaefefefefefef
+0b0b0b000000f8f8f8e9e9e9000000edededf5f5f5ffffffe0e0e01d1d1dfcfcfcf7f7f7
+ffffffdadadaefefefdbdbdbf0f0f0ffffff000000ffffffffffffe8e8e8fefefeffffff
+181818ececec000000fefefefbfbfbf2f2f2ffffffe0e0e0aaaaaaf0f0f0ffffffffffff
+f1f1f1fcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9ececece7e7e7f8f8f8ffffff
+ffffff000000ffffffe7e7e7070707ffffffedededfbfbfbf0f0f0f0f0f0ffffffeeeeee
+f3f3f3121212f8f8f8ffffff000000ffffffeeeeeee9e9e9ffffff000000f9f9f9ffffff
+e2e2e2f1f1f11414140a0a0affffffdedede030303ffffffd8d8d8fafafaefefefefefef
+000000ffffff000000f2f2f2e5e5e5e9e9e9ffffffe8e8e8959595f1f1f1ffffffffffff
+f2f2f2f9f9f9fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaffffffedededf2f2f2fdfdfd
+e5e5e5111111eaeaeaf9f9f9070707e8e8e8f7f7f7ffffffecececececece6e6e6f5f5f5
+fafafa000000fffffff9f9f9050505f9f9f9ebebebffffff0000000f0f0ff7f7f7f8f8f8
+eaeaeaffffff000000121212fbfbfbffffff010101fdfdfdfafafaf7f7f7ffffffd4d4d4
+0c0c0cdcdcdc050505e1e1e1fffffff8f8f8fefefef9f9f9a7a7a7fffffffcfcfcfbfbfb
+f8f8f8fffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf4f4f4fffffffffffffbfbfb
+ededed0f0f0ffffffff9f9f9040404fffffff2f2f2eaeaeafffffffafafaf8f8f8fcfcfc
+e2e2e2050505f2f2f2fdfdfd070707000000222222000000f7f7f7f0f0f0f7f7f7fbfbfb
+fefefeffffffe0e0e0e7e7e7e9e9e9fefefe030303fffffffafafaf2f2f2e3e3e3ffffff
+121212fafafa131313f4f4f4f2f2f2e7e7e7eeeeeeefefefa8a8a8fffffff8f8f8fbfbfb
+fcfcfcfefefefefefefafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfafafaefefeffafafadfdfdfefefef
+f9f9f9000000ffffffe8e8e8000000f5f5f5ebebebdcdcdcfdfdfdfdfdfdebebebffffff
+f2f2f2090909e5e5e5fafafa000000fffffff7f7f7f9f9f9020202fffffff3f3f3eeeeee
+f6f6f6edededfffffff3f3f3f9f9f9d7d7d7212121f3f3f3ffffffefefefffffffe9e9e9
+070707e2e2e2121212f9f9f9fffffff1f1f1fffffffbfbfb909090fafafaf9f9f9ffffff
+fcfcfcf6f6f6fbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffdfdfdfafafaf7f7f7fbfbfbfefefefdfdfdf8f8f8
+fdfdfd232323f0f0f0f6f6f6000000191919fefefef4f4f4ffffffeeeeeef1f1f1ffffff
+040404171717f0f0f0f2f2f22c2c2ce2e2e2fffffff2f2f2f7f7f7000000ecececffffff
+edededf5f5f5efefeff8f8f8efefeff9f9f9050505e9e9e9ffffffeaeaeafcfcfcf7f7f7
+020202fdfdfd0b0b0bffffffd6d6d6ffffffecececffffff9c9c9ceaeaeafdfdfde8e8e8
+f9f9f9fffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffdfdfdfafafaf7f7f7eeeeeeffffffecececffffff
+ffffff000000f3f3f3fbfbfbffffff000000060606fdfdfdeeeeeef3f3f3ffffff000000
+040404edededffffffffffff000000f5f5f5fefefeeeeeeef6f6f6191919fffffff0f0f0
+e6e6e6eeeeee121212000000fffffff5f5f5dadada0c0c0cfcfcfcf0f0f0ffffff000000
+f8f8f8eaeaeafefefe000000ffffffe2e2e2e5e5e5010101e5e5e5fffffffffffff7f7f7
+fbfbfbf9f9f9f0f0f0f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffefefefbfbfbf8f8f8efefefddddddebebebdfdfdf
+0000001a1a1a090909f5f5f5edededfffffffafafa0000002828280000000f0f0fefefef
+fefefefffffff6f6f6040404212121070707f3f3f3fefefeffffffe5e5e50303030e0e0e
+ffffffdedede2323230b0b0bccccccfbfbfbffffffe3e3e30606060404040b0b0bf0f0f0
+ebebebfffffffafafafbfbfb0000000c0c0c0d0d0dfafafaf7f7f7f5f5f5f5f5f5fafafa
+fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffefefefbfbfbf9f9f9fffffff2f2f2fbfbfbffffff
+f5f5f5fbfbfbe8e8e8ffffffeeeeeefffffff4f4f4ffffffd9d9d9fffffff5f5f5f2f2f2
+f7f7f7f3f3f3efefefffffffdadadafbfbfbf9f9f9fbfbfbfffffff1f1f1fffffff6f6f6
+d5d5d5f0f0f0eeeeeef8f8f8ffffffcbcbcbececece4e4e4fffffff3f3f3f0f0f0ffffff
+ffffffdbdbdbe0e0e0fcfcfcfcfcfcf8f8f8fffffff6f6f6fbfbfbeaeaeaf1f1f1ffffff
+fcfcfcfafafafdfdfdf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffcfcfcfafafaf2f2f2ffffffefefefe7e7e7
+f3f3f3fcfcfcffffffecececf3f3f3ecececfffffffffffffefefeedededffffffffffff
+ffffffddddddfffffffcfcfcf9f9f9fefefef9f9f9e6e6e6fdfdfdfdfdfdf7f7f7e1e1e1
+fefefeffffffeeeeeef9f9f9edededfafafaf1f1f1ffffffeaeaeaf2f2f2fefefef8f8f8
+ffffffefefeffffffff4f4f4f5f5f5f7f7f7f4f4f4f7f7f7fefefef2f2f2fcfcfcffffff
+f8f8f8fbfbfbfffffff0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfbfbfbf2f2f2fffffff6f6f6fcfcfc
+fffffff5f5f5fcfcfcefefeffffffffafafaf3f3f3eaeaeaf1f1f1fffffffafafae4e4e4
+f8f8f8fbfbfbebebebfffffff7f7f7f6f6f6f0f0f0ffffffffffffdfdfdfffffffffffff
+f2f2f2f5f5f5fffffff0f0f0fcfcfcf5f5f5fefefefffffffffffff8f8f8f9f9f9f5f5f5
+fcfcfcf9f9f9fafafafdfdfdfffffffffffff4f4f4fffffff8f8f8f4f4f4fdfdfdfefefe
+f4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefbfbfbf2f2f2fcfcfcf9f9f9fefefe
+f3f3f3ffffffe7e7e7fffffff5f5f5f9f9f9fbfbfbfafafafffffffbfbfbe5e5e5ffffff
+eeeeeefffffff7f7f7eaeaeaf6f6f6fffffffefefeeaeaeaf4f4f4fffffffcfcfcf9f9f9
+ffffffe9e9e9f6f6f6f8f8f8fffffff4f4f4edededf2f2f2eaeaeaffffffefefeffefefe
+f0f0f0fffffff4f4f4f8f8f8f2f2f2edededfafafaf9f9f9fffffffdfdfdfffffffefefe
+f5f5f5f5f5f5fbfbfbf8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefcfcfcfffffff7f7f7ffffffe5e5e5
+ffffffffffffecececf1f1f1f3f3f3fbfbfbfffffff5f5f5f7f7f7e7e7e7ffffffe4e4e4
+fafafaddddddfbfbfbf5f5f5fffffffdfdfdfffffff6f6f6f5f5f5fffffff7f7f7f2f2f2
+fffffffefefeeeeeeefefefef1f1f1fafafaffffffe8e8e8fdfdfdfcfcfcfffffff8f8f8
+f9f9f9ecececfffffffffffff1f1f1fffffff4f4f4fffffff9f9f9f4f4f4f8f8f8ffffff
+fffffffbfbfbfafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf8f8f8f5f5f5f8f8f8fcfcfcffffff
+fffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf9f9f9f7f7f7f9f9f9fdfdfdffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfbfbfbfafafafbfbfbfcfcfcfdfdfdfefefe
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfcfcfcfbfbfbfffffffefefefefefefdfdfd
+fdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fdfdfdfefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdfffffffffffffefefefdfdfd
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefffffffffffffffffffefefe
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefcfcfcfcfcfcfcfcfcfdfdfd
+fdfdfdfefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefffffffffffffffffffdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfefefefafafafafafafefefe
+fffffffffffffffffffffffffefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcf8f8f8f8f8f8fcfcfc
+fffffffefefefefefefffffffefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefdfdfdfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+fefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafaf6f6f6f6f6f6fafafa
+fdfdfdfcfcfcfcfcfcfefefefefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfafafaf6f6f6f6f6f6fafafa
+fdfdfdfcfcfcfcfcfcfefefefefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe
+fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfbfbfbf7f7f7f7f7f7fcfcfc
+fefefefdfdfdfdfdfdfffffffefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafa
+fafafafefefefffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcf8f8f8f8f8f8fdfdfd
+fffffffefefefefefefffffffefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9f8f8f8f8f8f8f7f7f7f8f8f8fafafafcfcfcfdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffcfcfcf4f4f4
+f4f4f4fafafafcfcfcf7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfcfcfcfdfdfdfdfdfdfefefefefefefefefefefefe
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcf8f8f8f8f8f8fdfdfd
+fffffffefefefefefefffffffefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfafafaf9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffcfcfcf3f3f3
+f2f2f2f9f9f9fbfbfbf6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbfcfcfcf8f8f8f7f7f7fcfcfc
+fffffffefefefefefefffffffefefefffffffffffffefefefcfcfcfcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfbfbfbfafafafbfbfbfdfdfdfefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffff4f4f4
+f3f3f3fcfcfcfefefef8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7f7f7f7f8f8f8fafafafcfcfcfdfdfdfefefeffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfafafa
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffafafaf5f5f5f2f2f2f5f5f5fafafaffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfbfbfbfbfbfb
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafaf6f6f6f1f1f1efefeff2f2f2f6f6f6fafafafcfcfc
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfcfcfc
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcf9f9f9f6f6f6f6f6f6f8f8f8fbfbfbfdfdfdfdfdfd
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfefefeffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefefdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfffffffffffffefefefcfcfc
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdfefefefffffffdfdfdfbfbfb
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffdfdfd
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefffffffefefefdfdfd
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfdfdfdfcfcfcfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fbfbfbfafafaf9f9f9f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fafafaf8f8f8f7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fafafaf8f8f8f7f7f7f7f7f7fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fbfbfbfafafaf9f9f9f9f9f9fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefefefefffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefffffffffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffefefefffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fffffffefefefcfcfcfbfbfbfffffffffffffefefefdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fefefefcfcfcf9f9f9f8f8f8fefefefdfdfdfbfbfbfafafafafafafbfbfbfdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfefefeffffffffffff
+fdfdfdfbfbfbf7f7f7f5f5f5fcfcfcfbfbfbf9f9f9f7f7f7f7f7f7f9f9f9fbfbfbfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfefefefdfdfdf1f1f1ffffffefefef
+fcfcfcfefefefffffff5f5f5f8f8f8fffffff4f4f4f3f3f3fbfbfbfffffff7f7f7fefefe
+f2f2f2fffffff6f6f6fffffff4f4f4fbfbfbfffffff4f4f4fbfbfbf6f6f6fffffffbfbfb
+fbfbfbf8f8f8ebebebfffffff9f9f9ebebebfffffffffffff8f8f8f9f9f9f6f6f6ffffff
+f0f0f0f1f1f1fffffffffffff4f4f4fffffffffffff6f6f6fdfdfdfefefefefefefefefe
+fefefefefefefefefefefefefdfdfdefefeff7f7f7fdfdfdfafafaf9f9f9fffffff9f9f9
+fffffffefefefcfcfcfdfdfdfffffffffffffefefefdfdfdfffffffefefefdfdfdfefefe
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffff7f7f7fcfcfcffffff
+f4f4f4f5f5f5f0f0f0fcfcfcfffffffefefefffffffefefefdfdfdfffffffffffffafafa
+fffffff3f3f3f0f0f0fffffff8f8f8f7f7f7f8f8f8fffffff5f5f5ffffffffffffefefef
+fffffffefefeffffffe2e2e2ffffffe3e3e3ffffffe8e8e8fefefefffffffcfcfcfcfcfc
+fffffffffffff4f4f4edededfffffff7f7f7edededfffffffefefeffffffffffffffffff
+fffffffefefefbfbfbf9f9f9eeeeeef9f9f9fffffff2f2f2f8f8f8f4f4f4fefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfefefe
+fefefefefefefdfdfdfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000020202f4f4f4fafafafdfdfdfefefef2f2f2f8f8f8f9f9f9
+fcfcfcfffffff2f2f2fffffff8f8f8f6f6f6fffffff9f9f9eeeeeef1f1f1ffffffffffff
+f1f1f1f8f8f8fffffff3f3f3efefeffbfbfbfefefee9e9e9ffffffeeeeeef4f4f4f4f4f4
+e8e8e8fafafaf0f0f0fffffff4f4f4fffffff7f7f7fffffff2f2f2efefeff9f9f9f2f2f2
+e1e1e1fbfbfbffffffe7e7e7fffffff9f9f9fdfdfdfefefefbfbfbfefefeffffffffffff
+fffffffffffffbfbfbf9f9f9fcfcfcf8f8f8f9f9f9f5f5f5fffffffbfbfbfefefeffffff
+fcfcfcfdfdfdfefefefdfdfdfcfcfcfcfcfcfcfcfcfefefefbfbfbfefefeffffffffffff
+fffffffdfdfdfdfdfdfdfdfdfffffffffffffffffffefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000020202f4f4f4fafafafcfcfcf4f4f4fffffff2f2f2e2e2e2
+fffffffdfdfdf1f1f1f3f3f3f5f5f5fffffff3f3f3edededfefefefffffff5f5f5f3f3f3
+f7f7f7f5f5f5fffffffffffffefefef5f5f5f9f9f9fafafae4e4e4f7f7f7f3f3f3ffffff
+eaeaeaf1f1f1ffffffe6e6e6fffffff1f1f1ffffffe9e9e9fffffffefefefcfcfcfefefe
+fffffff9f9f9eeeeeefdfdfdefefefeeeeeef9f9f9fbfbfbfafafafcfcfcfefefeffffff
+fffffffffffffefefefcfcfcfbfbfbefefeff4f4f4ffffffe3e3e3fdfdfdfffffff3f3f3
+fcfcfcfdfdfdfffffffefefefcfcfcfbfbfbfdfdfdfffffffdfdfdffffffffffffffffff
+fffffffefefefefefefefefefefefefefefefefefefdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000010101f3f3f3f9f9f9fbfbfbf9f9f9ecececfffffffcfcfc
+eaeaeafdfdfdebebebf8f8f8efefeffefefefffffffcfcfcefefeffafafaffffffffffff
+eaeaeaffffffecececfdfdfdfbfbfbe2e2e2fffffff8f8f8fffffff5f5f5f5f5f5f0f0f0
+fffffff6f6f6f0f0f0f5f5f5f4f4f4fffffff4f4f4f7f7f7f2f2f2e8e8e8eeeeeefafafa
+e9e9e9fafafafffffff7f7f7fcfcfcf0f0f0fffffff3f3f3fefefefdfdfdfdfdfdfcfcfc
+fcfcfcfcfcfcfcfcfcfdfdfdeeeeee0c0c0c000000e8e8e8fffffffffffff4f4f4ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fefefefcfcfcfbfbfbfbfbfbfdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000000000000000010101f2f2f2f8f8f8fafafaf3f3f3ffffffd0d0d0ffffff
+f3f3f3fffffff2f2f2fffffffffffff6f6f6f3f3f3e4e4e4ffffffe6e6e6f0f0f0fafafa
+e6e6e6f3f3f3e7e7e7f2f2f2ffffffffffffddddddf8f8f8eaeaeafcfcfce7e7e7ffffff
+d4d4d4f2f2f2fffffffffffff5f5f5fefefefdfdfde7e7e7f7f7f7fffffff3f3f3fcfcfc
+fafafaffffffecececfcfcfcfbfbfbf3f3f3fdfdfde9e9e9fffffffffffffcfcfcf9f9f9
+f7f7f7f7f7f7f8f8f8f9f9f9f1f1f1050505060606f8f8f8edededfffffffffffff4f4f4
+fbfbfbfafafaf8f8f8f9f9f9fbfbfbfcfcfcfafafaf9f9f9fbfbfbf9f9f9f7f7f7f7f7f7
+f8f8f8f8f8f8f7f7f7f5f5f5fcfcfcfcfcfcfbfbfbfcfcfcfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000000000000000000000f2f2f2f7f7f7f9f9f9e0e0e00909090c0c0c000000
+101010e5e5e5fcfcfcd9d9d9f3f3f3000000181818070707020202262626ffffffe6e6e6
+ffffffeeeeee2121210909090505050000000606061717170b0b0bffffffd8d8d8eaeaea
+fffffffefefef8f8f8f0f0f0f6f6f6cacacafafafa1818180202020f0f0f000000262626
+040404060606fffffffefefee7e7e7121212dfdfdffffffffafafafafafaf9f9f9f8f8f8
+f8f8f8f8f8f8f9f9f9f9f9f9fdfdfd0000000c0c0cf7f7f7fffffff9f9f9fffffff3f3f3
+fafafaf5f5f5f1f1f1f3f3f3f8f8f8fafafaf7f7f7f2f2f2fdfdfdf6f6f6f0f0f0f0f0f0
+f5f5f5f7f7f7f4f4f4f0f0f0fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000000000f1f1f1f7f7f7f9f9f9fffffff3f3f3010101030303
+ffffffffffffefefef1c1c1c000000181818f2f2f2fafafaffffff0000000202020e0e0e
+efefeff1f1f1efefef000000111111fefefe080808000000050505000000fffffffcfcfc
+f9f9f9ffffffffffffebebebfcfcfcfefefe0000000404041c1c1cdcdcdcffffffe6e6e6
+000000151515e5e5e5f9f9f9101010000000fefefefbfbfbf0f0f0f1f1f1f4f4f4f8f8f8
+fafafafcfcfcfdfdfdfdfdfde8e8e80303031f1f1fe3e3e3ffffffe5e5e5fcfcfcf0f0f0
+fffffff9f9f9f4f4f4f6f6f6fefefefffffffbfbfbf5f5f5fffffff7f7f7eeeeeeeeeeee
+f5f5f5f8f8f8f5f5f5f0f0f0fafafafafafafafafafbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101010101080808fafafaf8f8f8efefefdcdcdcf9f9f90000000a0a0a
+ffffffededede9e9e90c0c0c040404ffffffedededecececfefefeffffff1515150a0a0a
+ffffffecececffffff232323000000ffffffffffff1212120a0a0a0f0f0fffffffe2e2e2
+f1f1f1f8f8f8fffffff0f0f0e9e9e9f5f5f5060606090909fffffff8f8f8ffffffededed
+fcfcfc0c0c0ce0e0e0fafafa0f0f0f111111ffffffecececfbfbfbffffffeeeeeeffffff
+f7f7f7edededfefefefafafaffffffe0e0e0ffffffd7d7d7fbfbfbfffffff5f5f5ececec
+fffffffdfdfde8e8e8fffffffffffff2f2f2ecececf3f3f3e5e5e5fffffff4f4f4fbfbfb
+f1f1f1edededf5f5f5fafafafcfcfcfdfdfdfefefefefefefefefefcfcfcfafafaf9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101020202030303000000000000edededeeeeeeeaeaeaffffffeeeeee121212000000
+fbfbfbf3f3f30606060e0e0e131313dbdbdbf3f3f3fffffff3f3f3f4f4f4000000090909
+161616f0f0f0ededed020202151515f6f6f6f6f6f60000000606061d1d1df0f0f0f0f0f0
+fffffffffffff2f2f2f1f1f1ffffffcecece2424241c1c1c000000090909f1f1f1f7f7f7
+fbfbfbf2f2f2fdfdfd181818010101070707222222000000f1f1f10202020d0d0d000000
+f7f7f71d1d1d000000dfdfdf0707070a0a0a010101fbfbfbffffff000000090909060606
+0000000707073030300d0d0d080808fafafaf2f2f2ffffff0606060a0a0a000000090909
+050505fffffff7f7f7ffffffecececeeeeeef1f1f1f6f6f6fafafafefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101040404000000000000eeeeeef5f5f5f6f6f6e1e1e1f4f4f4181818000000
+fffffffafafa0000001a1a1a010101fafafaf3f3f3f1f1f1fdfdfdebebeb3e3e3e070707
+010101fffffff7f7f71212120f0f0ff8f8f8eeeeee0a0a0a030303f1f1f1e6e6e6ffffff
+eeeeeedfdfdfebebebfafafaf4f4f4ffffff000000090909070707101010303030090909
+000000fcfcfcfefefed8d8d80b0b0b060606f8f8f8ffffffffffffd8d8d8000000262626
+1616160a0a0a181818ffffffffffff080808000000f8f8f8e6e6e6ffffff020202212121
+fdfdfdfcfcfcfafafa000000121212f9f9f9f7f7f70000000a0a0ae9e9e9fffffff5f5f5
+000000000000191919dfdfdff2f2f2f3f3f3f4f4f4f6f6f6f9f9f9fcfcfcffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000030303000000000000f4f4f4fafafafafafaf9f9f9ffffff000000000000
+edededfefefe2929290b0b0b141414fcfcfcffffffefefefeeeeeef8f8f8090909000000
+2f2f2ff8f8f8fbfbfb040404000000000000131313fafafafffffff0f0f0f4f4f4f0f0f0
+e9e9e9ffffffffffffefefefe4e4e4fffffff1f1f11d1d1d0404040000000000000c0c0c
+000000141414e1e1e1ffffff0000000a0a0af5f5f5fafafae3e3e3ffffff090909000000
+ebebebfafafa000000edededf7f7f70000001b1b1bf1f1f1fcfcfcf1f1f10c0c0c060606
+fffffff1f1f1f1f1f10d0d0d000000f4f4f4ffffff111111000000f3f3f3fafafae1e1e1
+0a0a0a191919f0f0f0f1f1f1fdfdfdfcfcfcfafafaf9f9f9f9f9f9f9f9f9fafafafbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+030303020202020202000000010101f4f4f4f3f3f3ecececf6f6f6ffffff111111141414
+fcfcfcf1f1f1000000040404080808f4f4f4edededffffffe6e6e6ffffff050505000000
+050505fcfcfcebebeb060606191919ffffff000000090909080808fefefef2f2f2ffffff
+ffffffeaeaeadcdcdcf8f8f8fffffffbfbfbefefefe8e8e8edededfffffffbfbfb000000
+070707222222e1e1e1e3e3e32f2f2f050505f9f9f9f1f1f1dadadae1e1e1030303000000
+ffffffe3e3e3ffffffd6d6d6f2f2f2101010000000fcfcfcffffffeeeeee0303032f2f2f
+dfdfdfe8e8e8ffffff0404040a0a0afefefefdfdfd0404040e0e0eebebebfffffff4f4f4
+232323080808ddddddfffffff8f8f8f7f7f7f7f7f7f7f7f7f8f8f8fafafafdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+030303010101010101000000060606fafafaf8f8f8f0f0f0f3f3f3ececec0202020d0d0d
+f1f1f1f4f4f4f2f2f2171717010101090909f9f9f9ffffffededede5e5e5040404080808
+fafafaffffffededed030303060606ebebebfefefe000000101010000000efefefffffff
+f2f2f2ecececffffffd9d9d9ffffffffffff101010f1f1f1fffffff5f5f5e5e5e5f5f5f5
+181818050505f5f5f5ebebeb050505000000ffffffffffffffffffededed0d0d0d282828
+cfcfcff1f1f1fefefefafafaffffff000000080808fffffff9f9f9f9f9f9080808020202
+fefefee0e0e0ffffff191919000000ffffffedededf0f0f00f0f0f090909070707000000
+000000fffffff4f4f4fffffffafafafafafafbfbfbfbfbfbfcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000050505fbfbfbfffffffcfcfcfffffffefefe131313010101
+fcfcfcfffffffdfdfd0000000f0f0f131313eeeeeeebebebfefefe0a0a0a1a1a1adcdcdc
+f4f4f4dbdbdbf0f0f01313131e1e1efffffff2f2f20707070707070d0d0dfafafacccccc
+e7e7e7ffffffdcdcdcfffffff6f6f6dbdbdb000000f3f3f3eeeeeeeaeaeaffffff101010
+090909000000f5f5f5ffffff0e0e0e0a0a0afcfcfce5e5e5d9d9d9ffffff000000020202
+f2f2f2e5e5e5fffffff5f5f5eeeeee060606070707f1f1f1fcfcfcf9f9f9030303070707
+fafafafdfdfdffffff040404262626e8e8e8e7e7e7ffffff000000fcfcfcefefefffffff
+fafafadbdbdbfbfbfbf0f0f0fffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+010101030303030303000000000000eeeeeef6f6f6f7f7f7fcfcfc0000000c0c0c191919
+020202ededede6e6e6fffffffafafa040404030303000000070707040404fcfcfcfbfbfb
+e9e9e9fdfdfd000000090909000000000000f5f5f5fafafa040404060606000000131313
+f5f5f5d6d6d6fffffffbfbfbf5f5f5ffffff0a0a0a0e0e0e0000001717170a0a0a000000
+151515ffffffeeeeeefbfbfb0000000101010c0c0c0a0a0affffff0000000c0c0c0f0f0f
+080808fffffff7f7f7f9f9f90101010f0f0f000000121212e4e4e41b1b1b0d0d0d050505
+020202ffffff000000161616000000010101fefefef4f4f40202021111110d0d0d000000
+1111110c0c0cedededf4f4f4f6f6f6f8f8f8fafafafdfdfdfffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+020202010101020202000000070707fcfcfcfdfdfdf6f6f6fefefef5f5f5fafafaececec
+fbfbfbf2f2f2fefefefafafaf2f2f2f5f5f5f9f9f9fbfbfbfafafaf5f5f5efefefebebeb
+fdfdfdf9f9f9fcfcfcfafafaf4f4f4fafafafffffff8f8f8eaeaeaf1f1f1f7f7f7fbfbfb
+fffffffffffff9f9f9ecececf5f5f5f5f5f5f7f7f7f8f8f8f9f9f9fafafafafafafafafa
+fdfdfdfbfbfbf9f9f9f7f7f7f6f6f6f7f7f7f9f9f9fafafaf6f6f6f7f7f7f7f7f7f8f8f8
+f8f8f8f9f9f9f9f9f9f9f9f9f5f5f5fbfbfbfffffffdfdfdf7f7f7f4f4f4f7f7f7fbfbfb
+efefeffffffff2f2f2fafafafbfbfbe7e7e7fcfcfc090909040404dcdcdcffffffe9e9e9
+000000181818f4f4f4fcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+040404020202010101000000000000f3f3f3f3f3f3ecececfffffffafafafafafaf4f4f4
+fbfbfbf8f8f8fdfdfdfbfbfbf9f9f9fafafafcfcfcfdfdfdfdfdfdfcfcfcfafafaf8f8f8
+fbfbfbf9f9f9fcfcfcfbfbfbf6f6f6fbfbfbfffffff8f8f8f4f4f4f4f4f4f1f1f1f0f0f0
+f5f5f5fcfcfcfafafaf4f4f4f4f4f4f5f5f5f6f6f6f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9
+fafafaf9f9f9f7f7f7f6f6f6f5f5f5f6f6f6f8f8f8f9f9f9f8f8f8f8f8f8f8f8f8f8f8f8
+f8f8f8f9f9f9f9f9f9f9f9f9f5f5f5f9f9f9fcfcfcfbfbfbf7f7f7f4f4f4f6f6f6f9f9f9
+ecececfffffffbfbfbfafafaf6f6f6eeeeeeebebeb121212000000ffffffe2e2e2ffffff
+0000000f0f0ffffffff3f3f3fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000020202f7f7f7f9f9f9f4f4f4fefefefefefef8f8f8fcfcfc
+f8f8f8fdfdfdf9f9f9fafafaf8f8f8f8f8f8f7f7f7f7f7f7f8f8f8fafafafcfcfcfefefe
+f7f7f7f6f6f6fbfbfbfbfbfbf6f6f6fbfbfbfffffff7f7f7fefefefbfbfbf6f6f6f2f2f2
+f5f5f5fcfcfcfefefefcfcfcf5f5f5f6f6f6f7f7f7f8f8f8f9f9f9f9f9f9f9f9f9f8f8f8
+f8f8f8f7f7f7f5f5f5f5f5f5f5f5f5f6f6f6f8f8f8f9f9f9fafafafafafafafafaf9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f7f7f7f8f8f8f8f8f8f8f8f8f7f7f7f7f7f7f6f6f6f5f5f5
+f7f7f7f4f4f4e4e4e4f0f0f0e0e0e0e6e6e6ffffffc2c2c2151515000000000000080808
+060606f3f3f3f1f1f1f7f7f7fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000000000000000040404f9f9f9fefefefafafafbfbfbfffffff4f4f4ffffff
+f4f4f4fffffff4f4f4f6f6f6f6f6f6f6f6f6f5f5f5f5f5f5f6f6f6f8f8f8fafafafcfcfc
+f4f4f4f3f3f3f9f9f9fafafaf5f5f5fbfbfbfefefef5f5f5fdfdfdfdfdfdfcfcfcfdfdfd
+fffffffffffffdfdfdfafafaf7f7f7f8f8f8f9f9f9fafafafbfbfbfbfbfbfafafafafafa
+f7f7f7f7f7f7f6f6f6f6f6f6f7f7f7f8f8f8f9f9f9fafafafcfcfcfcfcfcfbfbfbfbfbfb
+fafafaf9f9f9f9f9f9f9f9f9fafafaf8f8f8f7f7f7f8f8f8fafafafafafaf8f8f8f5f5f5
+fbfbfbf6f6f6f0f0f0ffffffeaeaeaecececfcfcfcffffffe4e4e4f0f0f0ffffffffffff
+e4e4e4fbfbfbfffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+020202030303030303000000000000f2f2f2f6f6f6f3f3f3fcfcfcfffffff6f6f6ffffff
+f5f5f5fffffff4f4f4f6f6f6fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f6f6f6f5f5f5fbfbfbfcfcfcf8f8f8fdfdfdfffffff7f7f7fafafafafafafcfcfcffffff
+fffffffdfdfdf9f9f9f7f7f7fbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfc
+f9f9f9f9f9f9f9f9f9f9f9f9fafafafbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfcfcfc
+fbfbfbfbfbfbfafafafafafafefefefbfbfbf9f9f9fbfbfbfefefefefefefbfbfbf7f7f7
+f6f6f6fffffff9f9f9f8f8f8ebebebffffffe9e9e9cfcfcffffffff0f0f0f6f6f6e7e7e7
+fcfcfceaeaeaf3f3f3ebebebfefefefefefefdfdfdfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101020202030303000000000000f5f5f5fbfbfbfafafafffffffffffffbfbfbffffff
+fcfcfcfffffffafafafafafafffffffffffffffffffffffffffffffffffffdfdfdfcfcfc
+fcfcfcfafafafffffffffffffbfbfbfffffffffffffcfcfcfffffffdfdfdfcfcfcfdfdfd
+fdfdfdfbfbfbfcfcfcfffffffefefefefefefffffffffffffffffffffffffefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfcfcfcfcfcfcfcfcfcfffffffefefefdfdfdfefefefffffffffffffdfdfdfafafa
+f8f8f8fbfbfbeeeeeeeeeeeee8e8e8fffffff5f5f5f1f1f1efefeffbfbfbfffffffbfbfb
+f8f8f8fdfdfdfffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000020202000000020202f9f9f9fffffffffffffffffffcfcfcfffffffafafa
+fffffffdfdfdfffffffcfcfcfefefefefefefefefefefefefefefefdfdfdfcfcfcfcfcfc
+fffffffdfdfdfffffffffffffafafafffffffffffffcfcfcfffffffffffffefefeffffff
+fffffffdfdfdfffffffffffffefefefffffffffffffffffffffffffffffffefefefefefe
+fdfdfdfefefefefefefefefefefefefdfdfdfdfdfdfcfcfcfdfdfdfdfdfdfdfdfdfefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefefdfdfd
+fefefef9f9f9fbfbfbfffffffcfcfcf2f2f2f2f2f2fffffffffffffafafaf7f7f7f5f5f5
+ecececfffffff3f3f3f3f3f3fffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000000000f0f0f0f7f7f7f7f7f7fffffff8f8f8fffffff4f4f4
+fffffff8f8f8fffffffbfbfbfffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffbfbfbfefefefcfcfcf6f6f6fcfcfcfffffffafafafbfbfbf9f9f9fcfcfcffffff
+fffffffbfbfbfbfbfbfffffffefefefefefefffffffffffffffffffefefefdfdfdfdfdfd
+fefefefefefefefefefefefefefefefdfdfdfcfcfcfbfbfbfdfdfdfdfdfdfdfdfdfefefe
+fefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefe
+fffffffffffff6f6f6f5f5f5f2f2f2fafafafffffffafafafffffffcfcfcfefefeffffff
+f3f3f3f1f1f1f5f5f5fffffffffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000000000000000040404f7f7f7fbfbfbfbfbfbfcfcfcfefefeffffffffffff
+fefefefdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefefffffffffffffffffffafafafffffff7f7f7ffffff
+fffffffefefefffffffdfdfdf4f4f4fffffff8f8f8fffffff0f0f0fcfcfcfffffff8f8f8
+fffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffefefe
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffffffffefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefefefefffffffffffffefefefefefefdfdfd
+fdfdfdfefefefefefefffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffffffffff
+fffffffcfcfcfcfcfcfffffffffffffbfbfbfbfbfbfffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefffffffffffffdfdfdfefefefffffffffffffffffffdfdfd
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffefefefdfdfdfcfcfcf5f5f5fefefef8f8f8fdfdfdfefefefffffff9f9f9ffffff
+fcfcfcfffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafaf8f8f8fffffffffffffefefefffffffcfcfcffffffefefefffffffedededffffff
+fffffffcfcfcf1f1f1fffffffdfdfdfefefefefefefffffffffffffefefefefefefdfdfd
+fffffffffffffefefefefefefefefefffffffffffffffffffffffffffffffdfdfdfefefe
+fffffffffffffefefefcfcfcfefefefefefeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000000000000000030303f6f6f6fbfbfbfcfcfcfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffff8f8f8f6f6f6
+fdfdfdfcfcfcf2f2f2e4e4e4fffffffbfbfbf1f1f1fffffffffffff6f6f6ebebebf4f4f4
+fffffffffffffffffffefefefefefefefefefefefefefefefcfcfcfefefefffffffefefe
+fbfbfbfbfbfbfdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffdfdfdfdfdfdfffffffffffffdfdfdfdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffffffffffefefefefefe
+fffffffffffffffffffefefefefefefdfdfdfefefefefefeffffffffffffffffffffffff
+fffffffffffffefefefdfdfdf8f8f8fffffffffffffffffffafafaebebebf2f2f2f8f8f8
+f9f9f9fcfcfcfdfdfdfcfcfcfbfbfbfcfcfcfdfdfdfefefefffffffefefefefefefdfdfd
+fdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffff0f0f0f2f2f2efefeff2f2f2fffffff1f1f1f9f9f9f1f1f1fcfcfcfffffff3f3f3
+e6e6e6f4f4f4fbfbfbfffffffefefefffffffffffffffffffffffffefefefefefefdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffefefefefefe
+fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000020202f5f5f5fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffffffffefefefdfdfdfffffff7f7f7fbfbfbfbfbfb
+fefefeefefefeeeeeefffffff5f5f5fafafafbfbfbefefeffafafaffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffffffffffffffafafafdfdfdfffffffefefe
+fcfcfcfbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefffffffffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffefefefefefefffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffefefefefefefefefeffffff
+fffffffffffffffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfefefefefefe
+fdfdfdfcfcfcfbfbfbfbfbfbf7f7f7f9f9f9f1f1f1f8f8f8fffffffefefefffffffdfdfd
+fdfdfdfefefefffffffffffffefefefefefefffffffffffffffffffffffffdfdfdfcfcfc
+fcfcfcfdfdfdfffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfdfdfdfefefeffffff
+f4f4f4fffffffafafaffffffffffffe9e9e9fffffff9f9f9fffffff4f4f4fffffff9f9f9
+fefefefffffffafafaebebebfffffffffffffffffffffffffefefefefefefdfdfdfdfdfd
+fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfdfdfdfefefefffffffffffffffffffefefeffffff
+fffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+010101000000000000000000020202f6f6f6fcfcfcfefefefefefefdfdfdfcfcfcfcfcfc
+fdfdfdfefefefefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefffffffffffffffffffffffffffffffffffffffffffbfbfbfbfbfbffffffeeeeee
+ffffffffffffefefefdadadaf4f4f4ecececfefefef5f5f5fbfbfbfffffff3f3f3e0e0e0
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefdfdfdfffffffefefefefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfefefefffffffffffffffffffffffffffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdfffffffffffffffffffffffffffffffefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffffffffefefefefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfefefefefefefefefe
+fefefefdfdfdfcfcfcfbfbfbf1f1f1fcfcfcfffffffdfdfdeaeaeaefefeff2f2f2f6f6f6
+fefefefefefefffffffffffffffffffefefeffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdfcfcfcfcfcfcfdfdfdffffffffffff
+fefefeecececfffffffafafafbfbfbfdfdfdffffffe8e8e8f9f9f9f3f3f3fbfbfbf7f7f7
+f7f7f7f8f8f8f7f7f7fffffffffffffffffffffffffefefefefefefdfdfdfdfdfdfdfdfd
+fffffffefefefefefefefefefefefefffffffffffffffffffffffffffffffefefeffffff
+fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+020202000000000000000000030303f7f7f7fcfcfcfdfdfdfffffffffffffdfdfdfdfdfd
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffebebebfdfdfdfbfbfb
+ffffffebebebfafafaffffffffffffe6e6e6f8f8f8fffffff6f6f6efefeffcfcfcffffff
+fcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffffffffffffffefefefbfbfbfdfdfd
+fffffffffffffcfcfcf6f6f6fdfdfdfdfdfdfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfdfdfdfefefefffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfefefefefefe
+fefefefefefefdfdfdfdfdfdfefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffffffffffffffefefefdfdfd
+fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfffffffffffffefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefeffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffffffffefefefefefefffffff8f8f8fbfbfbfbfbfbf4f4f4fffffffcfcfcf0f0f0
+fafafaf8f8f8fafafafdfdfdfcfcfcf8f8f8f9f9f9fffffffdfdfdfefefeffffffffffff
+fffffffffffffefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+f5f5f5ffffffffffffefefeff6f6f6fefefeecececfffffff9f9f9fffffff2f2f2f8f8f8
+fefefefffffff2f2f2f2f2f2fffffffffffffefefefdfdfdfcfcfcfdfdfdfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefffffffffffffdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfefefefefefefcfcfcfdfdfdfdfdfdfdfdfdfefefefefefefefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+020202000000010101010101040404f6f6f6f9f9f9f9f9f9fefefefafafaf7f7f7f7f7f7
+fafafafcfcfcfbfbfbf9f9f9fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffefefefdfdfdfcfcfc
+fbfbfbfafafaf9f9f9f9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffe5e5e5f7f7f7ffffff
+fbfbfbdbdbdbffffffe9e9e9fafafaffffffe8e8e8f7f7f7f3f3f3fffffff7f7f7d8d8d8
+fdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefefafafaf7f7f7f9f9f9
+fefefefefefef8f8f8f2f2f2fcfcfcfbfbfbfafafafafafafafafafcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfcfcfcfafafafdfdfdfdfdfdfcfcfcfbfbfb
+fbfbfbfcfcfcfdfdfdfdfdfdfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfd
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf8f8f8f8f8f8f8f8f8f8f8f8
+f8f8f8f8f8f8f8f8f8f8f8f8fafafafbfbfbfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfafafa
+f7f7f7fafafafbfbfbf9f9f9fafafafdfdfdfdfdfdfbfbfbfafafafafafafafafafafafa
+fafafafafafafafafafafafafdfdfdfcfcfcfbfbfbfcfcfcfffffffffffffffffffefefe
+f6f6f6f7f7f7f9f9f9fafafafbfbfbfafafaf9f9f9f8f8f8fafafafbfbfbfbfbfbfbfbfb
+fbfbfbfafafaf9f9f9f8f8f8fdfdfde9e9e9eaeaeaf5f5f5fbfbfbd8d8d8fffffffafafa
+fbfbfbf7f7f7f8f8f8fefefefcfcfcf7f7f7f8f8f8fffffff9f9f9fafafafbfbfbfcfcfc
+fcfcfcfbfbfbfafafaf9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f5f5f5f8f8f8ecececf8f8f8ffffffd6d6d6fffffff6f6f6fdfdfdf3f3f3fffffff2f2f2
+ecececfafafafffffff0f0f0fefefefdfdfdfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefe
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fafafafbfbfbfbfbfbfafafafbfbfbfdfdfdfcfcfc
+fbfbfbfbfbfbfcfcfcfefefef9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101010101030303f3f3f3f5f5f5f3f3f3fbfbfbf6f6f6f1f1f1f2f2f2
+f5f5f5f8f8f8f7f7f7f5f5f5fafafafafafafafafafafafafafafafafafafafafafafafa
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fafafafafafa
+fafafafafafafafafafafafaf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7
+f6f6f6f8f8f8fbfbfbfefefefdfdfdfafafaf6f6f6f3f3f3f0f0f0fdfdfdfdfdfde4e4e4
+fafafaffffffeeeeee121212000000dfdfdfffffffffffffe3e3e3f5f5f5f8f8f8ffffff
+fefefefcfcfcfafafaf8f8f8f8f8f8f9f9f9fbfbfbfdfdfdf4f4f4f6f6f6f8f8f8fafafa
+fafafaf9f9f9f8f8f8f7f7f7fafafaf9f9f9f8f8f8f7f7f7f8f8f8fafafafdfdfdfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffcfcfcfafafaf8f8f8fefefefcfcfcfafafaf8f8f8
+f8f8f8fafafafcfcfcfefefef7f7f7f7f7f7f8f8f8f9f9f9fafafafcfcfcfcfcfcfdfdfd
+fafafafafafafafafafafafafafafafafafafafafafafafaf7f7f7f7f7f7f7f7f7f7f7f7
+f7f7f7f7f7f7f7f7f7f7f7f7f6f6f6f8f8f8f9f9f9fbfbfbfbfbfbf9f9f9f8f8f8f6f6f6
+f3f3f3f8f8f8f8f8f8f5f5f5f6f6f6fbfbfbfbfbfbf8f8f8f6f6f6f6f6f6f6f6f6f6f6f6
+f6f6f6f6f6f6f6f6f6f6f6f6fbfbfbf7f7f7f4f4f4f7f7f7fdfdfdfffffffcfcfcf8f8f8
+f2f2f2f4f4f4f6f6f6f7f7f7f8f8f8f7f7f7f6f6f6f5f5f5f6f6f6f6f6f6f7f7f7f7f7f7
+f6f6f6f5f5f5f4f4f4f4f4f4e1e1e1f3f3f3ffffffffffffdcdcdc2e2e2ee1e1e1fbfbfb
+fcfcfcf7f7f7f8f8f8fffffffefefef7f7f7f8f8f8fffffffbfbfbfafafaf8f8f8f6f6f6
+f6f6f6f8f8f8fafafafbfbfbf5f5f5f6f6f6f8f8f8f9f9f9f9f9f9f8f8f8f6f6f6f5f5f5
+e4e4e4ffffff1e1e1e000000ffffff000000fffffff6f6f6141414000000d3d3d3f6f6f6
+f0f0f0edededfffffffcfcfcfbfbfbfafafaf9f9f9f8f8f8f9f9f9fbfbfbfdfdfdffffff
+f8f8f8f7f7f7f7f7f7f7f7f7f7f7f7f8f8f8f9f9f9fafafaf7f7f7f9f9f9fbfbfbfbfbfb
+f9f9f9f9f9f9fafafafdfdfdf5f5f5f5f5f5f7f7f7f9f9f9fbfbfbfdfdfdfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000000000000000020202f1f1f1f1f1f1eeeeeefffffffafafaf5f5f5f5f5f5
+fafafafdfdfdfcfcfcf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+fafafafafafafafafafafafafafafafafafafafafafafafaf1f1f1f2f2f2f4f4f4f7f7f7
+fafafafdfdfdfffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f2f2f2f6f6f6fcfcfcfffffffdfdfdf6f6f6eeeeeee8e8e8fffffff9f9f9f9f9f9f7f7f7
+f9f9f9eaeaeae7e7e7191919040404ffffffeaeaeaecececf4f4f4ffffffe5e5e5fafafa
+fffffffdfdfdf9f9f9f6f6f6f5f5f5f7f7f7fafafafcfcfcedededf5f5f5fdfdfdfefefe
+f9f9f9f7f7f7fbfbfbfffffff9f9f9f8f8f8f6f6f6f6f6f6f7f7f7f9f9f9fcfcfcfefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf9f9f9f6f6f6fefefefbfbfbf8f8f8f6f6f6
+f6f6f6f8f8f8fbfbfbfefefef5f5f5f5f5f5f6f6f6f8f8f8fafafafbfbfbfcfcfcfdfdfd
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f9f9f9f9f9f9f9f9f9f4f4f4f6f6f6f8f8f8f9f9f9f9f9f9f8f8f8f6f6f6f4f4f4
+f1f1f1f6f6f6f6f6f6f3f3f3f4f4f4f9f9f9fafafaf6f6f6fafafafafafafafafafafafa
+fafafafafafafafafafafafafafafaf3f3f3efefeff2f2f2fbfbfbfefefefafafaf4f4f4
+f2f2f2f3f3f3f6f6f6f8f8f8f8f8f8f7f7f7f6f6f6f5f5f5fafafafbfbfbfbfbfbfbfbfb
+fbfbfbfafafaf9f9f9f8f8f8fcfcfcfefefef8f8f8fffffffefefe000000f5f5f5fdfdfd
+f8f8f8f2f2f2f4f4f4fbfbfbfafafaf2f2f2f3f3f3fdfdfdfffffffcfcfcf7f7f7f4f4f4
+f4f4f4f7f7f7fcfcfcfffffff8f8f8fafafafcfcfcfefefefefefefcfcfcfafafaf8f8f8
+fcfcfc020202f6f6f61c1c1cf5f5f50f0f0feeeeeefdfdfde2e2e2202020f5f5f5ffffff
+ffffffefefefffffffe7e7e7f9f9f9f8f8f8f7f7f7f7f7f7f8f8f8fbfbfbfdfdfdffffff
+f9f9f9f8f8f8f8f8f8f8f8f8f8f8f8f9f9f9fafafafbfbfbf5f5f5f8f8f8fafafafafafa
+f8f8f8f7f7f7f9f9f9fcfcfcf2f2f2f3f3f3f5f5f5f7f7f7fafafafcfcfcfefefeffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000040404f7f7f7fafafaf9f9f9f6f6f6d2d2d2fcfcfcffffff
+0000000808082929290b0b0b040404fcfcfcefefefecececf2f2f2eeeeeefffffffcfcfc
+fbfbfbdcdcdcfafafafafafaf6f6f6fefefeffffffedededfefefefffffff7f7f7eeeeee
+fafafaebebebffffffe9e9e9fafafae4e4e4fffffff0f0f0fdfdfdefefeffffffff7f7f7
+fffffff5f5f5ffffffcacacaf8f8f8ffffffefefeffbfbfbe3e3e3efefef040404fbfbfb
+e1e1e1ebebebffffff000000000000fffffff3f3f3f9f9f9ffffffe9e9e9f5f5f5ffffff
+fafafaf7f7f7f6f6f6ecececf5f5f5f4f4f4eeeeeef2f2f2ffffffedededfffffff8f8f8
+f2f2f2f5f5f5eeeeeef7f7f7fefefedadadafffffffffffffbfbfbfdfdfdf6f6f6f8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfbfbfbfbfbfbfdfdfdffffffffffffecececfffffffbfbfbf2f2f2
+fffffffcfcfceaeaeafafafaffffffdfdfdfeeeeeefffffff0f0f0fffffffffffffafafa
+ecececfffffff3f3f3f5f5f5f3f3f3f2f2f2f4f4f4f3f3f3e6e6e6fcfcfcf7f7f7fbfbfb
+fcfcfcdddddde0e0e0edededf9f9f9ffffffe9e9e9ffffffffffffebebebfefefee5e5e5
+f0f0f0ffffffe4e4e4fffffff9f9f9fdfdfde5e5e5fefefef1f1f1dfdfdfe4e4e4ffffff
+fffffff8f8f8ffffffdfdfdffefefee5e5e5f6f6f6efefeffffffff6f6f6f4f4f4f8f8f8
+fffffff5f5f5fbfbfbffffffeaeaeaffffffddddddfffffffafafad9d9d9ffffffffffff
+efefeffffffff0f0f0ffffffeaeaeaeaeaeae4e4e4fdfdfdf4f4f40c0c0cfcfcfcf5f5f5
+ffffffeeeeeefbfbfbf5f5f5fffffff8f8f8e9e9e9fcfcfcf1f1f1f5f5f5fcfcfcf1f1f1
+fffffff9f9f9fafafafafafaffffffe8e8e8fffffffdfdfdf7f7f7f1f1f1fffffffafafa
+161616e4e4e4ffffffeaeaeafbfbfb0c0c0ce5e5e5fcfcfcf7f7f70c0c0cebebebf8f8f8
+fafafafffffff8f8f8fffffff4f4f4ffffffffffffe3e3e3f8f8f8f3f3f3ffffffdcdcdc
+e6e6e6fefefef8f8f8ffffffe8e8e8eeeeeefafafafdfdfdefefeffffffff6f6f6000000
+edededffffff0c0c0c000000131313020202fffffff8f8f8e3e3e3fffffffafafafcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000000000f1f1f1f6f6f6f8f8f8eeeeeeffffff000000000000
+212121f4f4f4dbdbdbfdfdfd0000000b0b0b070707f8f8f8ffffffe1e1e1fdfdfddadada
+fffffff0f0f0fffffff7f7f7ddddddfbfbfbebebebf1f1f1fafafafdfdfdf2f2f2ffffff
+f2f2f2f9f9f9f9f9f9efefeffefefeffffffd6d6d6ffffffe2e2e2f7f7f7fbfbfbfcfcfc
+e7e7e7ffffffe1e1e1ffffffe5e5e5fffffff7f7f7dededeffffff222222000000ffffff
+f3f3f3ffffffffffff040404080808ffffffdfdfdff9f9f9f2f2f2ffffffdcdcdcfbfbfb
+fdfdfdf7f7f7f9f9f9fffffffafafaf6f6f6fffffff3f3f3f6f6f6eeeeeedfdfdff9f9f9
+f1f1f1fafafaf9f9f9f8f8f8ffffffffffffdcdcdcedededfcfcfcdbdbdbffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfbf7f7f7dcdcdcedededffffff
+e6e6e6f8f8f8f0f0f0e2e2e2f9f9f9f1f1f1fffffff8f8f8e9e9e9e0e0e0f4f4f4f8f8f8
+f5f5f5ffffffe3e3e3fefefeefefefffffffdfdfdfffffffffffffdededee6e6e6fafafa
+ecececffffffffffff111111d5d5d5ffffffefefefdededeecececf7f7f7fffffff9f9f9
+fffffffbfbfbf6f6f6e7e7e7d9d9d9ffffffffffffdbdbdbf0f0f0fffffffafafaf4f4f4
+f3f3f3f0f0f0c2c2c2ffffffd0d0d0f2f2f2e2e2e2fffffff9f9f9ffffffe5e5e5fbfbfb
+f4f4f4dadadaf7f7f7ffffffd8d8d8e0e0e0ffffffedededfafafaeaeaeaffffffeaeaea
+ffffffe9e9e9f6f6f6f3f3f3f5f5f5fcfcfcf2f2f2f9f9f9ffffffe8e8e8e5e5e5ffffff
+e3e3e3ffffffeeeeeeeeeeeeecececfbfbfbfffffffffffff4f4f4fafafaeaeaeafefefe
+d1d1d1f3f3f3ffffffdadadafdfdfdf0f0f0f5f5f5f4f4f4fcfcfce9e9e9f7f7f7fbfbfb
+000000fffffffbfbfbf7f7f7f3f3f3ecececfdfdfdfffffffbfbfb080808fbfbfbf6f6f6
+ffffff000000fafafaf7f7f7f5f5f5f7f7f7f6f6f6fbfbfbffffffeaeaead5d5d5f8f8f8
+fffffff0f0f0d3d3d3f7f7f7fafafafffffffdfdfdf3f3f3f5f5f5f7f7f70d0d0dffffff
+ffffff0f0f0fe9e9e9ffffffebebeb2d2d2d000000fdfdfdf9f9f9f6f6f6f0f0f0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000040404000000000000ecececf3f3f3f8f8f8f7f7f7ffffff080808000000
+ffffffe7e7e7fdfdfdf3f3f3eeeeee040404121212f5f5f5f2f2f2eeeeeefafafaffffff
+f5f5f5f3f3f3f1f1f1e9e9e9fffffffffffff8f8f8f9f9f9fafafafbfbfbebebebffffff
+fbfbfbdbdbdbfffffff7f7f7f6f6f6fbfbfbfbfbfbfbfbfbfffffffafafaf7f7f7f9f9f9
+f9f9f9f7f7f7f3f3f3e3e3e3fffffff7f7f7eaeaeaf1f1f1ebebeb000000151515fbfbfb
+f1f1f1e6e6e6fafafaecececffffffe7e7e7ffffffeeeeeefcfcfcf2f2f2ffffffffffff
+fafafad5d5d5ebebebddddddf5f5f5f0f0f0f6f6f6f9f9f9e8e8e8fffffff5f5f5fafafa
+ffffffd8d8d8f0f0f0d5d5d5f4f4f4dededef2f2f2ffffffebebebf0f0f0ffffffededed
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffcfcfcf9f9f9f8f8f8dcdcdcffffffeeeeeef1f1f1
+fffffff3f3f3ffffffffffffffffffe2e2e2fdfdfdfdfdfdfffffffbfbfbf7f7f7ffffff
+dbdbdbf5f5f5ffffffeeeeeedcdcdcffffffffffffdadadafffffff3f3f3f9f9f9ffffff
+ececece3e3e3fefefe050505ffffffeaeaeafffffff8f8f8f5f5f5f6f6f6fffffff8f8f8
+f4f4f4dededeffffffffffffeeeeeee8e8e8fbfbfbeaeaeaffffffe8e8e8ebebebf4f4f4
+fffffffafafafffffff6f6f6fcfcfcfffffff8f8f8eaeaeafcfcfcfafafaf6f6f6d7d7d7
+ffffffe8e8e8edededf5f5f5ffffffffffffecececf7f7f7fafafafbfbfbf8f8f8e6e6e6
+f8f8f8ffffffe1e1e1fffffffffffffafafad9d9d9fcfcfcebebebfffffff5f5f5fdfdfd
+f5f5f5eaeaeaf9f9f9eeeeeefbfbfbfbfbfbf5f5f5dfdfdffbfbfbffffffe1e1e1ececec
+fcfcfceeeeeef1f1f1fffffff8f8f8fbfbfbf4f4f4f6f6f6fffffff4f4f4ffffffe8e8e8
+181818f4f4f4dfdfdffffffff9f9f9fbfbfbcececee6e6e6ffffff000000fdfdfdffffff
+f5f5f5141414fffffff6f6f6ffffffefefeffcfcfcedededf6f6f6ffffffdedededfdfdf
+ffffffe7e7e7fffffffdfdfdedededffffffe7e7e7f5f5f5f8f8f8ededed0a0a0aeaeaea
+f8f8f8040404e2e2e2f2f2f2fafafad9d9d90c0c0cffffffdbdbdbfffffff6f6f6ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000030303000000000000efefeff5f5f5f8f8f8f3f3f3121212010101202020
+e8e8e8e8e8e8fcfcfcfafafaffffff0000000e0e0e080808ffffff000000000000202020
+0c0c0c242424111111010101232323000000f6f6f6e0e0e0ebebeb282828070707000000
+151515151515d9d9d9ececec171717000000171717eaeaea0404040b0b0bf9f9f9ffffff
+0000000d0d0d111111161616000000e9e9e9fefefefafafa1919190c0c0c1a1a1a000000
+040404ffffff000000131313161616dcdcdcdfdfdffcfcfc0303030000000e0e0e131313
+000000131313ffffffededed0c0c0c0000000000000a0a0a070707000000060606030303
+f4f4f4f8f8f8d3d3d32e2e2e040404161616050505000000000000ffffffe6e6e6eeeeee
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffefefefcfcfcfafafafbfbfbe9e9e9ffffffeaeaea
+ffffffe3e3e3000000060606f0f0f0f4f4f40a0a0a000000ffffff101010080808fefefe
+ffffffe9e9e90000000d0d0d020202f3f3f3e7e7e7fdfdfd0000000a0a0a020202e7e7e7
+f4f4f4ffffff040404121212000000000000fffffffbfbfbffffff121212000000000000
+f9f9f9f7f7f7dcdcdcfcfcfcffffffecececfdfdfdfffffff8f8f80101011919190a0a0a
+000000010101121212040404000000080808000000fefefef9f9f9f9f9f90a0a0a0d0d0d
+010101f6f6f6f2f2f2fdfdfd0000000000000202020b0b0b060606000000fdfdfdfdfdfd
+1b1b1b0000000000000a0a0a000000101010ffffffe7e7e7000000080808f6f6f6e4e4e4
+1919190707070b0b0b0e0e0e040404151515f4f4f4fffffff1f1f10000002e2e2e121212
+080808ffffffdbdbdbf3f3f3f4f4f4f8f8f8ffffffeeeeeedadadafffffff5f5f5111111
+1e1e1e000000101010ffffff121212000000fffffff6f6f6f1f1f1272727f2f2f2dadada
+0101010101010a0a0a000000f6f6f6ffffffdcdcdc1919190d0d0d000000fffffffefefe
+0000000d0d0de3e3e3000000181818e0e0e0fffffffefefeebebeb030303f8f8f8ffffff
+f2f2f2e4e4e4ffffffc3c3c3f0f0f0ffffff040404edededfffffffefefef6f6f6ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000000000000000030303f5f5f5f9f9f9f9f9f9fefefe0000001c1c1c060606
+f7f7f7ffffffe2e2e2ffffffe2e2e20707070d0d0d000000ffffffffffff000000000000
+f0f0f0eeeeeed4d4d40707070f0f0f080808e4e4e4ffffff060606000000e2e2e2ffffff
+ffffff0606060e0e0effffffffffff0a0a0a0b0b0b181818060606000000fcfcfc111111
+101010f7f7f7cdcdcdffffff151515020202e7e7e7ffffffe1e1e1141414070707ececec
+ffffffe4e4e4f8f8f8060606000000ffffffebebebfdfdfd232323000000ffffffdedede
+0000000a0a0af4f4f4e5e5e5ffffff0f0f0f000000fafafafdfdfdffffff000000030303
+fffffffbfbfb1919190d0d0de9e9e9fffffffffffff3f3f3000000f4f4f4eaeaeaffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefeffffffffffffffffffffffffeaeaeaffffffefefef
+dcdcdc010101f5f5f5ffffff0c0c0cedededffffff1c1c1c0d0d0dcececefffffff5f5f5
+fdfdfd000000ffffffe8e8e8f2f2f2000000e0e0e00303030c0c0cefefeffefefe030303
+fefefeecececefefef181818ffffffffffffecececfafafa000000fffffffafafafbfbfb
+000000ffffffffffffe5e5e5e7e7e7ffffffffffffe8e8e8fffffffdfdfd020202ffffff
+edededfdfdfd040404f6f6f6ffffffffffff0a0a0affffffebebeb0000000d0d0df6f6f6
+fefefe060606fffffffbfbfbf8f8f8060606ffffffe7e7e7f8f8f8212121000000fefefe
+e8e8e8000000fffffff8f8f8fefefe000000000000fefefefcfcfc0c0c0ceeeeeeededed
+e6e6e6050505ffffffe3e3e3ffffff000000e9e9e9ffffff0e0e0ef7f7f7ecececfefefe
+e4e4e4141414060606f8f8f8e1e1e1ffffffecececeaeaeaffffffe1e1e1ebebebeaeaea
+1f1f1fffffffecececf6f6f6dbdbdb000000ffffffe4e4e4ffffff000000f9f9f9ffffff
+efefef191919d9d9d9ffffffd8d8d8ffffff0f0f0ffafafaebebebffffff000000ececec
+ffffff0a0a0a303030e6e6e6fdfdfdffffffd8d8d8fffffffafafa050505ffffffd7d7d7
+fcfcfcf6f6f6f9f9f9f4f4f4f1f1f1ffffff000000fefefefbfbfbd4d4d4fffffff8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+010101000000000000000000050505f8f8f8fbfbfbf9f9f9fefefe000000000000242424
+f4f4f4e5e5e5fefefef8f8f8fbfbfb0d0d0d020202181818e3e3e3ececec1c1c1c242424
+f4f4f4ffffffffffffd8d8d8181818010101f9f9f90000000e0e0ee5e5e5fffffffdfdfd
+ffffff050505000000ddddddeeeeee171717010101d8d8d8ffffff090909f1f1f1e9e9e9
+f8f8f81b1b1b0000000000000b0b0b121212f9f9f9ffffffffffff0000001a1a1afcfcfc
+dcdcdcffffffe8e8e8090909020202e7e7e7f8f8f8000000121212f3f3f3f4f4f4f9f9f9
+ffffff000000060606ffffffe1e1e1040404010101ffffffdededef4f4f40909090b0b0b
+e7e7e7ffffff0000001a1a1a0d0d0d030303000000fffffffffffff4f4f4f9f9f9ebebeb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefefefefdfdfdfdfdfdfefefefefefeffffffeeeeeefefefee9e9e9ffffff
+040404ffffffffffffdcdcdcffffffe4e4e4eeeeee0e0e0ef5f5f5fafafafbfbfbd8d8d8
+080808fefefed9d9d9ffffffffffff050505fffffff3f3f3ffffffe3e3e3060606090909
+eeeeeeffffffe7e7e7000000d3d3d3f7f7f7fefefe212121fffffff4f4f4ebebebffffff
+0e0e0effffffe7e7e7f5f5f5fffffff0f0f0e5e5e5f9f9f9f3f3f3e1e1e10f0f0fe5e5e5
+f4f4f4ffffff000000ffffffe7e7e7ffffff000000ffffffdadadafdfdfdfffffff8f8f8
+0e0e0e000000f6f6f6fffffffbfbfb000000f7f7f7f0f0f0fcfcfcdbdbdb0f0f0fd8d8d8
+ffffff000000d4d4d4f8f8f8ffffffffffff060606edededffffff000000ffffffffffff
+fafafa2e2e2ee8e8e8ffffffededed090909ffffffdedede000000f6f6f6ffffffd2d2d2
+fbfbfb000000fffffff2f2f2f0f0f0f3f3f3fafafafafafafafafaf7f7f7ffffffdadada
+000000ffffffebebebfffffff7f7f71a1a1af8f8f8fffffff3f3f31c1c1ce3e3e3efefef
+ffffff000000fffffff0f0f0ffffff000000ffffffeeeeeef6f6f6fdfdfd0c0c0cf1f1f1
+fefefe000000e9e9e9fdfdfdf3f3f3f0f0f0efefeff5f5f5010101f9f9f9f0f0f0fbfbfb
+f5f5f5ffffffe2e2e2f6f6f6f7f7f70f0f0ff7f7f7f5f5f5efefefffffffecececf6f6f6
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000000000000000020202f3f3f3f8f8f8f9f9f9f5f5f51c1c1c111111030303
+f3f3f3f9f9f9f3f3f3f5f5f5fbfbfb0606060000000e0e0effffffffffff000000060606
+e5e5e5f9f9f9f6f6f6ffffff000000000000ffffff0101010707070e0e0e0202020e0e0e
+0000000101011e1e1efffffff9f9f9080808070707fefefeffffffe9e9e9e8e8e8121212
+0b0b0b070707fcfcfcfcfcfc000000000000fefefef4f4f4fdfdfd000000080808fafafa
+f5f5f5f2f2f2f8f8f80303030a0a0aeeeeeeffffff080808242424fcfcfcf8f8f8e8e8e8
+d7d7d7151515000000f9f9f9f4f4f40f0f0f0b0b0bffffffffffffefefef0c0c0c000000
+fffffff4f4f4dcdcdc0a0a0a0707070101012a2a2a000000151515e9e9e9fffffffafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffefefefdfdfdfbfbfbf8f8f8f7f7f7f7f7f7f8f8f8f9f9f9f7f7f7
+161616dcdcdcffffffecececfefefee0e0e0ffffff000000ffffffffffffddddddffffff
+040404141414060606000000030303000000fffffff0f0f0000000292929ffffff000000
+ffffffe5e5e5ffffff040404fefefefafafaf3f3f3050505121212000000070707010101
+0a0a0adbdbdbf7f7f7e6e6e6e9e9e9fffffffffffff5f5f5ffffffffffff131313d1d1d1
+e1e1e1e1e1e11f1f1fd9d9d9fbfbfbefefef0f0f0ff7f7f7fffffff4f4f4030303000000
+ffffff060606f3f3f3eeeeeef3f3f3101010ffffffe0e0e0eeeeeeffffff040404ffffff
+ededed070707fbfbfbf4f4f4edededd1d1d10a0a0affffffe1e1e1141414fffffffefefe
+e0e0e0030303fcfcfcfcfcfce0e0e00e0e0eecececfbfbfbffffff0606061818180e0e0e
+000000f7f7f7e3e3e3fdfdfdfffffffcfcfcfffffff3f3f3f2f2f2dfdfdff2f2f2fafafa
+0d0d0de8e8e8fcfcfce2e2e2eeeeee010101f8f8f8ececece1e1e10a0a0afcfcfcf6f6f6
+fafafa000000fafafaffffffd3d3d3181818080808181818000000000000171717e9e9e9
+f1f1f1090909ffffffe8e8e8ebebebffffffeaeaea0f0f0ffcfcfcfafafae8e8e8f0f0f0
+ffffffcececefefefefcfcfc161616f4f4f4fcfcfcffffffeeeeeee6e6e6ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000040404000000000000edededf4f4f4f8f8f8fbfbfbebebeb0b0b0b111111
+000000fffffff6f6f6fffffffafafa0808080c0c0cfffffff2f2f2fbfbfb0606060f0f0f
+fbfbfbfdfdfdd4d4d4f8f8f80b0b0b080808e3e3e3131313060606f5f5f5dbdbdbffffff
+fdfdfdfbfbfbf7f7f7fefefef0f0f00000001a1a1af4f4f4dadadaf9f9f9ffffff000000
+030303fdfdfdf4f4f4ffffff030303060606f8f8f8fffffff1f1f1070707262626f8f8f8
+eeeeeeffffffe4e4e40505050f0f0fedededf4f4f40000000b0b0be9e9e9ffffffe7e7e7
+ffffff0303030c0c0ce7e7e7ffffff000000030303f4f4f4efefefd7d7d70a0a0a101010
+eaeaeafcfcfc141414fafafafcfcfcfefefe0707070707070d0d0dfbfbfbf9f9f9fbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfefefefffffffffffffdfdfdf8f8f8f2f2f2eeeeeeffffffeeeeeef9f9f9efefef
+070707f7f7f7fffffffafafaf7f7f7fdfdfdf1f1f1171717f3f3f3e4e4e4fffffff2f2f2
+050505f0f0f0fffffffefefeffffffffffffe2e2e21a1a1affffffeeeeeefcfcfc020202
+eaeaeaffffffececec010101fdfdfdffffffe4e4e4030303f4f4f4f8f8f8fefefeeeeeee
+f6f6f6f9f9f9fefefefefefefcfcfcf7f7f7f9f9f9fafafaeaeaeaeaeaea171717ffffff
+f6f6f6ededed171717f9f9f9fefefeeeeeee000000fafafae8e8e8000000ffffffffffff
+dadada090909e2e2e2fcfcfcfafafa000000e6e6e6ffffffffffffe7e7e7000000fdfdfd
+fafafa0e0e0efafafae8e8e8ffffffffffff0b0b0be6e6e6f9f9f9101010fdfdfdd9d9d9
+f3f3f30c0c0cf0f0f0eaeaeafcfcfc0c0c0cf1f1f1fcfcfcf4f4f4000000fdfdfdeeeeee
+fcfcfcfffffff7f7f7f8f8f8ebebebfbfbfbf9f9f9e2e2e2fffffffbfbfbe9e9e9fdfdfd
+060606edededfbfbfbf9f9f9ffffff000000eaeaeafdfdfdffffff030303f5f5f5f2f2f2
+e5e5e51d1d1df4f4f4f9f9f9fdfdfd000000f7f7f7fffffffffffff4f4f4fcfcfcf8f8f8
+ffffff000000f5f5f5fbfbfbffffffedededffffff000000f0f0f0e9e9e9ffffffe2e2e2
+e6e6e6ffffff000000030303f6f6f6fdfdfdf6f6f6d3d3d3fffffff7f7f7f5f5f5f9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000010101f5f5f5f5f5f5eeeeeee8e8e8fcfcfc0b0b0b000000
+151515fefefed0d0d0fbfbfb0e0e0e040404f7f7f7fffffff4f4f4f2f2f2212121000000
+f4f4f4e5e5e5f8f8f8101010000000ffffffe3e3e30000000f0f0f090909ffffffcacaca
+ffffffffffff000000fafafaffffff000000060606fffffff0f0f0fefefefcfcfc060606
+0d0d0d0909090202020000000a0a0a000000ffffffebebebffffff000000060606f5f5f5
+f6f6f6ffffffe4e4e40e0e0e121212efefeffbfbfbffffff090909161616efefefffffff
+050505000000fffffff9f9f9ffffff020202030303ffffffefefefffffff0c0c0c0f0f0f
+d2d2d2f8f8f8000000f3f3f3fcfcfce3e3e3fefefe080808000000fdfdfdfffffff4f4f4
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9f5f5f5ecececfbfbfbffffff
+000000000000ffffffededed000000ffffffffffff000000fffffff3f3f3e8e8e8fdfdfd
+000000090909ffffffe4e4e4f9f9f9020202ffffff000000fefefee7e7e7222222010101
+fffffff1f1f1eaeaea1a1a1af3f3f3e5e5e5ffffff040404000000fffffff9f9f9f4f4f4
+191919fdfdfdfdfdfdfefefeecececf6f6f6fcfcfcebebebe7e7e7ffffff000000fefefe
+eaeaeaffffff000000fffffff8f8f8f7f7f70f0f0ffbfbfbf6f6f6000000f6f6f6f4f4f4
+1010102d2d2de7e7e7ffffffdfdfdf0b0b0bebebebfafafaffffff121212fcfcfcfcfcfc
+fbfbfb050505fcfcfcedededffffff000000e6e6e6ffffffe5e5e5070707fdfdfdefefef
+f6f6f6060606fffffff1f1f1fcfcfc000000f8f8f8f0f0f0ffffff0000001d1d1d0c0c0c
+0d0d0d000000f9f9f9fafafafffffff6f6f6fcfcfcf2f2f2e3e3e3ffffffedededffffff
+000000fffffffefefeeaeaeaffffff000000e0e0e0f6f6f6f0f0f0000000ffffffffffff
+f3f3f3070707f2f2f2fefefeffffff000000191919fffffff0f0f0ffffff080808f2f2f2
+f8f8f8010101fffffff4f4f4ffffffececec020202fefefef0f0f0fdfdfdefefeff2f2f2
+ffffff000000e8e8e8fffffffffffff3f3f3101010f7f7f7edededfffffff7f7f7f8f8f8
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+010101000000000000000000020202f6f6f6f7f7f7f1f1f1fffffff4f4f4ffffffffffff
+000000030303141414080808090909fffffff1f1f1f4f4f4fffffff1f1f1010101232323
+0808080d0d0d050505020202ffffffe9e9e9eeeeeefafafa242424000000090909141414
+1f1f1f0000000b0b0bfdfdfd020202070707121212000000fffffff7f7f7dfdfdf111111
+0c0c0c1010100c0c0cffffff1c1c1c000000000000fffffff9f9f91111110000000e0e0e
+131313f6f6f6181818010101000000090909fbfbfbffffff000000020202111111070707
+000000333333f1f1f1f2f2f2000000050505121212000000ffffff0000000c0c0c181818
+0e0e0efcfcfc0808080a0a0a090909121212020202050505ffffffeeeeeef0f0f0ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9fcfcfcfffffffdfdfdf3f3f3
+ffffff0e0e0e0202022c2c2c010101f1f1f1090909000000000000eaeaeaffffffe9e9e9
+efefef111111000000000000050505ebebebfffffff5f5f5020202060606eaeaea090909
+040404f0f0f0ffffff000000222222000000fbfbfbfdfdfd151515000000191919191919
+f8f8f8f9f9f9eeeeeefafafaf0f0f0f6f6f6dadadaf7f7f7fefefe0000000c0c0c0b0b0b
+fefefe0000000a0a0a0b0b0be3e3e3000000050505000000fffffff4f4f4030303000000
+e0e0e0181818080808eaeaeaffffff000000131313000000000000fffffff1f1f1f1f1f1
+ffffff080808151515090909000000fffffffbfbfbd8d8d80e0e0e0f0f0f000000ffffff
+080808060606070707ffffff0000000f0f0f0e0e0ef5f5f5070707f7f7f7f4f4f4f3f3f3
+ffffff030303010101e6e6e6eeeeeef1f1f1ebebebfefefefafafae9e9e9ffffff000000
+0d0d0d000000f3f3f3f1f1f1010101090909141414f6f6f6050505141414010101f5f5f5
+fdfdfd0000001b1b1b000000f8f8f8f3f3f3000000090909060606000000f2f2f2f8f8f8
+070707000000070707fafafaefefefffffff000000ffffffffffffedededffffffe2e2e2
+cdcdcd000000191919080808080808080808000000fffffffffffff7f7f7f3f3f3fafafa
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f7f7f7f9f9f9f4f4f4efefefeeeeeedadadaf7f7f7
+f4f4f4ffffffe5e5e5edededfafafaeeeeeefbfbfbf2f2f2e2e2e2ffffff080808000000
+ffffffdededee9e9e9ffffffefefeffefefef6f6f6f6f6f6eeeeeefffffff8f8f8e8e8e8
+f1f1f1ffffffffffffe8e8e8f9f9f9f1f1f1ddddddfffffff5f5f5ffffffffffffe8e8e8
+f2f2f2ebebebf2f2f2e3e3e3efefefffffffdcdcdceaeaeaf0f0f0ffffffffffffcdcdcd
+fcfcfcffffffe0e0e0e6e6e6f5f5f5f0f0f0edededf9f9f9ffffffeeeeeee1e1e1ffffff
+f1f1f1efefeffbfbfbf3f3f3fffffffdfdfdffffffececececececfffffffafafaededed
+ebebebf9f9f9f1f1f1fefefedcdcdcfffffffafafaefefefdededef6f6f6fffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaffffffe8e8e8ffffffd0d0d0
+f2f2f2e0e0e0fbfbfbc2c2c2ffffffe0e0e0f4f4f4ffffffeaeaeafafafaebebebeaeaea
+f5f5f5edededf3f3f3fffffff8f8f8e4e4e4fffffff7f7f7f9f9f9fcfcfcfafafaf5f5f5
+ffffffeaeaeaf3f3f3e4e4e4ffffffffffffffffffedededf0f0f0ffffffefefefe7e7e7
+fafafaf7f7f7f9f9f9ffffffebebebf1f1f1fefefee4e4e4eaeaeaeeeeeeffffffe8e8e8
+efefeff2f2f2ffffffedededf5f5f5fbfbfbecececffffffecececdededefffffffcfcfc
+fbfbfbe7e7e7ffffffe9e9e9dedede080808f1f1f1fffffff5f5f5f6f6f6fafafaefefef
+f7f7f7060606f3f3f3fffffffefefeeeeeeeeeeeeedfdfdffffffff0f0f0f6f6f6ffffff
+f7f7f7f9f9f9ebebebf8f8f8fbfbfbf5f5f5e5e5e5f8f8f8050505ffffffe7e7e7f2f2f2
+dadadaf0f0f0151515ffffffffffffedededfcfcfcffffffffffffe0e0e0ddddddffffff
+f4f4f4e7e7e7fffffffdfdfdfefefef8f8f8fffffff8f8f8ebebebfafafaffffffd4d4d4
+f4f4f4f8f8f8dcdcdcfdfdfdffffffffffffebebebf4f4f4ffffffeaeaeaffffffe9e9e9
+fffffffcfcfcefefeffffffffefefe000000ffffffdcdcdcf4f4f4d8d8d8fbfbfbf3f3f3
+fffffff7f7f7f1f1f1fdfdfde7e7e7fffffffefefef7f7f7dededefdfdfdf8f8f8fafafa
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f8f8f8fcfcfcf8f8f8ffffffffffffffffffefefef
+dfdfdfefefefffffffffffffebebebffffffe3e3e3fffffffbfbfbdbdbdb0c0c0c0a0a0a
+e3e3e3f5f5f5fffffff7f7f7f8f8f8fffffffffffff8f8f8ffffffe5e5e5f5f5f5fefefe
+f5f5f5f1f1f1e3e3e3e0e0e0dbdbdbffffffffffffd2d2d2f1f1f1e6e6e6e4e4e4fafafa
+f4f4f4fffffffcfcfcf0f0f0fefefee7e7e7eeeeeefffffffefefeebebebfbfbfbd9d9d9
+f5f5f5ffffffe9e9e9ffffffffffffe7e7e7e9e9e9f8f8f8fcfcfcf4f4f4ffffffe7e7e7
+fffffff1f1f1fdfdfdfdfdfdf0f0f0d2d2d2fbfbfbf6f6f6f2f2f2f7f7f7fcfcfce0e0e0
+fffffff1f1f1fafafafbfbfbf9f9f9ccccccfdfdfdfefefef4f4f4fdfdfdedededfafafa
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfbfbfbfbd9d9d9f3f3f3ffffff
+e5e5e5f9f9f9fbfbfbf8f8f8efefeff0f0f0ffffffffffffe7e7e7efefeffffffffbfbfb
+ffffffe5e5e5ffffffd7d7d7fafafadfdfdfe3e3e3fffffffdfdfddedededfdfdfefefef
+f2f2f2ffffffdededefefefef2f2f2e5e5e5dfdfdfffffffffffffe9e9e9fdfdfdfdfdfd
+dcdcdcfffffffafafae5e5e5fffffff5f5f5f8f8f8f1f1f1ffffffe8e8e8fdfdfdffffff
+edededeaeaeaffffffedededf0f0f0e4e4e4fafafae1e1e1fafafaf7f7f7f7f7f7eeeeee
+e9e9e9fffffff6f6f6f0f0f0ffffff191919fcfcfce2e2e2eaeaeadcdcdcfffffff4f4f4
+f1f1f1070707f7f7f7f4f4f4f4f4f4fffffffffffff4f4f4e3e3e3fbfbfbfcfcfcededed
+f2f2f2f6f6f6f7f7f7eeeeeefefefefffffffffffff9f9f9000000fffffffffffff5f5f5
+fefefe000000ffffffececece0e0e0fffffffafafaf4f4f4e8e8e8e3e3e3ffffffe8e8e8
+edededfffffff2f2f2e9e9e9fdfdfde9e9e9ffffffe2e2e2fdfdfddcdcdcefefefffffff
+f7f7f7f4f4f4f3f3f3fdfdfdefefefe9e9e9e8e8e8f9f9f9ecececfbfbfbeeeeeeffffff
+e2e2e2fffffff7f7f7fcfcfcf5f5f5fcfcfcf6f6f6fdfdfdfffffffffffff0f0f0e9e9e9
+e7e7e7f6f6f6f7f7f7f6f6f6c5c5c5e7e7e7ffffffe4e4e4f9f9f9fffffff0f0f0ffffff
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000020202f8f8f8fdfdfdfbfbfbefefeffbfbfbfcfcfcf9f9f9
+ffffffe6e6e6dfdfdff4f4f4ffffffe8e8e8f2f2f2fbfbfbf3f3f31818180c0c0c0a0a0a
+0909090a0a0ae9e9e9eaeaeaf2f2f2ebebebdcdcdcffffffdbdbdbfcfcfcfcfcfcffffff
+f5f5f5ebebebfffffffffffffefefedcdcdceeeeeefffffffffffff8f8f8edededfafafa
+e5e5e5fdfdfdfafafafffffffefefeedededffffffe7e7e7edededfffffff9f9f9ffffff
+e0e0e0fafafafbfbfbececece2e2e2edededffffffededede4e4e4fefefeedededffffff
+d7d7d7fffffff8f8f8f1f1f1f5f5f5fffffff2f2f2eeeeeef5f5f5ffffffdfdfdffcfcfc
+f5f5f5f1f1f1f5f5f5fcfcfcf6f6f6ffffffffffffcececeffffffe4e4e4fffffffbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfcfcfceaeaeafffffffbfbfbd8d8d8
+fcfcfcfafafaeaeaeafffffff0f0f0ffffffdbdbdbf5f5f5ffffffd8d8d8fffffff7f7f7
+f6f6f6ffffffedededffffffedededfdfdfde2e2e2f6f6f6f9f9f9efefefffffffededed
+ffffffe5e5e5fffffff7f7f7dadadafffffffffffff8f8f8f8f8f8f1f1f1edededd7d7d7
+ffffff000000000000171717080808000000050505161616d0d0d0fffffff8f8f8c4c4c4
+fffffff5f5f5ecececfffffffffffffffffff9f9f9d4d4d4f8f8f8ffffffdadadaffffff
+fbfbfbfafafaf5f5f5f0f0f0050505000000030303f7f7f7fffffffcfcfcd9d9d9fafafa
+0000000000001a1a1afcfcfcfefefee4e4e4e3e3e3fffffff7f7f7f6f6f6f8f8f8ffffff
+fffffff2f2f2e5e5e5fffffff4f4f4f2f2f2e6e6e6f2f2f2fefefe000000000000141414
+000000fefefeffffff000000070707060606000000080808191919121212f4f4f4eaeaea
+fefefef1f1f1dfdfdffffffff6f6f6f4f4f4fffffff7f7f7e8e8e8efefeff9f9f9f7f7f7
+ddddddffffffecececd7d7d7e0e0e0efefefffffffe5e5e5f0f0f0f7f7f7fffffff9f9f9
+f7f7f7f3f3f3fffffffefefefafafafafafaecececf2f2f2e6e6e6f7f7f7f2f2f2fcfcfc
+fcfcfcfefefefffffffafafaffffffdcdcdcf1f1f1fffffff7f7f7eeeeeef5f5f5fcfcfc
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101030303000000010101f6f6f6fcfcfcfbfbfbfffffff7f7f7f2f2f2ffffff
+fffffffefefefafafafefefef1f1f1fafafaffffffebebebf5f5f5ffffffebebebf9f9f9
+f1f1f1fffffff9f9f9fffffff4f4f4fffffffffffff7f7f7f9f9f9ffffffeeeeeef2f2f2
+fffffff3f3f3f4f4f4fcfcfcf8f8f8ebebebffffffebebebececececececfffffffdfdfd
+fefefefdfdfdf7f7f7ffffffe2e2e2fffffffffffff3f3f3fffffff1f1f1f8f8f8e2e2e2
+fbfbfbf3f3f3fffffff8f8f8fbfbfbfffffff4f4f4fcfcfcfffffffffffff0f0f0efefef
+fefefef2f2f2ffffffefefefffffffecececf5f5f5fffffff3f3f3f2f2f2f5f5f5fcfcfc
+e6e6e6fffffffffffffffffffafafaf5f5f5dbdbdbfffffffffffff9f9f9fcfcfcfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfafafaefefeff2f2f2f9f9f9
+f9f9f9eeeeeefefefefafafafdfdfdf0f0f0fafafaf2f2f2ebebebfffffff3f3f3ffffff
+fbfbfbf7f7f7fffffffafafaf9f9f9fffffff7f7f7fbfbfbffffffe9e9e9f2f2f2e2e2e2
+fdfdfdefefeffcfcfcfdfdfdfffffff2f2f2f9f9f9fffffff5f5f5f7f7f7fffffff8f8f8
+fcfcfcf0f0f0ffffffe9e9e9edededf5f5f5f3f3f3f8f8f8fffffff1f1f1f5f5f5f6f6f6
+fdfdfdfdfdfdffffffedededfbfbfbeaeaeafffffff1f1f1fafafaeaeaeaffffffdddddd
+f3f3f3fbfbfbfffffff4f4f4f3f3f3fffffffcfcfcfcfcfce4e4e4fffffff6f6f6f5f5f5
+ffffffedededf9f9f9f8f8f8f9f9f9fffffffffffff0f0f0fdfdfdedededf4f4f4fafafa
+e7e7e7fffffffffffff1f1f1f9f9f9fffffffafafafffffffffffffafafafbfbfbfdfdfd
+ffffffecececfffffffdfdfdffffffffffffffffffe3e3e3ffffffebebebf9f9f9ffffff
+fefefefefefeffffffddddddfffffffcfcfcf8f8f8fffffffffffffbfbfbfffffff5f5f5
+efefefd7d7d7ffffffffffffffffffefefefebebebf1f1f1fffffff0f0f0fffffff7f7f7
+fffffff7f7f7f0f0f0fffffffefefefafafafffffffffffffafafaf0f0f0fafafaf3f3f3
+f8f8f8fdfdfdf4f4f4f8f8f8f6f6f6f9f9f9f1f1f1f9f9f9f4f4f4f6f6f6fdfdfdf1f1f1
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000020202030303000000000000f4f4f4fbfbfbfbfbfbf9f9f9f3f3f3f6f6f6f4f4f4
+f0f0f0fefefeffffffefefeff3f3f3f2f2f2fbfbfbedededfffffff2f2f2fffffff7f7f7
+fffffffafafafffffffcfcfcefefefebebebeeeeeefbfbfbefefeffafafafffffff0f0f0
+f7f7f7ffffffefefeffffffffffffffbfbfbfcfcfcfefefef7f7f7fefefeffffffe6e6e6
+fafafae9e9e9fffffff9f9f9fdfdfdf1f1f1f4f4f4fefefefcfcfcfefefeefefefffffff
+ffffffefefefeaeaeafafafaedededf2f2f2fcfcfcf4f4f4f8f8f8ffffffe7e7e7ffffff
+fafafafefefef2f2f2fffffffffffffffffff6f6f6edededfdfdfdffffffffffffe9e9e9
+fffffffffffff1f1f1f1f1f1f8f8f8fffffffdfdfdf3f3f3f7f7f7eaeaeae3e3e3ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfafafafafafafefefeffffff
+efefeffffffffbfbfbfcfcfcfdfdfdeeeeeefffffff8f8f8fefefeecececffffffffffff
+fffffffbfbfbfffffffbfbfbfdfdfdfffffffbfbfbfbfbfbe6e6e6fffffff0f0f0ffffff
+fffffffafafae5e5e5fffffffdfdfdf4f4f4f9f9f9fffffff6f6f6f8f8f8fffffff5f5f5
+f4f4f4ffffffe8e8e8f5f5f5fffffff1f1f1fffffff4f4f4e9e9e9f9f9f9fbfbfbf9f9f9
+ecececf8f8f8fafafafcfcfce6e6e6ffffffeeeeeeffffffd0d0d0fbfbfbf0f0f0ffffff
+fffffff3f3f3eaeaeafffffffffffff7f7f7f7f7f7fffffffffffff1f1f1ffffffdddddd
+f1f1f1fafafafffffff6f6f6fdfdfdf3f3f3f9f9f9fdfdfdf5f5f5fbfbfbfffffff9f9f9
+fffffffffffff2f2f2f1f1f1fffffffcfcfcefefeff6f6f6fdfdfdfafafafffffff0f0f0
+f1f1f1fffffffefefefffffffcfcfcfcfcfce6e6e6fffffff7f7f7fbfbfbfafafaf9f9f9
+fffffffcfcfceeeeeefffffff0f0f0dfdfdffafafaffffffffffffeaeaeaeaeaeaffffff
+f6f6f6f3f3f3fffffff7f7f7f9f9f9efefeffdfdfdfbfbfbeeeeeeffffffe9e9e9ffffff
+eeeeeeefefefffffffefefeffefefee3e3e3fffffff4f4f4fefefef6f6f6ffffffffffff
+fffffffffffff5f5f5f6f6f6f0f0f0fffffff1f1f1fdfdfdfffffff3f3f3e9e9e9fefefe
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000020202030303000000000000f3f3f3fafafafafafafffffff7f7f7ffffffffffff
+f7f7f7f1f1f1fffffff8f8f8fefefefafafaf7f7f7fafafaf4f4f4f6f6f6fffffff9f9f9
+fbfbfbfefefefdfdfdf9f9f9fcfcfcfffffffffffff9f9f9ffffffffffffebebebfafafa
+fffffff8f8f8fffffff9f9f9f4f4f4fbfbfbf2f2f2fffffff2f2f2f8f8f8fffffffefefe
+f4f4f4fffffff3f3f3f8f8f8fffffff9f9f9fbfbfbfbfbfbfafafafffffff0f0f0f9f9f9
+ecececfefefefefefefffffffffffff8f8f8fffffffdfdfdf6f6f6fcfcfcfffffff2f2f2
+f6f6f6fffffff8f8f8f7f7f7fcfcfcecececfffffff9f9f9f9f9f9fefefef6f6f6ffffff
+f5f5f5ffffffeaeaeafffffffffffffdfdfdf8f8f8fffffff4f4f4f2f2f2ffffffdedede
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffff1f1f1ffffffe9e9e9
+fbfbfbfffffff8f8f8fefefef3f3f3fffffff8f8f8f6f6f6f7f7f7fffffff9f9f9fefefe
+fafafaf5f5f5fcfcfcf5f5f5fffffff6f6f6f2f2f2fffffffefefefdfdfdfffffff9f9f9
+f2f2f2f0f0f0ffffffecececf1f1f1fffffffafafafbfbfbfefefef9f9f9ffffffffffff
+fcfcfcf7f7f7fffffff4f4f4f5f5f5fbfbfbe8e8e8edededfffffff1f1f1f5f5f5fefefe
+ebebebf1f1f1f5f5f5e9e9e9fdfdfdfcfcfceaeaeaf3f3f3ffffffe7e7e7ffffffe6e6e6
+fafafafffffffefefefefefefbfbfbf1f1f1fffffff3f3f3f5f5f5eaeaeaf2f2f2ffffff
+f3f3f3fbfbfbf7f7f7fafafafffffff7f7f7fdfdfdf3f3f3fffffff5f5f5fcfcfcf6f6f6
+fcfcfcf7f7f7fcfcfcffffffe9e9e9fefefefffffff7f7f7f9f9f9fdfdfdfcfcfcffffff
+f6f6f6f6f6f6ffffffecececfbfbfbfefefefefefef1f1f1fbfbfbf8f8f8fffffff5f5f5
+f5f5f5f7f7f7fffffff0f0f0fffffffdfdfdf2f2f2fffffff5f5f5fffffffbfbfbf6f6f6
+fffffff9f9f9f8f8f8fffffffffffffffffffefefefbfbfbfffffffefefefffffff4f4f4
+fafafafffffff0f0f0f7f7f7fffffffbfbfbf9f9f9f8f8f8f1f1f1ffffffeeeeeeffffff
+fafafaf0f0f0fffffffbfbfbfffffff7f7f7fcfcfcfafafaf4f4f4f2f2f2fffffff1f1f1
+fdfdfdfffffffffffffffffffffffffefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfefefefefefefdfdfdfcfcfc
+fefefefefefefffffffffffffefefefefefefdfdfdfcfcfcf5f5f5fffffffdfdfdf7f7f7
+fffffff2f2f2fffffffefefefffffffefefefafafafafafafefefeffffffffffffffffff
+fffffffefefefbfbfbfbfbfbfdfdfdfefefefcfcfcfafafaf4f4f4eaeaeaffffffe2e2e2
+efefeffffffff9f9f9f3f3f3e7e7e7ffffffe3e3e3fffffffefefef1f1f1fffffff9f9f9
+fffffffffffffffffffffffffffffffefefefdfdfdfefefeffffffffffffffffffffffff
+fffffffefefefefefefffffffbfbfbfafafafffffff3f3f3ffffffedededfafafaf7f7f7
+fffffffffffffdfdfdf5f5f5fffffff9f9f9fffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefffffffffffffffffffefefefefefefffffffefefe
+fefefefdfdfdfefefefffffffffffffffffffefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdf9f9f9fffffffffffff7f7f7
+edededebebebfdfdfdfafafafefefefdfdfdfcfcfcfdfdfdfffffffffffffffffffefefe
+fbfbfbfcfcfcfefefefffffffffffffdfdfdf6f6f6f1f1f1e8e8e8ffffffddddddf7f7f7
+fbfbfbf0f0f0ddddddfffffffffffffffffff7f7f7ffffffdbdbdbffffffe8e8e8fafafa
+fbfbfbfcfcfcfefefefffffffefefefefefefefefeffffffffffffffffffffffffffffff
+fffffffefefefefefefffffffffffff4f4f4fefefef4f4f4f2f2f2fffffffffffffbfbfb
+eaeaeaf7f7f7ffffffffffffe6e6e6fffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefdfdfdfefefefefefeffffff
+fffffffefefefefefefdfdfdfefefefdfdfdfcfcfcfcfcfcfcfcfcfefefeffffffffffff
+fdfdfdfefefefefefefefefefefefefdfdfdfcfcfcfbfbfbffffffe7e7e7efefefffffff
+fffffffffffff9f9f9fffffff9f9f9fcfcfcfffffffffffffffffffdfdfdfdfdfdfcfcfc
+fdfdfdfefefefffffffffffffffffffcfcfcf6f6f6f1f1f1fffffff0f0f0fffffffbfbfb
+f6f6f6f3f3f3ffffffeaeaeaf8f8f8e2e2e2ebebebdcdcdcefefeff5f5f5ffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfafafaf9f9f9fcfcfcfdfdfdfefefefefefe
+fffffffffffffffffffefefeffffffe8e8e8ffffffefefeffbfbfbfcfcfcfffffffbfbfb
+fffffff9f9f9f4f4f4f1f1f1ffffffe6e6e6f9f9f9f6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefffffffffffffffffffffffffefefefdfdfdfdfdfdffffffffffffffffffffffff
+fffffffffffffffffffefefefffffffffffffefefefdfdfdfcfcfcfdfdfdffffffffffff
+fefefefefefefffffffffffffffffffefefefdfdfdfcfcfcfffffffffffff9f9f9e4e4e4
+eaeaeafffffff3f3f3edededf9f9f9fdfdfdfffffffffffffdfdfdfbfbfbfcfcfcfefefe
+fffffffffffffffffffdfdfdfcfcfcfcfcfcfcfcfcfcfcfcf6f6f6e8e8e8f8f8f8f8f8f8
+000000000000f7f7f7080808e4e4e4ffffff0404041b1b1bf8f8f8f2f2f2f9f9f9f8f8f8
+fffffffffffffffffffffffffffffffefefefcfcfcfafafafcfcfcfffffffffffffefefe
+fefefefffffffefefefbfbfbfffffff2f2f2f6f6f6fffffff0f0f0f7f7f7e2e2e2f8f8f8
+e3e3e3fbfbfbf4f4f4fffffff0f0f0fdfdfdfffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfcfcfcfbfbfbfffffffefefefdfdfdfefefe
+fffffffffffffffffffdfdfdfffffffffffffffffffffffffefefefdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffefefeffefefeffffffffffff
+fffffff3f3f3e7e7e7fffffffbfbfbfefefefffffffffffffbfbfbfafafafdfdfdffffff
+fffffffffffffefefefcfcfcfbfbfbfcfcfcfffffffffffffffffff5f5f5f6f6f6000000
+ffffff080808f5f5f5060606f6f6f6ffffffededed040404f0f0f0fffffff5f5f5f8f8f8
+f8f8f8f7f7f7f8f8f8fbfbfbfffffffffffffffffffefefefefefefffffffffffffdfdfd
+fcfcfcfffffffefefef9f9f9fffffff0f0f0ffffffebebebfbfbfbfffffffdfdfdffffff
+fffffff5f5f5eeeeeefffffff3f3f3e4e4e4fffffff4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffdfdfdfbfbfbfafafafefefefafafaf7f7f7f8f8f8
+fbfbfbfdfdfdfcfcfcf9f9f9f8f8f8fbfbfbfdfdfdfcfcfcf8f8f8f7f7f7f8f8f8fbfbfb
+fcfcfcfcfcfcfdfdfdfdfdfdfcfcfcfbfbfbfafafafafafafffffffafafaeaeaeae7e7e7
+fcfcfce6e6e6f5f5f5ecececfdfdfdfdfdfdfdfdfdfcfcfcfafafafafafafbfbfbfdfdfd
+f6f6f6f9f9f9fdfdfdfefefefdfdfdfbfbfbfafafafafafae8e8e8fafafa000000fafafa
+fffffff3f3f3ececec040404fffffff3f3f3d4d4d41c1c1cfdfdfdf4f4f4eeeeeef3f3f3
+fbfbfbf9f9f9f7f7f7f8f8f8fafafafafafaf6f6f6f3f3f3fdfdfdfffffffffffffafafa
+f9f9f9fefefefefefef9f9f9fcfcfcf4f4f4f4f4f4eaeaeafcfcfc000000f6f6f6f5f5f5
+dddddd000000131313fbfbfbfcfcfcffffffe3e3e3fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf9f9f9fffffff9f9f9f4f4f4f4f4f4
+f8f8f8fbfbfbfbfbfbf9f9f9edededf2f2f2f7f7f7f8f8f8f5f5f5f3f3f3f5f5f5f8f8f8
+f8f8f8f8f8f8f8f8f8f9f9f9f8f8f8f7f7f7f6f6f6f6f6f6d9d9d9f6f6f6ffffffe6e6e6
+f9f9f9ffffffebebeb080808fafafaf9f9f9f9f9f9fafafafbfbfbfafafaf8f8f8f5f5f5
+f6f6f6f9f9f9fdfdfdfdfdfdfbfbfbf8f8f8f8f8f8f8f8f8f8f8f8f9f9f91e1e1ef1f1f1
+e9e9e9dededefffffffefefef9f9f9e5e5e5ffffff030303d5d5d5fbfbfbffffff000000
+fffffffdfdfdf9f9f9f8f8f8f9f9f9f8f8f8f2f2f2edededf8f8f8fefefefcfcfcf4f4f4
+f4f4f4fdfdfdfffffffbfbfbe8e8e8fefefed7d7d7fcfcfc2d2d2dfefefef5f5f5ffffff
+050505ffffff000000ffffffecececfefefef8f8f8fbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfefefefffffffffffffffffffdfdfdfafafaf8f8f8fffffffbfbfbf4f4f4f4f4f4
+f8f8f8fcfcfcfcfcfcfbfbfbebebebf2f2f2fafafafcfcfcfafafaf9f9f9fbfbfbfefefe
+fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaffffffdededef4f4f4f2f2f2
+f7f7f7f4f4f4ffffff040404f6f6f6f6f6f6f7f7f7fafafafdfdfdfbfbfbf4f4f4eeeeee
+fffffffffffffdfdfdf9f9f9f5f5f5f6f6f6fafafafefefeecececfbfbfb191919ffffff
+f5f5f5f6f6f6edededfafafafffffff9f9f9efefef232323e9e9e9fafafaffffff010101
+fafafaf7f7f7f6f6f6f9f9f9fffffffffffffefefefafafaf3f3f3f9f9f9f7f7f7efefef
+f1f1f1fdfdfdfffffffdfdfdf0f0f0ebebebfffffff2f2f2000000f3f3f3ffffffeeeeee
+fdfdfdf3f3f3030303d4d4d4f5f5f5eeeeeefffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffcfcfcf6f6f6f2f2f2f0f0f0f1f1f1efefeffafafa
+fefefee1e1e10b0b0b121212ffffffefefef030303000000fefefe020202030303efefef
+fffffff9f9f9000000010101090909fbfbfbf2f2f2fdfdfd1818180000002a2a2af5f5f5
+e9e9e9f3f3f31f1f1f080808161616101010f8f8f8ecececffffff131313010101121212
+f7f7f7e1e1e1fffffffdfdfdeeeeeeffffffffffffe7e7e7f1f1f1131313030303000000
+090909f1f1f10e0e0e060606dededefffffff8f8f8000000fffffffefefe0202020a0a0a
+0c0c0c1b1b1bd4d4d4fffffff4f4f4202020111111000000fcfcfcf2f2f2000000131313
+ededed0505050a0a0aeaeaeaf4f4f4eaeaeafbfbfb121212f3f3f3f1f1f1fffffffafafa
+d7d7d7ffffff0a0a0aeaeaeafffffffdfdfde6e6e6fdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefffffffefefefbfbfbf8f8f8ffffffe5e5e5fffffffdfdfd
+f1f1f1000000f0f0f0e4e4e4000000f7f7f7ffffff0909090f0f0ff9f9f9f5f5f5f2f2f2
+f4f4f4000000fefefee9e9e9ffffff141414fdfdfd0c0c0c000000fffffff5f5f5171717
+dfdfdffdfdfdf3f3f3000000e1e1e1eeeeeeffffffffffff131313f3f3f3eaeaeaffffff
+0f0f0ff6f6f6e9e9e9f9f9f9fbfbfbefefeff4f4f4f7f7f7ffffffefefef020202fefefe
+ffffffe5e5e5ffffff010101fffffff5f5f5e7e7e7202020ffffffdfdfdfe2e2e21f1f1f
+e2e2e2fffffffcfcfcefefef202020e7e7e7eaeaeaf9f9f9000000f9f9f9ffffff030303
+141414f3f3f3d7d7d7ffffffffffffffffffd0d0d0000000fffffff2f2f2e5e5e5fcfcfc
+f9f9f9e1e1e1121212fefefee4e4e4e4e4e4fefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfdfdfdfefefefffffffefefefdfdfdf6f6f6fffffff2f2f2d8d8d8
+000000fffffffffffff4f4f4fcfcfcf9f9f9fcfcfc000000ffffffccccccf7f7f7f8f8f8
+080808ffffffe7e7e7f9f9f9f4f4f4000000e0e0e0f0f0f0fffffff4f4f4020202000000
+f6f6f6e8e8e8f4f4f4242424e5e5e5f1f1f1f4f4f4121212dededefffffff8f8f8ebebeb
+000000f7f7f7ffffffe9e9e9e7e7e7fffffff6f6f6f5f5f5f0f0f0ededed030303ffffff
+bcbcbcffffffd0d0d0070707e7e7e7cacacaffffff020202f2f2f2ebebebffffff000000
+ecececf6f6f6ffffff000000f8f8f8fafafafcfcfcf5f5f5050505fcfcfcf4f4f4070707
+f4f4f4fdfdfdf8f8f8f2f2f2f3f3f3f8f8f81a1a1aecececf5f5f5ffffffedededfafafa
+ffffffe6e6e6141414fbfbfbfffffff5f5f5ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfdfdfdfefefefefefefcfcfcfafafaedededfafafaf0f0f0ffffff
+080808f7f7f7d6d6d6ffffffffffffdadadaf5f5f50a0a0affffffffffffe1e1e1fefefe
+0505050c0c0c171717111111000000000000ffffffeeeeee070707010101ffffff000000
+fffffff1f1f1dedede000000f7f7f7fcfcfceaeaea0606060f0f0f000000060606151515
+000000edededfbfbfbeaeaeaffffffe1e1e1f6f6f6fafafafefefef3f3f3171717e7e7e7
+ffffffd1d1d1ffffff171717f7f7f7fefefeebebeb151515ffffffeeeeeeececec080808
+ffffffe9e9e9f6f6f61111111010100000000c0c0c1818180e0e0efffffff8f8f8151515
+fdfdfdfffffff7f7f7e8e8e8f7f7f7040404f8f8f8f8f8f8e9e9e9eaeaeafffffff9f9f9
+f0f0f0ffffff000000fafafaf7f7f7ffffffe8e8e8eeeeeeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefffffffffffffffffffdfdfdf8f8f8f4f4f4edededffffffe3e3e3ebebeb
+090909f2f2f2ecececf2f2f2dbdbdbfdfdfdffffff000000f5f5f5e2e2e2fbfbfbfcfcfc
+101010f6f6f6f1f1f1f3f3f3fbfbfbfffffffafafa000000f4f4f4fefefeededed0b0b0b
+e1e1e1fcfcfcffffff030303f6f6f6eaeaeaf9f9f9000000fffffffefefef9f9f9f2f2f2
+fffffff8f8f8f1f1f1f1f1f1f8f8f8f8f8f8f8f8f8f0f0f0ddddddffffff000000f9f9f9
+e9e9e9ffffffe0e0e0070707fafafaf7f7f7eaeaea0d0d0dfafafafffffffcfcfc010101
+ffffffdadadaffffff0a0a0af2f2f2ffffffececece9e9e9ddddddffffffebebeb000000
+fffffff1f1f1eaeaeafefefeeaeaea050505fffffffafafafafafaf8f8f8fafafaf5f5f5
+f2f2f2fafafa080808f9f9f9f3f3f3f8f8f8ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefffffffffffffffffffcfcfcf6f6f6f1f1f1f0f0f0e8e8e8ffffffffffff
+020202101010fffffff7f7f70b0b0be1e1e1ffffff000000ffffffffffffe9e9e9fcfcfc
+070707000000f2f2f2fbfbfbffffff000000f0f0f0181818ffffffffffff0a0a0a040404
+ffffffe3e3e3dadada0a0a0aedededf1f1f1ffffff0606060f0f0ff4f4f4ffffffebebeb
+000000fffffffcfcfcffffffebebebdfdfdfffffffe3e3e3fbfbfbd8d8d8212121fbfbfb
+f8f8f8ecececffffff070707fefefef2f2f2fafafa070707fdfdfdf1f1f1ffffff070707
+f3f3f3f6f6f6ffffff000000171717fafafaefefeff5f5f50c0c0cf5f5f5f3f3f3222222
+f9f9f9fffffffbfbfbdedede0f0f0fe3e3e3e9e9e9ffffffe1e1e1fffffff7f7f7f4f4f4
+f9f9f9ffffff1b1b1bf4f4f4ffffffffffffdededef1f1f1ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefffffffffffffdfdfdf9f9f9f6f6f6fffffff5f5f5f0f0f0e4e4e4
+f5f5f5000000090909141414050505f0f0f0000000101010000000f1f1f1fafafaf3f3f3
+ffffff1010101c1c1c121212000000fdfdfdf4f4f4fdfdfd000000050505d5d5d5000000
+1d1d1df8f8f8ffffff0707070f0f0f000000ecececffffff0000000000000c0c0c0b0b0b
+f6f6f6ffffffd3d3d3fffffff7f7f7f8f8f8f4f4f4efefefebebeb101010000000121212
+ffffffffffff000000000000000000e4e4e41b1b1b080808000000fafafadbdbdb242424
+080808040404f6f6f6fefefe0101010606060a0a0a1b1b1bf8f8f8e7e7e7070707030303
+0c0c0cf0f0f0ffffffffffff131313ffffffb8b8b8fcfcfcffffffecececf1f1f1e6e6e6
+080808050505000000212121fdfdfdc6c6c6fdfdfdfcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffdfdfdfdfdfdfefefefefefefdfdfdfcfcfcfafafaf6f6f6fcfcfcf2f2f2
+fbfbfbf5f5f5e3e3e3fdfdfdfbfbfbfbfbfbf3f3f3fcfcfcfbfbfbebebebfefefee6e6e6
+fafafae8e8e8fdfdfdfdfdfdf1f1f1fefefefffffff0f0f0fdfdfde6e6e6fffffffdfdfd
+e0e0e0d7d7d7f7f7f7eeeeeeffffffffffffe9e9e9e5e5e5fffffff7f7f7f1f1f1fdfdfd
+ffffffe8e8e8eaeaeaf5f5f5fdfdfdfdfdfdf9f9f9ecececfdfdfdf4f4f4f2f2f2ffffff
+e8e8e8e7e7e7fffffffcfcfcfcfcfcfcfcfcf2f2f2fafafafbfbfbeeeeeeffffffefefef
+f6f6f6fffffff3f3f3fdfdfdf6f6f6f7f7f7f4f4f4f3f3f3edededfffffffafafaf7f7f7
+ffffffebebebffffff000000d6d6d6f2f2f2ffffffffffffe6e6e6f3f3f3fffffffdfdfd
+f4f4f4fcfcfcffffffebebebe3e3e3fffffffffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefdfdfdfbfbfbfafafaf9f9f9ecececf3f3f3f9f9f9fafafa
+f8f8f8f7f7f7f9f9f9fdfdfdf6f6f6f7f7f7f8f8f8f9f9f9fafafafafafafafafafafafa
+f9f9f9f7f7f7f6f6f6f8f8f8fbfbfbfafafaf5f5f5f0f0f0fafafafcfcfcfafafaf4f4f4
+f3f3f3f7f7f7fcfcfcfdfdfdf2f2f2f2f2f2f3f3f3f5f5f5f8f8f8fbfbfbffffffffffff
+f5f5f5e5e5e5fffffff3f3f3f1f1f1ffffffeeeeeefbfbfbfcfcfcfdfdfdffffffffffff
+fffffffdfdfdfbfbfbfafafafafafaf5f5f5f2f2f2f5f5f5fcfcfcfdfdfdf7f7f7f0f0f0
+f7f7f7f3f3f3f1f1f1f5f5f5fbfbfbfdfdfdfafafaf5f5f5f5f5f5f4f4f4f4f4f4f6f6f6
+fafafafcfcfcfcfcfcfbfbfbf3f3f3f6f6f6f9f9f9fcfcfcfefefefefefefcfcfcfbfbfb
+eeeeeef0f0f0f0f0f0efefeff3f3f3fbfbfbfffffffffffffdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfcfcfcfafafaf9f9f9f0f0f0f5f5f5fafafafafafa
+f7f7f7f5f5f5f6f6f6f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f7f7f7f6f6f6f5f5f5f4f4f4
+f4f4f4f6f6f6f8f8f8f9f9f9f8f8f8f6f6f6f5f5f5f4f4f4f8f8f8fbfbfbf9f9f9f4f4f4
+f3f3f3f7f7f7fafafafafafaf9f9f9f8f8f8f7f7f7f6f6f6f6f6f6f6f6f6f7f7f7f8f8f8
+f4f4f4111111000000242424000000000000151515000000fcfcfcfbfbfbfbfbfbfafafa
+f9f9f9f9f9f9f9f9f9f9f9f9fcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfcfcfcfbfbfb
+f8f8f8f9f9f9fafafafafafafafafafafafafcfcfcfdfdfdf4f4f4f3f3f3f3f3f3f4f4f4
+f7f7f7f9f9f9f8f8f8f7f7f7f4f4f4f4f4f4f5f5f5f6f6f6f8f8f8f9f9f9f9f9f9f9f9f9
+fffffffffffffdfdfdf7f7f7f7f7f7fbfbfbfdfdfdfbfbfbfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefcfcfcfbfbfbfafafaf4f4f4f8f8f8fbfbfbfafafa
+f6f6f6f3f3f3f3f3f3f5f5f5f6f6f6f6f6f6f6f6f6f6f6f6f5f5f5f4f4f4f3f3f3f2f2f2
+f1f1f1f6f6f6fafafafafafaf6f6f6f4f4f4f6f6f6f8f8f8f5f5f5f9f9f9f9f9f9f5f5f5
+f4f4f4f7f7f7f9f9f9f8f8f8fefefefdfdfdfafafaf8f8f8f5f5f5f4f4f4f3f3f3f3f3f3
+e5e5e5fffffffdfdfde0e0e0ffffffffffffdbdbdbfffffffbfbfbfafafaf7f7f7f6f6f6
+f5f5f5f6f6f6f8f8f8fafafaf6f6f6fbfbfbfefefefbfbfbf6f6f6f4f4f4f9f9f9fefefe
+f2f2f2f8f8f8fcfcfcf8f8f8f1f1f1f0f0f0f6f6f6fdfdfdf4f4f4f3f3f3f2f2f2f3f3f3
+f5f5f5f6f6f6f5f5f5f4f4f4fafafaf9f9f9f8f8f8f7f7f7f8f8f8f9f9f9fbfbfbfcfcfc
+f8f8f8fafafaf9f9f9f5f5f5f6f6f6fcfcfcfffffffefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfbfbfbf8f8f8fbfbfbfcfcfcfbfbfb
+f8f8f8f6f6f6f6f6f6f6f6f6f4f4f4f5f5f5f6f6f6f7f7f7f8f8f8f8f8f8f8f8f8f8f8f8
+f4f4f4f7f7f7fafafafafafaf9f9f9f8f8f8f9f9f9fbfbfbf5f5f5fafafafbfbfbf8f8f8
+f7f7f7f9f9f9f9f9f9f7f7f7fdfdfdfcfcfcfbfbfbfafafaf9f9f9f8f8f8f7f7f7f7f7f7
+ffffffefefeff3f3f3e1e1e1e2e2e2fffffff5f5f5dbdbdbfbfbfbfafafaf9f9f9f8f8f8
+f8f8f8f8f8f8f9f9f9fafafaf4f4f4f8f8f8fafafaf7f7f7f2f2f2f1f1f1f6f6f6fcfcfc
+f2f2f2f7f7f7f9f9f9f5f5f5edededebebebf2f2f2fafafaf8f8f8f6f6f6f5f5f5f6f6f6
+f7f7f7f8f8f8f6f6f6f5f5f5fcfcfcfbfbfbfbfbfbfafafafafafafbfbfbfbfbfbfbfbfb
+f0f0f0f3f3f3f4f4f4f2f2f2f6f6f6fdfdfdfffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfdfdfd
+fbfbfbfafafafbfbfbfbfbfbf8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfafafaf9f9f9fbfbfbfdfdfdfffffffdfdfdfbfbfbf7f7f7fdfdfdfffffffcfcfc
+fafafafcfcfcfcfcfcfafafafefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfbfbfb
+f0f0f0f2f2f2fffffffffffffbfbfbf7f7f7f6f6f6fffffffbfbfbfcfcfcfdfdfdfefefe
+fefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfafafaf9f9f9fafafafcfcfcfdfdfd
+fdfdfdfdfdfdfcfcfcf9f9f9f6f6f6f6f6f6f9f9f9fcfcfcfdfdfdfcfcfcfafafafbfbfb
+fcfcfcfcfcfcfbfbfbf9f9f9f7f7f7f8f8f8fafafafbfbfbfbfbfbf9f9f9f7f7f7f6f6f6
+fcfcfcfffffffdfdfdf9f9f9f9f9f9fdfdfdfefefefcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffefefefcfcfcfcfcfc
+fffffffcfcfcfafafafbfbfbfffffffffffffffffffbfbfbfbfbfbfffffffffffffefefe
+fdfdfdfffffffffffffdfdfdfffffffffffffffffffffffffffffffdfdfdfcfcfcfbfbfb
+f6f6f6fffffff8f8f8e4e4e4eeeeeefdfdfdfcfcfcf8f8f8fcfcfcfdfdfdffffffffffff
+fffffffffffffffffffdfdfdfffffffefefefbfbfbfcfcfcfffffffffffffffffffcfcfc
+fffffffffffffdfdfdfcfcfcfdfdfdfefefefefefefdfdfdfffffffffffffefefefefefe
+fffffffffffffffffffdfdfdf9f9f9fbfbfbfdfdfdfffffffffffffdfdfdfafafaf8f8f8
+fffffffffffffffffffdfdfdfcfcfcfefefefefefefbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefdfdfdfffffffefefefdfdfdfdfdfd
+fefefefefefefefefefefefefffffffffffffffffffffffffffffffefefefdfdfdfcfcfc
+fffffffefefefdfdfdfdfdfdfefefefefefefefefefdfdfdfdfdfdfffffffffffffefefe
+fdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffefefefcfcfcfbfbfb
+f2f2f2fbfbfbf7f7f7fdfdfdfffffff4f4f4eeeeeef8f8f8fdfdfdfdfdfdfefefeffffff
+fffffffffffffffffffffffffefefefcfcfcfcfcfcfdfdfdfffffffffffffdfdfdfbfbfb
+fffffffefefefefefefdfdfdfefefefefefefdfdfdfdfdfdfffffffffffffefefefefefe
+fffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffff
+f9f9f9fdfdfdfdfdfdfafafafbfbfbfffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffefefefefefefffffffffffffdfdfdfcfcfc
+fdfdfdfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfdfdfdfefefefefefefffffffffffffefefe
+fdfdfdfffffffffffffefefefafafaf9f9f9fbfbfbfffffffefefefffffffffffffefefe
+fcfcfcfffffffffffffffffffcfcfcfdfdfdfefefefffffffffffffffffffefefefdfdfd
+f8f8f8fcfcfcfefefef9f9f9ecececfafafafffffff1f1f1fefefefdfdfdfbfbfbfbfbfb
+fbfbfbfdfdfdfffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffefefe
+fdfdfdfffffffffffffffffffffffffefefefffffffffffffefefefdfdfdfcfcfcfdfdfd
+fffffffffffffffffffefefefefefefefefefdfdfdfdfdfdfdfdfdfefefeffffffffffff
+fefefefffffffffffffdfdfdfcfcfcfffffffffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdf2f2f2fcfcfcfffffffbfbfbfefefefefefefffffffcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefeffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff9f9f9fcfcfcfffffffffffffbfbfbfdfdfdffffff
+fffffff4f4f4fffffff6f6f6f2f2f2ffffffefefeffffffffafafafdfdfdffffffffffff
+fefefefdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffefefefefefefefefefdfdfdfdfdfdf6f6f6fefefef5f5f5fdfdfd
+f8f8f8fffffff2f2f2fbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fbfbfbf9f9f9fefefefcfcfcfbfbfbfbfbfbf4f4f4f1f1f1f8f8f8fafafafdfdfdfdfdfd
+fcfcfcfbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfffffffefefef9f9f9f9f9f9f8f8f8f4f4f4f8f8f8ffffff
+f9f9f9f0f0f0f0f0f0fdfdfdfefefefffffff7f7f7fbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfbfbfbfbfbfbfbfbfbfafafafafafafafafaf9f9f9fcfcfcfffffff4f4f4fdfdfd
+f9f9f9ffffffefefeff1f1f1ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fffffffffffffafafaf4f4f4fbfbfbfffffffffffffffffffdfdfdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5f8f8f8fcfcfcfffffffffffffffffffdfdfdfdfdfd
+fffffffefefeeaeaeaf9f9f9f2f2f2f8f8f8fafafafffffffcfcfcfdfdfdffffffffffff
+fdfdfdfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffdfdfdffffff
+f6f6f6fcfcfcfcfcfcfffffffefefefefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+f5f5f5fffffffcfcfcfffffffffffff1f1f1ebebebedededfafafafcfcfcffffffffffff
+fefefefdfdfdfefefefffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffffffff8f8f8fcfcfcf3f3f3fdfdfdfafafafefefe
+f4f4f4fffffffffffffffffffafafafefefef7f7f7fcfcfcfcfcfcfefefefffffffefefe
+fdfdfdfdfdfdfffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fefefefefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcf2f2f2f5f5f5f5f5f5ffffff
+fbfbfbf5f5f5f7f7f7f0f0f0fdfdfdfefefefefefefefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+fdfdfdfffffff1f1f1fafafafcfcfcf0f0f0fdfdfdfffffffcfcfcfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5fffffff9f9f9fffffff2f2f2fffffff1f1f1efefef
+fcfcfcfafafafffffff2f2f2f2f2f2fcfcfcf7f7f7fafafaffffffffffffffffffffffff
+fefefefefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffefefefffffff9f9f9e6e6e6f2f2f2
+f9f9f9f8f8f8fffffffafafafcfcfcfdfdfdfdfdfdfefefefefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+ffffffffffffedededf7f7f7f6f6f6f7f7f7ffffffebebebf9f9f9fbfbfbfdfdfdfefefe
+fcfcfcfcfcfcfcfcfcfefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcefefeffffffff2f2f2fcfcfcecececfffffffcfcfcfcfcfc
+fbfbfbf0f0f0fefefeedededffffffefefeffefefef9f9f9f8f8f8f9f9f9f9f9f9f7f7f7
+f6f6f6f7f7f7fafafafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fefefefefefefdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcefefeff3f3f3fdfdfdffffff
+fbfbfbdfdfdffefefeefefeffcfcfcfcfcfcfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+ebebebfefefefdfdfdfffffffafafaf3f3f3dbdbdb6d6d6d656565676767696969696969
+686868676767686868696969676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+666666666666666666666666666666666666666666666666686868686868686868686868
+6868686868686868686868686262626f6f6f5c5c5c7272727d7d7dcdcdcdefefefffffff
+fcfcfcfffffffffffff6f6f6ebebeb6666668888887272726c6c6c6c6c6c6c6c6c6a6a6a
+6969696a6a6a6d6d6d707070676767676767676767676767676767676767676767676767
+686868686868686868686868686868686868686868686868666666666666666666666666
+666666666666666666666666676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+676767676767676767676767676767676767676767676767676767676767676767676767
+6a6a6a6969696969696969696868686868686868686767675e5e5e5e5e5e6262626b6b6b
+686868747474dfdfdffdfdfdfbfbfbfbfbfbfcfcfcfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefdfdfd
+f4f4f4fffffff9f9f9f5f5f5ebebebfffffff4f4f4636363fafafafcfcfcfefefefefefe
+fdfdfdfcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdf7f7f7fffffff0f0f0f6f6f6ddddddfffffffafafafcfcfc
+edededfffffff5f5f5fffffffefefe616161e8e8e8fdfdfdf9f9f9f9f9f9f9f9f9f7f7f7
+f6f6f6f7f7f7fafafafdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffefefefefefefdfdfdfdfdfdfdfdfdfdfdfdfffffff6f6f6f3f3f3fefefe
+f4f4f4d8d8d8fffffff2f2f2fafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfffffffbfbfbfdfdfdffffff
+f9f9f9fafafafefefefafafaf7f7f7fefefefdfdfdf7f7f7f8f8f8fefefefbfbfbf1f1f1
+fafafafafafafafafaf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8f8f8f8f7f7f7
+f7f7f7f8f8f8f9f9f9f9f9f9f7f7f7f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9f8f8f8f7f7f7
+f9f9f9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f9f9f9f9f9f9f9f9f9f9f9f9
+f9f9f9f8f8f8f7f7f7f6f6f6fbfbfbf7f7f7fafafaf5f5f5f7f7f7fffffffcfcfcffffff
+fafafafcfcfcf8f8f8f9f9f9f3f3f3fffffffbfbfb4e4e4efffffffafafaf3f3f3fdfdfd
+fffffff8f8f8fafafaf8f8f8f9f9f9fbfbfbfdfdfdfefefefdfdfdfdfdfdfdfdfdfefefe
+fdfdfdfefefefefefefdfdfdfdfdfdfefefefefefefdfdfdfefefefefefefdfdfdfdfdfd
+fcfcfcfbfbfbfbfbfbfbfbfbfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfffffffffffffbfbfb
+f8f8f8fffffffdfdfdfdfdfdf3f3f3f4f4f4ebebebf8f8f8dededefffffff9f9f9ffffff
+fcfcfcfffffff4f4f4fdfdfdfafafa6a6a6afafafaf5f5f5fefefef9f9f9fafafaffffff
+f2f2f2fffffffffffff6f6f6fefefefdfdfdfdfdfdfdfdfdfefefeffffffffffffffffff
+fdfdfdfefefefffffffefefefcfcfcfcfcfcfefefefffffffdfdfdfcfcfcfcfcfcfcfcfc
+fdfdfdfdfdfdfdfdfdfcfcfcfffffffefefefcfcfcfcfcfcfdfdfdfefefefefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfefefefefefefefefefefefefffffffdfdfdfcfcfcfafafa
+fafafafcfcfcfdfdfdfffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffefefefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfefefeffffffeeeeeefdfdfd
+f0f0f0e0e0e0f9f9f9fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfdfdfdf8f8f8fefefeffffff
+fcfcfcf6f6f6f5f5f5f3f3f3fdfdfdfbfbfbfbfbfbfefefefffffffefefefcfcfcfcfcfc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff8f8f8fbfbfbfbfbfbf8f8f8f6f6f6f7f7f7ffffff
+f1f1f1fffffffefefefffffffbfbfbfdfdfdffffff6a6a6af0f0f0f5f5f5f5f5f5f7f7f7
+f7f7f7f8f8f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffffffff
+fdfdfdfefefefcfcfcfefefeeeeeeefefefef7f7f7fcfcfcdcdcdcfdfdfdf4f4f4f8f8f8
+f9f9f9fefefef3f3f3fdfdfdfbfbfb6b6b6bfcfcfcf7f7f7fffffff1f1f1ebebebfdfdfd
+ecececfdfdfdfffffffdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fffffffffffffffffffffffffefefefdfdfdfcfcfcfbfbfbf8f8f8f8f8f8fafafafbfbfb
+fdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdf3f3f3f8f8f8fafafaffffff
+fbfbfbe8e8e8fefefefffffffcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcf9f9f9f5f5f5f9f9f9fdfdfd
+f1f1f1ddddddd3d3d3d5d5d5cacacac0c0c0c0c0c0cbcbcbcececec6c6c6c4c4c4cccccc
+c6c6c6c6c6c6c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c5c5c5c6c6c6c7c7c7c8c8c8
+c9c9c9c9c9c9c9c9c9c9c9c9cfcfcfc4c4c4c8c8c8d2d2d2cdcdcdc8c8c8cfcfcfd3d3d3
+cbcbcbfbfbfbfcfcfcfefefefffffff5f5f5f9f9f9747474f5f5f5fefefef6f6f6d9d9d9
+c4c4c4c3c3c3c5c5c5c2c2c2cacacacacacac9c9c9c9c9c9c9c9c9cacacacbcbcbcccccc
+c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9cacacacacacacacacacacaca
+cacacacbcbcbcbcbcbcbcbcbc8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c9c9c9c9c9c9cacacacacacacacacac9c9c9c9c9c9c8c8c8cfcfcfc4c4c4c6c6c6cfcfcf
+ccccccc7c7c7c6c6c6c1c1c1cbcbcbf8f8f8fafafafcfcfcdbdbdbfefefefcfcfcfefefe
+f7f7f7fdfdfdf3f3f3fefefefbfbfb6c6c6cfefefefafafafbfbfbd6d6d6c3c3c3d6d6d6
+c3c3c3cacacacacacacdcdcdcdcdcdcececed0d0d0d1d1d1d1d1d1d1d1d1d0d0d0cfcfcf
+c8c8c8c9c9c9cacacac9c9c9c8c8c8c7c7c7c8c8c8cacacac7c7c7c9c9c9cbcbcbcacaca
+c7c7c7c6c6c6c8c8c8cbcbcbc9c9c9c8c8c8c8c8c8c7c7c7c7c7c7c8c8c8c8c8c8c9c9c9
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c7c7c7c9c9c9cbcbcbcccccc
+cccccccbcbcbc9c9c9c7c7c7cccccccccccccccccccccccccccccccccccccccccccccccc
+cfcfcfcfcfcfcfcfcfcfcfcfcecececdcdcdcccccccbcbcbcdcdcdcdcdcdcdcdcdcdcdcd
+ccccccccccccccccccccccccc9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c7c7c7c7c7c7c7c7c7c7c7c7
+c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7
+cbcbcbcbcbcbcccccccccccccdcdcdcecececfcfcfcfcfcfd2d2d2d0d0d0fefefef6f6f6
+fdfdfde7e7e7f8f8f8fffffffcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcf9f9f9f6f6f6f8f8f8fbfbfb
+eeeeeecfcfcfc2c2c2cfcfcfd3d3d3ccccccccccccd2d2d2d4d4d4d0d0d0cfcfcfd3d3d3
+cecececececececececececececececfcfcfcfcfcfcfcfcfcdcdcdcecececececececece
+cdcdcdcdcdcdcccccccccccccdcdcdcdcdcdcccccccccccccccccccccccccdcdcdcdcdcd
+cccccccdcdcdcdcdcdcdcdcdcdcdcdcecececececececececccccccccccccdcdcdcecece
+cececececececdcdcdcdcdcdccccccc8c8c8c9c9c9d2d2d2cecececfcfcfd3d3d3bababa
+9d9d9df5f5f5fafafaf8f8f8fffffff3f3f3f0f0f0666666f7f7f7fffffffafafacecece
+bbbbbbcdcdcdd2d2d2cfcfcfd3d3d3d1d1d1d0d0d0d0d0d0d1d1d1d2d2d2d2d2d2d2d2d2
+d2d2d2d0d0d0d0d0d0d2d2d2d2d2d2d0d0d0d0d0d0d2d2d2d1d1d1d1d1d1d1d1d1d0d0d0
+d0d0d0d0d0d0d0d0d0d0d0d0cececececececececececececfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfd0d0d0d0d0d0d0d0d0cfcfcfcecececdcdcdd3d3d3cfcfcfcfcfcfd7d7d7
+d3d3d3d1d1d1cececeafafafa6a6a6f1f1f1f9f9f9f9f9f9d9d9d9fefefeffffffffffff
+f8f8f8fefefef5f5f5fffffffbfbfb6b6b6bfdfdfdfafafaffffffd1d1d1bcbcbcdbdbdb
+cdcdcdccccccc7c7c7cdcdcdcccccccdcdcdd0d0d0d1d1d1d1d1d1d0d0d0cecececccccc
+cdcdcdcfcfcfd0d0d0d0d0d0cfcfcfcecececececed0d0d0cfcfcfcecececdcdcdcecece
+cfcfcfcfcfcfcecececececececececfcfcfcfcfcfcecececdcdcdcdcdcdcececed0d0d0
+cfcfcfcfcfcfcfcfcfcececececececececececececececececececfcfcfd0d0d0d1d1d1
+d1d1d1d0d0d0cfcfcfcecececdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd
+cccccccccccccdcdcdcecececfcfcfcfcfcfcecececececed2d2d2d1d1d1d0d0d0cfcfcf
+cdcdcdcccccccbcbcbcacacacececececececfcfcfcfcfcfcfcfcfcfcfcfd0d0d0d0d0d0
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcececececececececececece
+cececececececececececececececececececececececececececececececececececece
+cccccccccccccccccccdcdcdcdcdcdcececececececececeaeaeaea6a6a6fefefeebebeb
+fafafae3e3e3f1f1f1fcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfcfcfcfbfbfbfbfbfbffffff
+fbfbfbd9d9d9d1d1d1edededfefefefffffffffffffafafafbfbfbfffffffffffff9f9f9
+fefefefefefefffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff
+fffffffefefefdfdfdfcfcfcfefefefdfdfdfcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfefefe
+fdfdfdfdfdfdfdfdfdfefefefefefeffffffffffffffffffffffffffffffffffffffffff
+fefefefdfdfdfcfcfcfbfbfbfafafafffffffafafafafafaf4f4f4fdfdfdf6f6f6b2b2b2
+8c8c8cfdfdfdfefefef3f3f3fffffff9f9f9f7f7f75f5f5ff8f8f8fffffffefefed1d1d1
+cececef9f9f9fffffffffffffffffffcfcfcfafafafbfbfbfdfdfdfefefefdfdfdfbfbfb
+fffffffbfbfbfbfbfbfffffffffffffbfbfbfbfbfbfffffffffffffffffffefefefefefe
+fcfcfcfcfcfcfbfbfbfafafafbfbfbfcfcfcfcfcfcfcfcfcfdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfcfbfbfbfafafaf3f3f3fcfcfcfafafafcfcfc
+f5f5f5fcfcfcf6f6f6b5b5b59a9a9af9f9f9fffffffbfbfbd9d9d9f8f8f8fefefefafafa
+fafafafffffff7f7f7fffffffafafa696969fcfcfcf9f9f9ffffffd0d0d0c6c6c6fafafa
+fbfbfbfcfcfcf7f7f7fffffff7f7f7f8f8f8fafafafcfcfcfcfcfcfafafaf8f8f8f6f6f6
+fafafafcfcfcfefefefefefefdfdfdfcfcfcfcfcfcfdfdfdfffffffafafaf6f6f6f8f8f8
+fefefefffffffcfcfcf7f7f7fcfcfcfdfdfdfefefefdfdfdfbfbfbfbfbfbfdfdfdffffff
+fefefefefefefefefefdfdfdfcfcfcfcfcfcfcfcfcfbfbfbfdfdfdfcfcfcfbfbfbfafafa
+fafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+f9f9f9f9f9f9fafafafbfbfbfbfbfbfbfbfbfafafafafafaf6f6f6f7f7f7f8f8f8f9f9f9
+fbfbfbfcfcfcfdfdfdfefefefbfbfbfbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfd
+fefefefefefefefefefefefefefefefefefefefefefefefefdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fcfcfcfcfcfcfbfbfbfbfbfbfafafafafafafafafaf9f9f99e9e9e949494ffffffeeeeee
+ffffffe6e6e6f6f6f6fefefefefefefefefefdfdfdfdfdfdfefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfffffffefefefafafaffffff
+fbfbfbd4d4d4cfcfcff9f9f9fafafafffffffefefef4f4f4f5f5f5fefefefdfdfdf3f3f3
+fafafafafafafafafafbfbfbfcfcfcfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfefefeffffff
+fefefefcfcfcfafafaf9f9f9fdfdfdfcfcfcfafafaf9f9f9f9f9f9fafafafcfcfcfdfdfd
+fbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefefefefefffffffffffffffffffefefe
+fdfdfdfbfbfbf9f9f9f8f8f8f7f7f7fffffffbfbfbfafafaf5f5f5fffffffafafa999999
+929292fffffffdfdfdf0f0f0fbfbfbf9f9f9ffffff636363fffffffffffffdfdfdc9c9c9
+c8c8c8f8f8f8fafafaf8f8f8fafafaf8f8f8f6f6f6f8f8f8fafafafbfbfbf7f7f7f4f4f4
+fcfcfcf6f6f6f6f6f6fcfcfcfcfcfcf6f6f6f6f6f6fcfcfcfefefefefefefdfdfdfcfcfc
+fcfcfcfbfbfbfafafafafafafafafafbfbfbfbfbfbfcfcfcfdfdfdfdfdfdfefefefefefe
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfbfbfafafaf9f9f9efefeffdfdfdf8f8f8f8f8f8
+f0f0f0fbfbfbf4f4f49b9b9b969696fffffffffffffefefedfdfdff8f8f8fffffffbfbfb
+fafafafffffff9f9f9fffffffafafa686868fbfbfbf9f9f9f8f8f8c8c8c8c3c3c3fdfdfd
+fffffffffffff7f7f7fdfdfdfcfcfcfdfdfdfefefefefefefefefefdfdfdfbfbfbfafafa
+f9f9f9fbfbfbfefefefefefefdfdfdfbfbfbfbfbfbfbfbfbfffffffafafaf6f6f6f8f8f8
+fdfdfdfffffffbfbfbf6f6f6fcfcfcfefefefffffffefefefbfbfbfafafafdfdfdffffff
+fffffffffffffefefefefefefdfdfdfcfcfcfcfcfcfbfbfbfdfdfdfbfbfbf9f9f9f8f8f8
+f8f8f8f9f9f9fbfbfbfdfdfdfefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffffffffffffffffffffffefefefcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfcfcfcfcfcfcfdfdfdfafafafbfbfbfbfbfbfcfcfcfcfcfcfdfdfdfefefefefefe
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+ffffffffffffffffffffffffffffffffffffffffffffffff9b9b9b939393fffffff6f6f6
+ffffffe8e8e8fdfdfdfffffffffffffffffffefefefefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfffffffdfdfdf7f7f7fefefe
+f6f6f6c8c8c8c1c1c1f5f5f5fbfbfbfbfbfbf9f9f9f6f6f6f8f8f8fbfbfbfbfbfbf8f8f8
+f7f7f7f8f8f8f8f8f8f9f9f9fafafafbfbfbfcfcfcfcfcfcfbfbfbfcfcfcfdfdfdfdfdfd
+fdfdfdfafafaf8f8f8f6f6f6fbfbfbfafafaf8f8f8f7f7f7f7f7f7f8f8f8fafafafbfbfb
+f9f9f9f9f9f9fafafafafafafbfbfbfcfcfcfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfcfcfc
+fbfbfbfafafaf8f8f8f7f7f7ecececf8f8f8f0f0f0f8f8f8f2f2f2fefefef9f9f9949494
+989898fefefef8f8f8f8f8f8fbfbfbeeeeeeffffff686868f9f9f9f9f9f9fefefecccccc
+cbcbcbfbfbfbf7f7f7f9f9f9fafafaf8f8f8f7f7f7fafafafdfdfdfdfdfdf7f7f7f2f2f2
+fdfdfdf6f6f6f6f6f6fdfdfdfdfdfdf6f6f6f6f6f6fdfdfdfbfbfbfbfbfbfbfbfbfcfcfc
+fcfcfcfdfdfdfdfdfdfefefef9f9f9f9f9f9fafafafbfbfbfcfcfcfdfdfdfdfdfdfefefe
+fffffffffffffffffffffffffefefefdfdfdfbfbfbfafafafafafafffffff5f5f5fefefe
+f5f5f5fdfdfdf9f9f9999999929292fffffffbfbfbfefefee5e5e5fafafaffffffffffff
+f8f8f8fffffff9f9f9fffffffafafa696969fdfdfdfcfcfcffffffd0d0d0c7c7c7fbfbfb
+fafafaf6f6f6eaeaeaedededf6f6f6f6f6f6f6f6f6f5f5f5f5f5f5f4f4f4f4f4f4f4f4f4
+f7f7f7fafafafdfdfdfdfdfdfcfcfcfafafaf9f9f9fafafafbfbfbfcfcfcfcfcfcfcfcfc
+fbfbfbfbfbfbfcfcfcfcfcfcfcfcfcfffffffffffffffffffbfbfbfafafafdfdfdffffff
+fffffffffffffffffffefefefdfdfdfcfcfcfcfcfcfbfbfbfbfbfbfafafafafafafafafa
+fafafafafafafafafafbfbfbf4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4
+fcfcfcfcfcfcfbfbfbfafafaf9f9f9f7f7f7f5f5f5f4f4f4f8f8f8f7f7f7f6f6f6f4f4f4
+f2f2f2f1f1f1f0f0f0efefeffbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfbfbfbfbfbfbfafafafafafafafafafafafafafafa9b9b9b979797fafafafafafa
+fafafae4e4e4fffffffcfcfcfffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000010101020202000000010101f6f6f6fdfdfdfcfcfcfdfdfdfdfdfdf8f8f8ffffff
+fdfdfdcdcdcdc7c7c7fffffffefefef4f4f4f2f2f2fafafafdfdfdf7f7f7f8f8f8ffffff
+fbfbfbfcfcfcfcfcfcfdfdfdfefefefffffffffffffffffffdfdfdfefefeffffffffffff
+fefefefcfcfcf9f9f9f8f8f8fdfdfdfbfbfbf9f9f9f8f8f8f8f8f8f9f9f9fbfbfbfdfdfd
+fafafafafafafbfbfbfcfcfcfdfdfdfefefefffffffffffffcfcfcfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfcfcfcfbfbfbfcfcfcfffffff9f9f9fffffffbfbfbfefefefdfdfd9d9d9d
+999999f6f6f6f6f6f6ffffffffffffe8e8e8ffffff6b6b6bf8f8f8f8f8f8ffffffd3d3d3
+cececef9f9f9f1f1f1f6f6f6fbfbfbf9f9f9f9f9f9fdfdfdfffffffffffff8f8f8f2f2f2
+fdfdfdf6f6f6f6f6f6fdfdfdfdfdfdf6f6f6f6f6f6fdfdfdf5f5f5f6f6f6f7f7f7f9f9f9
+fbfbfbfdfdfdfefefefffffff6f6f6f6f6f6f7f7f7f8f8f8f9f9f9fafafafafafafbfbfb
+fefefefefefefefefefefefefdfdfdfbfbfbfafafaf9f9f9fffffffbfbfbedededffffff
+f6f6f6f8f8f8f8f8f89c9c9c969696fffffff8f8f8fcfcfce5e5e5f6f6f6fdfdfdfafafa
+f6f6f6fffffff8f8f8fffffffafafa6a6a6afffffffefefefcfcfccdcdcdc5c5c5f8f8f8
+f9f9f9fcfcfcf5f5f5fafafafcfcfcfbfbfbfafafaf9f9f9f9f9f9f9f9f9f9f9f9f9f9f9
+f4f4f4f6f6f6fafafafafafaf9f9f9f7f7f7f6f6f6f6f6f6f6f6f6fcfcfcfffffffefefe
+f7f7f7f5f5f5f9f9f9fffffff9f9f9fcfcfcfffffffdfdfdf8f8f8f7f7f7fbfbfbffffff
+fefefefefefefdfdfdfcfcfcfbfbfbfafafaf9f9f9f9f9f9f6f6f6f7f7f7f9f9f9fafafa
+fafafaf9f9f9f7f7f7f6f6f6fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfefefefefefefefefefdfdfdfcfcfcfcfcfcf7f7f7f7f7f7f8f8f8f9f9f9
+f9f9f9fafafafbfbfbfbfbfbfafafafafafafbfbfbfcfcfcfdfdfdfefefeffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfefefefefefeffffffffffffffffffffffffffffff9e9e9e9e9e9ef4f4f4fefefe
+f6f6f6e1e1e1fffffffafafafffffffffffffffffffefefefefefefefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfbfbfbfafafafffffffcfcfc
+fbfbfbccccccd3d3d3fdfdfdffffffe8e8e8fffffffafafae8e8e8fbfbfbffffffe4e4e4
+ebebebf8f8f8dededefffffffdfdfdeaeaeaffffffeeeeeefefefef2f2f2fffffffdfdfd
+f9f9f9f6f6f6fbfbfbe6e6e6d0d0d0fffffffafafae6e6e6fdfdfdf9f9f9f4f4f4f8f8f8
+f6f6f6fafafaf4f4f4f1f1f1f7f7f7fefefefffffff9f9f9fefefef9f9f9eeeeeeffffff
+f5f5f5f7f7f70c0c0c000000f0f0f0f4f4f4fffffffbfbfbeaeaeafdfdfdfcfcfc979797
+989898fbfbfbfafafafefefef8f8f8fcfcfcfbfbfb6d6d6dfafafafdfdfdffffffd0d0d0
+ccccccfbfbfbfcfcfcfefefee1e1e1ffffffffffffdededeffffffdbdbdbf0f0f0fcfcfc
+f8f8f8f4f4f4fdfdfdf6f6f6f6f6f6f5f5f5fafafaffffffefefeffefefe0303031b1b1b
+efefeff0f0f0e1e1e1fafafaf5f5f5f8f8f8fdfdfd0b0b0bfffffff7f7f7fdfdfdfefefe
+f2f2f2fffffff3f3f3ffffffffffffeeeeeefffffff0f0f0ecececffffff000000000000
+f4f4f4f7f7f7fcfcfc8c8c8c959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdf8f8f8cfcfcfcececefafafa
+f8f8f8f0f0f0fdfdfdf3f3f3f7f7f7eaeaeaffffffedededf1f1f1ffffffcacacaffffff
+fafafae2e2e2f9f9f9fbfbfbf2f2f2f2f2f2f3f3f3fefefe0303030d0d0dfffffff2f2f2
+f8f8f8fbfbfbfdfdfdfafafaf8f8f8000000e6e6e6fffffff2f2f2fffffff3f3f3ffffff
+ffffffffffffecececffffffe8e8e8fcfcfcfafafaffffff030303323232ececece5e5e5
+ebebebffffffffffffe3e3e3f2f2f2fefefefefefeecececfafafaf5f5f5e7e7e7fdfdfd
+e4e4e4ffffffffffffe8e8e8fffffffbfbfbeeeeeefbfbfbfefefef8f8f8e3e3e3ffffff
+ddddddd4d4d4e9e9e9fffffff2f2f20c0c0ce0e0e0f3f3f3fcfcfcf9f9f9fffffff1f1f1
+fefefeebebebfafafafcfcfcffffffeeeeeefffffffdfdfdfafafafbfbfbf3f3f3ffffff
+f4f4f4efefeff7f7f7fefefefefefefdfdfdf4f4f4f0f0f0fffffff4f4f4f5f5f5fdfdfd
+fdfdfdf5f5f5f6f6f6fbfbfbf3f3f3fefefefdfdfdf3f3f39e9e9e9b9b9bfffffffafafa
+ffffffe6e6e6fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffcfcfcfffffffbfbfb
+fafafac8c8c8ccccccf2f2f2f2f2f2fbfbfbe5e5e5fefefefafafafbfbfbf4f4f4ffffff
+fffffffafafaffffffedededf2f2f2fdfdfdfffffff8f8f8f4f4f4fffffffbfbfbf1f1f1
+f8f8f8eeeeeef5f5f5ffffffffffffe5e5e5efefefffffffe3e3e3eeeeeefefefefefefe
+ffffffddddddf6f6f6eeeeeeeeeeeee7e7e7ffffffedededfffffff7f7f7fafafaffffff
+f1f1f1fcfcfcf5f5f51b1b1becececffffffe5e5e5f2f2f2fdfdfdebebebffffff8c8c8c
+9a9a9afdfdfdfcfcfcfffffffafafafefefefcfcfc6f6f6ffbfbfbfefefeffffffcfcfcf
+cacacaf8f8f8f9f9f9fbfbfbfffffff7f7f7f6f6f6f7f7f7ebebebffffffffffffffffff
+efefeff1f1f1f9f9f9f3f3f3fffffff6f6f6f9f9f9ecececf4f4f4ffffffe5e5e5020202
+fffffffffffffffffff4f4f4f8f8f8ffffffe8e8e80a0a0ae4e4e4fefefeffffffffffff
+ffffffebebebfffffffdfdfdf2f2f2f0f0f0f7f7f7ffffffffffffd9d9d9ffffff000000
+fffffff9f9f9e5e5e5a4a4a4959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdfefefebdbdbdc6c6c6ffffff
+ffffffe8e8e8fffffff5f5f5e5e5e5e4e4e4f2f2f2fafafae7e7e7f2f2f2fdfdfde3e3e3
+eaeaeafbfbfbe3e3e3f6f6f6fbfbfbedededfffffff1f1f1ffffff000000f0f0f0f6f6f6
+e6e6e6fefefee3e3e3ffffffdadada1d1d1dfbfbfbe2e2e2f7f7f7eaeaeaffffffffffff
+eaeaeafffffff3f3f3f3f3f3fefefef7f7f7fffffff9f9f9f9f9f9000000e7e7e7ffffff
+fafafadcdcdccfcfcffffffffffffffffffff6f6f6eeeeeefffffff1f1f1ffffffe6e6e6
+ffffffd9d9d9f6f6f6fffffff1f1f1fbfbfbf7f7f7e8e8e8fffffffdfdfdf9f9f9dbdbdb
+fdfdfdefefeffffffff4f4f4fcfcfc151515fffffff1f1f1ffffffffffffd7d7d7fcfcfc
+dfdfdfffffffe3e3e3fafafafcfcfcfbfbfbfffffffffffffefefefbfbfbffffffffffff
+e7e7e7f8f8f8f8f8f8fbfbfbf5f5f5e7e7e7fffffff8f8f8f1f1f1fffffffffffff0f0f0
+fbfbfbffffffeeeeeefffffffcfcfcffffffdcdcdcf7f7f79e9e9e9b9b9bfffffffafafa
+ffffffe6e6e6fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffbfbfbfffffffcfcfc
+fefefececececfcfcff2f2f2ddddddf9f9f9ffffffe8e8e8fefefe161616050505000000
+1818180e0e0ee0e0e0fffffffafafaeeeeeef0f0f0fffffff3f3f3fffffff6f6f6ededed
+ffffffe8e8e8fffffff4f4f4000000000000060606080808000000070707fefefef0f0f0
+fcfcfcecececfefefeffffffe7e7e7fbfbfbdededefffffff5f5f5fffffffafafaf8f8f8
+fafafaf7f7f7f4f4f4000000ffffffedededf9f9f9f5f5f5eeeeeeffffffffffff878787
+9c9c9cfffffffefefefffffffcfcfcfffffffefefe717171fbfbfbfefefeffffffcecece
+c9c9c9f6f6f6f6f6f6f8f8f80c0c0c000000000000f3f3f3fcfcfcf5f5f50000001a1a1a
+000000ffffffe2e2e2fffffff2f2f2f1f1f1fffffff0f0f0f2f2f2fdfdfdf8f8f8050505
+fbfbfbe2e2e2edededfdfdfdeeeeeeffffffe8e8e81a1a1af9f9f9f5f5f5f3f3f3f1f1f1
+f9f9f9edededfefefeecececfafafaf7f7f7ffffffdbdbdbddddddfdfdfdf6f6f6000000
+edededf5f5f5e4e4e4909090959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdeeeeeed5d5d5ccccccfdfdfd
+e6e6e6ffffff000000191919020202ffffffe8e8e8f8f8f8151515060606070707ffffff
+f8f8f8fffffffcfcfcffffffedededffffffd1d1d1fdfdfdebebeb232323ffffffd8d8d8
+fffffffffffff9f9f9f9f9f9ffffff0a0a0af3f3f3ffffffffffffffffffe8e8e8f7f7f7
+f7f7f7edededfefefefefefef5f5f5f8f8f8d5d5d5ffffffeaeaea272727eaeaead0d0d0
+fffffffffffffffffff0f0f0dcdcdcffffff252525000000000000e4e4e4f7f7f7fdfdfd
+ebebebfffffff5f5f5f3f3f3fcfcfcf0f0f02b2b2b0c0c0c0a0a0a0000000c0c0c040404
+f6f6f6ffffffcececedbdbdbededed000000fefefef4f4f4fbfbfbf8f8f8fdfdfdf5f5f5
+ffffffd4d4d4ffffffffffffeaeaeafffffff7f7f7f1f1f1fbfbfbf5f5f5fcfcfce1e1e1
+fffffffffffffffffff9f9f9fcfcfcecececfffffffcfcfcfafafae3e3e3f7f7f7fefefe
+fafafae2e2e2fffffff6f6f6edededf7f7f7fdfdfdffffff9d9d9d9a9a9afffffff9f9f9
+ffffffe6e6e6fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffbfbfbfffffffcfcfc
+ffffffcfcfcfcdcdcdeeeeeef6f6f6f5f5f5fafafa000000060606dadadaffffffffffff
+ffffff050505fefefee0e0e0ecececfdfdfdfffffffbfbfbedededeaeaeaffffffededed
+eeeeeeffffffeaeaeaecececffffff080808fffffff4f4f4f1f1f1ffffff070707f2f2f2
+ddddddffffffd0d0d0e6e6e6ffffffedededfcfcfce4e4e4fefefeffffffe6e6e6f2f2f2
+fffffffffffff8f8f8111111e6e6e6f4f4f4f7f7f7d9d9d9fcfcfcf0f0f0f8f8f8959595
+9c9c9cfffffffefefefffffffcfcfcffffffffffff717171fbfbfbfdfdfdffffffcecece
+c9c9c9f6f6f6f7f7f7f9f9f9f8f8f8292929f3f3f3f2f2f2f8f8f8f9f9f9f9f9f9020202
+fefefef9f9f9ebebebffffffe1e1e1f3f3f3fafafafefefef8f8f8fbfbfbe8e8e8000000
+fffffff9f9f9f4f4f4fffffff9f9f9e3e3e3f7f7f7ffffffefefeffefefefffffffcfcfc
+f9f9f9fdfdfdf5f5f5fffffffffffffbfbfbf5f5f5fafafafafafae9e9e9eeeeee262626
+e8e8e8f1f1f1ffffff9b9b9b959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdffffffb8b8b8c3c3c3fbfbfb
+ffffffdededeffffff000000f4f4f4f3f3f3ffffffeaeaeafafafa0b0b0bf8f8f8dfdfdf
+ecececf9f9f9f5f5f5dadadaf0f0f0efefefffffffffffffefefef030303e1e1e1f9f9f9
+f8f8f8dcdcdcfffffff5f5f5e0e0e0e3e3e3fffffff9f9f9f1f1f1f4f4f4f6f6f6ffffff
+fefefefffffff9f9f9fafafafffffffafafaffffffe6e6e6ffffff000000ffffffebebeb
+e8e8e8f8f8f8f1f1f1fafafaf3f3f3020202edededffffffffffff141414e7e7e7fbfbfb
+f8f8f8f4f4f4fbfbfbf8f8f8ffffffe6e6e6ffffff000000fdfdfdf6f6f6f7f7f7fdfdfd
+131313060606fffffffffffffdfdfdf8f8f8f6f6f6e2e2e2e2e2e2fcfcfcf6f6f6fcfcfc
+fdfdfdf5f5f5f4f4f4fafafafffffff7f7f7ffffffedededf3f3f3fffffff1f1f1ffffff
+efefeffbfbfbe6e6e6f3f3f3ffffffffffffeeeeeefafafaf9f9f9fffffff5f5f5f1f1f1
+fffffffafafafdfdfdfffffff7f7f7efefefedededfafafa9c9c9c999999fffffff9f9f9
+ffffffe6e6e6fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffdfdfdfffffffbfbfb
+fcfcfccacacac7c7c7e7e7e7fffffff5f5f5ffffff141414fffffffefefee6e6e6e3e3e3
+fafafa000000f3f3f3fffffff4f4f4f6f6f6f9f9f9fefefefffffff0f0f0fbfbfbf7f7f7
+ffffffe2e2e2fbfbfbfafafae6e6e6000000e9e9e9fffffff8f8f8eaeaea0d0d0d030303
+fffffff9f9f9f5f5f5ffffffe0e0e0eaeaeaffffffffffffeaeaeaeeeeeeffffffe8e8e8
+f5f5f5f4f4f4ececec171717f4f4f4fffffffffffffffffff0f0f0fcfcfcf9f9f99a9a9a
+9b9b9bfefefefcfcfcfffffffafafafffffffdfdfd707070f9f9f9fcfcfcffffffcecece
+cbcbcbf9f9f9fafafafcfcfcf5f5f5000000fbfbfbfafafafffffff0f0f0fefefe010101
+fefefee9e9e9e3e3e3fbfbfbfcfcfcf7f7f7fcfcfcfefefefbfbfbecececffffff252525
+dadadaffffffddddddfffffffffffffffffff5f5f5f7f7f7fdfdfde3e3e3f0f0f0ffffff
+f8f8f8f7f7f7fcfcfcf5f5f5ecececfffffff2f2f2fffffffdfdfdfffffff5f5f5040404
+f5f5f5f4f4f4eaeaea838383959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdefefefc6c6c6d5d5d5ffffff
+ecececffffffffffff0a0a0affffffeeeeeee8e8e8f8f8f8f0f0f01b1b1bdcdcdcffffff
+f5f5f5dfdfdffdfdfdfffffff2f2f2ffffffe9e9e9ecececfafafa0d0d0dffffffd9d9d9
+fffffff0f0f0fcfcfceaeaeafffffff2f2f2f5f5f5f2f2f2fffffff1f1f1fffffff3f3f3
+f5f5f5fefefefffffff5f5f5f8f8f8f0f0f0efefeffffffffbfbfb181818fffffff5f5f5
+f0f0f0fefefeedededfafafaf7f7f70a0a0afffffff3f3f3fdfdfd030303f5f5f5ececec
+f1f1f1f8f8f8f2f2f2ecececdbdbdbffffffededed1a1a1aefefeff0f0f0fcfcfcffffff
+f4f4f4000000171717dededee5e5e5ffffffdcdcdcffffffffffffffffffeaeaeaffffff
+fffffff5f5f5f5f5f5ffffffffffffedededf6f6f6fffffffffffff0f0f0ffffffdfdfdf
+f2f2f2fffffff9f9f9fffffffbfbfbd5d5d5fffffffafafaf4f4f4fbfbfbe8e8e8ffffff
+f1f1f1fffffffafafadfdfdfffffffffffffeeeeeeffffff9b9b9b989898fffffff8f8f8
+ffffffe6e6e6fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fdfdfdfcfcfcfcfcfcfefefe000000010101000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefafafafffffffdfdfd
+ffffffd1d1d1d3d3d3f6f6f6f5f5f5f3f3f3010101e7e7e7ebebebfbfbfbfafafafcfcfc
+fbfbfbf5f5f5ffffffe7e7e7fbfbfbffffff010101131313000000e5e5e5f3f3f3ffffff
+eeeeeedededefffffffbfbfbfbfbfb202020f4f4f4fdfdfdffffff0e0e0e000000fefefe
+efefeffafafa020202050505040404ffffffe8e8e8f4f4f4f7f7f7ffffff000000363636
+edededfdfdfdffffff0b0b0bf3f3f3ededed000000000000fffffff8f8f8eeeeeeadadad
+999999fcfcfcfbfbfbfffffff9f9f9fdfdfdfcfcfc6f6f6ff8f8f8fcfcfcffffffcecece
+cbcbcbf9f9f9fbfbfbfdfdfdffffff0b0b0bececece4e4e4f5f5f5f8f8f8fdfdfd000000
+f3f3f3ffffff0000001111112525251c1c1c000000000000fffffff7f7f7f4f4f4000000
+000000030303101010000000fdfdfdfefefe0000000e0e0effffffececec191919000000
+0202020f0f0f0c0c0c000000ffffffe2e2e2ffffffdadada161616000000040404050505
+fffffff6f6f6ffffffa1a1a1959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdffffffcdcdcdcdcdcdf2f2f2
+e6e6e6f9f9f9e2e2e2040404fffffffbfbfbe8e8e8fdfdfdfefefe000000ffffffe6e6e6
+1616161818180000000b0b0b000000151515ffffffedededf2f2f20f0f0f000000000000
+0606060f0f0ffafafaffffff050505020202e3e3e3ffffff060606000000050505161616
+0a0a0a000000f4f4f4ffffffffffffffffff000000060606000000000000fafafafcfcfc
+fafafafcfcfcfdfdfdfcfcfcffffff040404ebebebf1f1f1ffffff060606fffffff7f7f7
+fefefef2f2f2edededffffffffffffe7e7e7eeeeee000000ffffffd9d9d9edededd5d5d5
+ffffffffffff000000ffffff020202060606ebebebf1f1f1f0f0f00b0b0b121212000000
+000000fcfcfc1414140000000d0d0d1c1c1c010101040404ffffffdededeeeeeeef7f7f7
+060606000000171717c9c9c9f8f8f8ffffffe0e0e00000002c2c2c000000000000fafafa
+fbfbfbffffff0000000e0e0e1a1a1adfdfdffbfbfbfafafa9a9a9a979797fffffff8f8f8
+ffffffe6e6e6fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafbfbfbfdfdfd000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfafafaf9f9f9fffffffefefe
+ffffffd2d2d2d8d8d8ffffffffffffe7e7e7000000fffffff9f9f9f3f3f3f5f5f5ffffff
+fafafae9e9e9f0f0f0fefefee3e3e3090909fffffffcfcfcfdfdfd222222fafafadcdcdc
+ebebebffffffe9e9e9f8f8f8ededed0000000707070404040c0c0c000000262626e7e7e7
+fdfdfd141414000000f3f3f3f0f0f0000000fffffff3f3f3ececec010101fafafafafafa
+000000fcfcfcf4f4f4000000eeeeeeffffff141414cdcdcdfdfdfdf7f7f7f7f7f79f9f9f
+999999fcfcfcfbfbfbfffffff9f9f9fdfdfdfcfcfc6f6f6ff9f9f9fcfcfcfefefecdcdcd
+c9c9c9f7f7f7f8f8f8fafafad9d9d90b0b0bf8f8f8ffffffebebebefefeff6f6f6090909
+ffffffe9e9e9ffffff000000fefefeddddddffffff212121f0f0f0dededef6f6f6161616
+fffffffffffff7f7f7060606000000fffffff9f9f9131313efefeffafafad4d4d4171717
+ffffffecececf8f8f8151515e9e9e9fdfdfdf1f1f1141414fffffffffffff9f9f9000000
+f3f3f3fcfcfcf8f8f88f8f8f959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdfcfcfcc3c3c3c2c2c2ffffff
+fffffffffffffbfbfb0d0d0dfefefee5e5e5e6e6e6ffffffe2e2e2252525fdfdfdececec
+dddddd111111ebebebf4f4f4ffffff000000fcfcfcfffffffcfcfc0d0d0dffffffdcdcdc
+ffffff000000000000fcfcfcf3f3f31d1d1df1f1f1f8f8f8ffffff0e0e0ee5e5e5ededed
+fcfcfc262626fefefee2e2e2f5f5f5000000f2f2f2ffffffffffff000000f4f4f4ffffff
+e7e7e7ffffffe7e7e7fffffffcfcfc0000000d0d0dffffff000000f9f9f9ffffffe7e7e7
+eaeaeafbfbfbf4f4f4f8f8f8dbdbdbfffffff5f5f52b2b2bdadadaf5f5f5fffffff5f5f5
+f7f7f7f7f7f7000000ffffffffffff000000fffffffbfbfb000000fbfbfbecececffffff
+000000f3f3f3ffffff000000e4e4e4eeeeeedddddd3c3c3c000000ffffffffffff000000
+fffffff3f3f3f4f4f4232323eeeeeeeeeeee232323fbfbfbd5d5d5f7f7f72c2c2ce2e2e2
+fefefe000000ffffffd2d2d2fcfcfc121212fffffff7f7f7999999979797fefefef8f8f8
+ffffffe5e5e5fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9f8f8f8f9f9f9fcfcfc000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffdfdfdfffffff9f9f9
+f5f5f5c3c3c3c8c8c8f0f0f0f6f6f6ffffff212121d8d8d8f3f3f3ffffffffffffbfbfbf
+1414141a1a1a010101dfdfdf2c2c2ce9e9e9f6f6f6f9f9f9fafafaf0f0f0050505f8f8f8
+f3f3f3dadadaffffffd4d4d4f9f9f9171717e4e4e4fffffffefefeffffff0606060a0a0a
+f4f4f4fffffff0f0f0fbfbfb050505171717efefeffefefe020202f1f1f1f6f6f6fafafa
+fafafafefefefcfcfc010101ffffff000000e7e7e7fffffff0f0f0f5f5f5ffffff989898
+9a9a9afdfdfdfcfcfcfffffffafafafefefefdfdfd6f6f6ffafafafcfcfcfefefecccccc
+c7c7c7f4f4f4f5f5f5f7f7f7ffffff1c1c1cdcdcdcf0f0f0e9e9e9f6f6f6f5f5f50e0e0e
+fbfbfbffffffefefef1f1f1fe0e0e0fefefee4e4e4070707ffffffe6e6e6ffffff010101
+eaeaeaf2f2f2fefefef4f4f4050505ecececfefefe000000fdfdfdf6f6f6ffffff000000
+fffffff9f9f9f3f3f3171717f4f4f4ffffff000000fcfcfcfafafaf0f0f0f2f2f2080808
+eeeeeeefefeff9f9f99d9d9d959595fffffffbfbfbfbfbfbe6e6e6fdfdfdfefefefdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdf5f5f5cfcfcfcbcbcbf8f8f8
+eeeeeef2f2f2efefef101010f6f6f6fffffffafafaf3f3f3fafafa000000ecececfdfdfd
+ffffff040404fefefef7f7f7f0f0f0090909f5f5f5e4e4e4fcfcfc000000eaeaeafdfdfd
+dadadaf7f7f71b1b1bf7f7f7fcfcfc000000ffffffe4e4e4f6f6f6000000fffffff1f1f1
+ffffff000000f7f7f7ffffff020202ffffffffffffd0d0d0dadada121212f5f5f5fdfdfd
+fefefefffffff3f3f3fbfbfbffffff0b0b0b1d1d1d000000fffffff8f8f8000000141414
+171717eaeaeaffffffdcdcdcffffffd6d6d6fefefe000000f5f5f5fdfdfdfffffffcfcfc
+f8f8f8f4f4f4202020fbfbfbeaeaea080808f8f8f8eeeeee010101151515f0f0f0f0f0f0
+f9f9f9fefefef8f8f8000000f3f3f3fffffff4f4f4f3f3f3070707f5f5f5000000f5f5f5
+e8e8e8fcfcfcfefefee8e8e8141414e6e6e6090909000000fffffff3f3f3f3f3f3ffffff
+141414f5f5f5f9f9f9f4f4f4f3f3f3000000fffffff3f3f3999999969696fefefef7f7f7
+ffffffe5e5e5fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7f7f7f7f7f7f8f8f8fbfbfb000000000000010101000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdf9f9f9fcfcfcfffffffdfdfd
+ffffffc9c9c9cacacafbfbfbfffffff9f9f9000000fdfdfdfffffffbfbfbf1f1f1ffffff
+ebebeb080808ffffffffffff0d0d0de5e5e5ffffffeaeaeaf8f8f8ececec020202fdfdfd
+ecececfffffff1f1f1fbfbfbe1e1e11e1e1efafafaffffffe9e9e9ebebebffffff0a0a0a
+fafafafbfbfb0a0a0a0f0f0fffffff000000f3f3f3f2f2f2000000ffffffc4c4c4ffffff
+ebebebfefefefefefe0000000000000e0e0eecececffffffebebebf6f6f6ffffff929292
+989898fafafaf8f8f8fefefefafafafffffffdfdfd6f6f6ff6f6f6fdfdfdffffffcccccc
+c7c7c7f9f9f9fcfcfcfdfdfdf3f3f3000000fffffffcfcfcf5f5f5edededffffff020202
+f7f7f7f5f5f5f5f5f5080808fafafaf5f5f5ffffff030303f8f8f8fafafafefefe080808
+fafafaedededf8f8f8fafafa000000f6f6f6f4f4f4000000fffffff2f2f2ffffff101010
+f5f5f5fafafafafafa040404f8f8f8f6f6f6000000fbfbfbf7f7f7f7f7f7ffffff070707
+f1f1f1fffffff3f3f39b9b9b969696fffffffefefefdfdfde6e6e6fdfdfdffffffffffff
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdf7f7f7ccccccc0c0c0ffffff
+f7f7f7f6f6f6ffffff000000fefefef9f9f9edededd6d6d6fefefe030303e9e9e9fdfdfd
+dcdcdc000000ffffffecececffffff020202fdfdfdffffffffffff000000ffffffeeeeee
+f8f8f8ffffff101010d4d4d4f4f4f41b1b1bf7f7f7ffffffededed0d0d0debebebfefefe
+ffffff000000fdfdfdededed040404f5f5f5fffffffffffffdfdfd060606e8e8e8f4f4f4
+dbdbdbfbfbfbfdfdfdffffff141414e8e8e8e4e4e4ffffff000000fffffff1f1f1000000
+ecececfffffff2f2f2f9f9f9f0f0f0ecececffffff101010f5f5f5f7f7f7f7f7f7f1f1f1
+fbfbfbf9f9f9000000fdfdfdfafafa080808f8f8f8ffffffffffff040404050505131313
+fdfdfdf7f7f7e1e1e1080808ffffffd9d9d9fffffff2f2f2040404ffffff121212f2f2f2
+f6f6f6ebebebf8f8f8e7e7e70f0f0ff2f2f2f8f8f80808080404041b1b1bf5f5f5fafafa
+050505000000020202060606101010000000fcfcfcffffff989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefcfcfcfdfdfdf8f8f8
+ffffffc8c8c8c5c5c5f1f1f1f3f3f3f4f4f4000000252525fffffff8f8f8f4f4f4fdfdfd
+ffffff000000efefeffafafa000000ffffffffffffd1d1d1ffffffffffff0b0b0beaeaea
+fffffff2f2f2ffffffffffffffffff010101f5f5f5ffffffd4d4d4fffffff1f1f1000000
+ededed161616e5e5e5fffffff9f9f9090909fbfbfbf8f8f80d0d0ddededeffffffededed
+ffffffffffffdadada3c3c3cf4f4f4f3f3f3161616fbfbfbfffffff2f2f2d7d7d7a6a6a6
+9d9d9dfefefefbfbfbfffffffafafafefefefbfbfb6c6c6cf7f7f7fefefeffffffcccccc
+c8c8c8f9f9f9fbfbfbfcfcfcffffff000000f5f5f5f5f5f5ecececfffffff7f7f7000000
+fdfdfdf0f0f0ffffff000000fefefee6e6e6f4f4f4040404f9f9f9fffffff6f6f6111111
+f5f5f5ffffffdededefcfcfc1d1d1dffffffffffff000000e7e7e7f2f2f2dbdbdb121212
+cbcbcbfffffff5f5f5000000ffffffe9e9e9080808f9f9f9fafafaf2f2f2e4e4e40a0a0a
+ffffffedededffffff8c8c8c949494fffffffbfbfbfafafae3e3e3fafafafdfdfdfdfdfd
+f9f9f9fffffff8f8f8fffffffafafa696969fefefefdfdfdf3f3f3d4d4d4cececefbfbfb
+f3f3f3fdfdfdffffff0a0a0af8f8f8f6f6f6fbfbfbffffffe8e8e80a0a0affffffdadada
+ffffff000000fffffff7f7f7fbfbfb000000ffffffe3e3e3efefef181818ffffffdadada
+fffffffefefe2f2f2fefefefffffff000000f7f7f7fdfdfdf6f6f6000000fdfdfde9e9e9
+ececec030303ffffffefefef020202e1e1e1f1f1f1f2f2f2ffffff000000f7f7f7f6f6f6
+ffffffe0e0e0fbfbfbd4d4d4060606ffffffefefeffdfdfdffffff0000002a2a2af9f9f9
+f5f5f5f3f3f3e1e1e1cfcfcfffffffeeeeeef1f1f1101010f6f6f6f0f0f0f3f3f3ffffff
+e2e2e2141414242424fafafae8e8e81a1a1af1f1f1f3f3f3ebebebf7f7f7e3e3e3e5e5e5
+161616f5f5f5eeeeee040404ffffffedededebebebf6f6f60e0e0ee1e1e1020202ffffff
+fdfdfddededefffffffcfcfc1a1a1ae9e9e9fefefeebebebf3f3f3f9f9f9121212e5e5e5
+0a0a0afbfbfbfafafaefefeffffffffffffffffffff5f5f5989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfffffffcfcfcf9f9f9f6f6f6
+ffffffcacacac4c4c4eeeeeeeeeeeeffffffffffff1c1c1c000000f9f9f9ffffffe9e9e9
+ffffff000000fffffffefefeffffff000000f8f8f8fffffff2f2f2000000f2f2f2ffffff
+fafafafcfcfcc7c7c7dfdfdff6f6f60a0a0afefefefafafaffffffd9d9d90000001d1d1d
+f6f6f60d0d0df2f2f2fefefe0000000c0c0ce9e9e9ffffff090909040404f5f5f5eaeaea
+060606f3f3f3fbfbfb000000fffffff2f2f2000000141414ebebebfbfbfbffffffa0a0a0
+9d9d9dfffffffcfcfcfffffffafafafefefefbfbfb6c6c6cf9f9f9fefefeffffffcbcbcb
+c8c8c8f9f9f9fbfbfbfafafaf3f3f3000000131313f3f3f3ffffffffffff000000ffffff
+f9f9f9fafafafcfcfc060606fbfbfbffffffe1e1e10c0c0cf8f8f8dcdcdcffffff010101
+fffffffbfbfbffffff030303d8d8d8f6f6f6ffffff040404f3f3f3f8f8f8f0f0f01a1a1a
+f1f1f1eaeaeaffffff000000eaeaeaffffff050505000000e0e0e0f5f5f50a0a0a151515
+dcdcdcf3f3f3ebebeb9d9d9d979797fffffffdfdfdfcfcfce5e5e5fbfbfbfefefefefefe
+fafafafffffff8f8f8fffffffafafa696969fdfdfdfcfcfcf7f7f7cacacacbcbcbfefefe
+fffffff8f8f8c8c8c8000000000000e1e1e1ffffffe7e7e7000000fffffff3f3f3fdfdfd
+ededed181818ffffffffffffeeeeee0e0e0ef3f3f3fffffff3f3f30e0e0ef1f1f1fcfcfc
+f9f9f9000000e3e3e3edededeeeeee101010fffffffdfdfdf6f6f6080808f5f5f5ffffff
+ffffff000000ffffffe2e2e21010101b1b1bfffffff9f9f9030303060606fafafafefefe
+e6e6e6f4f4f4fffffffcfcfc0000000a0a0aebebebf6f6f6f6f6f6141414080808e3e3e3
+ffffffebebebffffffefefefe1e1e1ffffffffffff000000f8f8f8fffffff1f1f1f2f2f2
+000000060606f9f9f9f3f3f3ffffff000000ffffffe7e7e7020202fffffff6f6f6fdfdfd
+030303f2f2f2ffffff000000f0f0f0fffffffefefe121212fffffff7f7f7e8e8e8101010
+edededffffffe2e2e2000000f0f0f0e8e8e8040404ffffffdfdfdfffffff030303fcfcfc
+0c0c0c090909fdfdfdf6f6f6f4f4f4000000fffffffefefe989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefefbfbfbfafafaf7f7f7
+ffffffcccccccacacaf5f5f5ffffffdcdcdcffffffe2e2e2ffffff040404000000000000
+0000000f0f0ffcfcfcedededd6d6d6ffffff0b0b0b000000050505ffffffeeeeeefefefe
+efefeff1f1f1ffffffffffff0e0e0e161616000000272727000000050505ffffffebebeb
+f4f4f4f5f5f5222222101010fcfcfc1010101b1b1bcdcdcdf6f6f6070707111111232323
+0e0e0eeeeeee111111202020000000fffffffcfcfc010101000000efefeffcfcfc919191
+9a9a9afcfcfcfafafafffffffcfcfcffffffffffff707070fafafafefefeffffffcbcbcb
+c8c8c8fafafafbfbfbf9f9f9dededeffffff0606060d0d0d000000050505e2e2e2ffffff
+d1d1d1ffffff000000050505010101f6f6f60909091b1b1b111111ffffffffffff000000
+0d0d0d090909000000f5f5f5ffffffeeeeee000000000000232323e0e0e0232323000000
+0b0b0bf3f3f3000000303030131313c9c9c9f6f6f6101010000000030303ffffff000000
+000000ffffffffffff929292989898fffffffffffffdfdfde6e6e6fcfcfcffffffffffff
+fafafafffffff8f8f8fffffff9f9f9696969fdfdfdfcfcfcffffffcbcbcbd1d1d1f5f5f5
+edededf2f2f2fffffff6f6f6000000212121070707000000fffffff3f3f3ffffffcccccc
+020202050505000000ffffff000000101010080808fdfdfdefefef0101010a0a0a030303
+000000fffffffafafaffffff030303000000030303fafafa040404050505050505f2f2f2
+060606121212000000ffffffe6e6e60b0b0b0000000c0c0cfcfcfc040404191919ececec
+f9f9f9ffffffd7d7d7fffffffcfcfc0202020606060000001d1d1df9f9f9ebebeb060606
+000000ffffffdededefafafaf7f7f7f0f0f00a0a0a070707181818030303191919030303
+f9f9f9ffffffe9e9e9fcfcfc0000001d1d1d000000ffffff000000000000191919040404
+f3f3f3fffffffafafa0b0b0b020202000000000000e5e5e5dadadafffffffffffffbfbfb
+0404040000000e0e0efffffffdfdfdffffff000000111111151515000000ffffffe3e3e3
+f0f0f0000000161616161616000000fffffffffffff6f6f6989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfafafafbfbfbfefefef9f9f9
+fefefec9c9c9cbcbcbfbfbfbe1e1e1f7f7f7fffffffcfcfcffffffedededfcfcfcffffff
+ffffffefefefebebebfffffffdfdfdf6f6f6eeeeeefffffff7f7f7f9f9f9fffffff8f8f8
+efefeffffffff0f0f0e0e0e0f9f9f9eeeeeeffffffffffffffffffffffffe5e5e5fdfdfd
+fefefee5e5e5dbdbdbfbfbfbfdfdfdfcfcfcecececfbfbfbf3f3f3ffffffdcdcdcf0f0f0
+f8f8f8f8f8f8e0e0e0fffffffefefef3f3f3ffffffe7e7e7fffffffffffff3f3f3aaaaaa
+999999fbfbfbf9f9f9fffffffbfbfbffffffffffff707070fafafafefefefefefecacaca
+c9c9c9fbfbfbfbfbfbf9f9f9fffffffdfdfdf8f8f8e1e1e1fdfdfdfffffffffffffafafa
+ffffffdadadaffffffffffffe7e7e7fdfdfdf8f8f8fefefefbfbfbe2e2e2ebebebf7f7f7
+ffffffedededffffffe1e1e1fafafaf3f3f3f3f3f3fafafaf7f7f7fcfcfcfdfdfdf4f4f4
+ecececfffffff5f5f5ffffffe0e0e0fffffff9f9f9fffffffdfdfdf9f9f9fcfcfcffffff
+fffffffdfdfddadada8f8f8f949494fffffffafafaf9f9f9e2e2e2f8f8f8fbfbfbfbfbfb
+fbfbfbfffffff9f9f9fffffff9f9f9686868fcfcfcfbfbfbffffffc4c4c4c9c9c9fdfdfd
+fffffff9f9f9ebebebe3e3e3ffffffdcdcdcfcfcfcf8f8f8fffffff3f3f3ebebebececec
+f7f7f7fffffffafafaf6f6f6f9f9f9f9f9f9eaeaeafdfdfdf0f0f0fffffff8f8f8f0f0f0
+fefefee9e9e9fafafaf1f1f1efefeffffffffcfcfcf4f4f4fefefef7f7f7ebebebf9f9f9
+e9e9e9fffffff4f4f4e5e5e5fffffff4f4f4e8e8e8fffffffffffff5f5f5f1f1f1efefef
+f7f7f7fffffff3f3f3f2f2f2fafafafffffff2f2f2fbfbfbfefefef2f2f2f4f4f4fcfcfc
+fffffff5f5f5f3f3f3f4f4f4fefefefffffff3f3f3e8e8e8c9c9c9ffffffedededf0f0f0
+fefefeeaeaeaffffffeaeaeaf7f7f7ffffffffffffd7d7d7f6f6f6ffffffd8d8d8ffffff
+fffffffcfcfcffffff000000e2e2e2fffffffffffffdfdfdfafafafefefee2e2e2ffffff
+f8f8f8ebebebffffffd7d7d7fffffff0f0f0e6e6e6fffffffffffff5f5f5fffffff0f0f0
+fdfdfdfefefeffffffe7e7e7f5f5f5e2e2e2fefefefefefe989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfafafafcfcfcfffffff9f9f9
+fbfbfbc5c5c5c8c8c8fafafafffffffffffff6f6f6e8e8e8e6e6e6f5f5f5f7f7f7e4e4e4
+fffffff0f0f0fafafafbfbfbfdfdfdfbfbfbfefefefbfbfbf9f9f9fcfcfcf3f3f3f4f4f4
+fffffffefefeedededfbfbfbf2f2f2fffffffffffff6f6f6efefefefefefe6e6e6ffffff
+efefeffffffff4f4f4f5f5f5f8f8f8f6f6f6f1f1f1ffffffffffffeaeaeafffffff5f5f5
+fffffffefefefdfdfdf3f3f3eaeaeafffffff3f3f3fffffffffffff1f1f1fcfcfc868686
+9c9c9cfdfdfdfbfbfbfffffff9f9f9fdfdfdfafafa6b6b6bf9f9f9fcfcfcfcfcfccacaca
+cacacafdfdfdfdfdfdfafafafefefefafafafffffff2f2f2f1f1f1f1f1f1fcfcfcf4f4f4
+fdfdfdedededfffffff7f7f7fffffff9f9f9e5e5e5f2f2f2ffffffeeeeeeffffffececec
+e0e0e0f3f3f3fbfbfbfefefeedededffffffe8e8e8f9f9f9fffffff7f7f7eeeeeeffffff
+fffffff4f4f4fefefee0e0e0f8f8f8f7f7f7ecececefefefe7e7e7fffffffdfdfdededed
+f9f9f9ecececf3f3f3b3b3b3939393fffffffbfbfbfafafae3e3e3fafafafefefefefefe
+fbfbfbfffffff9f9f9fffffff9f9f9686868fcfcfcfbfbfbefefefd4d4d4ddddddfcfcfc
+f3f3f3f7f7f7f7f7f7ffffffe4e4e4fbfbfbfffffff3f3f3fcfcfcf3f3f3fdfdfdffffff
+fcfcfcf9f9f9fbfbfbfafafafffffff7f7f7fafafaffffffeeeeeef6f6f6fbfbfbffffff
+f4f4f4fcfcfcf5f5f5fffffff6f6f6f9f9f9fcfcfcfcfcfcfffffffafafafafafaffffff
+fffffff2f2f2fbfbfbfcfcfcfffffff0f0f0fffffff4f4f4f7f7f7e5e5e5fffffffefefe
+f2f2f2e7e7e7fffffff2f2f2fefefee2e2e2fffffffdfdfdf6f6f6ffffffefefeffcfcfc
+fbfbfbffffffedededfffffffafafafefefee6e6e6fffffffffffff3f3f3fffffff7f7f7
+ffffffffffffe4e4e4fffffffffffff2f2f2e9e9e9ffffffffffffffffffedededeeeeee
+f1f1f1fcfcfcf8f8f8000000fffffff7f7f7e1e1e1ffffffffffffeaeaeafffffff9f9f9
+fffffffcfcfcfffffffcfcfceeeeeefffffff2f2f2eeeeeefdfdfdf8f8f8edededffffff
+fcfcfcf6f6f6dbdbdbf1f1f1ffffffe3e3e3fffffff8f8f8989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfcfcfcfbfbfbfcfcfcf7f7f7
+fefefecacacacbcbcbfbfbfbeaeaeaf1f1f1fefefefdfdfdfefefef2f2f2fffffffafafa
+f2f2f2ffffffffffffedededffffffdfdfdffffffffffffffffffffffffff1f1f1fdfdfd
+f8f8f8f8f8f8ffffffebebebf6f6f6f9f9f9fdfdfdfcfcfcecececfffffffffffffcfcfc
+f4f4f4f3f3f3fffffff4f4f4fffffffffffff4f4f4fbfbfbfefefeffffffeeeeeee9e9e9
+f4f4f4ffffffeeeeeefffffffbfbfbf7f7f7f6f6f6f7f7f7fffffffbfbfbfcfcfc9b9b9b
+9b9b9bfcfcfcf9f9f9fefefef8f8f8fcfcfcf9f9f96a6a6af8f8f8fbfbfbfbfbfbc9c9c9
+cacacafefefefefefefbfbfbfffffff2f2f2e8e8e8ffffffffffffffffffeeeeeeffffff
+fefefefffffff8f8f8ececece9e9e9fffffffffffffafafaf9f9f9ffffffe9e9e9fcfcfc
+fffffff3f3f3fffffff0f0f0f8f8f8eeeeeef2f2f2fafafafcfcfcfbfbfbffffffe8e8e8
+ffffffebebebfffffffffffff8f8f8fffffffffffffbfbfbffffffebebebfefefeffffff
+fafafaf6f6f6ffffff929292949494fffffffcfcfcfcfcfce6e6e6fdfdfdffffffffffff
+fcfcfcfffffff9f9f9fffffff9f9f9686868fcfcfcfafafaffffffd5d5d5c1c1c1ededed
+f8f8f8fffffffefefef8f8f8fffffffffffff3f3f3ffffffffffffeeeeeefffffff5f5f5
+fffffff9f9f9fcfcfcfefefef5f5f5fefefefffffff4f4f4ffffffffffffe8e8e8dcdcdc
+ffffffedededfffffff7f7f7fffffffefefefffffffdfdfdf3f3f3fbfbfbfffffff1f1f1
+ffffffedededfffffffafafaefefeff5f5f5fcfcfcf2f2f2efefeffffffffffffff6f6f6
+fffffffefefef4f4f4f1f1f1ffffffffffffe9e9e9fbfbfbfafafaffffffeeeeeeffffff
+fcfcfcfffffffafafaf3f3f3ffffffffffffeeeeeedbdbdbf4f4f4dadadaffffffffffff
+fbfbfbfefefefefefef2f2f2f1f1f1fcfcfcfffffff3f3f3eaeaeaf4f4f4fffffff1f1f1
+f7f7f7eaeaea0e0e0e1a1a1a181818f2f2f2fffffff5f5f5f4f4f4f5f5f5ffffffffffff
+fdfdfdf1f1f1fafafafdfdfdf5f5f5fffffffefefee7e7e7fbfbfbf0f0f0fffffff5f5f5
+fbfbfbfdfdfdfffffff9f9f9f0f0f0ffffffeeeeeef6f6f6989898959595fdfdfdf7f7f7
+ffffffe5e5e5fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000000000010101000000030303f5f5f5fbfbfbfdfdfdfefefef9f9f9f8f8f8f7f7f7
+ffffffd4d4d4d4d4d4fffffffafafafffffffbfbfbe7e7e7fffffffdfdfdfafafaf8f8f8
+fbfbfbf2f2f2f8f8f8f6f6f6f3f3f3fffffff0f0f0fdfdfdf7f7f7f2f2f2fffffff6f6f6
+fdfdfdf5f5f5f5f5f5f3f3f3f9f9f9fffffff7f7f7f8f8f8f5f5f5fffffffbfbfbf5f5f5
+fbfbfbfefefef8f8f8fefefef1f1f1f6f6f6fffffff7f7f7ffffffedededfcfcfcffffff
+ebebebf6f6f6f1f1f1ffffffffffffedededfcfcfcfffffff0f0f0fdfdfdfbfbfb949494
+969696f8f8f8f6f6f6fcfcfcf8f8f8fdfdfdfbfbfb6d6d6df7f7f7fafafafafafac8c8c8
+cbcbcbfffffffffffffcfcfcf9f9f9fffffff9f9f9f3f3f3f9f9f9eeeeeefffffffbfbfb
+fffffff7f7f7eeeeeefffffff5f5f5f7f7f7f9f9f9f9f9f9f6f6f6fffffff9f9f9f5f5f5
+fffffff2f2f2f5f5f5fffffffffffffcfcfcfffffffafafafffffffffffff7f7f7fefefe
+f1f1f1f8f8f8fffffffbfbfbffffffecececfffffffcfcfcfbfbfbf5f5f5fcfcfcffffff
+f4f4f4fafafae1e1e1a2a2a28f8f8ffcfcfcf8f8f8f8f8f8e3e3e3fbfbfbffffffffffff
+fcfcfcfffffff9f9f9fffffff9f9f9686868fcfcfcfafafaf6f6f6cececec5c5c5ffffff
+fdfdfdf3f3f3f1f1f1ffffffefefeff5f5f5fafafaf5f5f5fcfcfcfbfbfbf1f1f1ffffff
+fefefefafafaf5f5f5fffffffffffffdfdfdf7f7f7fffffff8f8f8fbfbfbfffffff8f8f8
+e9e9e9fffffffcfcfcf9f9f9fdfdfdfafafafffffff6f6f6fffffff7f7f7fdfdfdffffff
+f9f9f9fcfcfcfffffff5f5f5fffffffffffffffffff9f9f9fcfcfcf3f3f3f9f9f9f1f1f1
+ffffffe7e7e7fefefefffffff5f5f5fefefef6f6f6fffffff4f4f4fffffffefefef1f1f1
+fffffff4f4f4fcfcfcfffffff8f8f8f1f1f1fffffffafafafcfcfcfffffffbfbfbf5f5f5
+fffffffbfbfbebebebfcfcfcffffffebebebf3f3f3fefefef7f7f7f5f5f5ffffffe0e0e0
+f7f7f7fafafaf8f8f8ffffffe8e8e8f6f6f6fffffff5f5f5fffffff7f7f7fffffff7f7f7
+fdfdfdfffffff2f2f2fffffffffffff0f0f0fdfdfdfffffffffffffafafafbfbfbfbfbfb
+fcfcfcf4f4f4fafafafefefefefefef2f2f2f6f6f6fefefe989896959593fdfdfbf7f7f5
+fffffde5e5e3fdfdfbfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000002000002030305000002020204f8f8fafffffffefefffffffffffffff7f7f9fafafc
+f6f6f8cbcbcdbebec0e8e8e8fdfdfdfdfdfbfefefcfefefcfefefcfefefcfdfdfbfdfdfb
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdf5f5f3fdfdfbfefefcf3f3f1fcfcfae9e9e7aeaeac
+9b9b99fcfcfafcfcfaf8f8f6fafaf8f2f2f0fffffd696967f0f0eefffffdfafaf8dfdfdd
+dadad8f4f4f2fffffdfdfdfbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafbfbfbfdfdfdfffffffcfcfc
+fdfdfdffffffe5e5e5b6b6b68e8e8efffffffffffffcfcfce1e1e1fffffffbfbfbf6f6f6
+f9f9f7fffffdfafaf8f8f8f6fdfdfb5c5c5afffffdf8f8f6f9f9f7dededcd4d4d2ebebe9
+fefefcfcfcfaf7f7f5fbfbf9fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafdfdfbfefefcfffffdfffffdfffffdfdfdfbfbfbf9fafaf8
+fcfcfafefefcf2f2f0fffffdf5f5f3fffffdf9f9f7fdfdfbfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fefefcfefefcfdfdfbfdfdfbfcfcfafcfcfafcfcfafcfcfaa4a5a093948ffffffbf5f6f1
+ebece7e2e3def5f6f1fffffbfefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fbfbf9fafafafafafafcfcfc000000000000000000000000000000
+000002000002030305000002020204f8f8fafefefffefeffefeff1f9f9fbf9f9fbffffff
+ffffffd7d7d9b6b6b8c9c9c9969694979795979795989896989896979795979795969694
+979795979795979795979795979795979795979795979795969694969694969694969694
+969694969694969694969694989896989896989896989896989896989896989896989896
+979795979795979795979795979795979795979795979795989896989896989896989896
+9898969898969898969898968e8e8c8e8e8c9e9e9c9e9e9c8e8e8c9b9b99a3a3a1898987
+929290f3f3f1fffffdfdfdfbfcfcfafafaf8fffffd636361fffffdfffffdf2f2f0c4c4c2
+a2a2a09b9b999797958e8e8c949492949492949492949492949492949492949492949492
+959593959593959593959593959593959593959593959593929290929290929290929290
+929290929290929290929290949492949492949492949492949492949492949492949492
+9696949696949696949696949696949696949696949696949a9a9a989898989898949494
+9494949f9f9f9999997f7f7f969696f4f4f4f5f5f5f5f5f5dcdcdcfdfdfdfdfdfdf6f6f6
+f8f8f6f5f5f3f4f4f2fafaf8fbfbf96e6e6cfcfcfafefefcf5f5f3cfcfcdadadaba2a2a0
+a0a09e9a9a989a9a98a0a09e949492949492949492949492949492949492949492949492
+979795979795979795979795979795979795979795979795979795979795979795979795
+979795979795979795979795959593959593959593959593959593959593959593959593
+959593959593959593959593959593959593959593959593929290929290929290929290
+929290929290929290929290979795979795979795979795979795979795979795979795
+929290929290929290929290929290929290929290929290969694969694969694969694
+969694969694969694969694959593959593949492949492949492959593959593969694
+98989691918f9898968d8d8b9d9d9b9292909b9b99949492939391939391939391939391
+939391939391939391939391959593959593959593959593959593959593959593959593
+a0a09ea0a09e9f9f9d9f9f9d9f9f9d9e9e9c9e9e9c9e9e9c8a8b868c8d87f8f9f3fffffa
+fffffaeeefe9fcfdf7fbfcf6fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8
+fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8
+fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8
+fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8
+fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8fdfef8
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9
+fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefff9fefffa
+fbfbf9fafafafafafafcfcfc000000000000000000000000000000
+000000010101030303000000020202f7f7f7fefefefdfdfdfefefefffffffbfbfbf8f8f8
+f0f0f0c1c1c19494949090909999979999979a9a989a9a989a9a989a9a98999997999997
+9a9a989a9a989a9a989a9a989a9a989a9a989a9a989a9a98999997999997999997999997
+9999979999979999979999979c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a9c9c9a
+9a9a989a9a989a9a989a9a989a9a989a9a989a9a989a9a989c9c9a9c9c9a9c9c9a9c9c9a
+9c9c9a9c9c9a9c9c9a9c9c9a92929091918fa1a19fa1a19f90908e989896a9a9a7a3a3a1
+b3b3b1f0f0eef9f9f7fffffdf9f9f7f4f4f2fffffd626260f9f9f7fcfcfaefefedcececc
+adadab9d9d9b999997989896a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0
+9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9da0a09ea0a09ea0a09ea0a09e
+a0a09ea0a09ea0a09ea0a09ea1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19f
+a1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19f9d9d9d989898989898979797
+9393939d9d9da5a5a59f9f9fbfbfbff7f7f7f7f7f7fcfcfce3e3e3fffffffffffffdfdfd
+fffffdfbfbf9fbfbf9fffffdfffffd767674f8f8f6fffffde7e7e5cbcbc9ababa9969694
+90908e91918f9696949c9c9aa1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19f
+a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1a3a3a1
+a3a3a1a3a3a1a3a3a1a3a3a19f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d
+a1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa1a19fa0a09ea0a09ea0a09ea0a09e
+a0a09ea0a09ea0a09ea0a09ea2a2a0a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0a2a2a0
+a0a09ea0a09ea0a09ea0a09ea0a09ea0a09ea0a09ea0a09ea1a19fa1a19fa1a19fa1a19f
+a1a19fa1a19fa1a19fa1a19fa0a09e9f9f9d9d9d9b9d9d9b9e9e9ca0a09ea2a2a0a4a4a2
+98989691918f9999978d8d8b9d9d9b9292909b9b99959593a0a09ea0a09ea0a09ea0a09e
+a0a09ea0a09ea0a09ea0a09e9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d9f9f9d
+989896989896989896979795979795969694969694969694a4a5a0a8a9a4edeee9fbfcf7
+f8f9f4e3e4dffffffbf6f7f2fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9
+fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffafefffafefffafefffafefffa
+fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fefffafefffafefffafefffa
+fefffafefffafefffafefffafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fbfbf9fafafafafafafcfcfc000000000000000000000000000000
+000000010100030303000000010101f7f7f5fdfdfdfcfcfaf7f7f7fcfcfaf6f6f6f8f8f6
+fffffffffffdf5f5f5f9f9f7fcfcfafdfdfbfefefcfefefcfefefcfefefcfdfdfbfcfcfa
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdf4f4f2fafaf8fffffdfafaf8fafaf8fbfbf9f2f2f0
+eeeeecf4f4f2ededebfffffdfcfcfaf1f1effdfdfb6d6d6bfafaf8fefefcfffffdfffffd
+f7f7f5f3f3f1f8f8f6fffffdf9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7f9f9f7
+f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4fafaf8fafaf8fafaf8fafaf8
+fafaf8fafaf8fafaf8fafaf8fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f9f9f9f2f2f2f7f7f7fbfbfb
+f3f3f3f2f2f2f7f7f7f5f5f5e5e5e5fafafaf6f6f6fafafae2e2e2fafafafbfbfbf3f3f3
+fafaf8fafaf8f7f7f5fcfcfafafaf85e5e5cf7f7f5fbfbf9fffffdfffffdfafaf8f6f6f4
+f8f8f6fdfdfbfffffdfdfdfbfbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4
+f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4
+f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5fafaf8fafaf8fafaf8fafaf8
+fafaf8fafaf8fafaf8fafaf8f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8f7f7f5f7f7f5f7f7f5f7f7f5
+f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f7f7f5f6f6f4f5f5f3f6f6f4f7f7f5f9f9f7fafaf8
+f8f8f6fdfdfbf2f2f0fffffdf2f2f0fffffdf7f7f5fcfcfafafaf8fafaf8fafaf8fafaf8
+fafaf8fafaf8fafaf8fafaf8f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4f6f6f4
+fffffdfffffdfefefcfefefcfefefcfdfdfbfdfdfbfdfdfbedeee9ecede8fdfef9fffffb
+f5f6f1dedfdafffffbfafbf6fefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000000010200020200000100010100f6f7f2fcfcfafbfcf7fffffdfffffbf5f5f3ebece7
+ededebf2f3eef6f6f4fcfcfafbfbf9fcfcfafdfdfbfdfdfbfdfdfbfdfdfbfcfcfafbfbf9
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfefefcf3f3f1f4f4f2fefefcfffffdfdfdfbf9f9f7f3f3f1
+fffffdfafaf8ededebfdfdfbfffffdfffffdfffffd696967fafaf8f6f6f4f8f8f6fffffd
+fffffdfcfcfafcfcfafffffdfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffff9f9f9ffffffffffff
+fffffffcfcfcfbfbfbf5f5f5fdfdfdfcfcfcf9f9f9f9f9f9eaeaeafcfcfcfbfbfbf9f9f9
+f2f2f0fffffdfcfcfafbfbf9fffffd51514ffffffdfffffde9e9e7f4f4f2fdfdfbfefefc
+fefefcfefefcfafaf8f3f3f1fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfdfdfbfcfcfa
+f4f4f2fafaf8f0f0eefcfcfaefefedfcfcfaf4f4f2fafaf8fefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fcfcfafcfcfafcfcfafbfbf9fbfbf9fafaf8fafaf8fafaf8fdfef9fffffbfcfdf8fffffb
+f3f4efdbdcd7fcfdf8ecede8fefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000100010200020300000100000100f5f6f1fbfcf7fafbf6fafbf6fdfef9fffffbfcfdf8
+f9faf5fcfdf8fffffbfffffbfcfcfafdfdfbfdfdfbfefefcfefefcfdfdfbfdfdfbfcfcfa
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfcfcfafcfcfafcfcfafcfcfafbfbf9f8f8f6fbfbf9fffffd
+f4f4f2fffffdfafaf8f6f6f4fafaf8fefefcf2f2f0595957fffffdf9f9f7f7f7f5fdfdfb
+fffffdfafaf8f4f4f2f4f4f2fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfcfcfcf2f2f2f4f4f4fbfbfb
+f8f8f8fafafafcfcfcf7f7f7fafafaf5f5f5f7f7f7f0f0f0f1f1f1fffffffafafaffffff
+f4f4f2fffffdfefefcf9f9f7fafaf85a5a58fffffdefefedfafaf8fffffdfffffdfefefc
+fcfcfafcfcfafefefcfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfafaf8fbfbf9fdfdfbfdfdfbfcfcfafafaf8f8f8f6f6f6f4
+fffffdfbfbf9fffffdf8f8f6fffffdf8f8f6fffffdfffffdfcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfcfdf8fffffbfafbf6fffffb
+f9faf5eff0ebfffffbfffffbfefffafefffafefffafefffafefffafefffafefffafefffa
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfefffafefffafefffafefffa
+fefffafefffafefffafefffafffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fefffafefffafefffafefffafefffafefffafefffafefffafffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfefffafefffafefffafefffafefffafefffafefffafefffa
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfefffafefffafefffafefffa
+fefffafefffafefffafefffafffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fefffafefffafefffafefffafefffafefffafefffafefffafffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfefffafefffafefffafefffafefffafefffafefffafefffa
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfefffafefffafefffafefffa
+fefffafefffafefffafefffafffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fefffafefffafefffafefffafefffafefffafefffafefffafffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfefffafefffafefffafefffafefffafefffafefffafefffa
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfefffafefffafefffafefffa
+fefffafefffafefffafefffafffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fefffafefffafefffafefffafefffafefffafefffafefffafffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfefffafefffafefffafefffafefffafefffafefffafefffa
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfefffafefffafefffafefffa
+fefffafefffafefffafefffafffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffa
+fefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefffafefefc
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000100010200020300000100000100f5f6f0fbfcf6fafbf5fcfdf7fafbf5fffffafffffa
+fefff9fbfcf6fbfcf6f7f8f3fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfcfcfafffffdfffffdfbfbf9fafaf8f9f9f7fafaf8fffffd
+f1f1effffffdfefefcf6f6f4f3f3f1eeeeecf1f1ef8b8b89e4e4e2e1e1dfe1e1dfe6e6e4
+e9e9e7e9e9e7e8e8e6e8e8e6e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4
+e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e6e6e4e6e6e4e6e6e4e6e6e4
+e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4
+e4e4e2e4e4e2e4e4e2e4e4e2e4e4e2e4e4e2e4e4e2e4e4e2e9e9e9e4e4e4e7e7e7e7e7e7
+e3e3e3e9e9e9f0f0f0eaeaeae9e9e9ebebebeeeeeedededeebebebf5f5f5e8e8e8fbfbfb
+f2f2f0f3f3f1f2f2f0f2f2f0eaeae8848482e7e7e5dcdcdadfdfdddededcdddddbdddddb
+dbdbd9dcdcdae3e3e1eaeae8e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4
+e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5e7e7e5
+e7e7e5e7e7e5e7e7e5e7e7e5e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3
+e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e6e6e4e6e6e4e6e6e4e6e6e4
+e6e6e4e6e6e4e6e6e4e6e6e4e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3
+e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e6e6e4e4e4e2e4e4e2e4e4e2e4e4e2
+e4e4e2e4e4e2e4e4e2e4e4e2e1e1dfe1e1dfe1e1dfe1e1dfe1e1dfe1e1dfe0e0dee0e0de
+dcdcdad9d9d7e4e4e2d6d6d4e2e2e0d5d5d3e2e2e0dfdfdde5e5e3e5e5e3e5e5e3e5e5e3
+e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3e5e5e3
+e7e7e5e7e7e5e7e7e5e6e6e4e6e6e4e6e6e4e5e5e3e5e5e3e2e2e0e6e6e4dfdfdddfdfdd
+dbdbd9e0e0def2f2f0f7f7f5fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+000100010200020300000100000100f5f6f0fafbf5f9faf4fbfcf6f1f2ecf4f5effcfdf7
+f9faf4fbfcf6fffffafefff9fbfbf9fcfcfafcfcfafdfdfbfdfdfbfcfcfafcfcfafbfbf9
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcf6f6f4fefefcfafaf8f7f7f5fffffdfffffdfcfcfaf7f7f5
+fefefcfbfbf9f5f5f3fcfcfafafaf8e5e5e3fffffde8e8e6fefefcfffffdfffffdfdfdfb
+fcfcfafcfcfafcfcfafdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfbfbfbfcfcfcfffffffdfdfd
+f4f4f4f9f9f9fffffff6f6f6f7f7f7ffffffffffffe9e9e9fafafaffffffeaeaeaffffff
+fffffdf2f2f0fcfcfafffffdfdfdfbd1d1cffafaf8fafaf8fffffdfdfdfbfefefcfffffd
+fefefcf8f8f6f8f8f6fefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfdfdfbfcfcfafbfbf9fafaf8fbfbf9fdfdfbfffffdfffffd
+fafaf8fffffdf9f9f7fffffdf5f5f3fffffdfafaf8fffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfdfdfbf8f8f6fefefcfffffdfffffd
+f8f8f6fbfbf9fafaf8fffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+fbfbfbfafafafafafafcfcfc000000000000000000000000000000
+090a04000100040500000100070802fffffafafbf5fffffafafbf5fafbf5fafbf5fafbf5
+fafbf5fafbf5fafbf5fafbf5fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fafaf8fbfbf9fcfcfafcfcfafafaf8f9f9f7fbfbf9fcfcfafbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fdfdfbfdfdfbfcfcfafbfbf9fafaf8f9f9f7f9f9f7f8f8f6fafaf8f9f9f7f7f7f5f5f5f3
+f5f5f3f7f7f5f9f9f7fafaf8fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6fbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfbfbfbfafafafafafafafafafafafafbfbfbfcfcfc
+fdfdfbfdfdfbfcfcfafbfbf9fafaf8f9f9f7f9f9f7f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fdfdfbfdfdfbfdfdfbfdfdfb
+fdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfbfdfdfb
+fafafaf9f9f9ffffffffffff000000000000030303020202000000
+000100060701050600000100000100fbfcf6f2f3edf0f1ebfcfdf7fcfdf7fcfdf7fcfdf7
+fcfdf7fcfdf7fcfdf7fcfdf8f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+fbfbf9fcfcfafdfdfbfdfdfbfbfbf9fafaf8fcfcfafdfdfbfcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafbfbf9fafaf8f9f9f7f9f9f7f8f8f6f8f8f6fdfdfbfcfcfafafaf8f9f9f7
+f9f9f7fafaf8fcfcfafdfdfbfcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfdfdfdfcfcfcfbfbfbfbfbfbfbfbfbfbfbfbfcfcfcfdfdfd
+fefefcfefefcfdfdfbfcfcfafbfbf9fbfbf9fafaf8fafaf8fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfa
+fcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfafcfcfaf8f8f6f8f8f6f8f8f6f8f8f6
+f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6f8f8f6
+fffffff9f9f9e3e3e3f4f4f4040404151515000000000000000000
+000100070803000100000100030400dedfdafffffbfffffbfcfdf8fcfdf8fcfdf8fcfdf8
+fcfdf8fcfdf8fcfdf8fcfdf8fefefcfefefcfefefcfefefcfefefcfefefcfefefcfefefc
+f9f9f7fbfbf9fcfcfafbfbf9fafaf8f9f9f7fafaf8fcfcfafafaf8fafaf8fafaf8fafaf8
+fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8
+fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8
+fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8
+fbfbf9fafaf8fafaf8f9f9f7f8f8f6f8f8f6f7f7f5f7f7f5fdfdfbfcfcfafbfbf9fafaf8
+fafaf8fbfbf9fcfcfafdfdfbfafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8fafaf8
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fafafafafafafafafafafafa
+fafafafafafafafafafafafafbfbfbfbfbfbfafafafafafafafafafafafafbfbfbfbfbfb
+fcfcfafcfcfafbfbf9fbfbf9fafaf8f9f9f7f9f9f7f8f8f6fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9
+fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fbfbf9fafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa
+fafafafafafafafafafafafafafafafafafafafafafafafafefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+f0f0f0ffffffffffffeeeeee0b0b0b000000000000090909000000
+0000000001000f0f0d0506010000000c0d08020200000100000000000100000000000100
+000000000100000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0707070000000000000b0b0b000000060606101010000000000000
+0909090000000000000000000202020000000d0d0d0d0d0b030303030301030303030301
+030303030301030303030301020200020200020200020200020200020200020200020200
+020200030301050503040402020200020200030301040402030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+050503050503050503050503040402040402040402040402040402040402040402030301
+030301040402040402040402030301030301030301030301030301030301030301030301
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402030303030303030303030303
+030303030303030303030303040404040404030303020202020202030303040404040404
+040402040402040402030301030301030301030301020200040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402040402040402040402040402
+040402040402040402040402040402040402040402040402030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+0202020000000b0b0b000000000000000000000000000000000000
+0000000303030000000d0d0d000000000000000000000000000000000000000000000000
+000000000000000000000000010100010100010100010100010100010100010100010100
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+000000040404000000060606020202080808030303070707000000
+0000020707090101030e0e100000020d0d0f000002000002030305030305030305030305
+030305030305030305030303000000000000000000000000000000000000000000000000
+020200030301040402040402020200010100030301040402030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+020200020200030301030301030301030301030301030301030301030301030301040402
+040402030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030303030303030303030303
+030303030303030303030303040404030303030303020202020202030303030303040404
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030301030301030301030301
+030301030301030301030301030301030301030301030301030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303030303030303030303030303
+030303030303030303030303030303030303030303030303000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000030303000000010101000000010101000000000000000000
+060608000002030305000002000002000002000002020204000002000002000002000002
+000002000002000002000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000010100010100010100010100010100010100000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+010101000000080808000000090909000000040404000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/dependent.gif b/lib/orber/doc/src/dependent.gif
new file mode 100644
index 0000000000..c65c427421
--- /dev/null
+++ b/lib/orber/doc/src/dependent.gif
Binary files differ
diff --git a/lib/orber/doc/src/dependent.ps b/lib/orber/doc/src/dependent.ps
new file mode 100644
index 0000000000..788b9cd57f
--- /dev/null
+++ b/lib/orber/doc/src/dependent.ps
@@ -0,0 +1,402 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /clearcase/otp/libraries/orber/doc/src/dependent.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 103 308 509 484
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 51 string def
+
+% define space for color conversions
+/grays 406 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+103 308 translate
+
+% size of image (on paper, in 1/72inch coords)
+406.00800 175.96800 scale
+
+% dimensions of data
+406 176 1
+
+% mapping matrix
+[406 0 0 -176 0 176]
+
+{currentfile pix readhexstring pop}
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ff8000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000001ffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffc00000000000000000000000000000000000000000000000000000000fffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffff8fe7ffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffff77f7ffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffefbf7ffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffefa90e53fffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffefb775affffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffefb7742ffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffefb775effffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffff77775affffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffff8e30e47fffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffc00000000000000000000000000000000000000000000000000000000fffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+e6fffeffff3fffe7ffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7fff7ffffbffff7ffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f7fff7ffffbffff7ffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe208
+34e220e24fb93737ffffffffffdffc
+ffbfffffc0000000000000000000000000007fffffffffffffffffffffffffffffffdb75
+d6d9b6dd2fb6b6d7ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffff375
+d6df36dd6fb0ae17ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffcb75
+d6dcb6dd6fb7cef7ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffdb75
+d6d9b6dd6fb6ded7ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffc10c
+206410622719df23ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff7d
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffff9f9ffffbfffffffffff7fffffffffffffffffffffffffffffffff7d
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffcf3ffffffffffffffff7ffffffffffffffffffffffffffffffffe38
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffcf3ffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffd6b273131ffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffd6b96d7adffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffd9bb61bb9ffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffd9bb6fda5ffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffffd9bb6d5adffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdffffffff8f1133100ffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffc0000000000000000000000000007fffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1
+e1e1e1e1e1e1e1e1e1e1e1ffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffc000000000000000000000000000000000000000000000000000000000000000
+0000001fffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffe23fffff3fffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff77fffffbfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff6ffffffbfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff1fca139bfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff5fb5cb6bfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff6f85db0bfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff77bddb7bfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffffffffff7bb5db6bfffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffe31c88991fffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffbfffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffff7fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffff7fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdf924d2989249c923fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdf696db774b25b4b7fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdf0b6bb775b6d85b7fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdf7b73b775b6dbdb7fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdf6b77b775b6db5b7fffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdf91370388824c893fffdffc
+ffbfffffc000000000000000000000000000000000000000000000000000000000000000
+0000001fffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffe7fffcffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff7fffeffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffff7fffeffffffffffdffc
+ffbfffffc000000000000000000000000000000000000000000000000000000000000000
+0000001ffff726e6ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdffff6d6daffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdffff615c2ffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdffff6f9deffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdffff6dbdaffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffe33be47fffffffffdffc
+ffbfffffdffffffffffff01e7ffffc1ffff80bffffc3ffffffff800380c2ffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffbdf7ffffeeffffb6fffffbbffefffff6f5db6bb7fffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffbff7ffffeefffff7fffffbbffefffff6fddf7bb7fffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffba9624c3eec927f7249cf9e6446493eeeddf79fbfffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffff8375b2b7e1ed97f7b25b7ef6deda4bee0c3f7efbfffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffbb7736b7ebedb7f7b6d87f36eec2dbeeed7f7f3bfffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffbf74b6cfededb7f7b6dbfbbaf6dedbeefdbf7bbbfffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffbd75b6bfeee9b7f7b6db7bb9d6dadbeef5df7bbbfffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffff00200243c76413e3024cf87dc66449f400ee3877fffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffbbfffffffffffffffbfffffff7fffffff7fffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffffbbfffffffffffffffbfffffffbffffffeffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdffffffffffffffffff87ffffffffffffffe7fffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffdfffffffffffffffffffdffc
+ffbfffffc000000000000000000000000000000000000000000000000000000000000000
+0000001fffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffdffc
+ff8000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000001ffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffc
+
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/example_part.xml b/lib/orber/doc/src/example_part.xml
new file mode 100644
index 0000000000..2f549df888
--- /dev/null
+++ b/lib/orber/doc/src/example_part.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part>
+ <header>
+ <copyright>
+ <year>2002</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Service Implementation</title>
+ <prepared>Niclas Eklund</prepared>
+ <docno></docno>
+ <date>2002-06-25</date>
+ <rev>A</rev>
+ </header>
+ <description>
+ <p>This chapter describe how to implement Orber based CORBA services.</p>
+ </description>
+ <include file="ch_example"></include>
+ <include file="ch_stubs"></include>
+</part>
+
diff --git a/lib/orber/doc/src/fascicules.xml b/lib/orber/doc/src/fascicules.xml
new file mode 100644
index 0000000000..0678195e07
--- /dev/null
+++ b/lib/orber/doc/src/fascicules.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE fascicules SYSTEM "fascicules.dtd">
+
+<fascicules>
+ <fascicule file="part" href="part_frame.html" entry="no">
+ User's Guide
+ </fascicule>
+ <fascicule file="ref_man" href="ref_man_frame.html" entry="yes">
+ Reference Manual
+ </fascicule>
+ <fascicule file="part_notes" href="part_notes_frame.html" entry="no">
+ Release Notes
+ </fascicule>
+ <fascicule file="" href="../../../../doc/print.html" entry="no">
+ Off-Print
+ </fascicule>
+</fascicules>
+
diff --git a/lib/orber/doc/src/firewall_nat.gif b/lib/orber/doc/src/firewall_nat.gif
new file mode 100644
index 0000000000..3a80aac724
--- /dev/null
+++ b/lib/orber/doc/src/firewall_nat.gif
Binary files differ
diff --git a/lib/orber/doc/src/firewall_nat.ps b/lib/orber/doc/src/firewall_nat.ps
new file mode 100644
index 0000000000..7c944a3bbe
--- /dev/null
+++ b/lib/orber/doc/src/firewall_nat.ps
@@ -0,0 +1,9227 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /clearcase/otp/libraries/orber/doc/src/firewall_nat.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: -15 311 630 480
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 1935 string def
+
+% define space for color conversions
+/grays 645 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+-15 311 translate
+
+% size of image (on paper, in 1/72inch coords)
+644.97600 168.98400 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+645 169 8 % dimensions of data
+[645 0 0 -169 0 169] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffff000000ffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffff000000000000ffffff000000000000
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffff000000000000000000ffffff000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000ffffffffffffffffffffffffffffff000000
+000000ffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000ffffffffffff000000000000000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffff000000000000000000ffffff000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000ffffffffffffffffffffffffffffff000000000000
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffff000000000000ffffffffffffffffff
+000000000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffffffffffffffff000000ffffff000000000000000000
+ffffff000000000000000000000000ffffff000000000000000000000000000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffff000000000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000ffffff000000000000000000ffffff
+000000000000000000000000ffffff000000000000000000000000000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+000000000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000ffffff000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000ffffff000000000000000000
+ffffffffffff000000000000000000000000000000000000000000ffffff000000000000
+000000000000000000000000000000000000ffffffffffffffffff000000000000ffffff
+ffffff000000000000000000000000ffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000
+000000000000000000000000000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffffffffff000000000000ffffff000000000000000000ffffff
+ffffff000000000000000000000000000000000000000000ffffff000000000000000000
+000000000000000000000000000000ffffffffffffffffff000000000000ffffffffffff
+000000000000000000000000ffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffff000000ffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffff000000000000ffffff000000000000000000ffffff
+ffffffffffff000000000000000000000000ffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffff000000000000ffffff000000000000000000ffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffff000000ffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000000000000000ffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffff000000000000000000
+000000ffffff000000000000000000000000ffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000ffffffffffffffffff000000000000
+000000000000ffffff000000000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffff000000000000000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000000000000000ffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000000000ffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffff000000000000ffffffffffff
+ffffff000000ffffff000000000000000000ffffffffffffffffffffffff000000000000
+000000ffffff000000ffffff000000000000000000ffffffffffffffffff000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffff000000000000000000000000ffffffffffff
+000000000000000000ffffff000000ffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffff000000ffffff000000000000000000
+ffffff000000ffffff000000000000000000ffffffffffffffffff000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffff000000000000000000000000ffffffffffff000000
+000000000000ffffff000000ffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000ffffff000000000000
+000000ffffffffffff000000000000000000ffffff000000ffffff000000000000000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000ffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000000000000000000000ffffff000000000000000000000000000000
+000000000000000000000000ffffff000000000000000000ffffff000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000ffffffffffffffffff000000000000000000
+000000ffffff000000000000000000000000000000ffffff000000000000000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+000000000000000000000000000000ffffff000000000000000000000000000000000000
+000000000000000000ffffff000000000000000000ffffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000000000ffffff000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+000000ffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffffffffff000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000000000000000
+ffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffffffffffffffff000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2cff862aff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2cff8429ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409000000ff3c05
+ff3900000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2cff862aff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0c000000000000ff4300ff3d00
+ff3900000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2cff8429ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500f000000ff470aff4409ff4300ff3c05
+ff3900000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2cff862aff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712000000000000ff4b0cff470aff4208ff4300ff3d00
+ff3900000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2cff8429ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15000000ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2cff862aff8027ff7b24ff7421ff701f
+ff6b1cff661a000000000000ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2cff8429ff8027ff7b24ff7421ff701f
+ff691b000000ff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2cff862aff8027ff7b24ff7622000000
+000000ff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2cff8429ff8027ff7b24000000ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2cff862a000000000000ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65000000fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34000000ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffff000000000000ffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66000000fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34000000ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000000000000000ffffffffffff
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff000000
+000000000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffff000000000000ffffff
+000000000000000000ffffffffffffffffffffffffffffff000000000000ffffff000000
+000000000000ffffffffffff000000000000000000000000ffffff000000000000000000
+ffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffff000000ffffffffffffffffff000000000000000000ffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+000000000000ffffffffffffffffff000000000000000000000000ffffff000000000000
+000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffff000000000000ffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000ffffff000000000000
+000000ffffffffffff000000000000000000000000ffffff000000000000000000ffffff
+ffffffffffff000000000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffff000000ffffffffffffffffff000000000000000000ffffff000000
+ffffffffffffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffff000000000000
+000000ffffffffffff000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000000000ffffff000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffff000000000000ffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000ffffff000000000000
+000000000000ffffffffffffffffff000000000000000000000000ffffff000000000000
+ffffffffffff000000000000ffffffffffff000000000000ffffffffffffffffff000000
+000000ffffffffffff000000000000ffffffffffff000000000000ffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffff000000000000ffffff000000000000
+000000000000ffffffffffffffffffffffff000000000000ffffff000000000000000000
+000000ffffffffffffffffff000000000000000000000000ffffff000000000000ffffff
+ffffff000000000000ffffffffffff000000000000ffffffffffffffffff000000000000
+ffffffffffff000000000000ffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffff000000
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000ffffffffffff000000000000000000ffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffff000000ffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000ffffffffffff000000000000000000ffffffffffff000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000000000ffffffffffffffffffffffff000000000000000000000000ffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000ffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000ffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffff000000ffffffffffff000000
+ffffffffffff000000000000000000ffffffffffff000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65000000fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34000000ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffff000000ffffffffffff000000ffffff
+ffffff000000000000000000ffffffffffff000000ffffffffffff000000000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffff000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000000000ffffff000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000ffffff000000
+000000000000000000000000ffffffffffffffffff000000000000ffffff000000000000
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffff000000ffffffffffffffffff000000
+000000ffffffffffff000000000000ffffffffffff000000000000ffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000ffffff000000000000
+000000000000000000ffffffffffffffffff000000000000ffffff000000000000000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000ffffffffffffffffff000000000000
+ffffffffffff000000000000ffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000ffffff000000000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000ffffffffffff
+000000000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffffffffff000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffff000000000000ffffff000000
+000000ffffffffffffffffff000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffff000000000000000000000000ffffffffffffffffffffffff000000
+ffffff000000000000000000ffffffffffffffffff000000ffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+000000000000ffffffffffffffffff000000000000000000000000000000ffffff000000
+000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffff000000000000ffffff000000
+000000ffffffffffffffffffffffffffffffffffff000000000000ffffff000000000000
+ffffffffffffffffff000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffff000000000000000000000000ffffffffffffffffffffffff000000ffffff
+000000000000000000ffffffffffffffffff000000ffffff000000000000000000ffffff
+ffffffffffffffffffffffff000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ffe85bffe559ffe157
+ffdf56ffda54ffd853000000000000000000000000000000000000ffba44ffb441000000
+ffaa3cffa63a000000000000000000000000000000000000000000000000000000ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66000000000000fffc65fffa64fff863
+fff863000000000000fff561fff360fff15fffef5e000000000000ffe85bffe559ffe358
+ffdf56000000000000ffd551ffcf4effca4cffc84bffc348000000000000000000000000
+ffab3cffa63affa137ff9b34000000000000ff8b2c000000ff8027ff7b24000000000000
+000000ff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66000000fffc65fffa64fffa64fffa64
+fff863000000000000fff360fff15fffef5effee5effec5d000000ffe85bffe559ffe157
+000000000000ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44000000000000
+ffaa3cffa439ff9f36ff9b34000000000000ff8b2c000000ff7f26ff7b24ff7421000000
+000000000000ff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000ffffffffffffffffffffffffffffff000000000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ff8b2c000000ff8027ff7b24ff7421ff701f
+000000000000ff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffff000000000000
+000000000000000000ffffffffffffffffffffffffffffff000000000000000000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66000000fffa64fffc65fffa64
+fff863000000000000fff360fff360ffef5effee5effec5dffea5cffe85bffe559000000
+000000ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441000000
+ffaa3cffa63aff9f36ff9b34000000000000ff8b2c000000ff8027ff7b24ff7421ff701f
+000000000000ff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ff8b2c000000ff8027ff7b24ff7622ff701f
+000000000000ff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863000000000000fff360fff15fffef5effee5effec5dffea5cffe85b000000000000
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34000000000000ff8b2c000000ff8027ff7b24ff7421000000
+000000000000ff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863000000000000fff561fff360fff15fffef5effee5effea5cffe65a000000000000
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34000000000000ff8b2c000000ff8027ff7b24000000000000
+000000ff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863000000000000fff360fff360fff15fffee5effec5dffea5cffe85b000000000000
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34000000000000000000000000000000000000000000000000
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863000000000000fff561fff360fff15fffef5effee5effea5cffe85b000000000000
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34000000000000ff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863000000000000fff360fff15fffef5effee5effec5dffea5cffe85b000000000000
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34000000000000ff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863000000000000fff561fff360fff15fffef5effee5effea5cffe65affe559000000
+000000ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34000000000000ff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863000000000000fff360fff360ffef5effee5effec5dffea5cffe85bffe559000000
+000000ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441000000
+ffaa3cffa63aff9f36ff9b34000000000000ff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863000000000000fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+000000000000ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843000000ffb13f
+ffab3cffa63affa137ff9b34000000000000ff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863000000000000fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56000000000000ffd350ffcf4effcc4dffc84bffc348000000000000ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34000000000000ff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64000000
+000000000000000000000000000000fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853000000000000000000000000000000ffbd45ffb843ffb441ffb13f
+ffab3cffa63a000000000000000000000000000000000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000ffffffffffff000000ffffffffffffffffff000000000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000000000000000000000000000ffff00ffff00000000808080
+808080808080000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffff000000000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffffffffff000000000000000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000ff0000ff0000000000000000000000000000ff0000000000
+000000000000000000ff0000ff0000ff0000000000000000000000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000000000000000000000000000ff0000000000000000
+000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffff000000000000000000ffff00ffff00000000000000ffff00ffff00ffff00ffff00
+000000000000000000ffff00000000000000000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900ff3903ff3700ff3700ff3702000000000000000000000000ffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000000000ff0000000000
+000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000000000000000
+000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffff000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+000000000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00000000808080
+808080808080808080808080000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900ff3700ff3700ff3700ff3500ff3702ff3500ff3500ff3500000000000000
+000000000000ffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000
+000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000000000
+000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000ffff00ffff00000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900ff3903ff3700ff3700ff3702ff3500ff3500ff3500ff3500ff3500ff3501
+ff3300ff3300000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000000000000000000000000000000000000000ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900ff3700ff3700ff3700ff3500ff3702ff3500ff3500ff3500000000000000
+000000000000ffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000000000000000000000
+000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000000000ffff00ffff00000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900ff3903ff3700ff3700ff3702000000000000000000000000ffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00000000000000000000000000ffff00000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00ff3900ff3900
+ff3900ff3900000000000000000000000000808080808080808080808080808080ffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05ff3c05ff3b00ff3b00ff3b00000000000000
+000000000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000000000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffff000000808080808080808080000000
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000808080808080808080808080808080000000000000000000808080808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00ff3f00
+ff3f00ff3e06ff3e06ff3d00ff3d00ff3c05000000000000000000000000808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffff000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000000000000000000000808080808080808080000000
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000808080808080808080808080808080000000000000000000000000808080
+808080808080808080808080000000000000000000ffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff4300ff4100ff3f00ff4100ff3f00
+ff3f00ff3e06ff3e06000000000000000000808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000
+000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000ffffffffffff000000000000000000000000000000ffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffff808080808080808080000000
+000000000000000000000000ffff00000000000000000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000808080808080808080808080000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300ff4500ff4300ff4300ff4300ff4100ff3f00ff4100ff3f00000000
+000000000000000000808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700ff4700
+ff4500ff4300ff4500ff4300ff4300ff4300ff4100000000000000000000000000808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900ff4900ff4700ff4700ff4700ff4500
+ff4700ff4500ff4300000000000000000000000000808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080ffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+fffd00ffff00fffd00ffff00fffd00ffff00fffd00ffff00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffb00fffd00fffb00
+fffd00fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00
+fff900fffb00fff900fffb00fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff700fff500fff700fff500fff500
+fff500fff500fff500fff300fff500fff300fff500fff300fff300fff300fff100fff300
+fff100fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00
+ffed00ffef00ffed00ffed00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900ffeb00
+ffe900ffe900ffe900ffe700ffe900ffe700ffe700ffe700ffe500ffe700ffe500ffe500
+ffe500ffe300ffe300ffe300ffe300ffe300ffe100ffe100ffe100ffdf00ffe100ffdf00
+ffdf00ffdf00ffdd00ffdd00ffdd00ffdb00ffdb00ffdb00ffdb00ffd900ffd900ffd700
+ffd900ffd700ffd700ffd700ffd500000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffa700ffa900ffa700ffa700ffa300
+ffa500ffa300ffa100ffa300ffa100ffa100ff9d00ff9f00ff9d00ff9d00ff9d00ff9b00
+ff9b00ff9700ff9900ff9700ff9700ff9700ff9500ff9300ff9100ff9300ff9100ff9100
+ff8f00ff8f00ff8d00ff8f00ff8d00ff8b00ff8900ff8900ff8900ff8700ff8900ff8500
+ff8500ff8300ff8300ff8300ff8100ff8300ff7f00ff7f00ff7d00ff7d00ff7d00ff7b00
+ff7d00ff7900ff7900ff7700ff7900ff7700ff7500ff7700ff7300ff7300ff7100ff7300
+ff7100ff7100ff7100ff6d00ff6d00ff6b00ff6d00ff6b00ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00ff4b00ff4900ff4900ff4700ff4900ff4700ff4700000000
+000000000000000000808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00fffd00
+ffff00fffd00ffff00fffd00ffff00fffd00ffff00fffd00000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000fffd00fffb00fffd00
+fffb00fffd00fffb00fffb00fffb00fffb00fffb00fffb00fffb00fff900fffb00fff900
+fffb00fff900fffb00fff900fff900fff900fff900000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000fff500fff700fff500fff500fff500
+fff500fff500fff500fff500fff300fff500fff300fff300fff300fff300fff300fff100
+fff300fff100fff100fff100fff100fff100ffef00ffef00ffef00ffef00ffef00ffed00
+ffef00ffed00ffef00ffed00ffeb00ffed00ffeb00ffed00ffeb00ffeb00ffeb00ffe900
+ffeb00ffe900ffe900ffe900ffe700ffe700ffe700ffe700ffe700ffe500ffe500ffe500
+ffe300ffe500ffe300ffe300ffe300ffe100ffe300ffe100ffe100ffe100ffdf00ffdf00
+ffdf00ffdd00ffdd00ffdd00ffdb00ffdd00ffdb00ffdb00ffdb00ffd900ffd900ffd900
+ffd700ffd700ffd700ffd500ffd700000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffa900ffa700ffa700ffa700ffa500
+ffa300ffa300ffa300ffa100ffa100ffa100ff9f00ff9d00ff9d00ff9d00ff9b00ff9b00
+ff9b00ff9900ff9700ff9700ff9700ff9500ff9700ff9500ff9300ff9100ff9100ff9100
+ff8f00ff8f00ff8f00ff8d00ff8b00ff8900ff8b00ff8900ff8900ff8900ff8700ff8500
+ff8300ff8500ff8300ff8300ff8300ff8100ff7f00ff7f00ff7f00ff7d00ff7d00ff7d00
+ff7b00ff7900ff7900ff7900ff7700ff7700ff7700ff7500ff7300ff7300ff7300ff7100
+ff7100ff7100ff6f00ff6d00ff6d00ff6d00ff6b00ff6b00ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+ff4b00ff4d00ff4b00ff4b00ff4b00ff4900ff4900000000000000000000000000808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000000000000000000000000000000000000000000000808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000808080808080808080808080
+808080ffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00ff5100ff4f00ff4d00ff4d00
+ff4d00ff4b00ff4b00ff4b00000000000000000000808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100ff5300ff5100ff5100ff5100ff4f00ff4f00ff4d00ff4d00
+000000000000000000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080000000fffe66fffc65000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffd853ffd551000000000000000000000000000000000000ffb441ffb13f
+ffab3cffa63a000000000000000000000000ff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+ff5500ff5300ff5500ff5300ff5100ff5100ff5100ff4f00000000000000000000000000
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080000000fffe66fffe66fffc65fffa64000000000000
+fff863fff762fff561fff360fff360ffef5e000000000000ffea5cffe85b000000000000
+000000ffda54ffd853ffd350ffcf4effcc4d000000000000ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36000000000000ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900ff5700ff5700ff5700ff5500
+ff5500ff5500ff5300ff5100000000000000000000000000808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561fff360fff15fffef5e000000ffea5cffe85bffe559000000
+000000ffdc55ffd652ffd551ffcf4effca4c000000000000ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137000000ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900ff5b00ff5900ff5900ff5700ff5700ff5500ff5700
+000000000000000000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080000000fffe66fffe66fffc65fffa64000000000000
+fff863fff762fff762fff360fff15fffef5effee5e000000ffea5cffe85bffe559000000
+000000ffda54ffd853ffd350ffcf4effcc4dffc84b000000000000ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36000000ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00ff5d00ff5b00ff5b00ff5b00ff5900ff5900ff5900000000000000000000000000
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559000000
+000000ffdc55ffd853ffd551ffcf4effca4cffc84b000000000000ffb843ffb441ffb13f
+ffab3cffa63aff9f36000000ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100ff5f00ff6100ff5f00
+ff5f00ff5b00ff5d00ff5b00ff5900000000000000000000808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65000000000000
+fff863fff762fff561fff360000000fff15fffee5effec5dffea5cffe85bffe559ffe157
+000000000000ffd853ffd350ffcf4effcc4dffc84b000000000000ffba44ffb441ffaf3e
+ffaa3cffa63a000000ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300ff6500ff6300ff6100ff6100ff6100ff5f00ff5f00
+ff5f00000000000000000000000000808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561000000fff15fffef5effee5effea5cffe85bffe559ffe358
+000000000000ffd652ffd551ffcf4effca4cffc84b000000000000000000ffb441ffb13f
+ffab3cffa63a000000ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500ff6700ff6500ff6500ff6500ff6300ff6100ff6100ff6100000000000000000000
+000000808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64000000000000
+000000000000000000000000000000ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56000000ffd853ffd350ffcf4effcc4d000000000000000000000000ffb441ffaf3e
+ffaa3cffa439000000ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6900ff6700ff6900
+ff6700ff6500ff6500ff6500ff6300000000000000000000000000808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561000000fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56000000000000ffd551ffcf4effca4c000000ffc348000000000000ffb441ffb13f
+ffab3c000000ff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00ff6b00ff6900ff6700
+ff6500000000000000000000000000808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+808080808080808080808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64000000000000
+fff863fff762fff561fff360000000ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56000000000000ffd350ffcf4effcc4d000000ffc348ffbf46000000000000ffaf3e
+ffaa3c000000ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff6b00000000000000000000
+000000808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55000000000000ffcf4e000000ffc84bffc348ffbf46000000000000ffb13f
+ffab3c000000ffa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffff
+ffffff808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64000000000000
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54000000000000ffcf4e000000ffc84bffc348ffbf46000000000000ffaf3e
+000000ffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55000000000000ffcf4e000000ffc84bffc348ffbd45ffb843000000000000
+000000ffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65000000000000
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853000000000000ffcc4dffc84bffc348ffbf46ffba44000000000000
+000000ffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff808080808080808080808080808080808080808080808080808080808080ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+808080808080000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65000000000000
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652000000000000ffca4cffc84bffc348ffbd45ffb843ffb441000000
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000808080808080
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66000000000000000000000000
+000000000000fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350000000ffcc4dffc84bffc348ffbf46ffba44ffb441000000
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000
+ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000000000000000ffffffffffff
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffff000000000000000000000000ffffff000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffff000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000000000000000
+000000ffffff000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffff000000000000
+000000000000ffffff000000000000000000000000ffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000ffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000ffffff000000000000000000000000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000000000ffffff000000000000
+000000ffffffffffff000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffff000000000000ffffffffffffffffffffffff
+000000000000ffffffffffff000000000000ffffffffffffffffffffffff000000000000
+000000000000ffffff000000000000ffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+ffffffffffff000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffff000000000000
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+ffffffffffff000000000000000000000000ffffff000000000000ffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffff000000ffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffffffffff000000ffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ff0000ff0000ff0000ff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00000000ffff00ffff00
+ffff00ffff00000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffff00
+ffff00ffff00ffff00ffff00000000ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00000000ffff00ffff00ffff00
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000ffff00ffff00ffff00ffff00000000000000808080808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00000000808080808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000
+ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000
+ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffff00ffff00ffff00ffff00000000808080808080808080808080
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffff000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffff000000000000ffffffffffffffffffffffff
+000000000000ffffffffffff000000000000ffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+ffffffffffff000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffff000000000000
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000808080808080
+ffffffffffffffffffffffff000000000000000000000000000000ffffff000000000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000ffffff000000
+000000000000000000000000ffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffff000000000000000000ffffff000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffff000000000000ffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000000000000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000ffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffffffffff000000000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffff000000000000ffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409ff4300ff3c05
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300ff3d00
+ff3900000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0eff4b0cff470aff4409ff4300ff3c05
+ff3903000000808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00
+ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000000000000000ffffff
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470aff4208ff4300000000
+000000808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000ffffff000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+808080808080000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff500fff4b0cff470aff4409000000808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+808080808080000000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411ff4e0eff4b0cff470a000000808080808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+808080808080000000ff0000ff0000ff0000ff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00
+ffff00000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff691bff661aff6017ff5d15ff5712ff5210ff4e0e000000000000808080808080808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00ffff00000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5b14ff5712ff5411000000808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000808080ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffc65fffc65fffa64
+fff863fff762fff561fff360fff360fff15fffee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9632ff8f2eff8b2c000000ff8027ff7b24ff7421ff701f
+ff6b1cff661aff6017ff5d15000000000000808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7622ff701f
+ff6b1cff661aff6017000000808080808080808080808080808080808080808080808080
+808080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000808080808080808080ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffa64fffa64
+fff863fff762fff762fff360fff15fffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa439ff9f36ff9b34ff9431ff8f2eff8b2c000000ff7f26ff7b24ff7421ff701f
+ff691b000000000000808080808080808080808080808080808080808080808080808080
+808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000808080
+808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe65affe559ffe358
+ffdf56ffdc55ffd853ffd551ffcf4effca4cffc84bffc348ffbd45ffb843ffb441ffb13f
+ffab3cffa63aff9f36ff9b34ff9632ff912fff8b2c000000ff8027ff7b24ff7421ff701f
+000000808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000808080ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffe66fffc65fffa64fffc65fffa64
+fff863fff762fff561fff360fff360ffef5effee5effec5dffea5cffe85bffe559ffe157
+ffdf56ffda54ffd853ffd350ffcf4effcc4dffc84bffc348ffbf46ffba44ffb441ffaf3e
+ffaa3cffa63aff9f36ff9b34ff9431ff8f2eff8b2c000000ff8027ff7b24ff7421000000
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000fffe66fffc65fffc65fffc65fffa64fff863
+fff863fff762fff762fff561fff360fff15fffef5effee5effea5cffe85bffe559ffe358
+ffdf56ffdc55ffd652ffd551ffcf4effca4cffc84bffc348ffbf46ffb843ffb441ffb13f
+ffab3cffa63affa137ff9b34ff9632ff912fff8b2c000000ff8027000000000000808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000808080808080808080808080
+808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000808080808080808080
+808080808080808080808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000000000000000ffffffffffff
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffff000000000000000000000000ffffff000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffff000000ffffffffffffffffff000000000000000000
+ffffff000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000ffffff000000000000000000000000ffffffffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffff000000000000000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffff000000ffffffffffff
+ffffff000000000000000000ffffff000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffff000000000000
+000000ffffffffffff000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000ffffffffffffffffffffffff000000000000ffffffffffff000000
+000000ffffffffffffffffffffffff000000000000000000000000ffffff000000000000
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+ffffffffffff000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffff000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffff000000000000ffffffffffffffffffffffff000000
+000000ffffffffffff000000000000ffffffffffffffffffffffff000000000000000000
+000000ffffff000000000000ffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000ffffffffffff000000000000000000ffffff
+ffffff000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffff000000
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000ffffffffffff
+000000000000000000ffffffffffff000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffff000000ffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000ffffffffffffffffffffffff000000000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff
+ffffffffffff000000000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffff000000000000000000ffffffffffff000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffffffffffff000000000000000000ffffffffffff
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffff000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000000000ffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000ffffffffffffffffffffffff000000000000ffffffffffff000000
+000000ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffffffffff000000000000
+ffffffffffff000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffff000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffff000000000000ffffffffffffffffffffffff000000
+000000ffffffffffff000000000000ffffffffffffffffffffffff000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000ffffff000000000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000ffffff000000
+000000000000000000000000ffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffffffffff000000000000000000ffffff000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffff000000000000000000ffffffffffffffffff000000ffffff000000000000
+000000ffffffffffff000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffff000000000000000000000000000000ffffffffffffffffff
+ffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000000000ffffffffffffffffff000000
+000000000000000000ffffffffffffffffffffffffffffff000000000000000000ffffff
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffffff000000000000000000ffffffffffffffffff
+000000ffffff000000000000000000ffffffffffff000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffff000000000000ffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+000000000000000000000000000000000000ffffff000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000000000ffffff000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/fixed.xml b/lib/orber/doc/src/fixed.xml
new file mode 100644
index 0000000000..7c59071b49
--- /dev/null
+++ b/lib/orber/doc/src/fixed.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2002</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>fixed</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>2002-05-22</date>
+ <rev>A</rev>
+ </header>
+ <module>fixed</module>
+ <modulesummary>the corba fixed type</modulesummary>
+ <description>
+ <p>This module contains functions that gives an interface to the CORBA fixed type.</p>
+ <p>The type <c>Fixed</c> used below is defined as:</p>
+ <code type="none">
+ -record(fixed, {digits, scale, value}).
+ </code>
+ <p>where <c>digits</c> is the total amount of digits it consists of and
+ <c>scale</c> is the number of fractional digits. The <c>value</c> field
+ contains the actual Fixed value represented as an integer. The limitations
+ of each field are:</p>
+ <list type="bulleted">
+ <item>Digits - integer(), -1 > Digits &lt; 32</item>
+ <item>Scale - integer(), -1 > Scale =&lt; Digits</item>
+ <item>Value - integer(), range (31 digits): &plusmn;9999999999999999999999999999999</item>
+ </list>
+ <p>Since the Value part is represented by an integer, it is vital that the
+ Digits and Scale values are correct. This also means that trailing zeros
+ cannot be left out in some cases:</p>
+ <list type="bulleted">
+ <item>fixed&lt;5,3> eq. 03.140d eq. 3140</item>
+ <item>fixed&lt;3,2> eq. 3.14d eq. 314</item>
+ </list>
+ <p>Leading zeros can be left out.</p>
+ <p>For your convenience, this module exports functions which handle
+ unary (<c>-</c>) and binary (<c>+-*/</c>) operations legal for the Fixed type.
+ Since a unary <c>+</c> have no effect, this module do not export such a
+ function. Any of the binary operations may cause an overflow (i.e. more than
+ 31 significant digits; leading and trailing zeros are not considered
+ significant). If this is the case, the Digit and Scale values are adjusted
+ and the Value truncated (no rounding performed). This behavior is
+ compliant with the OMG CORBA specification. Each binary operation have
+ the following upper bounds:</p>
+ <list type="bulleted">
+ <item><em>Fixed1 + Fixed2</em> - <c><![CDATA[fixed<max(d1-s1,d2-s2) + max(s1,s2) + 1, max(s1,s2)>]]></c></item>
+ <item><em>Fixed1 - Fixed2</em> - <c><![CDATA[fixed<max(d1-s1,d2-s2) + max(s1,s2) + 1, max(s1,s2)>]]></c></item>
+ <item><em>Fixed1 * Fixed2</em> - <c><![CDATA[fixed<d1+d2, s1+s2>]]></c></item>
+ <item><em>Fixed1 / Fixed2</em> - <c><![CDATA[fixed<(d1-s1+s2) + Sinf ,Sinf >]]></c></item>
+ </list>
+ <p>A quotient may have an arbitrary number of decimal places, which is
+ denoted by a scale of Sinf.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>create(Digits, Scale, Value) -> Result</name>
+ <fsummary>Create a fixed type</fsummary>
+ <type>
+ <v>Result = Fixed Type | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>This function creates a new instance of a <c>Fixed Type</c>. If
+ the limitations is not fulfilled (e.g. overflow) an exception is
+ raised.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_typecode(Fixed) -> Result</name>
+ <fsummary>Create TypeCode representing the supplied fixed type</fsummary>
+ <type>
+ <v>Result = TypeCode | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Returns the TypeCode which represents the supplied Fixed type.
+ If the parameter is not of the correct type, an exception is raised.</p>
+ </desc>
+ </func>
+ <func>
+ <name>add(Fixed1, Fixed2) -> Result</name>
+ <fsummary>Add the supplied Fixed types</fsummary>
+ <type>
+ <v>Result = Fixed1 + Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Performs a Fixed type addition.
+ If the parameters are not of the correct type, an exception is raised.</p>
+ </desc>
+ </func>
+ <func>
+ <name>subtract(Fixed1, Fixed2) -> Result</name>
+ <fsummary>Subtract Fixed2 from Fixed1</fsummary>
+ <type>
+ <v>Result = Fixed1 - Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Performs a Fixed type subtraction.
+ If the parameters are not of the correct type, an exception is raised.</p>
+ </desc>
+ </func>
+ <func>
+ <name>multiply(Fixed1, Fixed2) -> Result</name>
+ <fsummary>Multiply Fixed1 with Fixed2</fsummary>
+ <type>
+ <v>Result = Fixed1 * Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Performs a Fixed type multiplication.
+ If the parameters are not of the correct type, an exception is raised.</p>
+ </desc>
+ </func>
+ <func>
+ <name>divide(Fixed1, Fixed2) -> Result</name>
+ <fsummary>Divide Fixed1 with Fixed2</fsummary>
+ <type>
+ <v>Result = Fixed1 / Fixed2 | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Performs a Fixed type division.
+ If the parameters are not of the correct type, an exception is raised.</p>
+ </desc>
+ </func>
+ <func>
+ <name>unary_minus(Fixed) -> Result</name>
+ <fsummary>Negate the supplied Fixed Type</fsummary>
+ <type>
+ <v>Result = -Fixed | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Negates the supplied Fixed type.
+ If the parameter is not of the correct type, an exception is raised.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/ifr_notes.txt b/lib/orber/doc/src/ifr_notes.txt
new file mode 100644
index 0000000000..54f79be8cd
--- /dev/null
+++ b/lib/orber/doc/src/ifr_notes.txt
@@ -0,0 +1,53 @@
+-*-Mode: Outline;-*-
+
+* Transactions.
+ Transaction handling (or the use of mnesia:async_dirty) is not very
+ good at error checking. Code to handle errors from transactions must
+ be added. Right now it is not possible to mix atomic transactions
+ with dirty 'transactions' (i.e. async_dirty) and still check the
+ results consistently. This must be fixed if we are to read with
+ async_dirty instead of transaction, since we still want to do all
+ the writes with transaction and not async_dirty.
+ (This point might be moot. Simple reads are now done with
+ mnesia:dirty_read/1 outside of transactions).
+
+* Unresolved issues.
+ There are some places in the source code marked with '***' where the
+ code should be verified. It mostly concerns minor unresolved
+ unclarities in the specification.
+
+** orber_ifr_contained.erl
+ In move/4 there is a call to orber_ifr_contained:lookup_name/5. The
+ third argument, Levels_to_search, is set to -1, which means search
+ all contained objects. This is probably correct.
+
+** orber_ifr_interfacedef.erl
+ The function describe_interface/1 describes the interface without
+ its inherited interfaces. It is not clear whether this is correct or
+ not. It is possible to get a description of the inherited interfaces
+ by mapping describe_interface/1 on the list if interfaces returned
+ by get_base_interfaces/1. Also, since the structs
+ InterfaceDescription and FullInterfaceDescription both have a field
+ named base_interfaces, it is possible to get a description of the
+ inherited attributes by examining that field and applying a describe
+ function.
+
+** orber_ifr_orb.erl
+ create_union_tc/4 sets the fifth element in the typecode tuple to
+ -1, meaning no default case.
+
+** orber_ifr_repository.erl
+ The PrimitiveDef with kind pk_objref has an empty Id and an empty
+ Name. This is perhaps not correct.
+
+** orber_ifr_typecode.erl
+ None of the functions in this module are fully implemented and they
+ should not be used.
+
+** orber_ifr_uniondef.erl
+*** '_set_members'/2
+ What should the value of the discriminator-typecode be when updating
+ the type attribute? (CORBA 2.0, p 6-20). For now we just leave it
+ unchanged, but this is perhaps not the right thing to do.
+
+* Exceptions should give more information about the failure.
diff --git a/lib/orber/doc/src/iiop.gif b/lib/orber/doc/src/iiop.gif
new file mode 100644
index 0000000000..d2f2fd128c
--- /dev/null
+++ b/lib/orber/doc/src/iiop.gif
Binary files differ
diff --git a/lib/orber/doc/src/iiop.ps b/lib/orber/doc/src/iiop.ps
new file mode 100644
index 0000000000..a77c09eda3
--- /dev/null
+++ b/lib/orber/doc/src/iiop.ps
@@ -0,0 +1,819 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (./iiop.tmp.eps)
+%%CreationDate: (Tue Jun 12 17:52:35 2001)
+%%BoundingBox: 0 29 377 291
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%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.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/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 gt
+ {
+ /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 gt
+ {
+ /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 gt
+ {
+ /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 gt
+ {
+ /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-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ 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
+ /Helvetica 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
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 29 377 291
+userdict begin
+%%BeginData:
+DisplayImage
+0 29
+377.000000 262.000000
+12
+461 321
+1
+0
+0
+8
+ffffff
+000000
+009000
+00b0b0
+0000ff
+900090
+000000
+000000
+00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff00ff00ff007c0101001e0101000e01000008010000ff00900100002e0101
+0009010000ff008e0100002f0100000a010000ff008b0103000301020002010100000102
+000001010004010300010102000001010000010200060100000301010000010200010100
+00ff008a0100000101010001010100010101000201010001010100000101000201010000
+01010002010000020101000101000006010000040100000001000003010000ff00890101
+000101010001010000030100000101000000010000000101000101000002010100020100
+0002010000010100000001000000010100050101000401010004010000ff002e0101001e
+0101000e010000080100001d010000020100000101010003010000010101000101010001
+0100000201000002010000030100000101010001010000060100000601000004010000ff
+002f0100002e010100090100001b01010002010000010100000301010001010000020100
+000201000001010100020100000301000001010000020100000601000005010100040100
+00ff002e0100002f0100000a0100001b0100000201010001010000030100000201000002
+010000020100000101000002010100020101000101000002010000060100000501010003
+010100ff002b010300030102000201010000010200000101000401030001010200000101
+0000010200060100000201010002010000020100001b0100000101030000010100010101
+000101000002010000020100000001000000010000010102000001000000010000000101
+00020102000501000004010000000100000001000001010000ff002b0100000101010001
+010100010101000201010001010100000101000201010000010100020100000201010001
+010000060100000301010001010000020100001c01010000010100020102000301000002
+010000020101000201010001010100010101000001000002010100060100000201010002
+01000001010100ff002a0101000101010001010000030100000101000000010000000101
+000101000002010100020100000201000001010000000100000001010005010100040100
+0001010000020100005101000009010000ff002b01000002010000010101000301000001
+010100010101000101000002010000020100000301000001010100010100000601000005
+01000001010000020100005101000008010000ff002b0101000201000001010000030101
+000101000002010000020100000101010002010000030100000101000002010000060100
+00050100000001000003010000ff00880100000201010001010000030100000201000002
+010000020100000101000002010100020101000101000002010000060100000501020002
+010100ff0088010000010103000001010001010100010100000201000002010000000100
+000001000001010200000100000001000000010100020102000501000006010000030100
+00ff008a0101000001010002010200030100000201000002010100020101000101010001
+0101000001000002010100060100000601000002010100ff00bf01000004010000030100
+00ff00c00100000301000003010000ff00c4010100ff00ff00ff00b9015500ff00760100
+0053010000ff007601000053010000ff007601000053010000ff007601000053010000ed
+05060005050500050501006d01000053010000ed05060005050500050501015400180100
+0053010000ed05010016050100530100001801000053010000ff00060501005301000018
+01000053010000ff0006050100530100001801000053010000f60504000a050100530100
+001801000053010000f5050100020501000a010000530100001801000053010000f40501
+000405010009010000530100001801000053010000f30501000605010008010000530100
+001801000053010000ed0501000305010006050100080100005301000018010000530100
+00ed050100030501000605010008010000530100001801000053010000ed050100030501
+000605010008010000530100001801000053010000ed0501000305010006050100070501
+00530100001801000053010000ed05010004050100040501000805010053010000180100
+0053010000ed050100050501000205010009050100530100001801000053010000f60504
+000a050100530100001801000053010000ff0006050100530100001801000053010000ff
+0006050100530100001801000053010000ff0007010000530100001801000053010000ff
+0007010000530100001801000053010000ff0007010000530100001801000053010000ed
+0501001701000023040b00230100001801000053010000ed050100170100001f0403000b
+0403001f0100001801000053010000ed050100030506000c0100001d040100130401001d
+0100001801000053010000ed0501000405010002050200090501001a0402000103000002
+03000002030000020300000203000002030000000402001a0100001801000053010000ed
+050100040501000305010009050100190400001d040000190100001801000023040b0023
+010000ed050100040501000305010009050100170401001f04010017010000180100001f
+0403000b0403001f010000f4050100020502000905010016040000230400001601000018
+0100001d040100130401001d010000f40506000a05010014040100040300000603000006
+0300000603000006030004010014010000180100001a0402000103000002030000020300
+00020300000203000002030000000402001a010000f4050100000501000c050100130400
+00290400001301000018010000190400001d04000019010000f4050100010501000c0100
+00120400002b0400001201000018010000170401001f04010017010000f4050100020501
+000b010000110400002d0400001101000018010000160400002304000016010000f40501
+00020502000a010000100400000103000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000004000010010000180100
+00140401000403000006030000060300000603000006030004010014010000ed05010003
+05030002050200090100000f040000310400000f01000018010000130400002904000013
+010000ed050100170100000e040000330400000e01000018010000120400002b04000012
+010000ed050100170100000e040000330400000e01000018010000110400002d04000011
+010000ed050100160501000d040000040300000603000006030000060300000603000006
+0300000603000400000d0100001801000010040000010300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000000400
+0010010000ed050100160501000c040000370400000c010000180100000f040000310400
+000f010000ed050100160501000c040000370400000c010000180100000e040000330400
+000e010000ff00060501000b040000390400000b010000180100000e040000330400000e
+010000ff00060501000b0400000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000010400
+000b010000180100000d0400000403000006030000060300000603000006030000060300
+000603000400000d010000f30507000a0501000a0400003b0400000a010000180100000c
+040000370400000c010000f4050100020502000a0100000a0400003b0400000a01000018
+0100000c040000370400000c010000f4050100030501000a0100000a0400003b0400000a
+010000180100000b040000390400000b010000f4050100030501000a0100000904000000
+030000060300000603000006030000060300000603000006030000060300000304000009
+010000180100000b04000002030000020300000203000002030000020300000203000002
+03000002030000020300000203000002030000020300000203000002030000010400000b
+010000ed05010004050100020501000b0100000904000010040200060400001504020008
+04000009010000180100000a0400003b0400000a010000ed050100040506000b01000009
+040000110401001e0400000904000009010000180100000a0400003b0400000a010000ed
+05010004050100020502000a010000090400001104000019040000040400000904000009
+010000180100000a0400003b0400000a010000ed05010004050100030501000905010008
+040000010300000203000002030000000402000203000404000104020000030000010402
+000103000000040200000403000103000000040000000300000203000002030000000400
+000801000018010000090400000003000006030000060300000603000006030000060300
+0006030000060300000304000009010000ed050100040501000305010009050100080400
+000904010001040100020400000204000002040000030400000104000001040100010400
+0001040100030400000b0400000801000018010000090400003d04000009010000ed0501
+000405010002050200090501000804000009040000030400000104000003040000020400
+0002040000010401000104000005040000040400000b0400000801000018010000090400
+003d04000009010000f30506000b05010008040000080401000304000001040000030400
+0002040000010404000104010005040000040400000b0400000801000018010000090400
+003d04000009010000ff0006050100080400000103000005040003000002040100010400
+000204010001030004000001040200000300000104000003030000010400000304010005
+030000040400000801000018010000080400000103000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+03000002030000020300000004000008010000ff00060501000804000008040000030400
+00020400000204000002040000020400000504000005040100030400000c040000080100
+0018010000080400003f04000008010000ff000701000008040000080401000104010001
+040000020400000304000002040100010400000104010001040000010400000004000002
+0400000c0400000801000018010000080400001104020006040000170400000904000008
+010000ff0007010000080400000904020003040300040400000304020003040200020401
+00010403000b040000080100001801000008040000120401001e04010009040000080100
+00ff00070100000804000001030000020300000203000002030000020300000203000002
+040000020300000203000002030000020300000203000002030000020300000203000002
+030000000400000801000018010000080400000103000006030000060300040000050300
+00060300000603000002040000020300040200030300000404000008010000ed05010017
+0100000804000018040000250400000801000018010000080400000b0402000304040001
+040200030402000304020000040300010402000a04000008010000ed0501001701000008
+040000160402002504000008010000180100000804000009040100010401000204000002
+04000002040000030400000104000001040100010400000104010001040100000400000a
+04000008010000ed05010017010000080400003f04000008010000180100000804000009
+040000030400000104000003040000020400000204000001040100010400000504000001
+040100010400000a04000008010000ed0501001605010009040000000300000603000006
+030000060300000603000006030000060300000603000003040000090100001801000008
+040000010300000203000001040100020300040000010400000203000400000103000400
+000104040001040100020300000104000300040100000300000004000000030000020300
+00020300000004000008010000ed05010016050100090400003d04000009010000180100
+000804000008040000030401000104000002040100020400000104020003040000060400
+00000406000904000008010000ed05010016050100090400003d04000009010000180100
+000804000008040000030400000204000002040000020400000204000005040000050401
+00040400000b04000008010000ff0006050100090400003d040000090100001801000008
+040000080401000104010001040000020400000304000002040100010400000104010001
+0400000104000000040000030400000b04000008010000ff00060501000a040003000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+03000002030000020300000203000002030000020400000a010000180100000904000000
+030000060402000304030004040000030402030000020402000003000000040100030401
+000503000003040000080506000505050005050100ed0501000a0400003b0400000a0100
+0018010000090400001804000023040000080506000505050005050100ee010000070401
+00000400003b0400000a0100001801000009040000170400002404000008050100160501
+00ee0100000504010003040000390400000b010000180100000904000015040200240400
+000901000016050100ee0100000204020005040000060300000603000006030000060300
+00060300000603000006030000010400000b010000180100000a04000300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020300000203000002030000020400000a01000016050100d40501001701000000
+04010009040000370400000c010000180100000a0400003b0400000a01000016050100d4
+05010016040001000400000b040000370400000c010000180100000a0400003b04000000
+04000008010000ed05010013040200000100000d040000350400000d010000180100000b
+040000390400000204010006010000ed05010011040100020501000e0400030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020400000e010000180100000b0400000603000006030000060300
+0006030000060300000603000006030000010400000404010004010000ed0501000e0402
+00040501000e040000330400000e010000180100000c0400003704000007040100010501
+00ed0501000c040100070501000f040000310400000f010000180100000c040000370400
+00090401050100f904020009050100100400002f04000010010000180100000d04000035
+0400000c050100f70401000c050100110400000003000006030000060300000603000006
+030000060300000304000011010000180100000d02000400030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020400000d050104010014050100db0402000e050100120400002b040000120100
+00180100000c02000000040000330400000d0501000104010012050100d8040200120100
+00130400002904000013010000180100000f040000310400000e05010003040100100501
+00d60401001501000014040100250401001401000018010000100400002f040000100100
+000504000504000a050100d3040200170100001604000300000203000002030000020300
+000203000002030000020300000203000002030000020400001601000018010000110400
+000003000006030000060300000603000006030000060300000304000011010000050501
+0401000005010009050100d10401000005010017010000170401001f0401001701000018
+010000120400002b040000120100000405010002040105010008050100ce040200020501
+0017010000190400001d04000019010000180100000a0200000704000029040000130100
+0003050100050400050100d604010005050100170100001a040200170402001a01000018
+0100000a02000008040100250401001401000003050100060501040000d2040200070501
+00160501001d0401000303000006030000060401001d0100001801000016040003000002
+030000020300000203000002030000020300000203000002030000020300000204000016
+010000030501000605010000040100cd0402000a050100160501001f0403000b0403001f
+01000018010000170401001f04010016050100030501000605010002040100c90401000d
+0501001605010023040b002301000018010000190400001d040000180501000305010006
+05010004040100c404020028050100530100001801000009020000050200000804020017
+04020019050100040501000405010007040100c00401002b050100530100001801000009
+020000040200000c0401000303000006030000060401001c050100050501000205010009
+0501040000bb0402002d050100530100001801000008020000150403000b0403001e0501
+00060504000a05010000040100b70401001a050500050505000401000053010000180100
+0023040b00220501001605010002040100b20402001c0505000505050004015500180100
+000e020000430100001605010004040100ad040200a50100005301000016050100060401
+00a9040100a80100000702000004020000440100001605010008040100a4040200aa0100
+00070200004a01000023040100a0040100ad010000070200001a040b0023010000250401
+001c0473000a040200af01000006020000170403000b0403001f010000270401001a0400
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020300000004000008040100b20100001d040100130401001c050100030506001e
+040100180400007104000005040200b40100000e0200000a040200010300000203000002
+030000020300000203000002030000000402001905010004050100020502001e04010016
+0400007104000002040200b70100000e020000090400001d040000180501000405010003
+05010020040100140400007104000000040100ba0100000e020000070401001f04010016
+050100040501000305010009050100160401001204000003030000060300000603000006
+030000060300000603000006030000060300000603000006030000060300000603000006
+0300000603000004040100bc010000050200000f04000023040000150501000405010002
+05020009050100180401001004000071040000bd010000050200000d0401000403000006
+030000060300000603000006030004010013050100040506000a0501001a0401000e0400
+0071040000bd0100001002000001040000290400001301000004050100000501000c0501
+001c0401000c04000071040000bd0100001102000400002b040000120100000405010001
+0501000b0501001e0401000a040003000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+00020300000203000002030000020300000203000000040000bd010000110400002d0400
+001101000004050100020501000a0501002004010008040000710400004e015a00130100
+001004000001030000020300000203000002030000020300000203000002030000020300
+0002030000020300000203000002030000000400001001000004050100020502002e0401
+0006040000710400004e01000058010000130100000402000009040000310400000f0100
+0003050300020502002f04010004040000710400004e0100005801000013010000040200
+0008040000330400000e0100003f04010002040000030300000603000006030000060300
+000603000006030000060300000603000006030000060300000603000006030000060300
+0006030000040400004e01000058010000130100000402000008040000330400000d0501
+0041040100000400007104000035050500050505000505010058010000130100000d0400
+000403000006030000060300000603000006030000060300000603000400000c05010043
+0401007104000035050500050505000505010058010000130100000c040000370400000b
+05010044040000710400004d05010058010000130100000c040000370400000b05010016
+0501002b0400030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+00020300000203000002030000000400004d05010058010000130100000b040000390400
+000a050100160501002b040000710400004d05010029040b0022010000130100000b0400
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000010400000a050100160501002b0400
+00710400003405010016050100250403000b0403001e0100001301000003020000050400
+003b0400000a010000030507000a0501002b040000710400003405010017010000230401
+00130401001c0100001301000003020000050400003b0400000a01000004050100020502
+00090501002b040000030300000603000006030000060300000603000006030000060300
+000603000006030000060300000603000006030000060300000603000004040000340501
+001701000020040200010300000203000002030000020300000203000002030000000402
+0019010000130100000a0400003b0400000a0100000405010003050100090501002b0400
+007104000034050100170100001f0400001d040000180100001301000009040000000300
+000603000006030000060300000603000006030000060300000603000003040000090100
+000405010003050100370400007104000034050100170100001d0401001f040100160100
+001301000009040000100402000604000014040400070400000901000004050100020501
+00380400007104000034050100170100001c040000230400001501000013010000090400
+00110401001c0400000b0400000901000004050600380400030000020300000203000002
+030000020300000203000002030000020300000203000001040500000405030000020300
+040500000300000203000408000103000002030000020300000203000002030000020300
+0002030000020300000203000002030000000400004e0100001a04010004030000060300
+000603000006030000060300040100130100001301000003020000040400001104000019
+040000010400000c04000008050100040501000205020037040000240401000404010005
+040100030401000604010003040100260400004d05010019040000290400001201000013
+010000030200000304000001030000020300000203000000040200020300040400010402
+000003000001040200010300000004020000040300010401000103000002030000020300
+000004000007050100040501000305010037040000240401000404010004040000060401
+000504010004040100250400004d050100180400002b0400001101000013010000030200
+000304000009040100010401000204000002040000020400000304000001040000010401
+000104000001040100040400000a04000007050100040501000305010037040000240401
+000404010003040100070401000404010004040100250400004d050100170400002d0400
+001001000013010000030200000304000009040000030400000104000003040000020400
+000204000001040100010400000504000005040100090400000705010004050100020502
+00090501002b040000030300000603000006030000060300000603000401000404010003
+040000000300000604010004040100040401030000060300000603000006030000060300
+00040400004d050100160400000103000002030000020300000203000002030000020300
+00020300000203000002030000020300000203000002030000000400000f010000130100
+000804000008040100030400000104000003040000020400000104040001040100050400
+0005040100090408050104030506040b0501042c00240401000404010002040100090401
+000304010004040100250400004d05010015040000310400000e01000013010000080400
+000103000005040003000002040100010400000204010001030004000001040200000300
+000104000003030000010400000303000000040000040300000404000007050100160501
+002b04000024040100040401000204010009040100030401000304010026040000340501
+001605010014040000330400000d01000013010000080400000804000003040000020400
+000204000002040000020400000504000005040100050400000a04000008010000160501
+002b04000024040100040401000204010009040100030405002804000034050100170100
+0014040000330400000d0100001301000008040000080401000104010001040000020400
+0003040000020401000104000001040100010400000104000000040000030400000b0400
+0008010000160501002b0400030000020300000203000002030000020300000203000002
+030000020300000203000002030004010000030000020401000103000401000003000002
+030000020300040100000300000104010002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000004000034050100170100
+00130400000403000006030000060300000603000006030000060300000603000400000c
+010000130100000302000003040000090402000304030004040000030402000304020002
+040100000403000c04000008010000160501002b04000024040100040401000204010009
+040100030401002c04000034050100060504000b01000012040000370400000b01000013
+010000030200000304000001030000020300000203000002030000020300000203000002
+040000020300000203000002030000020300000203000002030000020300000203000002
+03000000040000080100004404000024040100040401000304010008040000040401002c
+0400003405010005050100020501000a01000012040000370400000b0100001301000003
+020000030400001804000025040000080100004404000024040100040401000304010007
+040100040401002c0400003405010004050100040501000901000011040000390400000a
+010000130100000302000003040000160402002504000008010000440400000303000006
+030000060300000603000006030004010004040100040401000604000005040100060300
+0006030000060300000603000006030000040400003a0501000605010008010000110400
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000010400000a01000013010000080400
+003f040000070501004404000024040100040401000504010003040100060401002c0400
+003a0501000605010007050100100400003b040000090100001301000009040000000300
+000603000006030000060300000603000006030000060300000603000003040000080501
+0044040000220405000004050004040500050405002a0400003a05010006050100070501
+00100400003b0400000901000013010000090400003d0400000805010044040000710400
+003a0501000605010007050100100400003b0400000901000013010000090400003d0400
+0008050100160501002b0400030000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+03000002030000020300000203000002030000000400003a05010006050100070501000f
+040000000300000603000006030000060300000603000006030000060300000603000003
+040000080100001301000003020000040400003d04000008050100160501002b04000071
+0400003b05010004050100080501000f0400003d04000008010000130100000302000005
+040003000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000204000009050100160501
+002b04000071040000340501000505010002050100090501000f0400003d040000080100
+001301000003020000050400003b0400000a010000160501002b04000071040000340501
+00060504000b0100000f0400000f04020006040000130403000a04000008010000130100
+0003020000050400003b0400000a010000160501002b0400000303000006030000060300
+000603000006030000060300000603000006030000060300000603000006030000060300
+0006030000060300000404000034050100170100000e0400000103000002030000020300
+000203000002040100010300000203000002030000020300000203000002030000020300
+0400000103000401000003000002030000020300000004000007010000130100000b0400
+00390400000b01000016050100290402007104000034050100170100000e040000110400
+0019040000050400000a04000007010000130100000b0400000603000006030000060300
+0006030000060300000603000006030000010400000b0100004004010001040000710400
+0034050100170100000e0400000a04020003040400010402000304020003040200000403
+00040400000a04000007010000130100000c040000370400000c0100003e040100030400
+007104000034050100170100000e04000008040100010401000204000002040000020400
+000304000001040000010401000104000001040100040401000a04000007010000130100
+000402000006040000370400000c0100003d040000050400030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+03000002030000020300000203000002030000020300000203000002030000000400004e
+0100000e0400000103000005040003000002040000010400030000020400000204000002
+040000010401000104000003030000000400000404010005030000040400000701000013
+0100000402000007040000350400000c0501003b04010006040000710400004d0501000e
+040000070401000304000001040000030400000204000001040400010401000504000004
+0400000c0400000701000013010000040200000804000300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+00020400000d0501003904010008040000710400004d0501000e04000007040000030401
+00010400000204010002040000010402000304000006040000030400000d040000070100
+00130100000402000008040000330400000d050100370401000a040000710400003a0506
+000b0501000e040000070400000304000002040000020400000204000002040000050400
+0005040100020400000e04000007010000130100000f040000310400000e050100160501
+001c0401000c040000030300000603000006030000060300000603000006030000060300
+0006030000060300000603000006030000060300000603000006030000040400003b0501
+0002050200090501000e0400000103000002030000000401030000000401030000000400
+000003000000040000000300000104000300000104010001040003000000040103000000
+040000000300040000000400030004000001030004000001030000020300000203000000
+0400000701000013010000100400002f0400000f050100160501001b0400000e04000071
+0400003b05010003050100090501000e0400000804020003040300040400000304020003
+04020002040100000405000b040000070100001301000011040000000300000603000006
+030000060300000603000006030000030400001005010016050100190401000f04000071
+04350501040405010403050104090501040f001804000025040000070100001301000005
+0200000b0400002b04000012010000160501001704010011040000710400003405010004
+050100020502000a0100000e04000017040000260400000701000013010000050200000c
+040000290400001301000016050100150401001304000300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000000040000340501
+00040506000b0100000f0400000003000006030000060300000204020000030000060300
+00060300000603000006030000030400000801000013010000050200000d040100250401
+0014010000160501001404000015040000710400003405010004050100000501000d0100
+000f0400003d0400000801000013010000050200000f0400030000020300000203000002
+030000020300000203000002030000020300000203000002040000160100002b04010016
+040000710400003405010004050100010501000c0100000f0400003d0400000801000013
+0100001602000401001f0401001701000029040100180400007104000034050100040501
+00020501000b0100000f0400003d040000080100001301000015020000020400001d0400
+0019010000270401001a0400000303000006030000060300000603000006030000060300
+000603000006030000060300000603000006030000060300000603000006030000040400
+003b050100020502000a0100001004000300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+0300000204000009010000130100001a0402001704020019050100250401001c04000071
+0400003a0503000205020008050100100400003b04000009010000130100000602000015
+0401000303000006030000060401001c050100240400001e040000710400004d05010010
+0400003b0400000901000013010000060200000a0200000b0403000b0403001e05010022
+0401001f040000710400004d05010011040000390400000a01000013010000060200000a
+0200000f040b002205010016050100070401002104000300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+0002030000020300000203000002030000020300000203000002030000000400004d0501
+001104000006030000060300000603000006030000060300000603000006030000010400
+000a01000013010000120200003e050100160501000504010023040000710400004d0501
+0012040000370400000b0100001301000052050100160501000404000025040000710400
+00340501001605010012040000370400000b010000130100005301000016050100020401
+002604000071040000340501001701000013040000350400000c01000013010000120200
+003f01000016050100000401002804000003030000060300000603000006030000060300
+000603000006030000060300000603000006030000060300000603000006030000060300
+000404000034050100170100001404000300000203000002030000020300000203000002
+03000002030000020300000203000002030000020300000203000002030000020400000d
+0100001301000008020000080200000f040b00230100001605010400002a047400330501
+00030507000b01000014040000330400000d0100001301000008020000080200000b0403
+000b0403001f01000015040100a10403002f05010004050100020502000a010000150400
+00310400000e01000013010000080200000802000009040100130401001d010000140400
+00a70403002b05010004050100030501000a010000160400002f0400000f010000130100
+001a040200010300000203000002030000020300000203000002030000000402001a0100
+0012040100ac0403002e050100030501000a010000170400000003000006030000060300
+00060300000603000006030000030400001001000013010000190400001d040000180501
+0010040100b20403002a050100020501000a050100180400002b04000011010000130100
+0015020000000401001f040100160501000e040100b8040200270506000a050100190400
+00290400001201000013010000090200000b04000023040000150501000d040000bd0403
+002305010002050200090501001a040100250401000002000011010000130100000a0200
+000804010004030000060300000603000006030000060300040100130501000b04010008
+050100b70403001f05010003050100090501001c04000300000203000002030000020300
+0002030000020300000203000002030000020300000204000015010000130100000a0200
+00070400002904000012050100090401000a050100bb0403001b05010003050100090501
+001d0401001f0401001601000013010000120400002b04000011050100070401000c0501
+00bf040300100501000405010002050200090501001f0400001d04000018010000130100
+00110400002d04000011010000050401000e050100c30402000d050100030506000c0100
+002004020017040200090200000e01000013010000100400000103000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+0000040000100100000404000010050100c6040300090501001701000023040100030300
+0006030000060401000c0200000e010000130100000b02000002040000310400000f0100
+000204010011050100ca0403000505010017010000250403000b0403000e0200000e0100
+00130100000c02000000040000330400000e01000000040100e404030001050100170100
+0029040b0022010000130100000c02000000040000330400000e0100040000ea04010501
+001701000058010000130100000d04000004030000060300000603000006030000060300
+00060300000603000400000c0400010000ef040200140100001f040b002c010000130100
+000c04000037040000090401050100f20403000f0501001b0403000b040300190200000d
+010000130100000c040000370400000704010001050100f60403000b0501001904010013
+040100170200000d010000130100000b040000390400000404010003050100fa04030007
+050100160402000103000002030000020300000203000002030000020300000004020014
+0200000d010000130100000b040000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000001
+04000002040100050502000505050005050500e504030003050100150400001d04000013
+0200000d010000130100000a0400003b04000000040000070502000505050005050500e9
+04020000050100130401001f04010020010000130100000a0400003b0400000a010000ed
+050100150400050104000011040000230400001f010000130100000a0400003b0400000a
+010000ed05010017010000000403000b0401000403000006030000060300000603000006
+03000401001d010000130100000904000000030000060300000603000006030000060300
+000603000006030000060300000304000009010000ed0501001701000004040300060400
+00290400000b0200000f0100001301000009040000100402000604000015040300070400
+0009010000ed0501001701000008040300010400002b0400000a0200000f010000130100
+0009040000110401001d0400000a04000009010000ed050100170100000c0401002d0400
+00080200001001000013010000090400001104000019040000010400000c040000090100
+00ed050100170100000c0400000103000002030000020300000203000002030000020300
+000203000002030000020300000203000002030000020300000004000019010000130100
+000804000001030000020300000203000000040200020300040400010402000003000001
+040200010300000004020000040300000403000003000002030000020300000004000008
+010000ff00070100000b0400003104000018010000130100000804000009040100010401
+000204000002040000020400000304000001040000010401000104000001040100000400
+00020401000904000008010000ff00060501000a04000033040000020200001301000013
+010000080400000904000003040000010400000304000002040000020400000104010001
+0400000504000001040000020401000904000008010000ff00060501000a040000330400
+000102000014010000130100000804000008040100030400000104000003040000020400
+0001040400010401000504000000040000030401000904000008010000ff000605010009
+040000040300000603000006030000060300000603000006030000060300040000160100
+001301000008040000010300000504000300000204010001040000020401000103000400
+000104020000030000010400000303000001040000000400000103000000040100030300
+000404000008010000ff0006050100080400003704000015010000130100000804000008
+040000030400000204000002040000020400000204000005040000050401000004000003
+0400000a04000008010000ff000605010008040000370400001501000013010000080400
+000804010001040100010400000204000003040000020401000104000001040100010400
+000104000000040200010401000a04000008010000ed0501001605010007040000390400
+001401000013010000080400000904020003040300040400000304020003040200020401
+00010403000b04000008010000ed05010017010000070400000203000002030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+000203000002030000010400001401000013010000080400000103000002030000020300
+000203000002030000020300000204000002030000020300000203000002030000020300
+00020300000203000002030000020300000004000008010000ed05010017010000060400
+003b040000130100001301000008040000180400002504000008010000ed050100170100
+00060400003b040000130100001301000008040000160402002504000008010000ed0501
+0017010000060400003b0400001301000013010000080400003f04000008010000ed0501
+001701000005040000000300000603000006030000060300000603000006030000060300
+000603000003040000120100001301000009040000000300000603000006030000060300
+00060300000603000006030000060300000304000009010000ff0007010000050400000f
+0402000604000014040300090400001201000013010000090400003d04000009010000ff
+000605010005040000100401001b04010001040000090400001201000013010000090400
+003d04000009010000ff0006050100050400001004000019040000040401000904000012
+01000013010000090400003d04000009010000ff00060501000404000001030000020300
+000203000402030000020404000104020001030000000402000203000402030004030002
+0400000203000002030000020300000004000011010000130100000a0400030000020300
+000203000002030000020300000203000002030000020300000203000002030000020300
+0002030000020300000203000002030000020400000a010000ff00060501000404000008
+040100010401000204000002040000020400000304000001040000010401000104000001
+040100010402000c04000011010000130100000a0400003b0400000a010000ee05050005
+050500050501000404000008040000030400000104000003040000020400000204000001
+0401000104000005040000040401000b04000011010000130100000a0400003b0400000a
+010000ee0505000505050005050100040400000704010003040000010400000304000002
+040000010404000104010005040000050400000b04000011010000130100000b04000039
+0400000b010000ff00070100000404000001030000040400000003000001040100010400
+030000010401000204000001040200010300000004000004030000000400000403000400
+00050300000404000011010000130100000b040000060300000603000006030000060300
+00060300000603000006030000010400000b010000ff0007010000040400000704000003
+040000020400000204000002040000020400000504000005040100050400000b04000011
+010000130100000c040000370400000c010000ff00070100000404000007040100010401
+000104000002040000030400000204010001040000010401000104000001040000000400
+00030400000c04000011010000130100000c040000370400000c010000ff000701000004
+040000080402000304030004040000030402000304020002040100000403000d04000011
+010000130100000d040000350400000d010000ff00070100000404000001030000020300
+000203000002030000020300000203000001040003000002030000020300000203000002
+03000002030000020300000203000002030000020300000004000011010000130100000e
+040003000002030000020300000203000002030000020300000203000002030000020300
+0002030000020300000203000002030000020400000e010000ff00070100000404000017
+0400002604000011010000130100000e040000330400000e010000ff0007010000040400
+00150402002604000011010000130100000f040000310400000f010000ff000701000004
+0400003f0400001101000013010000100400002f04000010010000ff0007010000050400
+000003000006030000060300000603000006030000060300000603000006030000030400
+001201000013010000110400000003000006030000060300000603000006030000060300
+000304000011010000ff0007010000050400003d0400001201000013010000120400002b
+04000012010000ff0007010000050400003d040000120100001301000013040000290400
+0013010000ff0007010000050400003d0400001201000013010000140401002504010014
+010000ff0007010000060400030000020300000203000002030000020300000203000002
+030000020300000203000002030000020300000203000002030000020300000203000002
+040000130100001301000016040003000002030000020300000203000002030000020300
+000203000002030000020300000204000016010000ff0007010000060400003b04000013
+01000013010000170401001f04010017010000ff0007010000060400003b040000130100
+0013010000190400001d04000019010000ff000701000007040000390400001401000013
+0100001a040200170402001a010000ff0007010000070400000603000006030000060300
+00060300000603000006030000060300000104000014010000130100001d040100030300
+0006030000060401001d010000ff0007010000080400003704000015010000130100001f
+0403000b0403001f010000ff00070100000804000037040000150100001301000023040b
+0023010000ff00070100000904000035040000160100001301000053010000ff00070100
+000a04000300000203000002030000020300000203000002030000020300000203000002
+0300000203000002030000020300000203000002040000170100001301000053010000ff
+00070100000a04000033040000170100001301000053010000ff00070100000b04000031
+040000180100001301000053010000ff00070100000c0400002f04000019010000130100
+0053010000ff00070100000d040000000300000603000006030000060300000603000006
+030000030400001a0100001301000053010000ff00070100000e0400002b0400001b0100
+001301000053010000ff00070100000f040000290400001c0100001301000053010000ff
+000701000010040100250401001d0100001301000053010000ff00070100001204000300
+000203000002030000020300000203000002030000020300000203000002030000020400
+001f0100001301000053010000ff0007010000130401001f040100200100001301000053
+010000ff0007010000150400001d040000220100001301000053010000ff000701000016
+04020017040200230100001301000053010000ff00070100001904010003030000060300
+0006040100260100001301000053010000ff00070100001b0403000b0403002801000013
+015500ff00070100001f040b002c010000ff007101000058010000ff0071010000580100
+00ff007101000058010000ff007101000058010000ff0071015a00ff00ff00ff00ff00ff
+00ff00ed0101001e0101000e01000007010000ff00910100002e01010008010000ff008f
+0100002f01000009010000ff008c01030003010200020101000001020000010100040103
+00010102000001010000010200060100000201040002010000ff008b0100000101010001
+010100010101000201010001010100000101000201010000010100020100000201010001
+01000006010000020100000101000003010000ff008a0101000101010001010000030100
+000101000000010000000101000101000002010100020100000201000001010000000100
+0000010100050101000501000003010000ff008a01000002010000010101000301000001
+010100010101000101000002010000020100000301000001010100010100000601000005
+01000004010000ff00890101000201000001010000030101000101000002010000020100
+000101010002010000030100000101000002010000060100000401000005010000ff0089
+010000020101000101000003010000020100000201000002010000010100000201010002
+0101000101000002010000060100000301010004010100ff008901000001010300000101
+000101010001010000020100000201000000010000000100000101020000010000000100
+00000101000201020005010000030100000101000002010000ff008b0101000001010002
+010200030100000201000002010100020101000101010001010100000100000201010006
+0100000201040001010100ff00c001000008010000ff00c101000007010000ff00ff00ff
+00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff00ff00ff00ff0019
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 29 377 291
+%%EOF
diff --git a/lib/orber/doc/src/images/GridBagEx.gif b/lib/orber/doc/src/images/GridBagEx.gif
new file mode 100644
index 0000000000..16c326d88c
--- /dev/null
+++ b/lib/orber/doc/src/images/GridBagEx.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/OpenBookIcon.gif b/lib/orber/doc/src/images/OpenBookIcon.gif
new file mode 100644
index 0000000000..86384f7733
--- /dev/null
+++ b/lib/orber/doc/src/images/OpenBookIcon.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/blue-ball-small.gif b/lib/orber/doc/src/images/blue-ball-small.gif
new file mode 100644
index 0000000000..d4c5cde5b0
--- /dev/null
+++ b/lib/orber/doc/src/images/blue-ball-small.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/blue-ball.gif b/lib/orber/doc/src/images/blue-ball.gif
new file mode 100644
index 0000000000..edc29b786c
--- /dev/null
+++ b/lib/orber/doc/src/images/blue-ball.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/class-index.gif b/lib/orber/doc/src/images/class-index.gif
new file mode 100644
index 0000000000..7f276bcb24
--- /dev/null
+++ b/lib/orber/doc/src/images/class-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/constructor-index.gif b/lib/orber/doc/src/images/constructor-index.gif
new file mode 100644
index 0000000000..435cac4238
--- /dev/null
+++ b/lib/orber/doc/src/images/constructor-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/constructors.gif b/lib/orber/doc/src/images/constructors.gif
new file mode 100644
index 0000000000..d1a6ae507c
--- /dev/null
+++ b/lib/orber/doc/src/images/constructors.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/cyan-ball-small.gif b/lib/orber/doc/src/images/cyan-ball-small.gif
new file mode 100644
index 0000000000..7f74357443
--- /dev/null
+++ b/lib/orber/doc/src/images/cyan-ball-small.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/cyan-ball.gif b/lib/orber/doc/src/images/cyan-ball.gif
new file mode 100644
index 0000000000..97ca1f2b6e
--- /dev/null
+++ b/lib/orber/doc/src/images/cyan-ball.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/error-index.gif b/lib/orber/doc/src/images/error-index.gif
new file mode 100644
index 0000000000..22835ff8c6
--- /dev/null
+++ b/lib/orber/doc/src/images/error-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/exception-index.gif b/lib/orber/doc/src/images/exception-index.gif
new file mode 100644
index 0000000000..e3830d9c52
--- /dev/null
+++ b/lib/orber/doc/src/images/exception-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/green-ball-small.gif b/lib/orber/doc/src/images/green-ball-small.gif
new file mode 100644
index 0000000000..17fea5b32b
--- /dev/null
+++ b/lib/orber/doc/src/images/green-ball-small.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/green-ball.gif b/lib/orber/doc/src/images/green-ball.gif
new file mode 100644
index 0000000000..71e1b2ec2d
--- /dev/null
+++ b/lib/orber/doc/src/images/green-ball.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/interface-index.gif b/lib/orber/doc/src/images/interface-index.gif
new file mode 100644
index 0000000000..bf93dda9e3
--- /dev/null
+++ b/lib/orber/doc/src/images/interface-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/magenta-ball-small.gif b/lib/orber/doc/src/images/magenta-ball-small.gif
new file mode 100644
index 0000000000..bd0584b3c6
--- /dev/null
+++ b/lib/orber/doc/src/images/magenta-ball-small.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/magenta-ball.gif b/lib/orber/doc/src/images/magenta-ball.gif
new file mode 100644
index 0000000000..5da03b84d2
--- /dev/null
+++ b/lib/orber/doc/src/images/magenta-ball.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/method-index.gif b/lib/orber/doc/src/images/method-index.gif
new file mode 100644
index 0000000000..a05e705116
--- /dev/null
+++ b/lib/orber/doc/src/images/method-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/methods.gif b/lib/orber/doc/src/images/methods.gif
new file mode 100644
index 0000000000..949e01b8a3
--- /dev/null
+++ b/lib/orber/doc/src/images/methods.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/package-index.gif b/lib/orber/doc/src/images/package-index.gif
new file mode 100644
index 0000000000..f894d4210d
--- /dev/null
+++ b/lib/orber/doc/src/images/package-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/red-ball-small.gif b/lib/orber/doc/src/images/red-ball-small.gif
new file mode 100644
index 0000000000..f6b3c372ca
--- /dev/null
+++ b/lib/orber/doc/src/images/red-ball-small.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/red-ball.gif b/lib/orber/doc/src/images/red-ball.gif
new file mode 100644
index 0000000000..dca9296014
--- /dev/null
+++ b/lib/orber/doc/src/images/red-ball.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/variable-index.gif b/lib/orber/doc/src/images/variable-index.gif
new file mode 100644
index 0000000000..65cc029e72
--- /dev/null
+++ b/lib/orber/doc/src/images/variable-index.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/variables.gif b/lib/orber/doc/src/images/variables.gif
new file mode 100644
index 0000000000..e8a735399a
--- /dev/null
+++ b/lib/orber/doc/src/images/variables.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/yellow-ball-small.gif b/lib/orber/doc/src/images/yellow-ball-small.gif
new file mode 100644
index 0000000000..8e5f57cdfc
--- /dev/null
+++ b/lib/orber/doc/src/images/yellow-ball-small.gif
Binary files differ
diff --git a/lib/orber/doc/src/images/yellow-ball.gif b/lib/orber/doc/src/images/yellow-ball.gif
new file mode 100644
index 0000000000..2b8c0bb3d6
--- /dev/null
+++ b/lib/orber/doc/src/images/yellow-ball.gif
Binary files differ
diff --git a/lib/orber/doc/src/interceptor_operations.gif b/lib/orber/doc/src/interceptor_operations.gif
new file mode 100644
index 0000000000..cd72f7fcb7
--- /dev/null
+++ b/lib/orber/doc/src/interceptor_operations.gif
Binary files differ
diff --git a/lib/orber/doc/src/interceptor_operations.ps b/lib/orber/doc/src/interceptor_operations.ps
new file mode 100644
index 0000000000..2fab6e43d0
--- /dev/null
+++ b/lib/orber/doc/src/interceptor_operations.ps
@@ -0,0 +1,22543 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /clearcase/otp/libraries/orber/doc/src/interceptor_operations.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 15 167 596 625
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 1743 string def
+
+% define space for color conversions
+/grays 581 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+15 167 translate
+
+% size of image (on paper, in 1/72inch coords)
+580.96800 457.99200 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+581 458 8 % dimensions of data
+[581 0 0 -458 0 458] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000ff0000000000
+000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000000000000000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000000000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000000000ff0000
+ff0000000000000000000000000000000000ff0000ff0000ff0000000000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000000000000000000000ff0000
+000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000000000ff0000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000000000ff0000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000000000ff0000ff0000000000000000
+000000ff0000000000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000ff0000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000000000ff0000ff0000000000000000000000000000
+ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000000000000000ff0000ff0000000000000000000000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000000000000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+000000000000000000000000000000000000ff0000ff0000000000000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0800ff0600ff0800ff0600ff0800ff0600
+ff0800ff0600ff0800ff0600ff0800ff0600ff0800ff0600ff0800ff0600ff0800ff0600
+ff0800ff0600ff0800ff0600ff0800000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00
+ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00ff0a00
+ff0a00ff0a00ff0a00ff0a00ff0a00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0a00
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0c00ff0e00ff0c00ff0e00ff0c00ff0e00
+ff0c00ff0e00ff0c00ff0e00ff0c00ff0e00ff0c00ff0e00ff0c00ff0e00ff0c00ff0e00
+ff0c00ff0e00ff0c00ff0e00ff0c00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0e00
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff0e00ff1000ff0e00ff1000ff0e00ff1000
+ff0e00ff1000ff0e00ff1000ff0e00ff1000ff0e00ff1000ff0e00ff1000ff0e00ff1000
+ff0e00ff1000ff0e00ff1000ff0e00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff0e00ff1000
+ff0e00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ff1000ff1200ff1000ff1200ff1000ff1200
+ff1000ff1200ff1000ff1200ff1000ff1200ff1000ff1200ff1000ff1200ff1000ff1200
+ff1000ff1200ff1000ff1200ff1000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff1000ff1200
+ff1000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ff1200ff1400ff1200ff1400ff1200ff1400
+ff1200ff1400ff1200ff1400ff1200ff1400ff1200ff1400ff1200ff1400ff1200ff1400
+ff1200ff1400ff1200ff1400ff1200000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ff1200ff1400
+ff1200000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000000000000000000000
+000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1400ff1600ff1400ff1600ff1400ff1600
+ff1400ff1600ff1400ff1600ff1400ff1600ff1400ff1600ff1400ff1600ff1400ff1600
+ff1400ff1600ff1400ff1600ff1400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff1600ff1400ff1600
+ff1400ff1600000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1600ff1600ff1600ff1600ff1600ff1600
+ff1600ff1600ff1600ff1600ff1600ff1600ff1600ff1600ff1600ff1600ff1600ff1600
+ff1600ff1600ff1600ff1600ff1600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff1600ff1600ff1600
+ff1600ff1600000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ff0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1800ff1800ff1800ff1800ff1800ff1800
+ff1800ff1800ff1800ff1800ff1800ff1800ff1800ff1800ff1800ff1800ff1800ff1800
+ff1800ff1800ff1800ff1800ff1800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff1800ff1800ff1800
+ff1800ff1800000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1a00ff1800ff1a00ff1800ff1a00ff1800
+ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800
+ff1a00ff1800ff1a00ff1800ff1a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff1a00ff1800ff1a00ff1800
+ff1a00ff1800ff1a00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1c00ff1a00ff1c00ff1a00ff1c00ff1a00
+ff1c00ff1a00ff1c00ff1a00ff1c00ff1a00ff1c00ff1a00ff1c00ff1a00ff1c00ff1a00
+ff1c00ff1a00ff1c00ff1a00ff1c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff1c00ff1a00ff1c00ff1a00
+ff1c00ff1a00ff1c00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00
+ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00ff1c00
+ff1c00ff1c00ff1c00ff1c00ff1c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff1c00ff1c00ff1c00ff1c00ff1c00
+ff1c00ff1c00ff1c00ff1c00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffff000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00
+ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00ff1e00
+ff1e00ff1e00ff1e00ff1e00ff1e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff1e00ff1e00ff1e00ff1e00ff1e00
+ff1e00ff1e00ff1e00ff1e00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff1e00ff2000ff1e00ff2000ff1e00ff2000
+ff1e00ff2000ff1e00ff2000ff1e00ff2000ff1e00ff2000ff1e00ff2000ff1e00ff2000
+ff1e00ff2000ff1e00ff2000ff1e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff2000ff1e00ff2000ff1e00ff2000
+ff1e00ff2000ff1e00ff2000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2000ff2200ff2000ff2200ff2000ff2200
+ff2000ff2200ff2000ff2200ff2000ff2200ff2000ff2200ff2000ff2200ff2000ff2200
+ff2000ff2200ff2000ff2200ff2000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2000ff2200ff2000ff2200ff2000ff2200
+ff2000ff2200ff2000ff2200ff2000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+000000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2200ff2200ff2200ff2200ff2200ff2200
+ff2200ff2200ff2200ff2200ff2200ff2200ff2200ff2200ff2200ff2200ff2200ff2200
+ff2200ff2200ff2200ff2200ff2200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2200ff2200ff2200ff2200ff2200ff2200
+ff2200ff2200ff2200ff2200ff2200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000000000000000
+ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2400ff2200ff2400ff2200ff2400ff2200
+ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200
+ff2400ff2200ff2400ff2200ff2400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2400ff2200ff2400ff2200ff2400ff2200
+ff2400ff2200ff2400ff2200ff2400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffff000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2600ff2400ff2600ff2400ff2600ff2400
+ff2600ff2400ff2600ff2400ff2600ff2400ff2600ff2400ff2600ff2400ff2600ff2400
+ff2600ff2400ff2600ff2400ff2600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff2400ff2600ff2400ff2600ff2400ff2600ff2400
+ff2600ff2400ff2600ff2400ff2600ff2400000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffff000000000000000000000000000000ffffff000000
+000000000000000000ffffff000000000000000000ffffffffffffffffffffffff000000
+cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000000000000000
+000000000000000000000000000000ffffff000000000000000000000000ffffff000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffff000000000000000000000000
+ffffff000000000000000000ffffffffffff000000000000000000000000ffffff000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000000000000000000000000000
+000000000000000000000000000000000000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000000000000000000000000000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2600ff2600ff2600ff2600ff2600ff2600
+ff2600ff2600ff2600ff2600ff2600ff2600ff2600ff2600ff2600ff2600ff2600ff2600
+ff2600ff2600ff2600ff2600ff2600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff2600ff2600ff2600ff2600ff2600ff2600ff2600
+ff2600ff2600ff2600ff2600ff2600ff2600000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff000000
+000000000000000000000000ff0000000000000000000000000000ff0000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000000000
+000000000000ff0000ff0000000000000000000000000000ff0000000000000000000000
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000000000ffffff000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffff000000000000000000000000ffffff
+ffffffffffff000000000000000000000000ffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffffff000000000000000000ffffffffffffffffff
+000000000000ffffff000000000000ffffff000000000000000000ffffffffffffffffff
+000000000000ffffffffffffffffff000000ffffffffffffffffffffffffffffff000000
+cd0000cd0000cd0000cd0000cd0000000000000000000000000000000000000000ffffff
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffff000000000000ffffffffffffffffff000000000000000000
+000000ffffff000000000000000000ffffffffffff000000000000000000000000000000
+000000000000000000ff0000ff0000ff0000000000000000ff0000000000000000ff0000
+ff0000ff0000000000000000ff0000ff0000000000000000ff0000000000000000000000
+ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000ff0000ff0000
+000000000000ff0000ff0000ff0000000000000000000000000000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2600ff2800ff2600ff2800ff2600ff2800
+ff2600ff2800ff2600ff2800ff2600ff2800ff2600ff2800ff2600ff2800ff2600ff2800
+ff2600ff2800ff2600ff2800ff2600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff2600ff2800ff2600ff2800ff2600ff2800ff2600ff2800
+ff2600ff2800ff2600ff2800ff2600ff2800ff2600000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000
+000000000000ff0000000000000000000000ff0000ff0000ff0000000000000000ff0000
+ff0000000000000000ff0000ff0000ff0000000000000000ff0000ff0000000000ff0000
+ff0000ff0000000000000000ff0000000000000000ff0000ff0000ff0000000000000000
+ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+ffffff000000000000000000000000000000000000000000000000ff0000ff0000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffffffffffff000000000000ffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000ff0000
+000000000000000000ff0000ff0000000000000000000000000000ff0000000000000000
+000000ffffffffffffffffff000000000000ffffff000000000000ffffffffffffffffff
+000000000000ffffffffffff000000000000ffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffff000000000000000000000000ffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffff000000000000000000ffffff000000000000000000ffffff000000
+000000000000000000ffffff000000ffffffffffffffffffffffffffffffffffff000000
+000000000000cd0000000000000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffff000000000000ffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000000000000000000000
+ff0000000000000000000000ff0000ff0000000000000000ff0000000000000000000000
+ff0000ff0000ff0000000000000000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2800ff2800ff2800ff2800ff2800ff2800
+ff2800ff2800ff2800ff2800ff2800ff2800ff2800ff2800ff2800ff2800ff2800ff2800
+ff2800ff2800ff2800ff2800ff2800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff2800ff2800ff2800ff2800ff2800ff2800ff2800ff2800
+ff2800ff2800ff2800ff2800ff2800ff2800ff2800000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000000000000000000000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000000000ff0000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffff000000000000000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000000000000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ffffffffffff000000000000000000ffffff000000000000000000ffffff000000
+000000000000ffffffffffff000000000000ffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000000000000000000000000000ffffff000000000000000000ffffff000000
+000000000000000000ffffff000000ffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000000000000000000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000000000000000000000000000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000000000000000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00
+ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00
+ff2a00ff2a00ff2a00ff2a00ff2a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00
+ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00ff2a00000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000000000000000000000000000000000000000000000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffff000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000000000000000000000000000000000ff0000ff0000000000000000
+000000ffffffffffff000000000000000000000000000000000000000000ffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000ffffff000000
+ffffff000000000000ffffff000000ffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000000000000000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00
+ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00
+ff2c00ff2a00ff2c00ff2a00ff2c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff2a00ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00
+ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00ff2c00ff2a00000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ff0000ff0000000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000000000000000000000000000ffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000000000000000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000000000ff0000000000000000
+000000ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+ffffff000000000000000000ffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffffffffffff000000000000000000ffffffffffffffffff
+000000000000000000ffffffffffff000000ffffffffffff000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000000000000000ff0000000000000000000000000000
+ffffffffffff000000000000000000ffffff000000000000000000000000ffffffffffff
+000000000000000000ffffff000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000ffffffffffff
+000000000000ffffffffffff000000000000ffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000000000
+ff0000ff0000000000000000000000ff0000ff0000000000ff0000000000000000000000
+ff0000000000ff0000000000000000000000ff0000ff0000000000000000ff0000ff0000
+000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00
+ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00
+ff2e00ff2e00ff2e00ff2e00ff2e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000000000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00
+ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00ff2e00000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000000000ff0000000000000000000000ff0000ff0000ff0000000000000000ff0000
+ff0000000000000000ff0000ff0000ff0000000000ff0000ff0000000000000000ff0000
+ff0000ff0000000000000000000000ff0000ff0000000000ff0000ff0000000000000000
+ff0000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffffffffff
+ffffff000000000000000000ffffff000000000000000000000000ffffffffffff000000
+000000000000ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffff000000ffffff000000000000
+ffffffffffff000000000000ffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000cd0000000000000000000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000ffffffffffff
+000000000000000000ffffffffffff000000ffffff000000000000000000ffffff000000
+ffffff000000000000000000ffffffffffff000000000000ffffffffffff000000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000ffffff000000000000000000000000ffffffffffff
+ffffff000000000000000000000000ffffffffffffffffffffffff000000ffffffffffff
+ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+000000000000000000000000000000000000ffffff000000000000000000000000ffffff
+ffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffff000000000000000000000000
+000000ffffff000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000000000000000
+000000ff0000000000000000000000000000000000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000000000000000000000000000000000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff2e00ff3000ff2e00ff3000ff2e00ff3000
+ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00ff3000
+ff2e00ff3000ff2e00ff3000ff2e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00ff3000
+ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00ff3000ff2e00000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000000000000000000000000000000000ff0000ff0000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000
+000000ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffffffffff000000000000000000ffffff000000000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000ffffffffffffffffff000000
+000000000000000000ffffffffffffffffff000000000000000000000000000000ffffff
+000000000000000000000000000000000000000000000000000000cd0000000000000000
+000000000000ffffffffffffffffff000000000000000000000000ffffffffffffffffff
+ffffff000000000000000000000000ffffffffffffffffff000000000000000000ffffff
+000000000000000000000000000000ffffffffffff000000000000000000000000ffffff
+ffffffffffff000000000000000000000000000000ffffff000000000000000000000000
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3000ff3000ff3000ff3000ff3000ff3000
+ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000
+ff3000ff3000ff3000ff3000ff3000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000
+ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000ff3000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3200ff3000ff3200ff3000ff3200ff3000
+ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000
+ff3200ff3000ff3200ff3000ff3200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ff3000ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000
+ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000ff3200ff3000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3400ff3200ff3400ff3200ff3400ff3200
+ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200
+ff3400ff3200ff3400ff3200ff3400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ff3200ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200
+ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200ff3400ff3200000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000000000
+000000000000ff0000ff0000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3400ff3400ff3400ff3400ff3400ff3400
+ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400
+ff3400ff3400ff3400ff3400ff3400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400
+ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400ff3400000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3400ff3600ff3400ff3600ff3400ff3600
+ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600
+ff3400ff3600ff3400ff3600ff3400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600
+ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600ff3400ff3600ff3400000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3800ff3800ff3800ff3800ff3800ff3800
+ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800
+ff3800ff3800ff3800ff3800ff3800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3800
+ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800
+ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800ff3800
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3a00ff3800ff3a00ff3800ff3a00ff3800
+ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800
+ff3a00ff3800ff3a00ff3800ff3a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3800
+ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800
+ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800ff3a00ff3800
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00
+ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00
+ff3a00ff3a00ff3a00ff3a00ff3a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3a00
+ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00
+ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00ff3a00
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000ffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00
+ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00
+ff3a00ff3c00ff3a00ff3c00ff3a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3a00ff3c00
+ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00
+ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00ff3a00ff3c00
+ff3a00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000ffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00
+ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00
+ff3c00ff3e00ff3c00ff3e00ff3c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3c00ff3e00
+ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00
+ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00ff3c00ff3e00
+ff3c00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00
+ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00
+ff3e00ff3e00ff3e00ff3e00ff3e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3e00ff3e00
+ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00
+ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00ff3e00
+ff3e00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4200ff4000ff4200ff4000ff4200ff4000
+ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000
+ff4200ff4000ff4200ff4000ff4200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff4000ff4200ff4000
+ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000
+ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000ff4200ff4000
+ff4200ff4000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4200ff4200ff4200ff4200ff4200ff4200
+ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200
+ff4200ff4200ff4200ff4200ff4200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff4200ff4200ff4200ff4200
+ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200
+ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200ff4200
+ff4200ff4200ff4200000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4400ff4400ff4400ff4400ff4400ff4400
+ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400
+ff4400ff4400ff4400ff4400ff4400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff4400ff4400ff4400ff4400
+ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400
+ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400ff4400
+ff4400ff4400ff4400000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000
+cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4600ff4600ff4600ff4600ff4600ff4600
+ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600
+ff4600ff4600ff4600ff4600ff4600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000ff4600ff4600ff4600ff4600
+ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600
+ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600ff4600
+ff4600ff4600ff4600000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000cd0000cd0000cd0000cd0000cd0000cd0000cd0000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4600ff4800ff4600ff4800ff4600ff4800
+ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800
+ff4600ff4800ff4600ff4800ff4600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff4800ff4600ff4800ff4600ff4800
+ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800
+ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800ff4600ff4800
+ff4600ff4800ff4600ff4800000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00
+ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00
+ff4a00ff4a00ff4a00ff4a00ff4a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00
+ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00
+ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00ff4a00
+ff4a00ff4a00ff4a00ff4a00ff4a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00
+ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00
+ff4c00ff4a00ff4c00ff4a00ff4c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00
+ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00
+ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00ff4c00ff4a00
+ff4c00ff4a00ff4c00ff4a00ff4c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00
+ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00
+ff4c00ff4c00ff4c00ff4c00ff4c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00
+ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00
+ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00ff4c00
+ff4c00ff4c00ff4c00ff4c00ff4c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00
+ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00
+ff4c00ff4e00ff4c00ff4e00ff4c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00
+ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00
+ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00
+ff4c00ff4e00ff4c00ff4e00ff4c00ff4e00000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff4e00ff5000ff4e00ff5000ff4e00ff5000
+ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000
+ff4e00ff5000ff4e00ff5000ff4e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000
+ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000
+ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000ff4e00ff5000
+ff4e00ff5000ff4e00ff5000ff4e00ff5000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff5000ff5000ff5000ff5000ff5000ff5000
+ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000
+ff5000ff5000ff5000ff5000ff5000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff5000ff5000ff5000ff5000ff5000ff5000ff5000
+ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000ff5000
+ff5000ff5000ff5000ff5000ff5000ff5000ff5000000000000000000000000000ff5000
+ff5000ff5000ff5000ff5000ff5000ff5000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5200ff5000ff5200ff5000ff5200ff5000
+ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000
+ff5200ff5000ff5200ff5000ff5200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000
+ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000
+ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000000000000000000000ff5000
+ff5200ff5000ff5200ff5000ff5200ff5000ff5200000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5400ff5200ff5400ff5200ff5400ff5200
+ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200
+ff5400ff5200ff5400ff5200ff5400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200
+ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200
+ff5400ff5200ff5400ff5200ff5400ff5200ff5400ff5200000000000000000000ff5200
+ff5400ff5200ff5400ff5200ff5400ff5200ff5400000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5400ff5400ff5400ff5400ff5400ff5400
+ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400
+ff5400ff5400ff5400ff5400ff5400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400
+ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400
+ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400000000000000000000ff5400
+ff5400ff5400ff5400ff5400ff5400ff5400ff5400ff5400000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000000000000000
+000000000000ff0000000000000000000000000000ff0000000000000000000000000000
+000000000000ff0000ff0000ff0000000000ff5400ff5600ff5400ff5600ff5400000000
+000000000000000000ff5600000000000000ff5400ff5600ff5400000000000000000000
+ff5400ff5600ff5400ff5600ff5400000000000000000000000000ff0000000000ff0000
+000000000000000000000000ff0000000000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000000000000000000000000000
+ff0000000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000000000
+000000000000000000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff5600ff5400ff5600000000000000000000000000ff5400000000
+000000ff5600ff5400ff5600000000000000000000ff5600ff5400000000000000000000
+000000ff5600000000000000ff5400ff5600ff5400ff5600000000000000000000ff5600
+000000000000000000000000000000ff5600000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000ff0000ff0000000000000000ff0000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5600ff5800ff5600ff5800ff5600ff5800
+000000000000000000000000000000000000ff5600ff5800000000000000ff5600000000
+000000ff5800ff5600ff5800000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+000000000000ff0000000000000000ff0000ff0000000000000000ff0000ff0000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000000000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000000000ff5800ff5600ff5800ff5600000000000000000000000000000000
+000000ff5800ff5600000000000000ff5800000000000000ff5600ff5800000000000000
+000000000000ff5600000000000000ff5800ff5600ff5800000000000000000000ff5800
+ff5600000000000000000000ff5600ff5800ff5600000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5800ff5800ff5800ff5800ff5800ff5800
+000000000000000000ff5800000000000000ff5800000000000000000000ff5800000000
+000000000000ff5800000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000000000000000000000ff0000000000000000000000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000ff5800ff5800ff5800ff5800ff5800000000000000000000ff5800000000
+000000ff5800000000000000000000ff5800000000000000000000ff5800000000000000
+000000ff5800ff5800000000000000000000ff5800ff5800000000000000000000ff5800
+ff5800ff5800000000000000000000ff5800000000ff5800ff5800000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5a00ff5800ff5a00ff5800ff5a00ff5800
+000000000000000000ff5800ff5a00ff5800ff5a00000000000000000000000000000000
+000000000000ff5a00000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000000000000000000000000000ff0000000000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000ff5a00ff5800ff5a00ff5800ff5a00000000000000000000ff5a00ff5800
+ff5a00ff5800000000000000000000000000000000000000000000ff5800000000000000
+000000ff5800ff5a00000000000000000000ff5a00ff5800000000000000000000ff5800
+ff5a00ff5800000000000000000000ff5800000000ff5800ff5a00000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00
+000000000000000000ff5a00ff5c00ff5a00ff5c00000000000000000000ff5c00ff5a00
+ff5c00ff5a00ff5c00000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000ff5c00ff5a00ff5c00ff5a00ff5c00000000000000000000ff5c00ff5a00
+ff5c00ff5a00000000000000000000ff5a00ff5c00ff5a00ff5c00ff5a00000000000000
+000000ff5a00ff5c00000000000000000000ff5c00ff5a00000000000000000000ff5a00
+ff5c00ff5a00ff5c00000000000000000000000000ff5a00ff5c00000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000ff5c00ff5c00ff5c00ff5c00ff5c00ff5c00
+000000000000000000ff5c00ff5c00ff5c00ff5c00000000000000000000ff5c00ff5c00
+ff5c00ff5c00ff5c00000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+000000ff5c00ff5c00ff5c00ff5c00ff5c00ff5c00000000000000000000ff5c00ff5c00
+ff5c00ff5c00000000000000000000ff5c00ff5c00ff5c00ff5c00ff5c00000000000000
+000000ff5c00ff5c00000000000000000000ff5c00ff5c00000000000000000000ff5c00
+ff5c00ff5c00ff5c00000000000000000000ff5c00ff5c00ff5c00ff5c00000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000ff0000ff0000000000000000ff0000ff0000ff0000000000
+000000000000ff0000000000000000000000000000ff0000ff0000000000000000000000
+ff0000000000ff0000ff0000ff0000000000ff5c00ff5e00ff5c00ff5e00ff5c00ff5e00
+000000000000000000ff5e00ff5c00ff5e00ff5c00ff5e00000000000000000000ff5e00
+ff5c00000000ff5c00ff5e00000000000000ff0000000000000000000000000000ff0000
+ff0000000000000000000000ff0000000000000000000000000000ff0000ff0000ff0000
+000000000000000000ff0000ff0000000000ff0000000000ff0000ff0000000000000000
+ff0000ff0000000000000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+000000ff5e00ff5c00ff5e00ff5c00ff5e00ff5c00000000000000000000ff5c00ff5e00
+ff5c00ff5e00ff5c00000000000000000000ff5c00ff5e00000000ff5e00000000000000
+000000000000ff5c00000000000000ff5e00ff5c00ff5e00000000000000000000ff5e00
+ff5c00ff5e00ff5c00ff5e00000000000000ff5c00ff5e00ff5c00ff5e00000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000000000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000000000ff5e00ff6000ff5e00ff6000ff5e00000000
+000000000000000000000000ff5e00ff6000ff5e00ff6000ff5e00000000000000000000
+000000ff6000ff5e00ff6000ff5e00000000000000ff0000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000000000000000000000000000ff0000ff0000
+ff0000000000000000000000000000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000
+000000000000000000000000ff0000000000000000000000000000ff0000ff0000000000
+ff5e00ff6000ff5e00ff6000ff5e00ff6000000000000000000000000000000000ff6000
+ff5e00ff6000ff5e00ff6000000000000000000000000000ff5e00ff6000000000000000
+000000ff6000000000000000ff5e00ff6000ff5e00000000000000000000000000000000
+ff5e00ff6000ff5e00ff6000000000000000ff5e00ff6000ff5e00ff6000ff5e00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6000ff6000ff6000ff6000ff6000ff6000
+ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000
+ff6000ff6000ff6000ff6000ff6000000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000000000000000
+000000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000ff6000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6200ff6000ff6200ff6000ff6200ff6000
+ff6200ff6000ff6200ff6000ff6200ff6000ff6200ff6000ff6200ff6000ff6200ff6000
+ff6200ff6000ff6200ff6000ff6200000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6200ff6000ff6200ff6000ff6200ff6000ff6200ff6000ff6200ff6000000000000000
+000000ff6000ff6200ff6000ff6200ff6000ff6200ff6000ff6200ff6000ff6200000000
+000000000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6400ff6200ff6400ff6200ff6400ff6200
+ff6400ff6200ff6400ff6200ff6400ff6200ff6400ff6200ff6400ff6200ff6400ff6200
+ff6400ff6200ff6400ff6200ff6400000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6400ff6200ff6400ff6200ff6400ff6200ff6400ff6200ff6400ff6200000000000000
+000000ff6200ff6400ff6200ff6400ff6200ff6400ff6200ff6400ff6200ff6400000000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000000000000000000000000000000000000000ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400000000ff0000000000000000000000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400000000000000000000
+000000000000ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400000000
+ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6400ff6600ff6400ff6600ff6400ff6600
+ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600
+ff6400ff6600ff6400ff6600ff6400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600
+ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600ff6400ff6600ff6400000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6600ff6800ff6600ff6800ff6600ff6800
+ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800
+ff6600ff6800ff6600ff6800ff6600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800
+ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800ff6600ff6800ff6600000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6800ff6800ff6800ff6800ff6800ff6800
+ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800
+ff6800ff6800ff6800ff6800ff6800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800
+ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800ff6800000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00
+ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00
+ff6a00ff6a00ff6a00ff6a00ff6a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00
+ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00ff6a00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00
+ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00
+ff6c00ff6a00ff6c00ff6a00ff6c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00
+ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00ff6a00ff6c00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00
+ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00
+ff6c00ff6c00ff6c00ff6c00ff6c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00
+ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00ff6c00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff6e00ff7000ff6e00ff7000ff6e00ff7000
+ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000
+ff6e00ff7000ff6e00ff7000ff6e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000
+ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00ff7000ff6e00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7000ff7000ff7000ff7000ff7000ff7000
+ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000
+ff7000ff7000ff7000ff7000ff7000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000
+ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000ff7000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7200ff7200ff7200ff7200ff7200ff7200
+ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200
+ff7200ff7200ff7200ff7200ff7200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200
+ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200ff7200000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7400ff7200ff7400ff7200ff7400ff7200
+ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200
+ff7400ff7200ff7400ff7200ff7400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200
+ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200ff7400ff7200ff7400000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7400ff7400ff7400ff7400ff7400ff7400
+ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400
+ff7400ff7400ff7400ff7400ff7400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400
+ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400ff7400000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7600ff7600ff7600ff7600ff7600ff7600
+ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600
+ff7600ff7600ff7600ff7600ff7600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600
+ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600ff7600000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7600ff7800ff7600ff7800ff7600ff7800
+ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800
+ff7600ff7800ff7600ff7800ff7600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800
+ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7800ff7a00ff7800ff7a00ff7800ff7a00
+ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00
+ff7800ff7a00ff7800ff7a00ff7800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00
+ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800ff7a00ff7800000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00
+ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00000000ff7a00
+ff7a00ff7a00ff7a00ff7a00ff7a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00
+ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00ff7a00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00
+ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00000000ff7a00
+ff7c00ff7a00ff7c00ff7a00ff7c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00
+ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00ff7a00ff7c00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00
+ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00000000000000ff7c00
+ff7e00ff7c00ff7e00ff7c00ff7e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00
+ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00ff7c00ff7e00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000ff0000ff0000ff0000000000000000000000000000ff0000000000000000000000
+000000ff0000000000000000000000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000000000000000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000000000ff0000000000000000000000000000ff0000000000
+000000000000000000ff0000ff0000000000ff7e00000000000000000000ff7e00ff7e00
+ff7e00ff7e00000000000000000000000000ff7e00000000000000000000000000000000
+000000ff7e00ff7e00ff7e00ff7e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000000000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ff0000000000000000000000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000000000
+000000000000000000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000000000
+000000ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+000000ff0000000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000
+000000000000000000000000000000ff0000000000000000000000ff0000ff0000000000
+ff7e00ff7e00ff7e00ff7e00ff7e00ff7e00ff7e00ff7e00ff7e00000000000000000000
+ff7e00ff7e00000000000000000000000000ff7e00000000000000000000ff7e00000000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+000000000000000000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff000000
+000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000
+ff0000ff0000000000000000ff0000000000000000ff0000ff0000ff0000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff7e00000000000000ff8000
+ff7e00000000000000ff8000ff7e00000000ff7e00ff8000000000000000000000ff8000
+ff7e00ff8000ff7e00ff8000ff7e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000ff0000000000000000ff0000ff0000000000000000000000000000ff0000
+000000000000000000ff0000ff0000ff0000000000000000ff0000ff0000000000000000
+ff0000ff0000000000000000ff0000ff0000000000000000ff0000ff0000ff0000ff0000
+000000000000ff0000000000000000000000000000ff0000ff0000ff0000000000000000
+ff0000000000000000ff0000ff0000ff0000000000000000ff0000000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000000000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000
+000000ff0000ff0000000000000000ff0000000000000000ff0000ff0000000000000000
+000000000000ff0000000000000000ff0000ff0000ff0000000000000000000000ff0000
+ff0000000000000000000000ff0000ff0000ff0000000000ff0000ff0000ff0000000000
+ff7e00ff8000ff7e00ff8000ff7e00ff8000ff7e00ff8000000000000000ff7e00000000
+000000ff8000ff7e00000000000000000000000000ff8000000000000000000000000000
+ff0000ff0000000000000000ff0000ff0000000000000000ff0000ff0000000000000000
+ff0000ff0000000000000000ff0000ff0000ff0000ff0000000000000000ff0000000000
+000000000000000000ff0000ff0000ff0000000000000000ff0000000000000000ff0000
+ff0000ff0000000000000000ff0000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000000000000000
+ff0000000000000000000000ff0000000000000000000000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff8000000000000000000000
+ff8000000000000000000000ff8000ff8200ff8000ff8200000000000000000000ff8200
+ff8000ff8200ff8000ff8200ff8000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000000000000000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000000000000000000000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000000000
+000000ff0000000000000000000000ff0000000000000000000000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000000000ff0000ff0000ff0000ff0000000000
+ff8000ff8200ff8000ff8200ff8000ff8200ff8000000000000000000000ff8000000000
+000000000000ff8000000000000000000000ff8000ff8200000000000000000000000000
+ff0000000000000000000000ff0000ff0000000000000000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000000000000000000000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000000000000000000000000000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000000000000000000000000000
+ff8200000000000000000000000000ff8200ff8200ff8200000000000000000000ff8200
+ff8200ff8200ff8200ff8200ff8200000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000000000000000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+000000000000000000000000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000000000000000000000000000000000000000000000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000000000000000000000ff0000000000ff0000ff0000ff0000ff0000000000
+ff8200ff8200ff8200ff8200ff8200ff8200ff8200000000000000000000000000000000
+000000000000ff8200000000000000000000ff8200ff8200000000000000000000000000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000000000000000000000000000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff8400ff8200ff8400ff8200
+ff8400ff8200000000000000000000000000ff8400ff8200000000000000000000ff8200
+ff8400ff8200ff8400ff8200ff8400000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000
+ff8400ff8200ff8400ff8200ff8400ff8200ff8400000000000000000000ff8400ff8200
+ff8400ff8200ff8400000000000000000000ff8400ff8200000000000000000000000000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffff000000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff8600ff8400ff8600ff8400
+ff8600ff8400ff8600000000000000000000ff8600ff8400000000000000000000ff8400
+ff8600ff8400ff8600ff8400ff8600000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000
+ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000
+ff8600ff8400ff8600ff8400ff8600ff8400ff8600000000000000000000ff8600ff8400
+ff8600ff8400ff8600000000000000000000ff8600ff8400000000000000000000000000
+ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff000000
+000000000000ff0000ff0000ff0000000000000000000000ff0000000000000000000000
+000000ff0000ff0000000000000000000000ff0000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000000000ff0000ff0000000000000000
+ff0000000000000000000000000000ff0000ff0000000000000000000000ff0000000000
+000000000000000000ff0000ff0000000000000000000000000000ff8600ff8600000000
+ff8600000000ff8600ff8600000000000000ff8600ff8600000000000000000000ff8600
+000000ff8600ff8600ff8600ff8600000000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000ff0000000000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000ff0000000000000000000000ff0000ff0000000000
+ff0000ff0000000000000000ff0000ff0000000000000000ff0000ff0000ff0000ff0000
+000000000000ff0000000000000000000000000000000000ff0000ff0000000000000000
+000000ff0000ff0000000000ff0000ff0000000000000000ff0000000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+000000000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000ff0000ff0000000000ff0000000000000000
+000000000000ff0000000000000000ff0000ff0000ff0000000000000000000000ff0000
+ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000000000
+ff8600ff8600ff8600ff8600ff8600ff8600ff8600ff8600000000000000000000ff8600
+ff8600000000ff8600000000000000000000ff8600ff8600000000000000000000000000
+ff0000ff0000000000000000000000ff0000ff0000000000ff0000ff0000000000000000
+ff0000ff0000000000000000ff0000ff0000ff0000ff0000000000000000ff0000000000
+000000000000000000000000ff0000ff0000000000000000000000ff0000ff0000000000
+ff0000ff0000000000000000ff0000000000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000ff0000ff0000ff0000ff0000ff0000000000000000000000ff0000000000000000
+000000000000ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000
+000000ff0000000000000000000000ff0000ff0000ff0000000000000000000000ff0000
+000000000000000000000000ff0000000000ff8600000000000000000000000000ff8800
+ff8600000000000000000000000000ff8800ff8600ff8800ff8600000000000000000000
+ff8600ff8800ff8600ff8800ff8600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000ff0000000000000000000000000000000000ff0000
+000000000000000000000000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ff0000000000000000ff0000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000ff0000ff0000000000000000ff0000000000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000000000
+000000000000000000000000ff0000000000000000000000000000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000000000ff0000
+ff0000ff0000ff0000ff0000000000000000000000000000ff0000ff0000000000000000
+000000ff0000000000000000ff0000ff0000ff0000000000000000000000000000000000
+ff0000ff0000ff0000ff0000000000000000ff0000ff0000ff0000ff0000ff0000000000
+ff8600ff8800ff8600ff8800ff8600ff8800ff8600ff8800ff8600000000000000000000
+000000ff8800000000000000000000000000000000ff8800000000000000000000000000
+ff0000ff0000ff0000000000000000000000000000ff0000ff0000ff0000ff0000000000
+000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000ff0000
+000000000000ff0000ff0000ff0000ff0000ff0000000000000000000000000000ff0000
+ff0000ff0000ff0000000000000000ff0000000000000000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff8800ff8a00ff8800ff8a00ff8800ff8a00
+ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00
+ff8800ff8a00ff8800ff8a00ff8800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00
+ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800ff8a00ff8800000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00
+ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00
+ff8a00ff8a00ff8a00ff8a00ff8a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000ff0000000000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00
+ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00ff8a00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000
+000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000000000
+000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00
+ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00
+ff8e00000000000000000000000000000000000000000000000000000000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000000000000000000000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000000000000000ff0000ff0000ff0000ff0000ff0000ff0000000000000000000000
+000000000000000000000000000000000000ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00
+ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00ff8e00ff8c00ff8e00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00
+ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00
+ff8e00ff8e00ff8e00ff8e00ff8e00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00
+ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00ff8e00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9000ff9000ff9000ff9000ff9000ff9000
+ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000
+ff9000ff9000ff9000ff9000ff9000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000
+ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000ff9000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9000ff9200ff9000ff9200ff9000ff9200
+ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200
+ff9000ff9200ff9000ff9200ff9000000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200
+ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200ff9000ff9200ff9000000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9200ff9200ff9200ff9200ff9200ff9200
+ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200
+ff9200ff9200ff9200ff9200ff9200000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200
+ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200ff9200000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9400ff9400ff9400ff9400ff9400ff9400
+ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400
+ff9400ff9400ff9400ff9400ff9400000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400
+ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400ff9400000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9600ff9600ff9600ff9600ff9600ff9600
+ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600
+ff9600ff9600ff9600ff9600ff9600000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600
+ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600ff9600000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9800ff9800ff9800ff9800ff9800ff9800
+ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800
+ff9800ff9800ff9800ff9800ff9800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800
+ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800ff9800000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9800ff9a00ff9800ff9a00ff9800ff9a00
+ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00
+ff9800ff9a00ff9800ff9a00ff9800000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00
+ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800ff9a00ff9800000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00
+ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00
+ff9a00ff9a00ff9a00ff9a00ff9a00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00
+ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00ff9a00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000000000ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00
+ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00
+ff9c00ff9a00ff9c00ff9a00ff9c00000000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00
+ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00ff9a00ff9c00000000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000
+ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00
+ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00
+ff9e00ff9c00ff9e00ff9c00ff9e00000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00
+ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00ff9c00ff9e00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800000000ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00000000ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800000000
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00000000
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00
+ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800ff1a00ff1800000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200000000ff9e00ffa000ff9e00ffa000ff9e00ffa000
+ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000
+ff9e00ffa000ff9e00ffa000ff9e00000000ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200000000
+ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000
+ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00ffa000ff9e00000000
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400
+ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200ff2400ff2200000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00000000ffa000ffa200ffa000ffa200ffa000ffa200
+ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200
+ffa000ffa200ffa000ffa200ffa000000000ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00000000
+ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200
+ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200ffa000ffa200ffa000000000
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00
+ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00ff2c00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600000000ffa200ffa200ffa200ffa200ffa200ffa200
+ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200
+ffa200ffa200ffa200ffa200ffa200000000ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600000000
+ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200
+ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200ffa200000000
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600
+ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600ff3600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000000000ffa400ffa200ffa400ffa200ffa400ffa200
+ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200
+ffa400ffa200ffa400ffa200ffa400000000ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000000000
+ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200
+ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200ffa400ffa200ffa400000000
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00
+ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000ff3e00ff4000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800000000ffa400ffa400ffa400ffa400ffa400ffa400
+ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400
+ffa400ffa400ffa400ffa400ffa400000000ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800000000
+ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400
+ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400ffa400000000
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800
+ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800ff4800000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000000000ffa600ffa600ffa600ffa600ffa600ffa600
+ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600
+ffa600ffa600ffa600ffa600ffa600000000ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000000000
+ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600
+ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600ffa600000000
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200
+ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000ff5200ff5000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00000000ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600000000ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00000000
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600000000
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00
+ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00ff5c00ff5a00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400000000ffa800ffa800ffa800ffa800ffa800ffa800
+ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800
+ffa800ffa800ffa800ffa800ffa800000000ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400000000000000000000
+000000000000000000000000000000ff6400000000000000ff6400ff6400000000000000
+000000000000000000000000000000000000ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400000000000000000000000000000000ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400000000000000000000000000000000000000000000
+000000000000000000000000000000ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400000000
+ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800
+ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800ffa800000000
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400
+ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400ff6400000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00000000ffaa00ffa800ffaa00ffa800ffaa00ffa800
+ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800
+ffaa00ffa800ffaa00ffa800ffaa00000000ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00000000000000000000ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00000000000000000000000000ff6e00ff6e00ff6e00ff6e00
+000000000000000000000000ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00000000000000000000ff6e00ff6e00ff6e00ff6e00000000000000ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00000000000000000000000000ff6e00
+ff6e00ff6e00ff6e00000000000000000000000000ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00000000
+ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800
+ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00ffa800ffaa00000000
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00
+ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00ff6e00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800000000ffac00ffaa00ffac00ffaa00ffac00ffaa00
+ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00
+ffac00ffaa00ffac00ffaa00ffac00000000ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800000000000000000000ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800000000000000000000ff7800ff7600ff7800ff7600
+000000000000000000000000ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+000000000000000000ff7600ff7800ff7600ff7800ff7600ff7800ff7600000000000000
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800000000000000000000ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800000000000000000000ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800000000
+ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00
+ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00ffaa00ffac00000000
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600
+ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800ff7600ff7800000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200000000ffac00ffac00ffac00ffac00ffac00ffac00
+ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00
+ffac00ffac00ffac00ffac00ffac00000000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000000000000000000000ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000000000ff8000ff8200ff8000ff8200ff8000
+000000000000000000ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200000000
+000000000000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000000000000000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200000000000000000000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200000000000000000000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200000000
+ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00
+ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00ffac00000000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000
+ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200ff8000ff8200000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00000000ffac00ffae00ffac00ffae00ffac00ffae00
+ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00
+ffac00ffae00ffac00ffae00ffac00000000ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00000000000000000000ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000ff8c00ff8c00ff8c00ff8c00ff8c00
+000000000000000000ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000000000
+000000ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000000000
+000000ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000000000000000ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00000000000000000000ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000
+ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00
+ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00ffac00ffae00ffac00000000
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00
+ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00ff8c00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600000000ffae00ffae00ffae00ffae00ffae00ffae00
+ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00
+ffae00ffae00ffae00ffae00ffae00000000ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400000000000000000000ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400000000ff9400ff9600ff9400ff9600ff9400
+000000000000000000ff9400ff9600ff9400ff9600ff9400ff9600000000000000000000
+000000ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400000000000000
+000000ff9400ff9600ff9400ff9600ff9400ff9600000000000000000000ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600000000000000000000ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600000000
+ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00
+ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00ffae00000000
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400
+ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600ff9400ff9600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00000000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000000000ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00000000000000000000000000ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00000000
+000000000000ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00000000000000000000
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00000000000000
+000000ff9e00ff9e00ff9e00ff9e00ff9e00000000000000000000ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00000000000000000000ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00000000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000000000
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00
+ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00ff9e00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600000000ffb200ffb000ffb200ffb000ffb200ffb000
+ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000
+ffb200ffb000ffb200ffb000ffb200000000ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600000000000000000000ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600000000
+000000000000ffa600ffa800ffa600ffa800ffa600ffa800000000000000000000000000
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800000000000000
+000000ffa800ffa600ffa800ffa600ffa800000000000000000000ffa800ffa600ffa800
+ffa600ffa800ffa600000000000000000000000000ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600000000
+ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000
+ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000ffb200ffb000ffb200000000
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800
+ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600ffa800ffa600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000000000ffb200ffb200ffb200ffb200ffb200ffb200
+ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200
+ffb200ffb200ffb200ffb200ffb200000000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+000000000000000000000000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000000000
+000000000000ffb000ffb000ffb000ffb000ffb000ffb000000000000000000000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000000000000000000000
+000000ffb000ffb000ffb000ffb000ffb000000000000000000000ffb000ffb000ffb000
+ffb000ffb000000000000000000000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000000000
+ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200
+ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200ffb200000000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000
+ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000ffb000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800000000ffb400ffb400ffb400ffb400ffb400ffb400
+ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400
+ffb400ffb400ffb400ffb400ffb400000000ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+000000000000000000ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800000000000000
+000000000000ffb800ffb800ffb800ffb800ffb800000000000000000000000000ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800000000000000000000
+ffb800ffb800ffb800ffb800ffb800000000000000000000000000000000000000000000
+000000000000000000ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800000000
+ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400
+ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400ffb400000000
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000000000ffb600ffb600ffb600ffb600ffb600ffb600
+ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600
+ffb600ffb600ffb600ffb600ffb600000000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+000000000000000000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000000000
+000000000000000000000000000000000000ffc000ffc000ffc000ffc000000000000000
+000000ffc000ffc000ffc000ffc000ffc000ffc000000000000000000000000000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000000000000000000000
+ffc000ffc000ffc000ffc000ffc000000000000000000000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000000000
+ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600
+ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600ffb600000000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600000000ffb600ffb800ffb600ffb800ffb600ffb800
+ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800
+ffb600ffb800ffb600ffb800ffb600000000ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+000000000000000000ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600000000000000000000ffc600ffc800ffc600ffc800ffc600ffc800000000000000
+000000ffc800ffc600ffc800ffc600ffc800ffc600000000000000000000ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800000000000000000000000000
+ffc600ffc800ffc600ffc800ffc600000000000000000000ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600000000
+ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800
+ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800ffb600ffb800ffb600000000
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800
+ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00000000ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800000000ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+000000000000000000ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00000000000000000000ffce00ffce00ffce00ffce00ffce00ffce00000000000000
+000000ffce00ffce00ffce00ffce00ffce00ffce00000000000000000000ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00000000000000000000ffce00
+ffce00ffce00ffce00ffce00ffce00000000000000000000ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00000000
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800
+ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800ffb800000000
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600000000ffba00ffb800ffba00ffb800ffba00ffb800
+ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800
+ffba00ffb800ffba00ffb800ffba00000000ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+000000000000000000ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600000000000000000000ffd600ffd400ffd600ffd400ffd600000000000000000000
+000000ffd400ffd600ffd400ffd600ffd400ffd600000000000000000000ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600000000000000000000000000ffd400
+ffd600ffd400ffd600ffd400000000000000000000000000ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600000000
+ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800
+ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800ffba00ffb800ffba00000000
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00000000ffba00ffba00ffba00ffba00ffba00ffba00
+ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00
+ffba00ffba00ffba00ffba00ffba00000000ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00000000000000ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+000000000000000000ffda00ffdc00ffda00ffdc00ffda00ffdc00000000000000000000
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00000000000000000000ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00000000000000000000ffdc00ffda00
+ffdc00ffda00ffdc00ffda00000000000000000000ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00000000
+ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00
+ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00ffba00000000
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000000000ffba00ffbc00ffba00ffbc00ffba00ffbc00
+ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00
+ffba00ffbc00ffba00ffbc00ffba00000000ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000000000000000000000ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+000000000000000000ffe200ffe000ffe200ffe000ffe200ffe000000000000000000000
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200000000000000ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200000000000000000000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200000000000000000000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000000000
+ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00
+ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00ffbc00ffba00000000
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600000000ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00
+ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00
+ffbc00ffbc00ffbc00ffbc00ffbc00000000ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600000000000000000000ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+000000000000000000ffe600ffe600ffe600ffe600ffe600ffe600000000000000000000
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600000000000000ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600000000000000000000ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600000000000000000000ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600000000
+ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00
+ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00ffbc00000000
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00000000ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00
+ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00
+ffbe00ffbe00ffbe00ffbe00ffbe00000000ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00000000000000000000ffea00ffea00ffea00ffea00ffea00000000
+000000000000ffea00ffea00ffea00ffea00ffea00ffea00000000000000000000000000
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00000000000000ffea00
+ffea00ffea00ffea00000000000000000000000000ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00000000000000000000000000ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00000000
+ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00
+ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00ffbe00000000
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00000000ffc000ffbe00ffc000ffbe00ffc000ffbe00
+ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00
+ffc000ffbe00ffc000ffbe00ffc000000000ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00000000000000000000000000000000000000000000
+000000ffee00ffee00ffee00ffee00ffee00000000000000000000000000000000000000
+000000000000ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00000000000000
+000000000000000000000000000000ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00000000000000000000000000000000000000000000000000ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00000000
+ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00
+ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000ffbe00ffc000000000
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000000000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000000000fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000000000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000
+ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000ffc000000000
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400000000ffc000ffc200ffc000ffc200ffc000ffc200
+ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200
+ffc000ffc200ffc000ffc200ffc000000000fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400000000
+ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200
+ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200ffc000ffc200ffc000000000
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600000000ffc200ffc200ffc200ffc200ffc200ffc200
+ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200
+ffc200ffc200ffc200ffc200ffc200000000fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600000000
+ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200
+ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200ffc200000000
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00000000ffc400ffc200ffc400ffc200ffc400ffc200
+ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200
+ffc400ffc200ffc400ffc200ffc400000000fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00000000
+ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200
+ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200ffc400ffc200ffc400000000
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00000000ffc400ffc400ffc400ffc400ffc400ffc400
+ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400
+ffc400ffc400ffc400ffc400ffc400000000fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00000000
+ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400
+ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400ffc400000000
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00000000ffc400ffc600ffc400ffc600ffc400ffc600
+ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600
+ffc400ffc600ffc400ffc600ffc400000000fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600
+ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600ffc400ffc600ffc400000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00000000ffc600ffc600ffc600ffc600ffc600ffc600
+ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600
+ffc600ffc600ffc600ffc600ffc600000000fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000
+ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600
+ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600ffc600000000
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffc800ffc600ffc800ffc600ffc800ffc600
+ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600
+ffc800ffc600ffc800ffc600ffc800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600
+ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800ffc600ffc800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffc800ffc800ffc800ffc800ffc800ffc800
+ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800
+ffc800ffc800ffc800ffc800ffc800000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800
+ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800ffc800000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000000000000000000000000000000000
+000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffc800ffca00ffc800ffca00ffc800ffca00
+ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00
+ffc800ffca00ffc800ffca00ffc800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00
+ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00ffc800ffca00ffc800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffca00ffca00ffca00ffca00ffca00ffca00
+ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00
+ffca00ffca00ffca00ffca00ffca00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00
+ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00ffca00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffcc00ffca00ffcc00ffca00ffcc00ffca00
+ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00
+ffcc00ffca00ffcc00ffca00ffcc00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00
+ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00ffca00ffcc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00
+ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00
+ffcc00ffcc00ffcc00ffcc00ffcc00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00
+ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00ffcc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffcc00ffce00ffcc00ffce00ffcc00ffce00
+ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00
+ffcc00ffce00ffcc00ffce00ffcc00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00
+ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00ffce00ffcc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00
+ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00ffce00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffff000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd000ffce00ffd000ffce00ffd000ffce00
+ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00
+ffd000ffce00ffd000ffce00ffd000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00
+ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00ffd000ffce00ffd000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd000ffd000ffd000ffd000ffd000ffd000
+ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000
+ffd000ffd000ffd000ffd000ffd000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000
+ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000ffd000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd000ffd200ffd000ffd200ffd000ffd200
+ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200
+ffd000ffd200ffd000ffd200ffd000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200
+ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200ffd000ffd200ffd000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+000000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd200ffd200ffd200ffd200ffd200ffd200
+ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200
+ffd200ffd200ffd200ffd200ffd200000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200
+ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200ffd200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd400ffd200ffd400ffd200ffd400ffd200
+ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200
+ffd400ffd200ffd400ffd200ffd400000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200
+ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200ffd400ffd200ffd400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd400ffd400ffd400ffd400ffd400ffd400
+ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400
+ffd400ffd400ffd400ffd400ffd400000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400
+ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400ffd400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000ffffff000000
+000000000000ffffffffffffffffffffffffffffff000000000000000000ffffff000000
+000000000000000000000000ffffff000000000000000000000000ffffff000000000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000
+000000000000000000000000000000000000ffffff000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffff000000000000000000000000ffffff000000000000000000ffffff
+ffffff000000000000000000000000ffffff000000000000000000ffffffffffff000000
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00000000000000000000000000000000000000000000000000000000
+000000ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00
+000000000000000000000000ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd400ffd600ffd400ffd600ffd400ffd600
+ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600
+ffd400ffd600ffd400ffd600ffd400000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600
+ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffff000000000000000000000000ffffff000000000000000000000000
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff
+ffffff000000000000000000000000ffffff000000000000000000000000000000000000
+ffff00000000000000000000ffff00ffff00000000000000000000000000ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffffff
+ffffffffffffffffff000000000000000000000000ffffff000000000000000000000000
+000000000000000000000000000000000000ffffffffffffffffff000000000000000000
+000000ffffffffffffffffff000000000000000000000000ffffff000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ffffff
+000000000000000000ffffffffffffffffff000000000000ffffff000000000000ffffff
+000000000000000000ffffffffffffffffff000000000000ffffffffffffffffff000000
+cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000ffffff000000000000
+000000ffffffffffff000000000000000000000000ffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffffffffffff000000000000ffffffffffff000000000000ffffffffffff000000
+000000ffffffffffffffffff000000000000000000000000ffffff000000000000000000
+ffffffffffff000000000000000000000000ffffff000000000000000000ffffff000000
+ffff00000000000000ffff00000000000000ffff00ffff00ffff00000000000000ffff00
+ffff00000000000000ffff00000000000000000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00000000000000ffff00ffff00000000000000ffff00ffff00
+ffff00000000000000000000000000ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400
+ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600ffd400ffd600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00
+000000000000ffff00000000000000000000ffff00ffff00ffff00000000000000ffff00
+ffff00000000000000ffff00ffff00ffff00000000000000ffff00ffff00000000ffff00
+ffff00ffff00000000000000ffff00000000000000ffff00ffff00ffff00000000000000
+ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+000000ffffff000000000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffff000000000000ffffffffffff000000000000ffffff
+000000000000ffffffffffff000000000000ffffffffffffffffff000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffff00
+000000000000000000ffff00ffff00ffff00000000000000ffff00000000000000000000
+ffffffffffff000000000000ffffffffffff000000000000ffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffffffffff000000000000000000000000ffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffff000000000000000000
+ffffff000000000000000000ffffff000000000000000000000000ffffff000000000000
+000000000000cdcd00000000000000ffffffffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000ffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ffff00000000000000000000ffff00000000000000000000ffff00
+ffff00000000000000ffff00000000000000000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd600ffd600ffd600ffd600ffd600ffd600
+ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600
+ffd600ffd600ffd600ffd600ffd600000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600
+ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600ffd600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00000000000000000000ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffff000000000000000000000000ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000000000000000
+000000000000000000ffff00ffff00000000000000000000ffff00000000000000000000
+ffffff000000000000000000ffffffffffff000000000000ffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000000000000000000000000000
+ffffff000000000000000000ffffff000000000000000000000000ffffff000000000000
+ffff00ffff00000000000000ffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000000000000000000000000000ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd600ffd800ffd600ffd800ffd600ffd800
+ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800
+ffd600ffd800ffd600ffd800ffd600000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800
+ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800ffd600ffd800ffd600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000000000ffff00ffff00
+ffff00000000000000000000000000000000000000000000ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffff000000000000
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffff000000000000000000ffffff000000ffffff000000000000ffffff000000000000
+ffff00ffff00ffff00ffff00000000000000ffffffffffffffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffd800ffd800ffd800ffd800ffd800ffd800
+ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800
+ffd800ffd800ffd800ffd800ffd800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800
+ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800ffd800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffff00ffff00ffff00000000
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffff000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffda00ffd800ffda00ffd800ffda00ffd800
+ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800
+ffda00ffd800ffda00ffd800ffda00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800
+ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800ffda00ffd800ffda00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff000000
+000000000000ffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000000000ffff00ffff00000000
+ffffff000000000000000000ffffffffffffffffffffffffffffff000000000000000000
+ffffffffffffffffff000000000000000000ffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffffffffff000000000000000000ffffffffffff000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000
+000000ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffffffffffff000000ffffffffffff000000000000ffffffffffff000000
+000000ffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffff000000
+ffff00000000000000000000ffff00ffff00000000ffff00ffff00000000000000000000
+ffff00ffff00000000ffff00000000000000000000ffff00000000ffff00000000000000
+000000ffff00ffff00ffff00000000000000ffff00ffff00000000000000ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffda00ffda00ffda00ffda00ffda00ffda00
+ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00
+ffda00ffda00ffda00ffda00ffda00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00
+ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00ffda00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000ffff00000000000000000000ffff00ffff00ffff00000000000000ffff00
+ffff00000000000000ffff00ffff00ffff00000000ffff00ffff00000000000000ffff00
+ffff00ffff00000000000000000000ffff00ffff00000000ffff00ffff00000000000000
+ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffff000000000000000000ffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffffffffffff000000ffffff
+000000000000ffffffffffff000000000000ffffffffffffffffff000000000000000000
+ffffffffffff000000000000000000ffffffffffff000000000000000000ffffffffffff
+000000000000000000ffffffffffff000000000000000000000000000000ffff00000000
+ffffffffffff000000000000000000ffffffffffff000000ffffff000000000000000000
+ffffff000000ffffff000000000000000000ffffffffffff000000000000ffffffffffff
+000000000000ffffffffffffffffff000000000000000000ffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000ffffff
+000000000000000000000000ffffffffffffffffff000000000000000000000000ffffff
+ffffffffffffffffff000000ffffffffffffffffffffffff000000ffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000000000000000000000ffffff000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffff000000000000000000000000000000ffffff000000000000000000
+000000000000000000000000000000000000ffffff000000000000000000000000000000
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00000000000000000000ffff00000000000000000000
+000000000000ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00
+000000000000000000000000000000ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffda00ffdc00ffda00ffdc00ffda00ffdc00
+ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00
+ffda00ffdc00ffda00ffdc00ffda00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00
+ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00000000000000000000000000000000ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000
+000000ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffff000000000000000000000000000000000000000000000000000000
+000000ffffff000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000ffffffffffff
+ffffff000000000000000000000000ffffffffffffffffff000000000000000000000000
+000000ffffff000000000000000000000000000000000000000000000000000000ffffff
+000000000000000000000000000000cdcd00cdcd00000000000000000000000000000000
+ffffffffffffffffff000000000000000000000000ffffffffffffffffff000000000000
+000000ffffff000000000000000000000000000000ffffffffffff000000000000000000
+000000ffffffffffffffffff000000000000000000000000000000ffffff000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00
+ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00ffda00ffdc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00
+ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00
+ffdc00ffdc00ffdc00ffdc00ffdc00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00
+ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00ffdc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffdc00ffde00ffdc00ffde00ffdc00ffde00
+ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00
+ffdc00ffde00ffdc00ffde00ffdc00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00
+ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00ffde00ffdc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffde00ffde00ffde00ffde00ffde00ffde00
+ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00
+ffde00ffde00ffde00ffde00ffde00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00
+ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffde00ffde00ffde00ffde00ffde00ffde00
+ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00
+ffde00ffde00ffde00ffde00ffde00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00
+ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00ffde00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffde00ffe000ffde00ffe000ffde00ffe000
+ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000
+ffde00ffe000ffde00ffe000ffde00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000
+ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000ffde00ffe000ffde00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe000ffe000ffe000ffe000ffe000ffe000
+ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000
+ffe000ffe000ffe000ffe000ffe000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000
+ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000ffe000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200
+ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe200ffe000ffe200ffe000ffe200ffe000
+ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000
+ffe200ffe000ffe200ffe000ffe200000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000
+ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200ffe000ffe200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000
+000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe200ffe200ffe200ffe200ffe200ffe200
+ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200
+ffe200ffe200ffe200ffe200ffe200000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200
+ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200ffe200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+000000000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe200ffe400ffe200ffe400ffe200ffe400
+ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400
+ffe200ffe400ffe200ffe400ffe200000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400
+ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400ffe200ffe400ffe200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe400ffe400ffe400ffe400ffe400ffe400
+ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400
+ffe400ffe400ffe400ffe400ffe400000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400
+ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe400ffe400ffe400ffe400ffe400ffe400
+ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400
+ffe400ffe400ffe400ffe400ffe400000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400
+ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400ffe400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe400ffe600ffe400ffe600ffe400ffe600
+ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600
+ffe400ffe600ffe400ffe600ffe400000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600
+ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600ffe400ffe600ffe400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600
+ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600ffe600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00
+cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe600ffe800ffe600ffe800ffe600ffe800
+ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800
+ffe600ffe800ffe600ffe800ffe600000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800
+ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00cdcd00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe800ffe600ffe800ffe600ffe800ffe600
+ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600
+ffe800ffe600ffe800ffe600ffe800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600
+ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800ffe600ffe800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe800ffe800ffe800ffe800ffe800ffe800
+ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800
+ffe800ffe800ffe800ffe800ffe800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800
+ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800ffe800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffe800ffea00ffe800ffea00ffe800ffea00
+ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00
+ffe800ffea00ffe800ffea00ffe800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00
+ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffea00ffe800ffea00ffe800ffea00ffe800
+ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800
+ffea00ffe800ffea00ffe800ffea00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800
+ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00ffe800ffea00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00
+ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00ffea00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffec00ffea00ffec00ffea00ffec00ffea00
+ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00
+ffec00ffea00ffec00ffea00ffec00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00
+ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00ffec00ffea00ffec00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00000000
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00000000
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00
+ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00ffec00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffec00ffee00ffec00ffee00ffec00
+ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00
+ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00000000
+ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00
+ffee00ffec00ffee00ffec00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000
+ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00
+ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffee00ffec00ffee00ffec00ffee00
+ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00
+ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00000000000000
+ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00
+ffec00ffee00ffec00ffee00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000
+ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00
+ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00ffee00ffec00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00000000
+000000000000000000ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00000000
+000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00000000ffff00000000000000000000000000ffee00
+000000000000000000000000ffee00ffee00ffee00ffee00000000000000000000ffee00
+ffee00ffee00ffee00000000000000000000000000ffee00000000000000000000000000
+000000000000ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00000000000000000000ffff00ffff00000000000000000000000000ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000000000
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00000000000000000000ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00ffff00000000000000000000000000ffff00000000000000000000
+000000ffff00000000000000000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00000000000000
+ffff00ffff00ffff00000000000000000000ffff00ffff00000000000000000000000000
+ffff00000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00000000
+000000000000000000000000ffee00000000000000000000ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00000000000000000000000000
+ffff00000000000000000000000000ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000000000ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000
+000000ffff00ffff00000000000000ffff00000000000000ffff00ffff00ffff00000000
+000000ffff00ffff00000000000000000000ffff00000000000000000000000000ffee00
+ffee00000000000000000000ffee00ffee00ffee00000000000000ffee00000000000000
+ffee00ffee00000000000000ffee00ffee00000000ffee00ffee00000000000000000000
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00ffee00
+ffee00000000000000000000000000000000ffff00ffff00000000000000000000000000
+ffff00000000000000000000ffff00ffff00ffff00000000000000ffff00ffff00000000
+000000ffff00ffff00000000000000ffff00ffff00000000000000ffff00ffff00ffff00
+ffff00000000000000ffff00000000000000000000000000ffff00ffff00ffff00000000
+000000ffff00000000000000ffff00ffff00ffff00000000000000ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00
+000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000
+ffff00ffff00000000000000ffff00000000000000ffff00ffff00000000000000000000
+000000ffff00000000000000ffff00ffff00ffff00000000000000000000ffff00000000
+000000000000000000ffee00ffee00ffee00000000ffee00ffee00ffee00ffee00ffee00
+ffee00ffee00ffee00ffee00ffee00ffee00ffee00000000000000ffee00000000000000
+ffff00ffff00000000000000000000000000ffff00000000000000000000ffff00ffff00
+ffff00000000000000ffff00ffff00000000000000ffff00ffff00000000000000ffff00
+ffff00000000000000ffff00ffff00ffff00ffff00000000000000ffff00000000000000
+000000000000ffff00ffff00ffff00000000000000ffff00000000000000ffff00ffff00
+ffff00000000000000ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000
+000000ffff00000000000000000000ffff00000000000000000000ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00000000000000000000000000fff000
+ffee00000000000000000000ffee00fff000000000000000000000fff000000000000000
+000000fff000000000000000000000fff000ffee00fff000ffee00000000000000000000
+ffee00fff000ffee00fff000ffee00fff000ffee00fff000ffee00fff000ffee00fff000
+000000000000000000000000000000000000000000ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00000000000000000000ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000000000
+ffff00000000000000000000ffff00000000000000000000ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00000000
+ffee00000000000000000000ffee00000000ffee00fff000ffee00fff000ffee00fff000
+ffee00fff000ffee00fff000ffee00fff000000000000000000000fff000000000000000
+000000ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00000000000000000000ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000000000000000000000000000ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffee00
+fff000000000000000000000fff000ffee00000000000000000000000000000000000000
+000000ffee00000000000000000000000000fff000ffee00fff000000000000000000000
+fff000ffee00fff000ffee00fff000ffee00fff000ffee00fff000ffee00fff000ffee00
+000000000000000000000000000000000000000000ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000000000000000000000000000ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000000000000000000000000000ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00000000
+fff000000000000000000000fff000000000fff000ffee00fff000ffee00fff000ffee00
+fff000ffee00fff000ffee00fff000ffee00000000000000000000000000000000000000
+000000ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000000000000000000000000000ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000fff000
+fff000000000000000000000fff000fff000000000000000000000fff000fff000fff000
+fff000fff000fff000000000000000000000000000fff000fff000000000000000000000
+fff000fff000fff000fff000fff000fff000fff000fff000fff000fff000fff000fff000
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00000000
+fff000fff000000000000000000000000000fff000fff000fff000fff000fff000fff000
+fff000fff000fff000fff000fff000fff000000000000000000000fff000fff000000000
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000fff000
+fff000000000000000000000fff000fff000000000000000000000fff000fff000fff000
+fff000fff000fff000fff000000000000000000000fff000fff000000000000000000000
+fff000fff000fff000fff000fff000fff000fff000fff000fff000fff000fff000fff000
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00000000
+fff000fff000000000000000000000fff000fff000fff000fff000fff000fff000fff000
+fff000fff000fff000fff000fff000fff000000000000000000000fff000fff000000000
+ffff00ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00000000ffff00ffff00000000
+000000ffff00000000000000000000000000ffff00ffff00000000000000000000fff000
+000000000000000000000000fff200fff000fff200000000000000000000fff200fff000
+000000fff000000000fff000fff200000000000000fff000fff200000000000000000000
+fff200000000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000
+fff200000000000000000000ffff00ffff00000000ffff00000000000000000000ffff00
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00
+000000ffff00ffff00000000000000ffff00ffff00000000000000ffff00ffff00ffff00
+ffff00000000000000ffff00000000000000000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000ffff00ffff00000000000000ffff00000000000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00
+000000000000ffff00ffff00ffff00000000000000000000ffff00000000000000000000
+000000ffff00ffff00000000000000000000ffff00000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00000000ffff00000000000000000000
+000000ffff00000000000000ffff00ffff00ffff00000000000000000000ffff00000000
+fff200fff000fff200000000000000fff000fff200fff000fff200fff000fff200fff000
+fff200fff000fff200fff000fff200fff000fff200000000000000000000fff200000000
+000000ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000ffff00ffff00000000000000ffff00
+ffff00000000000000ffff00ffff00ffff00ffff00000000000000ffff00000000000000
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000ffff00
+ffff00000000000000ffff00000000000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000
+000000000000000000000000ffff00000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+000000000000ffff00000000000000000000ffff00ffff00ffff00000000000000000000
+fff000000000000000000000000000fff200fff000fff200000000000000000000000000
+fff000fff200000000000000000000000000fff000fff200fff000fff200000000000000
+000000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200
+fff000000000000000000000000000000000ffff00000000000000000000000000000000
+ffff00000000000000000000000000ffff00ffff00ffff00000000000000000000000000
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00ffff00ffff00ffff00000000000000ffff00000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00000000000000000000
+ffff00000000000000ffff00ffff00ffff00000000000000000000000000000000000000
+fff000fff200fff000000000000000fff200fff000fff200fff000fff200fff000fff200
+fff000fff200fff000fff200fff000fff200fff000fff200000000000000000000000000
+ffff00000000000000000000000000000000ffff00000000000000000000000000ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00000000
+000000ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00000000000000ffff00000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000fff000
+fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000
+fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000
+fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff200fff000fff200000000fff200fff000fff200fff000fff200fff000fff200fff000
+fff200fff000fff200fff000fff200fff000fff200fff000fff200fff000fff200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000fff200000000fff200fff200fff200fff200fff200fff200fff200fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fff200fff200fff200fff200fff200fff200fff200fff200fff200
+fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200fff200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00000000
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200
+fff400fff200000000000000000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000
+000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000fff400fff200fff400fff200fff400fff200000000000000000000000000
+000000000000000000000000000000fff200fff400fff200fff400fff200fff400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400
+fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400
+fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400
+fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200
+fff400fff200fff400fff200fff400fff200fff400fff200fff400fff200fff400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400
+fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400fff400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400
+fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400
+fff600fff400fff600fff400fff600fff400fff600fff400fff600000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400
+fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600
+fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600
+fff400fff600fff400fff600fff400fff600fff400fff600fff400000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600
+fff400fff600fff400fff600fff400fff600fff400fff600fff400fff600fff400000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600
+fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600fff600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000fff800fff600fff800fff600fff800fff600fff800fff600
+fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600
+fff800fff600fff800fff600fff800fff600fff800000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600
+fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000fff600fff800fff600fff800fff600fff800fff600fff800
+fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800
+fff600fff800fff600fff800fff600fff800fff600000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800
+fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000fff800fff600fff800fff600fff800fff600fff800fff600
+fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600
+fff800fff600fff800fff600fff800fff600fff800000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600
+fff800fff600fff800fff600fff800fff600fff800fff600fff800fff600fff800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800
+fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800fff800000000
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000fff800fffa00fff800fffa00fff800fffa00
+fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00
+fff800fffa00fff800fffa00fff800000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00
+fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800000000
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800
+fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00000000
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000fffa00fff800fffa00fff800fffa00
+fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00
+fff800fffa00fff800fffa00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00
+fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800fffa00fff800000000
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00000000000000000000000000ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00000000000000fff800fffa00fff800000000000000
+000000fff800fffa00fff800fffa00fff800000000000000000000000000fffa00000000
+fffa00000000000000000000000000ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00000000000000000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00000000000000
+000000000000ffff00000000000000000000000000ffff00000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fff800000000000000fffa00fff800fffa00000000000000000000
+fffa00fff800000000000000000000000000fffa00000000000000fff800fffa00000000
+ffff00000000000000000000ffff00000000000000000000000000000000ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000000000ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000000000fffa00fffa00000000000000fffa00
+000000000000fffa00fffa00fffa00000000000000fffa00fffa00000000000000000000
+fffa00fffa00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+ffff00000000000000ffff00000000000000ffff00ffff00000000000000ffff00ffff00
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00000000000000ffff00ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000fffa00fffa00000000000000fffa00000000
+000000fffa00fffa00000000000000000000000000fffa00000000000000fffa00000000
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00000000000000000000000000000000000000fffa00
+000000000000000000fffa00000000000000000000fffa00fffa00000000000000000000
+fffa00fffa00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00000000000000000000ffff00000000000000000000ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fffa00000000000000fffa00000000000000000000fffa00000000
+000000000000fffa00000000000000000000fffa00fffa00000000000000000000000000
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000000000000000
+000000000000000000fffa00000000000000000000fffa00fffa00000000000000000000
+fffa00fffa00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000000000000000000000000000ffff00000000000000000000000000
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fffa00fffa00fffa00fffa00000000000000000000000000000000
+000000000000fffa00000000000000000000fffa00fffa00000000000000000000000000
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000000000fffa00
+fffa00fffa00fffa00fffa00000000000000000000fffa00fffa00000000000000000000
+fffa00fffa00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fffa00fffa00fffa00fffa00000000000000000000fffa00fffa00
+fffa00fffa00fffa00000000000000000000fffa00fffa00000000000000000000000000
+ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000000000fffa00
+fffc00fffa00fffc00fffa00000000000000000000fffa00fffc00000000000000000000
+fffc00fffa00000000000000000000ffff00ffff00000000000000000000ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fffa00fffc00fffa00fffc00000000000000000000fffc00fffa00
+fffc00fffa00fffc00000000000000000000fffc00fffa00000000000000000000000000
+ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00000000000000000000000000
+fffa00fffc00000000fffc00fffa00000000000000fffc00000000000000000000000000
+fffa00fffc00000000000000000000ffff00000000000000000000000000ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000ffff00000000ffff00ffff00000000
+000000ffff00ffff00000000000000000000ffff00000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00000000000000ffff00ffff00ffff00000000
+000000000000ffff00000000000000000000000000ffff00ffff00000000000000000000
+ffff00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000fffc00fffa00fffc00fffa00fffc00000000000000000000fffc00
+fffa00000000fffa00000000000000000000000000fffc00000000000000fffa00000000
+ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000000000000000000000000000ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000ffff00ffff00ffff00ffff00000000000000000000
+000000000000fffc00fffa00fffc00fffa00000000000000fffc00000000000000000000
+fffc00000000ffff00000000000000000000ffff00000000000000000000000000ffff00
+ffff00ffff00000000000000000000000000ffff00ffff00000000000000000000000000
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00000000000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000fffc00fffa00fffc00fffa00fffc00000000000000000000
+000000fffa00fffc00000000000000000000fffc00000000000000fffa00fffc00000000
+000000000000000000000000000000ffff00ffff00ffff00ffff00000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000fffa00fffc00
+fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00000000000000000000
+fffa00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00
+fffa00fffc00fffa00000000000000000000fffa00fffc00fffa00fffc00fffa00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000fffc00fffa00
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00000000000000000000
+fffc00000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000
+ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00fffc00fffa00
+fffc00fffa00fffc00000000000000000000fffc00fffa00fffc00fffa00fffc00000000
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00000000000000000000fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000000000000000000000000000000000000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00000000000000000000000000000000fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000fffc00fffc00ffff00fffc00fffc00fffc00ffff00000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00fffc00fffc00fffc00ffff00fffc00fffc00fffc00ffff00fffc00fffc00fffc00
+ffff00fffc00fffc00fffc00ffff00fffc00fffc00fffc00ffff00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000fffc00fffc00fffc00fffc00fffc00000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00fffc00ffff00fffc00fffc00fffc00fffc00fffc00fffc00fffc00ffff00fffc00
+fffc00fffc00fffc00fffc00fffc00fffc00ffff00fffc00fffc00fffc00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000ffff00fffc00ffff00fffc00ffff00000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00
+fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000fffc00ffff00fffc00ffff00fffc00000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000fffc00ffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+fffc00ffff00ffff00ffff00fffc00ffff00ffff00ffff00fffc00ffff00ffff00ffff00
+fffc00ffff00ffff00ffff00fffc00ffff00ffff00ffff00fffc00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00fffc00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000fffc00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+fffc00ffff00ffff00ffff00fffc00ffff00ffff00ffff00fffc00ffff00ffff00ffff00
+fffc00ffff00ffff00ffff00fffc00ffff00ffff00ffff00fffc00ffff00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00
+ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00fffc00ffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000ffff00ffff00ffff00000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000ffff00ffff00ffff00000000000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000ffff00ffff00000000000000000000ffff00000000
+000000000000000000000000ffff00000000000000000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00000000000000000000ffff00000000000000
+000000000000000000ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00000000000000000000ffff00000000000000000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+000000000000000000ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00
+ffff00000000000000ffff00000000ffff00000000000000ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+000000000000ffff00000000ffff00000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00000000
+000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00ffff00ffff00
+000000000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00000000
+000000ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000
+000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00000000ffff00ffff00ffff00ffff00000000000000
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00000000ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00ffff00000000
+000000000000000000ffff00ffff00ffff00ffff00000000000000ffff00ffff00000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000ffff00ffff00ffff00ffff00000000000000ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000ffff00
+ffff00ffff00ffff00000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000000000000000000000ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffff00ffff00ffff00000000000000
+000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000ffff00ffff00ffff00ffff00000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000000000000000ffff00ffff00ffff00ffff00000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000000000000000000000000000000000ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00
+ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00ffff00000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/interceptors.xml b/lib/orber/doc/src/interceptors.xml
new file mode 100644
index 0000000000..8d1f97d5a2
--- /dev/null
+++ b/lib/orber/doc/src/interceptors.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2001</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>interceptors</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1999-09-03</date>
+ <rev>A</rev>
+ </header>
+ <module>interceptors</module>
+ <modulesummary>Describe the functions which must be exported by any supplied Orber native interceptor.</modulesummary>
+ <description>
+ <p>This module contains the mandatory functions for user supplied native
+ interceptors and their intended behavior. See also the User's Guide.</p>
+ <warning>
+ <p>Using <c>Interceptors</c> may reduce the through-put significantly
+ if the supplied interceptors invoke expensive operations. Hence,
+ one should always supply interceptors which cause as little overhead
+ as possible.</p>
+ </warning>
+ <warning>
+ <p>It is possible to alter the <c>Data</c>, <c>Bin</c> and <c>Args</c>
+ parameter for the <c>in_reply</c> and <c>out_reply</c>,
+ <c>in_reply_encoded</c>, <c>in_request_encoded</c>,
+ <c>out_reply_encoded</c> and <c>out_request_encoded</c>,
+ <c>in_request</c> and <c>out_request</c> respectively. But,
+ if it is done incorrectly, the consequences can be serious.</p>
+ </warning>
+ <note>
+ <p>The <c>Extra</c> parameter is set to 'undefined' by Orber when calling
+ the first interceptor and may be set to any Erlang term. If an
+ interceptor change this parameter it will be passed on to the next
+ interceptor in the list uninterpreted.</p>
+ </note>
+ <note>
+ <p>The <c>Ref</c> parameter is set to 'undefined' by Orber when calling
+ <c>new_in_connection</c> or <c>new_out_connection</c> using
+ the first interceptor. The user supplied interceptor may set <c>NewRef</c>
+ to any Erlang term. If an interceptor change this parameter it will be
+ passed on to the next interceptor in the list uninterpreted.</p>
+ </note>
+ </description>
+ <funcs>
+ <func>
+ <name>new_in_connection(Ref, PeerHost, PeerPort) -> NewRef</name>
+ <name>new_in_connection(Ref, PeerHost, PeerPort, SocketHost, SocketPort) -> NewRef</name>
+ <fsummary>Invoke when a new client ORB wants to setup a connection</fsummary>
+ <type>
+ <v>Ref = term() | undefined</v>
+ <v>PeerHost = SocketHost = string(), e.g., "myHost@myServer" or "192.0.0.10"</v>
+ <v>PeerPort = SocketPort = integer()</v>
+ <v>NewRef = term() | {'EXIT', Reason}</v>
+ </type>
+ <desc>
+ <p>When a new connection is requested by a client side ORB this operation
+ is invoked. If more than one interceptor is supplied, e.g.,
+ <c>{native, ['myInterceptor1', 'myInterceptor2']}</c>, the return value
+ from 'myInterceptor1' is passed to 'myInterceptor2' as <c>Ref</c>.
+ Initially, Orber uses the atom 'undefined' as <c>Ref</c> parameter
+ when calling the first interceptor. The return value from the last
+ interceptor, in the example above 'myInterceptor2', is passed
+ to all other functions exported by the interceptors. Hence,
+ the <c>Ref</c> parameter can, for example, be used as a unique
+ identifier to mnesia or ets where information/restrictions for
+ this connection is stored.</p>
+ <p>The PeerHost and PeerPort variables supplied data of
+ the client ORB which requested a new connection. SocketHost
+ and SocketPort are the local interface and port the client
+ connected to.</p>
+ <p>If, for some reason, we do not allow the client ORB to connect
+ simply invoke <c>exit(Reason)</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>new_out_connection(Ref, PeerHost, PeerPort) -> NewRef</name>
+ <name>new_out_connection(Ref, PeerHost, PeerPort, SocketHost, SocketPort) -> NewRef</name>
+ <fsummary>Invoke when setting up a new connection to a server side ORB</fsummary>
+ <type>
+ <v>Ref = term() | undefined</v>
+ <v>PeerHost = SocketHost = string(), e.g., "myHost@myServer" or "192.0.0.10"</v>
+ <v>PeerPort = SocketPort = integer()</v>
+ <v>NewRef = term() | {'EXIT', Reason}</v>
+ </type>
+ <desc>
+ <p>When a new connection is set up this function is invoked. Behaves
+ just like <c>new_in_connection</c>; the only difference is that
+ the PeerHost and PeerPort variables identifies the target ORB's bootstrap
+ data and SocketHost and SocketPort are the local interface and port
+ the client ORB connected via.</p>
+ </desc>
+ </func>
+ <func>
+ <name>closed_in_connection(Ref) -> NewRef</name>
+ <fsummary>Invoke when an existing connection to a client side ORB have been terminated</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>NewRef = term()</v>
+ </type>
+ <desc>
+ <p>When an existing connection is terminated this operation is invoked.
+ The main purpose of this function is to make it possible for a user
+ to clean up all data associated with the associated connection.</p>
+ <p>The input parameter <c>Ref</c> is the return value from
+ <c>new_in_connection/3</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>closed_out_connection(Ref) -> NewRef</name>
+ <fsummary>Invoke when an existing connection to a server side ORB have been terminated</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>NewRef = term()</v>
+ </type>
+ <desc>
+ <p>When an existing connection is terminated this operation is invoked.
+ The main purpose of this function is to make it possible for a user
+ to clean up all data associated with the associated connection.</p>
+ <p>The input parameter <c>Ref</c> is the return value from
+ <c>new_out_connection/3</c>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>in_reply(Ref, Obj, Ctx, Op, Data, Extra) -> Reply</name>
+ <fsummary>Invoke when replies arrives at the client side ORB</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Data = [Result, OutParameter1, ..., OutPramaterN]</v>
+ <v>Reply = {NewData, NewExtra}</v>
+ </type>
+ <desc>
+ <p>When replies are delivered from the server side ORB to the client side
+ ORB this operation is invoked. The <c>Data</c> parameter is a list in which
+ the first element is the return value value from the target object and
+ the rest is a all parameters defined as <c>out</c> or <c>inout</c> in
+ the IDL-specification.</p>
+ </desc>
+ </func>
+ <func>
+ <name>in_reply_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply</name>
+ <fsummary>Invoke when replies arrives at the client side ORB with undecoded reply body</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Bin = #binary</v>
+ <v>Reply = {NewBin, NewExtra}</v>
+ </type>
+ <desc>
+ <p>When replies are delivered from the server side ORB to the client side
+ ORB this operation is invoked. The <c>Bin</c> parameter is the reply
+ body still uncoded.</p>
+ </desc>
+ </func>
+ <func>
+ <name>in_request(Ref, Obj, Ctx, Op, Args, Extra) -> Reply</name>
+ <fsummary>Invoke when requests arrive at the server side ORB</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Args = [Argument] - defined in the IDL-specification</v>
+ <v>Reply = {NewArgs, NewExtra}</v>
+ </type>
+ <desc>
+ <p>When a new request arrives at the server side ORB this operation is
+ invoked.</p>
+ </desc>
+ </func>
+ <func>
+ <name>in_request_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply</name>
+ <fsummary>Invoke when requests arrive at the server side ORB with undecoded request body</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Bin = #binary</v>
+ <v>Reply = {NewBin, NewExtra}</v>
+ </type>
+ <desc>
+ <p>When a new request arrives at the server side ORB this operation is
+ invoked before decoding the request body.</p>
+ </desc>
+ </func>
+ <func>
+ <name>out_reply(Ref, Obj, Ctx, Op, Data, Extra) -> Reply</name>
+ <fsummary>Invoke after the target object replied</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Data = [Result, OutParameter1, ..., OutPramaterN]</v>
+ <v>Reply = {NewData, NewExtra}</v>
+ </type>
+ <desc>
+ <p>After the target object have been invoked this operation is invoked
+ with the result. The <c>Data</c> parameter is a list in which
+ the first element is the return value value from the target object and
+ the rest is a all parameters defined as <c>out</c> or <c>inout</c> in
+ the IDL-specification.</p>
+ </desc>
+ </func>
+ <func>
+ <name>out_reply_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply</name>
+ <fsummary>Invoke after the target object replied with the reply encoded</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Bin = #binary</v>
+ <v>Reply = {NewBin, NewExtra}</v>
+ </type>
+ <desc>
+ <p>This operation is similar to <c>out_reply</c>; the only difference is
+ that the reply body have been encoded.</p>
+ </desc>
+ </func>
+ <func>
+ <name>out_request(Ref, Obj, Ctx, Op, Args, Extra) -> Reply</name>
+ <fsummary>Invoke on the client side ORB before encoding and sending the request</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Args = [Argument] - defined in the IDL-specification</v>
+ <v>Reply = {NewArgs, NewExtra}</v>
+ </type>
+ <desc>
+ <p>Before a request is sent to the server side ORB, <c>out_request</c> is
+ invoked.</p>
+ </desc>
+ </func>
+ <func>
+ <name>out_request_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply</name>
+ <fsummary>Invoke on the client side ORB before sending the request</fsummary>
+ <type>
+ <v>Ref = term()</v>
+ <v>Obj = #objref</v>
+ <v>Ctx = [#'IOP_ServiceContext'{}]</v>
+ <v>Op = atom()</v>
+ <v>Bin = #binary</v>
+ <v>Reply = {NewBin, NewExtra}</v>
+ </type>
+ <desc>
+ <p>This operation is similar to <c>out_request</c>; the only
+ difference is that the request body have been encoded.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/intro_part.xml b/lib/orber/doc/src/intro_part.xml
new file mode 100644
index 0000000000..3f429eeb87
--- /dev/null
+++ b/lib/orber/doc/src/intro_part.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part>
+ <header>
+ <copyright>
+ <year>2002</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Introduction to Orber and the IFR</title>
+ <prepared>Niclas Eklund</prepared>
+ <docno></docno>
+ <date>2002-06-25</date>
+ <rev>A</rev>
+ </header>
+ <description>
+ <p>This chapter contains an introduction to Orber and the IFR
+ (Interface Repository).</p>
+ </description>
+ <include file="ch_introduction"></include>
+ <include file="ch_orber_kernel"></include>
+ <include file="ch_ifr"></include>
+</part>
+
diff --git a/lib/orber/doc/src/lname.xml b/lib/orber/doc/src/lname.xml
new file mode 100644
index 0000000000..7776e1298c
--- /dev/null
+++ b/lib/orber/doc/src/lname.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>lname</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>lname</module>
+ <modulesummary>Interface that supports the name pseudo-objects.</modulesummary>
+ <description>
+ <p>This interface is a part of the names library which is used to hide the
+ representation of names. In Orbers Erlang mapping the pseudo-object names
+ and the real IDL names have the same representation but it is desirable that
+ the clients uses the names library so they will not be dependent of the representation.
+ The lname interface supports handling of names e.g. adding and removing name
+ components.</p>
+ <p>Note that the lname interface in orber does not contain a destroy function because
+ the Names are represented as standard Erlang lists and therefor will be removed
+ by the garbage collector when not in use.</p>
+ <p>The type <c>NameComponent</c> used below is defined as:</p>
+ <code type="none">
+ -record('CosNaming_NameComponent', {id, kind=""}).
+ </code>
+ <p><c>id</c> and <c>kind</c> are strings. </p>
+ <p>The record is defined in the file <c>CosNaming.hrl</c> and it
+ is included with:</p>
+ <code type="none">
+ -include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+ </code>
+ </description>
+ <funcs>
+ <func>
+ <name>create() -> Return</name>
+ <fsummary>Create a new name</fsummary>
+ <type>
+ <v>Return = [NameComponent]</v>
+ </type>
+ <desc>
+ <p>This function returns a new name.</p>
+ </desc>
+ </func>
+ <func>
+ <name>insert_component(Name, N, NameComponent) -> Return</name>
+ <fsummary>Insert a new name component in a name</fsummary>
+ <type>
+ <v>Name = [NameComponent]</v>
+ <v>N = int()</v>
+ <v>Return = Name</v>
+ </type>
+ <desc>
+ <p>This function returns a name where the new name component has been inserted as
+ component <c>N</c> in Name.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_component(Name, N) -> Return</name>
+ <fsummary>Get a name component from a name</fsummary>
+ <type>
+ <v>Name = [NameComponent]</v>
+ <v>N = int()</v>
+ <v>Return = NameComponent</v>
+ </type>
+ <desc>
+ <p>This function returns the <c>N:th</c> name component in Name.</p>
+ </desc>
+ </func>
+ <func>
+ <name>delete_component(Name, N) -> Return</name>
+ <fsummary>Delete a name component from a name</fsummary>
+ <type>
+ <v>Name = [NameComponent]</v>
+ <v>N = int()</v>
+ <v>Return = Name</v>
+ </type>
+ <desc>
+ <p>This function deletes the <c>N:th</c> name component from Name and returns
+ the new name.</p>
+ </desc>
+ </func>
+ <func>
+ <name>num_component(Name) -> Return</name>
+ <fsummary>Count the number of name components in a name</fsummary>
+ <type>
+ <v>Name = [NameComponent]</v>
+ <v>Return = int()</v>
+ </type>
+ <desc>
+ <p>This function returns a the number of name components in Name.</p>
+ </desc>
+ </func>
+ <func>
+ <name>equal(Name1, Name2) -> Return</name>
+ <fsummary>Test if two names are equal</fsummary>
+ <type>
+ <v>Name1 = Name2 = [NameComponent]</v>
+ <v>Return = bool()</v>
+ </type>
+ <desc>
+ <p>This function returns true if the two names are equal and false otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>less_than(Name1, Name2) -> Return</name>
+ <fsummary>Test if one name is lesser than the other</fsummary>
+ <type>
+ <v>Name1 = Name2 = [NameComponent]</v>
+ <v>Return = bool()</v>
+ </type>
+ <desc>
+ <p>This function returns true if Name1 are lesser than Name2 and false otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>to_idl_form(Name) -> Return</name>
+ <fsummary>Transform a pseudo name to an IDL name</fsummary>
+ <type>
+ <v>Name = [NameComponent]</v>
+ <v>Return = Name</v>
+ </type>
+ <desc>
+ <p>This function just checks if Name is a correct IDL name before returning it
+ because the name representation is the same for pseudo and IDL names in orber.</p>
+ </desc>
+ </func>
+ <func>
+ <name>from_idl_form(Name) -> Return</name>
+ <fsummary>Transform an IDL name to a pseudo name</fsummary>
+ <type>
+ <v>Name = [NameComponent]</v>
+ <v>Return = Name</v>
+ </type>
+ <desc>
+ <p>This function just returns the Name because the name representation is the
+ same for pseudo and IDL names in orber.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/lname_component.xml b/lib/orber/doc/src/lname_component.xml
new file mode 100644
index 0000000000..aa27ce28a3
--- /dev/null
+++ b/lib/orber/doc/src/lname_component.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>lname_component</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>lname_component</module>
+ <modulesummary>Interface that supports the name pseudo-objects.</modulesummary>
+ <description>
+ <p>This interface is a part of the name library, which is used to hide the
+ representation of names. In Orbers Erlang mapping the pseudo-object names
+ and the real IDL names have the same representation but it is desirable that
+ the clients uses the names library so they will not be dependent of the representation.
+ The lname_component interface supports handling of name components e.g. set and get
+ of the struct members.</p>
+ <p>Note that the lname_component interface in orber does not contain a destroy
+ function because the NameComponents are represented as Erlang records and
+ therefor will be removed by the garbage collector when not in use.</p>
+ <p>The type <c>NameComponent</c> used below is defined as:</p>
+ <code type="none">
+ -record('CosNaming_NameComponent', {id, kind=""}).
+ </code>
+ <p><c>id</c> and <c>kind</c> are strings. </p>
+ <p>The record is defined in the file <c>CosNaming.hrl</c> and it
+ is included with:</p>
+ <code type="none">
+ -include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+ </code>
+ </description>
+ <funcs>
+ <func>
+ <name>create() -> Return</name>
+ <fsummary>Create a new name component</fsummary>
+ <type>
+ <v>Return = NameComponent</v>
+ </type>
+ <desc>
+ <p>This function returns a new name component.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_id(NameComponent) -> Return</name>
+ <fsummary>Get the id field of a name component</fsummary>
+ <type>
+ <v>Return = string()</v>
+ </type>
+ <desc>
+ <p>This function returns the id string of a name component.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_id(NameComponent, Id) -> Return</name>
+ <fsummary>Set the id field of a name component</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <v>Return = NameComponent</v>
+ </type>
+ <desc>
+ <p>This function sets the id string of a name component and returns the component.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_kind(NameComponent) -> Return</name>
+ <fsummary>Get the kind field of a name component</fsummary>
+ <type>
+ <v>Return = string()</v>
+ </type>
+ <desc>
+ <p>This function returns the id string of a name component.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_kind(NameComponent, Kind) -> Return</name>
+ <fsummary>Set the kind field of a name component</fsummary>
+ <type>
+ <v>Kind = string()</v>
+ <v>Return = NameComponent</v>
+ </type>
+ <desc>
+ <p>This function sets the kind string of a name component and returns the component.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/make.dep b/lib/orber/doc/src/make.dep
new file mode 100644
index 0000000000..f19cc18c90
--- /dev/null
+++ b/lib/orber/doc/src/make.dep
@@ -0,0 +1,69 @@
+# ----------------------------------------------------
+# >>>> 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: CosNaming.tex CosNaming_BindingIterator.tex \
+ CosNaming_NamingContext.tex CosNaming_NamingContextExt.tex \
+ Module_Interface.tex any.tex book.tex ch_contents.tex \
+ ch_debugging.tex ch_example.tex ch_exceptions.tex \
+ ch_idl_to_erlang_mapping.tex ch_ifr.tex ch_install.tex \
+ ch_interceptors.tex ch_introduction.tex ch_naming_service.tex \
+ ch_orber_kernel.tex ch_orberweb.tex ch_security.tex \
+ ch_stubs.tex corba.tex corba_object.tex example_part.tex \
+ fixed.tex interceptors.tex intro_part.tex \
+ lname.tex lname_component.tex orber.tex orber_acl.tex \
+ orber_diagnostics.tex orber_ifr.tex orber_tc.tex \
+ ref_man.tex tools_debugging_part.tex
+
+# ----------------------------------------------------
+# Source inlined when transforming from source to LaTeX
+# ----------------------------------------------------
+
+CosNaming.tex: ../../COSS/CosNaming/cos_naming.idl
+
+book.tex: ref_man.xml
+
+ch_example.tex: ../../examples/Stack/StackClient.java ../../examples/Stack/StackModule_StackFactory_impl.erl \
+ ../../examples/Stack/StackModule_Stack_impl.erl \
+ ../../examples/Stack/stack.idl ../../examples/Stack/stack_client.erl \
+ ../../examples/Stack/stack_factory.erl
+
+ch_contents.tex: ../../../../system/doc/definitions/term.defs
+
+ch_idl_to_erlang_mapping.tex: ../../../../system/doc/definitions/term.defs
+
+ch_install.tex: ../../../../system/doc/definitions/term.defs
+
+ch_introduction.tex: ../../../../system/doc/definitions/term.defs
+
+ch_naming_service.tex: ../../../../system/doc/definitions/term.defs
+
+ch_orber_kernel.tex: ../../../../system/doc/definitions/term.defs
+
+orber_ifr.tex: ../../../../system/doc/definitions/term.defs
+
+# ----------------------------------------------------
+# Pictures that the DVI file depend on
+# ----------------------------------------------------
+
+book.dvi: firewall_nat.ps
+
+book.dvi: interceptor_operations.ps
+
+book.dvi: dependent.ps orbs.ps
+
+book.dvi: name.ps
+
+book.dvi: iiop.ps theORB.ps
+
+book.dvi: dataframe1.ps dataframe2.ps dataframe3.ps \
+ dataframe4.ps dataframe5.ps dataframe6.ps \
+ dataframe7.ps dataframe8.ps menuframe.ps
+
diff --git a/lib/orber/doc/src/menuframe.gif b/lib/orber/doc/src/menuframe.gif
new file mode 100644
index 0000000000..57a437e6b0
--- /dev/null
+++ b/lib/orber/doc/src/menuframe.gif
Binary files differ
diff --git a/lib/orber/doc/src/menuframe.ps b/lib/orber/doc/src/menuframe.ps
new file mode 100644
index 0000000000..846f8d06d7
--- /dev/null
+++ b/lib/orber/doc/src/menuframe.ps
@@ -0,0 +1,4917 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /home/nick/grabbed/menuframe.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 212 245 401 546
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 567 string def
+
+% define space for color conversions
+/grays 189 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+212 245 translate
+
+% size of image (on paper, in 1/72inch coords)
+189.00000 301.03200 scale
+
+% define 'colorimage' if it isn't defined
+% ('colortogray' and 'mergeprocs' come from xwd2ps
+% via xgrab)
+/colorimage where % do we know about 'colorimage'?
+ { pop } % yes: pop off the 'dict' returned
+ { % no: define one
+ /colortogray { % define an RGB->I function
+ /rgbdata exch store % call input 'rgbdata'
+ rgbdata length 3 idiv
+ /npixls exch store
+ /rgbindx 0 store
+ 0 1 npixls 1 sub {
+ grays exch
+ rgbdata rgbindx get 20 mul % Red
+ rgbdata rgbindx 1 add get 32 mul % Green
+ rgbdata rgbindx 2 add get 12 mul % Blue
+ add add 64 idiv % I = .5G + .31R + .18B
+ put
+ /rgbindx rgbindx 3 add store
+ } for
+ grays 0 npixls getinterval
+ } bind def
+
+ % Utility procedure for colorimage operator.
+ % This procedure takes two procedures off the
+ % stack and merges them into a single procedure.
+
+ /mergeprocs { % def
+ dup length
+ 3 -1 roll
+ dup
+ length
+ dup
+ 5 1 roll
+ 3 -1 roll
+ add
+ array cvx
+ dup
+ 3 -1 roll
+ 0 exch
+ putinterval
+ dup
+ 4 2 roll
+ putinterval
+ } bind def
+
+ /colorimage { % def
+ pop pop % remove 'false 3' operands
+ {colortogray} mergeprocs
+ image
+ } bind def
+ } ifelse % end of 'false' case
+
+
+
+189 301 8 % dimensions of data
+[189 0 0 -301 0 301] % mapping matrix
+{currentfile pix readhexstring pop}
+false 3 colorimage
+
+0303030000000b0b0b0000000a0a0a000000040404000000020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202020202020202020202020202020202020202020202020202
+020202020202020202020202000000000000000000000000000000
+0202020303030000000000000000000b0b0b060606000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+010101000000000000090909000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+0202020000000606060808080505050000000909090b0b0b010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101010101010101010101010101010101010101010101010101
+010101010101010101010101000000000000000000000000000000
+0202020000000c0c0c000000000000080808020202000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+020202070707000000000000080808f1f1f1ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+0000000808080000000b0b0b020202fffffff6f6f6edededfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfc000000000000000000000000000000
+070707000000040404000000000000fcfcfcf3f3f3ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9fffffffdfdfdfffffffefefefbfbfbfffffffdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd
+fdfdfdfdfdfdfdfdfdfdfdfdfffffffafafafffffffffffffdfdfdffffffffffffffffff
+fcfcfcfbfbfbfffffffffffffcfcfcfcfcfcf8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafffffffefefefffffffffffffefefeffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7f2f2f2f7f7f7fbfbfbfcfcfcfdfdfdfbfbfbffffff
+fefefefdfdfdfefefefbfbfbfcfcfcfffffffbfbfbffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefbfbfbfafafafdfdfd
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffbfbfbffffff
+fdfdfdfffffffdfdfdf8f8f8fffffffffffffdfdfdfbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdf9f9f9fffffffafafaf9f9f9fdfdfdfafafaffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbfffffff5f5f5f8f8f8fffffff6f6f6f7f7f7fefefe
+ecececfffffffffffffafafafffffffffffffefefefafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffafafaf9f9f9ddddddd0d0d0d6d6d6c9c9c9cdcdcd
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcf
+cfcfcfcfcfcfcfcfcfcfcfcfc4c4c4d1d1d1c5c5c5ccccccd1d1d1cdcdcdd9d9d9d3d3d3
+c7c7c7fffffffffffffbfbfbfffffffbfbfbfffffffcfcfcffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfafafaccccccbdbdbdd0d0d0c2c2c2c3c3c3
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8
+c8c8c8c8c8c8c8c8c8c8c8c8c6c6c6d3d3d3c8c8c8d0d0d0cdcdcdcdcdcdd9d9d9b2b2b2
+a2a2a2f5f5f5fdfdfdfafafafffffff7f7f7ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8f9f9f9ffffffd2d2d2d2d2d2ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffafafafffffff8f8f8fbfbfbfefefeacacac
+969696f8f8f8fffffffafafafffffff6f6f6fffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdffffffffffffc9c9c9c6c6c6fefefefbfbfbfbfbfb
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefdfdfdfefefef6f6f6fffffff9f9f9fffffffdfdfd8e8e8e
+9c9c9cfffffffffffffdfdfdfffffff7f7f7fffffffafafaffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff5f5f5fffffffdfdfdfffffffdfdfdfafafaffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff5f5f5f7f7f7ffffffffffff
+fffffff2f2f2ffffffedededffffffdfdfdffffffffdfdfdfffffffbfbfbf6f6f6fcfcfc
+fffffff2f2f2fefefefdfdfdfffffff2f2f2fffffff6f6f6ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffbfbfbeeeeeef5f5f5fffffffdfdfdfffffff1f1f1
+f9f9f9fefefefffffffbfbfbfdfdfdfffffffffffffbfbfbf7f7f7fffffff6f6f6f5f5f5
+fefefefffffffffffffcfcfcfffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9fffffffafafafcfcfcfafafafafafaffffffeeeeee
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfafafaf3f3f3
+fcfcfcfefefed9d9d9fffffff5f5f5ffffffe5e5e5fdfdfdebebebefefefffffffededed
+f0f0f0fcfcfcffffffffffffefefefffffffd8d8d8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff4f4f4fffffff0f0f0ffffffffffffeeeeeeffffffffffff
+fffffffffffffffffffcfcfcfbfbfbfcfcfcfbfbfbf8f8f8fffffffffffffefefeffffff
+fffffffcfcfcfffffffffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffbfbfbefefeffffffffbfbfbdbdbdbffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff5f5f5fdfdfdf7f7f7
+fdfdfdfffffffffffff2f2f2fffffff8f8f8fffffffffffffffffffbfbfbedededfbfbfb
+ffffffffffffedededf3f3f3ffffffe9e9e9ffffffdededeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffefefefffffffe5e5e5fdfdfdfffffffafafaf2f2f2
+fcfcfcfafafafbfbfbfffffffffffffffffffffffffffffffafafaf1f1f1f8f8f8ffffff
+fafafaf6f6f6fcfcfcfffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffeeeeeefffffffffffffdfdfdf9f9f9fafafafffffff3f3f3
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffdfdfdffffff
+f0f0f0e9e9e9fffffffcfcfcebebebfefefeebebebe4e4e4fcfcfcffffffffffffffffff
+f4f4f4fffffffffffff6f6f6f3f3f3efefeff7f7f7fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff5f5f5ffffffeaeaeaf9f9f9fafafaffffffffffff
+fffffffdfdfdfcfcfcfefefefbfbfbf4f4f4f2f2f2f6f6f6fffffff4f4f4ffffffffffff
+fbfbfbfffffffffffffffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffe8e8e8ffffffecececfffffff1f1f1040404fbfbfb
+fffffffffffffffffffffffffffffffffffffffffffffffffefefeebebebfffffff4f4f4
+fffffffffffff1f1f1fffffffbfbfbf3f3f3fffffffffffffafafae9e9e9fffffff7f7f7
+eaeaeaf6f6f6f6f6f6ffffffffffff030303040404ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefeffffffdbdbdbfffffffffffff5f5f5fefefefefefe
+fefefefffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffff5f5f5
+f2f2f2fefefef4f4f4f4f4f4fffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff2f2f2f1f1f1fffffffffffff8f8f8ffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaeafbfbfb
+f1f1f1000000000000000000040404070707f9f9f9f0f0f0f4f4f4f6f6f6fffffffdfdfd
+fffffff2f2f2fefefefdfdfdffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff8f8f8fffffff7f7f7fffffffffffff8f8f8f2f2f2
+f8f8f8fdfdfdfffffffbfbfbf8f8f8fbfbfbfefefefffffffdfdfdf9f9f9fffffff2f2f2
+fafafafffffff5f5f5fffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff9f9f9fbfbfbf2f2f2fafafaf4f4f4030303f1f1f1
+ffffffffffffffffffffffffffffffffffffffffffffffffedededeeeeeefffffff7f7f7
+111111fffffff5f5f5fffffffffffff0f0f0000000fffffffffffffffffffffffffafafa
+f6f6f6e7e7e7fffffffafafaeaeaeaffffff111111ecececffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfffffff4f4f4fdfdfdf6f6f6f9f9f9ffffffffffff
+fffffffffffff7f7f7dcdcdccbcbcbcbcbcbcbcbcbc5c5c5cbcbcbc7c7c7d0d0d0c6c6c6
+d6d6d6d2d2d2bdbdbdf9f9f9fffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff5f5f5fffffffbfbfbfffffffffffff5f5f5ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffff9f9f9000000
+fffffff7f7f7f9f9f9fdfdfdf6f6f6ffffffffffff000000fdfdfdfffffff4f4f4ffffff
+fffffffffffffcfcfcfffffff6f6f6ffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff7f7f7000000fffffff6f6f6f5f5f5ffffffe2e2e2
+fcfcfcfffffff4f4f4d3d3d3c4c4c4cececed4d4d4cececed1d1d1c9c9c9cfcfcfc8c8c8
+d6d6d6bcbcbca3a3a3fdfdfdfffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+fefefef7f7f7fffffffefefef6f6f6f8f8f8fffffffafafafffffff2f2f2fffffffbfbfb
+f5f5f5fffffff2f2f2fdfdfdfffffffffffffcfcfcf1f1f1fcfcfcfffffff9f9f9fcfcfc
+f9f9f9fefefef9f9f9ffffffedededfafafafffffff5f5f5fbfbfbffffff070707f6f6f6
+f9f9f9fdfdfd0606060303030101010d0d0df6f6f6ffffff000000ffffffdfdfdfffffff
+fffffffdfdfdf3f3f3fefefefafafafefefe121212f5f5f5ffffffe9e9e9ffffffffffff
+eeeeeefefefefffffff2f2f2fcfcfcfffffff5f5f5f4f4f4ffffffe7e7e7fffffff6f6f6
+ffffffffffffe2e2e2fefefefffffff9f9f9fffffff6f6f6fffffff3f3f3fcfcfcfcfcfc
+f9f9f9fffffffffffffbfbfbfefefeffffff000000fffffffafafafbfbfbffffffeeeeee
+fdfdfdfefefeffffffc9c9c9c8c8c8fffffffbfbfbfbfbfbfffffff0f0f0ffffffffffff
+fbfbfb9b9b9b939393f4f4f4fffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+fffffff0f0f00000000d0d0d121212000000000000050505000000000000000000000000
+ffffffd7d7d7ffffff000000000000000000fffffffffffff3f3f3020202000000ffffff
+ffffff0000001616160000000b0b0b0c0c0c000000fffffffefefe000000ffffffffffff
+f8f8f8000000fefefefafafa1818180a0a0aecececffffff090909eaeaeaffffffe9e9e9
+0000000a0a0a0a0a0a020202fefefeffffff0000000c0c0c0808080b0b0bfffffff1f1f1
+fffffff9f9f9000000070707020202e0e0e0fffffffbfbfbffffff0c0c0c000000010101
+000000e5e5e5ffffffececec010101000000f9f9f90b0b0b000000ffffffffffff000000
+090909000000fffffffffffff1f1f1000000000000020202000000dadadaffffffffffff
+fffffffefefeffffffcacacacbcbcbfffffffffffffffffffdfdfdf0f0f0f9f9f9fbfbfb
+f9f9f9a0a0a09d9d9dfffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+f3f3f3fffffff9f9f9000000ebebebfffffffefefe040404fefefef2f2f2f9f9f90c0c0c
+f4f4f4ffffff000000010101fffffffcfcfc000000fffffffffffffefefe000000fbfbfb
+f9f9f9ffffff000000ffffffffffffe7e7e70f0f0ff4f4f4ffffff000000ffffffe9e9e9
+0e0e0effffffe1e1e1ffffff000000090909edededffffff000000efefeff8f8f8191919
+fffffffafafafdfdfd000000f9f9f9ffffff161616fffffff4f4f4ffffff000000f4f4f4
+fdfdfd080808050505fdfdfdfefefe181818f5f5f5ffffff050505f1f1f1ffffffffffff
+ffffff141414010101fffffff4f4f4101010000000f5f5f5ffffffd1d1d10000000d0d0d
+fffffff2f2f2070707f6f6f6fffffff9f9f9191919fffffffdfdfdffffffddddddfcfcfc
+fbfbfbf9f9f9f6f6f6c9c9c9ccccccfdfdfdffffffffffffffffffffffffffffffffffff
+fbfbfb9b9b9b888888f3f3f3fffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+fefefeebebebfefefe010101fffffff8f8f8ffffff000000ffffffefefefffffff141414
+ffffffdcdcdcfffffffefefef2f2f2101010000000eeeeeefffffff5f5f50f0f0fffffff
+fefefef6f6f6000000fffffff8f8f8fbfbfb151515f2f2f2e8e8e8101010f8f8f8f6f6f6
+030303f0f0f0ffffffebebeb161616efefeffefefeffffff000000ffffffffffff000000
+161616e6e6e6f9f9f9ffffffededede6e6e6000000f7f7f7ffffffeeeeee141414f6f6f6
+fffffff3f3f3ebebebffffff000000000000ffffffffffff000000fdfdfdffffffffffff
+ffffff000000f2f2f2f7f7f7ffffff000000fffffffefefefefefefefefefffffff4f4f4
+fafafa000000171717f4f4f4f2f2f2fdfdfd000000ffffffe1e1e1fffffff8f8f8ffffff
+fdfdfdfffffffdfdfdd7d7d7d3d3d3f5f5f5fafafafefefef9f9f9fdfdfdf9f9f9f9f9f9
+f7f7f7aaaaaa979797fffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+fdfdfdfcfcfcffffff010101fffffffdfdfdededed0e0e0eefefeffffffff8f8f8000000
+efefefffffffffffff040404030303ffffff040404f6f6f6f8f8f8ffffff000000f0f0f0
+ffffffffffff000000f0f0f0ffffffe6e6e60d0d0dfefefeffffff000000fafafaeeeeee
+080808f2f2f2e3e3e3ffffff000000ffffffffffff000000fffffff3f3f3fefefeffffff
+0101010303030c0c0ce9e9e9fffffffafafa181818ffffffe8e8e8efefef121212fbfbfb
+fffffffefefe0a0a0a000000ffffff0b0b0bffffffecececffffff000000000000000000
+000000fdfdfdfffffffffffff6f6f6090909f8f8f8edededfbfbfbeaeaeaf5f5f5000000
+000000ffffff000000fffffffefefeffffff060606fefefefffffff6f6f6f4f4f4ffffff
+fffffffffffff8f8f8c9c9c9aaaaaaa8a8a8a1a1a19f9f9f9b9b9b9e9e9e929292979797
+a6a6a68c8c8c949494fffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffe8e8e8ffffff000000f6f6f6fffffff7f7f70a0a0aefefeffffffff5f5f5111111
+fffffff7f7f7000000fcfcfcf0f0f0fbfbfb010101f8f8f8fafafaffffff000000ffffff
+fcfcfcfdfdfd080808ffffffedededffffff000000e9e9e9e8e8e8050505fcfcfcffffff
+000000ffffffffffff090909000000fafafaf4f4f4080808fffffffefefee8e8e8ffffff
+f1f1f1fffffffdfdfd010101fcfcfcf5f5f50a0a0af6f6f6ffffffffffff000000f8f8f8
+f8f8f8080808e5e5e5ffffffefefef000000efefefffffffffffff000000ffffffffffff
+fffffff3f3f3fafafaffffffe4e4e4000000ffffffffffffffffffffffff090909fbfbfb
+fffffff5f5f5000000f1f1f1fffffffdfdfd020202fefefee4e4e4fffffffffffffdfdfd
+fbfbfbfffffff3f3f3cfcfcfacacac9b9b9b9393938e8e8e9797979898988d8d8d939393
+9e9e9e9e9e9ea1a1a1eeeeeefffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+fefefefcfcfce6e6e60c0c0cf6f6f6fdfdfdffffff000000fffffff6f6f6ffffff0a0a0a
+efefeff5f5f50c0c0cffffffffffff000000020202ffffffffffffe0e0e0121212e8e8e8
+fffffff6f6f6000000f5f5f5fffffff3f3f3000000ffffffffffff161616000000f1f1f1
+ffffff000000000000fdfdfd0202020e0e0e000000fffffff8f8f8ffffffffffff000000
+fffffff6f6f6ffffff000000fdfdfdffffff000000fffffff5f5f5ebebeb070707ffffff
+f7f7f7000000ffffffeeeeee0000000b0b0bfbfbfbfcfcfcfcfcfc1313130c0c0c000000
+000000050505fdfdfdebebebffffff101010e6e6e6fdfdfdecececffffff000000ffffff
+f4f4f4000000191919fffffffafafaebebeb0f0f0ffefefefffffffefefefbfbfbf4f4f4
+f8f8f8fffffffffffffefefef8f8f8f8f8f8fefefefdfdfdfffffffffffffefefeffffff
+fbfbfbffffffebebebfffffffffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffdfdfdccccccccccccfdfdfdffffffffffff
+ffffffffffff060606080808000000ffffff000000101010000000ffffff000000060606
+000000fcfcfcffffff000000000000ffffff0000000c0c0cfefefe0101010000000c0c0c
+ffffff0303030b0b0b010101f9f9f9000000050505000000f3f3f3ffffff010101ffffff
+fbfbfbfffffffafafafffffffffffff7f7f7f6f6f6fffffffefefef2f2f2fbfbfb070707
+030303000000090909ffffffffffff000000080808000000fefefe080808060606000000
+f5f5f5ffffff000000030303ffffff0303030a0a0aededed040404fdfdfdf1f1f1ffffff
+ffffff000000000000ffffff000000030303111111f0f0f0fffffffafafaffffff050505
+000000ffffff020202020202fcfcfcffffff000000000000040404fffffff7f7f7ffffff
+fdfdfdfffffffcfcfcfffffffffffffffffffffffffefefefffffffefefefafafaffffff
+f4f4f4fffffff3f3f3fcfcfcfffffffdfdfdfffffffffffffffffffefefefdfdfd999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff9f9f9fefefeffffffcecececcccccfdfdfdfdfdfdfbfbfb
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefef5f5f5020202
+000000fffffff2f2f2fffffffdfdfdf4f4f4010101f5f5f5fffffffffffff9f9f9fefefe
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefef9f9f9f4f4f4020202f2f2f2fffffff8f8f8
+f7f7f7ffffff000000fbfbfbffffffebebebfffffffdfdfdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfffffffffffffffffff8f8f8f7f7f7fefefe9f9f9f
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfafafafafafacdcdcdcececefcfcfcffffffffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfffffff1f1f1fffffff9f9f9
+ffffff0000001a1a1a0000000f0f0f0a0a0af5f5f5fffffffefefefefefefcfcfcffffff
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfce7e7e7fffffffcfcfc060606fffffff8f8f8fafafa
+ffffff020202f2f2f2ffffffe6e6e6fffffffbfbfbf7f7f7fcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfffffff8f8f8f9f9f9fffffffffffffdfdfdfbfbfb989898
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcf9f9f9cecececececef6f6f6f4f4f4f9f9f9
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fbfbfbfffffff6f6f6
+f6f6f6efefeff2f2f2fffffff7f7f7fefefef8f8f8fffffff8f8f8e6e6e6ffffffe8e8e8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffff4f4f4f2f2f2ffffff0000000101010a0a0a
+000000f4f4f4f7f7f7fffffff7f7f7f9f9f9fffffff7f7f7ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffdfdfdfcfcfcfffffffffffffcfcfcf9f9f9999999
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfbfbfbfdfdfdd1d1d1d5d5d5ffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffffdfdfdfafafaf8f8f8
+fcfcfcfffffff1f1f1fcfcfcfafafafffffff7f7f7f7f7f7fffffff5f5f5d3d3d3ffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefbfbfbdededefffffffffffffafafafffffff6f6f6ffffff
+fffffffffffffffffff1f1f1fafafafbfbfbfffffff9f9f9fefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefdfdfdfffffffdfdfdf8f8f8f5f5f5fbfbfb9e9e9e
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafffffffefefec5c5c5c5c5c5fdfdfdfdfdfdf5f5f5
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3fefefeffffffe6e6e6
+ffffffecececffffffefefeffffffffefefef2f2f2f5f5f5f9f9f9fffffffffffff2f2f2
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbffffffe6e6e6eeeeeefffffffdfdfdedededf7f7f7
+fafafaf1f1f1fbfbfbf8f8f8f3f3f3ffffffe6e6e6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff6f6f6fffffffffffffefefefdfdfdffffffffffff9c9c9c
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffcfcfcfffffffefefec5c5c5c4c4c4fdfdfdffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefffffff6f6f6fffffffefefe
+f8f8f8f2f2f2e0e0e0fffffff8f8f8fafafafefefeffffffcececefefefefffffff7f7f7
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefef0f0f0f8f8f8fffffff7f7f7fdfdfdfffffffefefeffffff
+f8f8f8fffffff0f0f0f9f9f9ffffffe7e7e7f3f3f3fffffffefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefcfcfcfefefefffffffcfcfcfffffffffffffafafa898989
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7f7f7f7ffffffd8d8d8d3d3d3f7f7f7f7f7f7ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff1f1f1fefefefffffffbfbfb
+fffffffefefeffffffedededfffffff7f7f7f6f6f6fcfcfcfffffff9f9f9ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffdfdfdffffffffafafaf9f9f9f4f4f4fdfdfdffffff
+fffffff3f3f3ffffffffffffe1e1e1f6f6f6fffffff3f3f3ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfefefefffffffcfcfcf4f4f4fcfcfca8a8a8
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff9f9f9fdfdfdd5d5d5b5b5b5ababab8f8f8f969696
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9f9f9f9e9e9e919191939393
+8e8e8ea1a1a18f8f8f9f9f9f9c9c9c9b9b9b9999999393939797979696969c9c9c929292
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a919191a4a4a48989899e9e9e9c9c9ca5a5a59999998e8e8e
+9c9c9c9c9c9c8d8d8d959595a7a7a79f9f9f8b8b8b9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a999999909090999999a2a2a2939393868686afafaf878787
+999999fdfdfdfefefefffffffffffffffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfffffff4f4f4cbcbcba5a5a5969696959595959595
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a
+a7a7a7e6e6e6fffffffdfdfdf7f7f7fffffffffffffefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7fffffffffffff6f6f6f0f0f0f7f7f7ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+edededfffffffffffffafafafefefefffffffbfbfbf9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffdfdfdfefefefffffffffffffefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fffffffffffff2f2f2f5f5f5fffffffefefef8f8f8ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfefefefcfcfcf9f9f9fafafafefefefafafaf3f3f3
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafaf7f7f7f3f3f3fafafafffffffafafaf9f9f9ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffefefefffffffffffffefefeffffffffffffffffffffffff
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+f7f7f7fffffffffffffdfdfdfffffffdfdfdf8f8f8fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffbfbfbf7f7f7f6f6f6f7f7f7f8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffcfcfcf4f4f4fefefefffffffbfbfbf4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfafafafafafafcfcfcfefefefefefefefefefefefe
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfc
+fdfdfdfffffff7f7f7f2f2f2fdfdfdfffffffbfbfbf9f9f9ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffcfcfcfbfbfbfefefefffffffffffffcfcfcf8f8f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fafafafffffffffffffffffffffffff9f9f9f6f6f6ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafafffffffffffff2f2f2fffffff2f2f2fafafaffffff
+ffffffe9e9e9efefeffffffffffffffafafaf6f6f6fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff1f1f1ffffffdcdcdcfffffff0f0f0fefefeffffffeeeeee
+ffffffffffffffffffe0e0e0f3f3f3fffffffdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffafafaf9f9f9fefefef0f0f0fffffffffffff1f1f1ffffff
+fefefedfdfdfedededffffffffffffffffffe7e7e7fefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fffffffbfbfbf9f9f9f2f2f2f3f3f3fdfdfdffffff
+f5f5f5ffffffe8e8e8fcfcfcf4f4f4fefefefefefeffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000080808090909fafafafffffffffffff3f3f3
+ffffffe8e8e8f8f8f80808080404040000000f0f0ff4f4f4ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff8f8f8fefefe0d0d0d0b0b0b030303ffffffe8e8e8ffffff
+fdfdfdfdfdfdffffff0d0d0d000000010101ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdffffff070707000000020202fffffffffffff7f7f7
+fffffff1f1f10c0c0c0000000b0b0b060606fbfbfbfefefeffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ffffff0b0b0bf4f4f4fffffffcfcfc
+ffffffffffff000000ffffff000000020202fffffffbfbfbffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff8f8f8010101f1f1f1010101060606f4f4f4ffffff
+fefefeffffff000000fafafa000000010101fffffffafafaf4f4f4fffffff5f5f5ffffff
+000000000000fefefefffffff9f9f9ffffff0000000a0a0a030303000000050505050505
+000000131313f8f8f8f9f9f9ffffff010101020202050505fffffff7f7f7030303121212
+000000fafafaffffffe3e3e3ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff2f2f2ffffff010101ffffff000000101010f0f0f0f7f7f7
+fbfbfb000000fffffff2f2f2111111030303f3f3f3f7f7f7fdfdfdf3f3f30505050e0e0e
+efefefffffff000000fffffffafafafffffff5f5f5060606000000ffffffe0e0e0fcfcfc
+171717070707fbfbfbf9f9f9fbfbfbf7f7f7080808000000fafafafffffffafafa040404
+000000fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbffffff000000f3f3f3fdfdfd080808ffffffffffff
+ffffff080808f9f9f9ffffff000000000000fffffffafafafefefe0b0b0b040404fbfbfb
+ffffffededed080808000000f5f5f5f5f5f5f7f7f7040404000000efefeffffffffdfdfd
+000000000000fffffffffffff4f4f4ffffff000000040404fffffff7f7f7ffffff000000
+040404fffffff6f6f6f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffeaeaea171717fefefefbfbfb101010000000f3f3f3
+f5f5f5010101e4e4e4eaeaea242424000000f9f9f9fffffff7f7f7020202000000050505
+0000000c0c0c000000030303fffffff9f9f9ffffff0d0d0d0a0a0af5f5f5ffffffe6e6e6
+040404000000f8f8f8ffffffffffffdadada060606020202fefefefefefee0e0e00e0e0e
+050505f7f7f7fcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdfafafa020202fffffff4f4f4000000070707ffffff
+0b0b0bf2f2f2ffffffe0e0e00b0b0b060606f5f5f5fefefef9f9f91818181b1b1be6e6e6
+fffffffefefef9f9f9fafafaf2f2f2f4f4f4ffffff000000000000fffffff9f9f9ffffff
+060606000000fefefefefefee8e8e8ffffff000000070707fffffff5f5f5ffffff000000
+020202fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffeeeeeeffffff000000ebebebffffffffffff000000000000
+000000ffffffefefeffefefe050505040404ffffffe8e8e8f6f6f6000000040404f0f0f0
+dcdcdcf4f4f4fffffffcfcfcf2f2f2ffffffe5e5e50e0e0e090909e9e9e9f2f2f2ffffff
+000000000000ffffffffffffe3e3e3ffffff000000060606fefefeeeeeeeffffff000000
+070707fffffff9f9f9f2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffebebeb040404fffffff0f0f0fefefe0b0b0b161616
+0e0e0efafafafcfcfcffffff000000000000f3f3f3ffffffffffffffffff000000ffffff
+fbfbfbfffffff2f2f2f0f0f0f6f6f6ffffffffffff000000000000fffffff5f5f5f0f0f0
+141414010101eeeeeefffffffffffff3f3f30d0d0d000000f3f3f3fffffff7f7f7191919
+070707f2f2f2fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff2f2f20c0c0cf8f8f8f5f5f5fffffff1f1f1000000
+fbfbfbf0f0f0fffffff3f3f30c0c0c171717edededfffffffefefefcfcfc0b0b0b000000
+ffffffefefefffffff000000fffffff1f1f1ffffff030303000000f7f7f7fefefeffffff
+010101010101fbfbfbfffffff1f1f1f1f1f1040404050505fffffffafafaf2f2f2000000
+050505fffffffdfdfdf4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff080808020202000000fffffffffffff9f9f9020202
+efefeffffffff4f4f40000000a0a0a050505000000ffffffefefeffffffff4f4f4000000
+0a0a0a050505000000fffffff4f4f4ffffff0000000b0b0b000000101010e7e7e70e0e0e
+1111110000000a0a0afefefef3f3f3f9f9f9ffffff0000000b0b0b0000000b0b0b000000
+030303060606fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffdfdfdecececfafafafffffff6f6f6fdfdfdfffffffbfbfb
+ffffffefefefffffffe7e7e7f8f8f8fafafafbfbfbffffffffffffefefefffffffe7e7e7
+f8f8f8fafafafbfbfbffffffffffffe7e7e7f8f8f8f7f7f7efefeffffffffffffff4f4f4
+edededffffffefefeffffffffffffffffffffdfdfdf2f2f2f5f5f5f0f0f0fbfbfbfbfbfb
+ffffffdfdfdfffffffefefefffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff7f7f7fffffff1f1f1fffffff1f1f1ffffffe8e8e8fafafa
+efefeff1f1f1f1f1f1fffffffdfdfdf2f2f2ffffffefefefefefeff1f1f1f1f1f1ffffff
+fdfdfdf2f2f2ffffffefefeff1f1f1fffffffffffffffffffffffffafafaf9f9f9ffffff
+fffffffefefeffffffedededf7f7f7ffffffe5e5e5fffffffffffffffffffffffff7f7f7
+ffffffffffffebebebf6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff6f6f6fffffffffffff6f6f6fffffffafafaf9f9f9ffffff
+fefefefffffffcfcfcf7f7f7fcfcfcffffffe7e7e7fffffffefefefffffffcfcfcf7f7f7
+fcfcfcffffffe7e7e7fffffff8f8f8fffffffafafae8e8e8f9f9f9fffffffdfdfdf7f7f7
+fefefeefefeffffffffffffffefefef8f8f8fffffff4f4f4eeeeeef9f9f9fcfcfcf1f1f1
+f2f2f2ffffffedededffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffefefef8f8f8fffffffafafafffffffefefefcfcfc
+fafafaefefeffafafafffffff3f3f3fffffff5f5f5fbfbfbfafafaefefeffafafaffffff
+f3f3f3fffffff5f5f5fbfbfbf9f9f9ebebebfffffffffffffdfdfdfffffff3f3f3ffffff
+fffffffffffffefefef1f1f1ffffffe5e5e5fffffffcfcfcfffffffdfdfdffffffffffff
+fffffffdfdfdf9f9f9ecececffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff6f6f6f5f5f5ffffffffffffeeeeeef2f2f2ffffffffffff
+fcfcfcfffffff5f5f5ffffffe4e4e4ecececfffffffbfbfbfcfcfcfffffff5f5f5ffffff
+e4e4e4ecececfffffffbfbfbfffffffffffff0f0f0fffffff8f8f8e7e7e7fffffff2f2f2
+f9f9f9f2f2f2fbfbfbe7e7e7fffffffffffff4f4f4fdfdfdfdfdfdf2f2f2f4f4f4f7f7f7
+fbfbfbefefeffffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffff1f1f1f7f7f7f1f1f1fffffffffffffffffff5f5f5
+f7f7f7ffffffe6e6e6fbfbfbfffffffcfcfcfffffff4f4f4f7f7f7ffffffe6e6e6fbfbfb
+fffffffcfcfcfffffff4f4f4f9f9f9f1f1f1fffffff5f5f5f9f9f9fffffffcfcfcf0f0f0
+ffffffebebebfffffff9f9f9efefeffcfcfcfbfbfbfffffff5f5f5fafafaffffffffffff
+fffffff4f4f4ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffff3f3f3fffffff6f6f6fefefef5f5f5fdfdfdedededffffff
+f9f9f9fffffffffffffefefef5f5f5f3f3f3fbfbfbfffffff9f9f9fffffffffffffefefe
+f5f5f5f3f3f3fbfbfbfffffffafafafffffffffffff7f7f7fdfdfdfffffff0f0f0ffffff
+fffffff9f9f9f7f7f7f9f9f9fffffffffffffdfdfdf7f7f7fefefefffffffdfdfdf8f8f8
+fffffffffffff2f2f2fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffdfffffdfffffefffefffbfefff8fefffafffffafffffbfffffdfffffdfffeff
+fffefffffefffffffffffffffffefffffefffffffffffffffffefffffefffffefffffeff
+fffefffffefffffefffffefffffefffffffffffffffffffdfffefffffffdfffff8fffffa
+fffefffefffffefffffefffdfefff6fefff4fefff8fffffbfffffffffefffffeffffffff
+fefffafefff6fefffafefffdfefffffefffffefffffefffffefffffefffffefffffeffff
+fffffffefffffffefffefffffefffdfefffdfefffffffefffffefffffffffffffbfffffb
+fffffffefffffefffdfefffbfffffafffffbfffefffffefffffefffffffdfffff8fffff8
+fffffafffffdfffffffffefffffdfffffdfffffffffffffbfffff6fffff4fffff8fffffb
+fffffbfefffffffffffffefffffffffffffffffefffffefffffffffffffffffffdfefffd
+fefffffefffffefffdfefffdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff0f0f0ffffffffffffffffff
+f6f6f6fffffff2f2f2fcfcfcfffffff0f0f0f9f9f9f6f6f6fdfdfdfffffff5f5f5fffeff
+fffbfffef2fffaf2fffffdfff1f7e9edf7defbffecfbffeefffff6fffdf6f9f1eefff8fb
+fef6fffbf5fffbf9faf5f5f5fffdfffefefffefffffefffffefefffefefffefefffefeff
+fefdfffefdfffefefffefefffefdfffefefffefffdfffffafef9fdf7f3f0feffeafafdea
+fdfdfff0f1ffeaedf4f8fef4f7ffe2f8ffdefcffecfafdf2fffffff7f5fffdf9fff8f8fa
+fcffedf9ffe6f9fff1f9fffbfbfffffbfffffbfffffbfffffcfefffcfefffcfffffcfffd
+fefffffcfffffefdfffcfffff9fffaf9fffbfcfdfffefcfffffcfffffefffffff3fffff3
+fefffdfbfffffbfff8fbfff3fefff1fffff4fffdfffffcfffcf7fdfdfcf7fefde8ffffe7
+fffff1eeeee6fffffdfffcfffff9fffff9fffffefffffff4ffffe3ffffdfffffecfffff3
+fefff6fcfffdfefefffefefffefffffefffffefefffefefffefffffefffdfefff8fcfff8
+fbfffdfbfffdfbfffbfcfffbfefffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeeeeeef9f9f9fefefe
+fcfcfcf3f3f3ffffffffffffe5e5e5fffffffffffff2f2f2fffffffafafafdfdfdf3f1f4
+f3e9f2fffbfffaf4ffeaebeffafff2f9ffeceff8e3f0f7e5efefe3efeae4fffcfafffbff
+fffafff8f0fbfffffbf9faf4fffffffefffffffffafefffbfffefffefefffffefffefeff
+fffdfffefefffffefffefffffffefffefffffffff4fffff4e8e6e7fcf8f7ffffeefffffa
+f3f2fff0f0fffbffffedf5f7f8fffff9fffdf4fdeaeff6e6f7f8fdf7f5fffefbfffffffb
+fbffedf9ffecf9fff6f9fffffbfefffbfefffbfffffbfffffcfefffcfefffefffffefff8
+fefffafefffffefdfffcfffff9fff8f9fff8fcfefffffcfffffcfffffefbfffff3fffff3
+fefffbfbfffdf9fff8fbfff6fefff6fffffbfffcfffffbfffffdfff0f0e8fcffe4f7fadf
+edede3fffdffede8fcf7f3fffff9fffffbfffffefffffff8ffffeaffffe6ffffeffffff4
+fefff8fefffdfefffffefefffffefffffefffffdfffffefffffefffefffdfefff8fcfff6
+fcfffdfbfffffbfffdfcfffdfeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffecececfffffffbfbfbffffff
+f8f8f8fffffff2f2f2f5f5f5ffffffe3e3e3f2f2f2fefefee8e8e8fffffffffffffffffb
+f8f2e6ffffeffdffeafcffeff3fef0f8fffaf0faf1fbfffafcfdf5fdfaf5fff7fafff8fd
+e7e1e3fdfaf5fdfff2ecefdcffffecffffeaffffeaffffeffffffafffffffffeffffffff
+fffffdfffffafffff3ffffefffffefffffecffffe6ffffecfffffbf0eff5f0f0f8fbfbff
+f5effff6f3fff3f8ffe4e8fff6efffeae5fffbfffff9ffeefefefffffdfff6f7e9f2f5e0
+fefffdfcfffffcfefffcfdfffcfafffcfdfffeffeffeffeafffffffffefffffffbffffef
+ffffdfffffe6fffdfffffdfffbfff8fbfff3fefffafffff8ffffefffffeffffefbfffffd
+fffff8fcfff6fcfffbfcfffffffcfffffafffffbfffffcfff8f6f7fcfdf5ffffeffbfdf0
+fffdffece5fffff5fff9f2fffffdfffefffafefffffefefffefefffefefffffeffffffff
+fffefffffffdfffffdfffefffffdfffffdfffffffdfffffafffffdfffffdfffffafffffa
+fffffffffefffefefffeffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fefefef6f6f6
+ffffffe3e3e3fefefeffffffdbdbdbfffffffafafafffffff3f3f3f1f1f1fffffffbfaf5
+fffff1f9f7e0fbffe4fcffecebf5eaf4fefff1f9ffecf2fffbf9fff7f2fffff9fffff9ff
+fff9fffdfdfdf8fcedfeffeaffffe8ffffe8ffffeffffff4fffff8fffffbfffefffffeff
+fffff8fffff4fffff3fffff1ffffedffffeaffffeafffff1f3f5f2fbfdfffbfbfff8f2ff
+0b026f110a71131546f8f8ff13059a291ba2dfe4faf3fcebf5f4fffdfbfffafee7ffffea
+fffefffefcfffffcfffefbfffff9fffffcffffffedffffe8fffefffffefffffff6ffffec
+ffffe4ffffeafffdfffffdfffcfffdfbfff8fffff8fffff3ffffeafffff1fffbfffffcff
+fffffafefff4fcfffafefffffffafffff9fffffbfffffdfbfffefffcffffe7eedefcfffa
+ebebffebe4ff190b7d100466fcfdfffefff4fefffafefefffefbfffefafffffcfffffdff
+fffdfffffefdfffefafffefdfffcfffffdfffffefbfffffafffefdfffefffffefdfffefd
+fffdfffffdfffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefafafafcfcfcffffff
+f3f3f3fcfcfcffffffeaeaeaffffffecececfffffffffffffffffff5f5f5fffffff6f5f3
+fffefbfffffaecede5e8f0e5f8fff8effafef4fafff8f8fff6eefff1e6fffff3ffeadfff
+fff6fff5f2ffeaf0e4f6fee6fffff4fffefffffcfffffcfffffefdfffefffffbfffffbff
+fffefbfffffafffcfffffcfffffefbfffffafffdfffffefff4f9fdf8fefff6f4ff0c0473
+f7ecff190f96120e6fe4deff2212bb0e0091f9fcfffbfff6f8fafffefefffefff2f8fbe8
+fffffdfffdfffffcfffffdfffffdfffffefffffffbfffefdfffcfffffdffffffefffffef
+fffcfffffbfffffcfffffefffcfffffbfffffffefffffefdfffdfafffcfffff9fffffaff
+fffffffefff4fcffeffefff8fffcfffffafffffcf6fffef6d6d8e5f8fffff4fff2e6f2e8
+f9fdfff9f3ff1100a62813b6fbf6fffcfffffcfff4fcfffbfefbfffef8fffefbfffffcff
+fffdfffffdfdfffcfdfffdfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcff
+fffcfffffcfffffcfffffdfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffeeeeeeededed
+fffffff0f0f0f2f2f2f8f8f8e6e6e6ffffffe1e1e1fffffff1f1f1fffffffafafafffeff
+f4eff5e2e0e5fdfffef9ffffeef7fff4fdffeeeeff0e09700d06663f358b150951190e52
+1f1462f9f6fff9fffff6fef3fefffdfffdfffffafffffbfffffefffffefffffcfffffcff
+fffff6fffff4fffdfffffcfffffefffffefffffbfffefbfff8ffffd1d9ff1c1980070084
+e0d9ff1b168c161475f1edff1a0bb0000081f3f6ffeef7f4f7fcfffcfffffefff4f7fbec
+fffffbfffffffffefffffefffffff4fffff4fffefffffdfffffdfffffefdfffff3fffff8
+fff9fffff9fffffdfffffffdfbfffff9fffffefffffffefffffcfffffbfffff9fffffaff
+fefefffcfffdfbfff1fcfff4fffefffffcfffffcfafffcfff8f8ff000543f5fffff1fff7
+f7ffffe5e5ff0c00a3200fb7f9f6fffbfffffbfff3fcfff4fcfefffefbfffefcfffffdff
+fffdfffffcfffffcfffffcfffffefdfffefdfffdfffffdfffffefdfffefbfffdfffffdff
+fffdfdfffdfdfffdfdfffdfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaeafffffff5f5f5
+f3f3f31010100000000e0e0e000000ffffffeaeaeafffffffffffff8f8f8fffffff9f7fa
+fffcfffffdffecf1ebeff7ffebeeff0c0b800e04a52a20b7241f79dadbfffcfbfffcf9ff
+100760f1ebffeff1fff8fffffbfffffcfffffcfcfffcfcfffcfffffcfffdfcfffffcfffa
+fcffe6fcffe4fcfff3fcfffafcfff6fcfffffcfafff9faffebf4fff2fbff1917960a078c
+f2f8ffe4ecffe9f1fff4f7ff10088f3d34b3eff0fff9fffff9fffae7f0ddf5feedfcfff4
+fcfffafcfffdfcfffffcfffbfeffe8feffe6fefff8fefffdfffff6fffff8fffefffffdff
+fffdfffffdfffffefffefffff8fffff7fffdf9fff4fcfff8fffefffffcfffffdfffefeff
+fbfefff9fffff8fffdf9fffafbfffffefffffffcfffff4ff030095130fa4f2fdffecfff5
+f2fff9e5f0ff1f1b89110d7ef7fcfff8fffff9fff4fbfff1fbfff3fcfff8fcfffdfeffff
+fffdfffffcfffffbfffffdfffffff4fffff1fefffbfefffbffffefffffedfffff8fffffa
+fffff4fffff3fffff6fffff8fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdecececffffff
+090909000000141414000000030303000000fffffffafafaf9f9f9fffffffffffffafafc
+efeaf0fdfdfdf0f6e8f8fefff2efff1007b0271adc0a009ff6f7ffeef5ffeef3f6f1f4ff
+292669e0dcfff5f6ffe7eafff8fafff8fbfff8f9fff8fafff8fcfff8fefff8fffff8ffff
+f8fffff8fefff8fdfff8fdfff8fdfff8fbfff8f8fff7f8fff2fcffdbe2ff140fa91713a8
+dae1ffeefbfff4fdffe3e7ffeee7fff2ecffeceeffe6ecfff8ffffeff4fff6fbfff4f8ff
+f9fbfff8fbfff9fcfff9fffff9fff8f9fffdf9fcfffbfbfffbfffbfcfffafcfbfffcf9ff
+fcfafffcfbfffefdfff9fefff4fdfff2fdfff5fffff8fefffcfafffcf9fffcf9fff9faff
+f7fafff5fbfff5fcfff5fefff8fffffbfffffefbfffbf2ff1205c61f16d5e4ecffe3f4ff
+edfffbf2fffff2f2ffe9e6fff5fdfff7fffff8fffff9fffff9fefffbfcfffbfbfffcfaff
+fcfafffcfafffcfafffcfbfffbfcfffbfcfff9fcfff9fcfffbfdfffbfdfffcfcfffefcff
+fefffdfffff3fffff3fffff6fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff1f1f1f8f8f8ffffff
+000000040404000000020202010101050505fcfcfcf3f3f3f9f9f9fffffff1f1f1fffffd
+fcf9f4fafceffcffeceef3ff11099d1609d20800b7f2effff5fdffecf8eaf6ffeef6fff5
+ebf4fbf7fbffeeecff0d0992120b99120c921f1c8d26268a0f0f6ff0f3fff4fdff111658
+0b03941d11bb150e9c1f1a9b1711950d0984181681f0f4fff1f9ff0f137e1c14ca0d03ba
+161684111860e3e7ff19187e1105a3100891f5fcffeff6ffefecff1c148415106c19147a
+10079418119bebe9ffe8ecfff5fdff101451120b8f150d84ecf4fff0fafc1615591b147e
+100878f8f3ffe7e8ff1d21610d0b9a0f0daeeff0ff0f0f6f0f096bf7f0ffe7dfff16108a
+1c1d8704087308088a1a1d88ebf3fff2fafff8f9ff1713721008b5120cc4050889161f6a
+eeffff0b164c1e15bc1004b0f1f6fff1fcffebefff13105d241a972314a50e0089231890
+181170f8f6ffeeeeff13125e221c98170e9b110d8619168b221c9a09037f181183f8f5ff
+f4f5fff6fbf5fefff4f9fdeffffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffcfcfcffffff
+0000000909090000000404040e0e0e000000fffffffffffff4f4f4f1f1f1fffffffaf9f7
+fdfaf3f7f7ebf5fceaf0f4ff190fac0700c4231bc6f1f1ffe5effff3ffeff3ffe9f8ffed
+deeddaf5feffebe9ff140db30d08a2e4e4ffeef1ff000470110f97f0f2ffd8e3fff0f8ff
+1003cd2112f5efe9ffe0e0ffe4dfff0907991b1d8eebf2ffe5efffe0e5ff1f16d10900b6
+eff1fff4fafff4f9ffe6e3ff2d1fce0c0297ccd5f2f2fdff0f088a1509a9eee9ffeeebff
+eae2ff0700a52e2dac000159e7f3ffebf2ff1d12c81910bbf4fbffe9f5fff4f4ff221ca2
+130a9beae5fff5fbffe3e9ff110cca0400d003068b15197d211f8df1ebff0c04951c18ad
+e7e5ffe6e7ffedeaff0c0da5050d5ef1fcffebf2fff2f2ff130db70000b1eef2ffe4f0ff
+d3e4fff0faff0d01c51a0cd1ecf0fff0fafff5f4ff190f941508a0e7d8fff8ecff160b8d
+090082f0ecffdfe5fff0f5ff1a0fc11308c8d6d6ffeef0ffe6e2ff261fbd090192e6e4ff
+f2f7ffe4edecfbffffeef3effeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8f6f6f6e8e8e8fdfdfd
+060606000000101010010101000000000000f8f8f8fffffff7f7f7fffffffafafafefcfd
+fffdfffffeffe6e9eef2f4ff120b99281dcf040097dfe0fff5fcfff7ffffedf7eff5fff3
+f7fff8e3edff07058d1310a7f0f8ffd7e8ffecfbffebf7ff1814b31111a5edfcffe4f3ff
+2117d80000b5f0f9ffe9fbfff0f6ff212795081065edf8ffedfcfff1f8ff00009b1e18b0
+f0f9ffe7f6eff1fdfff0f2ff0900b12c1fc4f3ffffe6f4ff251ea81309aadee2fff1faff
+dfe4ff060b81171c94eef8ffd5e6fff0fcff0901b60e05c4e8edffdfe8fff2f2ff0d0a8f
+050189f2f5ffebfaffe1efff0a0ac40a08cbedfbfff0ffff0e1460e9ebffeff1fff0f1ff
+0806a71716c90706ba1113b50f138ee6edffe6f0fff4f9ff150dc51711cddde6fff0ffff
+eefffff0faff0500bf2318d8e8f1fff4fdff0e05a01204b3f0eefff5f7fff7fcffececff
+1910a70c0797f1fdfff0fbff0000af201ad4e8f7ffedffffe8f1ff1a1c950d0e82f4f7ff
+ebf4fff1fcf8f6f9fff6f7fffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffffffff
+ffffff101010000000090909090909fffffffffffff3f3f3fffffff4f4f4fffffffffeff
+fdf8ffe3dde9f4f4fff9faff0d08800100951e17b2f2f0ffe1e5ffe5edfff9ffffecf7f3
+eff7ffeff4ff1d19ab0f0e98d2e0ffedffffe6f9ffe3edff1711bb0f0baaeefdffeaf8ff
+0800ba251dd5e6f5ffdcf1f2e9f3ff010767182071f0fdfff1ffffe8f2ff3228c9090195
+e3effdf7ffe3dfeddef4f6ff220fcb0600a8f4ffffe9f7ff0f0d8a221eb3edf3ffedf9ff
+eefaff0a166c0b1375eefaffeeffffd9e9ff0902b00e04c7e0e3fff1f6ffe1e0ff2724af
+1b189ddde2ffebfcfff0ffff0505bd1312cfe9faffefffffe5f1ffeff3ff131677090887
+1412b3ebebffe4e4ff0302a614169feff5fff5ffffecf1ff1106c60900c0e6f3ffeafff9
+dbeff0f1faff2217d30000abf2fdfff2feff0d01ab1c0ec5f5f6fff0fbfff5ffffe4eaff
+1a13b1100ba6ccd9fff0fdff0c06be100dc0edffffdefbf6ecfbff030a720d1079eef2ff
+f7fffff8fffbfbfdfffcfbfffefeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe8e8e8ffffffe5e5e5ffffff
+f8f8f8fffffffffffff9f9f9fcfcfcfafafae0e0e0fffffffcfcfcfffffffefefef9f7fa
+fffbfff8f2fefdfdffeef1fff5f5ff1a169e0700ae2218b7eeeffff7feffebf5ecf8ffff
+14135fe9e5ff09059a131492f2fcffddecffe1eefff2f7ff0000a01912adeffbfff2fcff
+1509c10200aef2fcffe9f9fff1f7ff27289215177be0e8fff5ffffd5deff0c00ad1f0fba
+f8fdfff0ffdcf8fff4eff0ff1b08c41303bce7effff2ffffedf2ff0607850d147f010a67
+0b166600084cf0fcffe1f0ffe8fafff0fcff1b15b50d04b9efefffe0e0ffe3deff1912ae
+0a0391eceffff4ffffdeeaff0000b2100dd0eff7ffcedeeef5ffffe8edff100a842118b3
+e4e3ffe6e7ffeeebff1615b1070781f0f4fff6ffffe3e6ff1e0fcc0d01c3eef8fff1fffd
+ecfff9e1ebff00009b2e26c9eefaffebf8ff130f981c15b0eceeffd0d9fff4ffffebf0ff
+1a11ac050090f1ffffecfbff0300ab1a18c1e9fdffe9ffffeaf7ff262b930b0c78dee0ff
+dfe8f1fbfff8e6e4f9f4f2fffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f1f1efefef
+ffffffe7e7e7fcfcfcfafafaefefeffffffff0f0f0efefeff6f6f6e9e9e9fffffffffeff
+e9e3e7fffdfff9f9fbe9edf9edf2ffeef0ff160ea21208a5130d7be8e8fff7fdffdbe0fd
+130f6ef3edfff0eeff1315860c1155f5fbfff2f6ff1a1976180f9ef5efffdde6ffeaf1ff
+1b0fb10f01aef5f7ffeaf1ffededff100c7a110d7eeeeffff0f8fff8fbff1303a21a0aa8
+edefffeffaece3ece9f9f8ff1d0bb72919c4e7edffe4f1fff0f5ff0e1290edf3ffedf5ff
+eff4fff1f7fff0f8ffeffbfff2ffffe2edff090880100b9b1411861512832b23aa0f0695
+1a129ce8e5ffe6eefff0f7ff0300a22925d1ecf1fff5ffffecf7efedf1ff281e9b1001a2
+211da50e0d8d14129a0c0a8f171485f4f4fffbfffff9fbff190cb11208b6d3d7ffefffff
+effffff2fdff0e0a9515109ef2fcfff2feffe9ebff00007724268df2f8ffe0e7ff12165f
+0e078bf4f0fff0fbffe5f3ff1714a9100fa8dcecffeefffff0f9ff020471191689f7f5ff
+fbffffeff3e5f6f5fbfffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaecececffffffffffff
+ebebebfbfbfbffffffe4e4e4ffffffe3e3e3fffffffefefeffffffffffffedededfaf9f5
+fffdf5fffff6f0f0eef9fff8f7ffecf4ffffedf1ff0c097c261ba61309860c0854393a73
+14135fececfff2f4ff05076b05016025207e1610740e086c1b1575f0effff8ffff181d3b
+2117920f01960e076ef8f4ff1c167807006e291f9c191083f8f5ff100b5d10057b100470
+201e4ffbfdfffafbff110e51170b91170c96191d66e8f0ffeeefff0a0aa800058101087c
+0b098e130c96100a90dedfffeffbfff4ffffdfe4ff2c2d7f181472120e6de5e2ff272286
+1c1191170f7ff5f6ff14165326259d06047f141555e6ebfffcfffdfcfdff1308712616aa
+180ba30d078df4f4ff0d0d67271f8f0d0363f7f2fffaf7ff1c148b100a901f1e7b0e154c
+eef9ff08103e2927920e0b7e141b63e3ecfff2f9ff2427880e0a922423a2040b531a205c
+1a1772f6f4fff3f9ff111a451d1c910c0b8d1f2579dfe9ff191d8119188d150c8b04005a
+f7f6fff7f9e4fffff1fbf7ecfffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf3f3f3
+fdfdfdfefefef1f1f1fffffff3f3f3ffffffe8e8e8fffffff5f5f5fdfdfdfffffffdfcfa
+fffdfaf1f0eefefeffe6ebeef5ffeaecfbf4f5fbffece9ffe7dbfff8e9fff3e9fff4efff
+f5f1ffeaebffeeeffff3f2fff7f0ffe3dafff1e8fff8f0ffe5e1fff2f2fff0f5ffeff1ff
+eae2fff8edfff7eeffe8e0fff8f0fff8efffeee3fff0e5fff0e6fff5edfff6eefff8f2ff
+f2eeffdcdafff8f7fff1edffeee6ffefe9ffe7e7fff1f3ff00009f100dbceaedffeef0ff
+f0eaff150bac0d03a2f4f0ffeff6ffeaf6fff5fcffeaedffedeafff7f3ffe2e1fff3f0ff
+f4ecfff0e8ffefebfff7f6fff4f2fff2f1fff6f6fff9fafff2f3ffedeafffbf0ffeee0ff
+ecdffff5edffe1e1fff4f5fff7eefff9effff7effff4eeffece7fff5f0ffe5e2fff0f0ff
+f4fafff1f6fff0f0fff3f1fff2f6ffeff4ffe0e7ffeff2fff0ebffece9ffeff3fff1f5ff
+f6f4ffeae7fff2f3fff7f8ffe8e4ffece7ffececfff2f3ffe4e1fff5f0ffe9dffffbf1ff
+f5f2fffffffbfffcf3fbf8effffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff
+fcfdffe7e8ffebedff1c1d490e10401c1e5b27247f0a0377190d97190c9a190e90190f8a
+19108718118518118518108716118916108a16108a16118716128116137a161572161477
+16118716108e16108a16118916118716118916108e160f93150e98150e9a150f97151090
+15128515138015137e1512850b08891b179f0e0b900e0a9c1810bb0000ad241dcd130db5
+1f19b9040098201ab2120e960c0d790c0f6e1c1e820e107713148013148013157c131480
+13128913128a15138115138015128715128716137e161475181472181475181185160f90
+160f9315109015138115138016118916118918127c18127c16118715118a151287151283
+15147a15147c15128515128715128315138015137e15128315109113109115128315137e
+18118119118119127c191181180f90180e95180f90180f8c0a027b2720921d16800f095f
+1c1c52ededffe7e9fffcfefffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff
+edf1fdd5dceff9fcffe6e9fff9f9fff5f4ffefeafff8f3fff6eefff5eefff6edfff5eeff
+f6eefff5effff6effff5f0fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1ff
+f4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f0fff1efffefeffff1efffeff1ff
+f1f1ffeff3fff1f2ffeff3fff4f5ffd5d7fff2f0fff2f1ffded8ff1a16a10e069a04008f
+0b06872d2ca3dddafff0f0ffedecfff2f5ffdbdcfff2f6fff1f3ffeff4fff1f3ffeff4ff
+f1f3ffeff3fff1f2fff1f2fff2f1fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1ff
+f4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1ff
+f4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff2f1fff4f0fff4f0ff
+f5f0fff5f0fff6eefff5effff6edfff5eefff6edfff5effff9f2ffeeebfff6f3fff8f9ff
+e7e9fff8fdffd6dbf1edf1fdfeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffa
+fbffeff2fee6fafff2f6fff7f4f9fcf2f8ffe6e8fdf1f5fff5f5fff3f6fff5f5fff3f6ff
+f5f6fff3f7fff5f7fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7ff
+f5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff2f7fff1f8fff2f8fff1f9ff
+f2f9fff1fbfff2fafff1fbffe9f0fff6fefff4f9ffeef3fff8faffe5e8fff8f8fff7f9ff
+f8f9ffe6e9fff8fafff1f5ffedf1fff4fafff8fdfff7fefff2f8fff1f9fff2f8fff1f9ff
+f2f8fff1f8fff2f7fff2f7fff3f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7ff
+f5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7ff
+f5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7fff5f6fff3f7ff
+f5f7fff3f8fff5f6fff3f7fff5f5fff3f6fff5f5fff3f6fff3f4ffe4e9fdf4f8fff2fafc
+f8fff7f8fff2f4fee6fbffeffefffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefff8
+ebf4d9faffe3f3fcdff4fee5f1f8e6fbfff6fcfffbf5fbf9fcfffffbfffffcfffffbfffd
+fcfffbfbfffafcfff6fcfff8fefffdfefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffdfcfff8fbfff4fcfff3fbffef
+fcffedfbffecfcffecfbffecf7ffe8fbfff1fafff4f9fff9f5f9fafafffffbfdffe2e5f4
+f7f8fff3f6fff0f2fffbfffffafdfff1f6f9fcffffe5ece5fcfffafbfffafcfffafbfffb
+fcfffffbfffffcfffffcfffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffd
+fcfff8fbfff6fcfffafbfffbfcfffdfbfffffcfffffbfffff6faf9fbfffbfcfff6f0f9e6
+f5fde5f2fddffbffe3ebf4d9fefff8ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fcfff8fbfff7fafdf6fcfffbfefffdecf0eff6f8f7f2f6f5fafcfbf8fdf9fafcf7f8fdf6
+fafdf4f8fef2fafdf2fafdf4fcfbf9fef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fd
+fef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfcfbf7fcfcf0fbfeebfcfee9fbfee9
+fcfee8fbffe8fcfee8fbfee9f7f8e6eff2e1fffff3eff1e6fffffadbdcd7fffffdfffeff
+fffcfff1effdfffcfffaf9ffeeecf1fffffff3f2f0fffffbfcfbf6fbfcf6fcfbf7fbfbf9
+fcfafbfbfbfdfcfafffcfafffcfafdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fd
+fef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fd
+fef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfef9fdfcfbf9
+fafdf4f8fef2fafdf2f8fef4fafdf6f8fdf7fafcf9f8fcfbf4f6f5f4f8f7eef0effcfffd
+fefffbf8fdf6fdfff7fcfff8fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefff8f8fffbfafff6f7fcfffeffe6e7ebfdfdfffefffffdfdfbfcfef9fdfef8fcfff6
+fdfef6fcfff4fdfff4fdfef6fffcfbfffbfffffbfffffbfffffbfffffbfffffbfffffbff
+fffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfbfffdf4fffeeffffeeffffeef
+fffef1fffef1fffef2fffef2f5f2e9fffcf3fffff8fefbf4fffff8fefbf6fffdf8f3efee
+fffafff9f3fff5f0f7f9f4faf7f2f6fffefdf3efecf6f3eefffdf8fffdf8fffcf9fffcfb
+fffcfdfffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbff
+fffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbff
+fffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffcfb
+fdfef6fcfff4fdfff4fcfff6fdfef6fcfff8fdfef9fcfefbfffffffcfdffe7e6ebfeffff
+f7f6fcfafafff9f8fffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+f1effdf9f6fffffcfffbf9fffffdfffdfcfffdfbfcf2f2f0fffef9fefff9fffff7fefff7
+fffff7fefff9fffef9fffefafffdfcfffcfefffcfefffcfefffcfefffcfefffcfefffcfe
+fffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffdfafffdfafffdfafffcfc
+fffcfefffcfffffbfffffbfffffcfffbf4fbe2dbe2fffdfff7f1f3fffdfdf5efeffffdfd
+e7e1e5fffdfff2ecf0fffdfffffdfdf6f1eefffefafffcf6fffdf7fffdf9fffdfafffcfc
+fffcfefffcfffffbfffffbfffffcfffffcfefffcfefffcfefffcfefffcfefffcfefffcfe
+fffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfe
+fffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfefffdfc
+fffefafefff9fffef9fefff7fffff7fefff7fffef9fefff9f3f2f0fcfcfcfefcfffffeff
+fcf8fffffdfffaf6fff1effdfffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffcfff7f3fffefafffbf8fff8f6fbfffefff7f6f2fffff8fffff7fffff5fffff7fffff7
+fffef9fffefafffefcfffefcfffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfa
+fffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfcfffdfcfffdfefffcfffffcff
+fffcfffffbfffffbfffffbfff9f3fff9f3fffffcfff8f3f9fffbfffdf9f8fffcf9fdf9f6
+fffefbfffefbf6f3eef8f5f0f4f1eafffff6f1eee5fffcf3fffef5fffef5fffef7fffef9
+fffdfafffdfcfffdfefffdfefffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfa
+fffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfa
+fffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfafffdfcfffdfc
+fffefcfffefcfffefafffef9fffff7fffff7fffff5fffff5fffffaf7f6f2fffefff8f6fb
+fbf8fffefafff7f3fffffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffefffffefffffffdfffffafffff6fffff4fffff3fffff3fffff4fffff6fffff8
+fffffbfffffdfffefffffefffffffafffff6fffff8fffff6fffff8fffff6fffff8fffff6
+fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff8fffffbfffffdffffffffffff
+fffefffffefffffdfffffdfffffdfffffefffffefffffffffffffbfffffafffff6fffff4
+fffff4fffff3fffff3fffff3fffff1fffff1fffff1fffff1fffff1fffff3fffff3fffff4
+fffff6fffff8fffff8fffff8fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6
+fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6
+fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffff6fffff8fffffa
+fffefffffefffffffdfffffbfffff8fffff6fffff4fffff3fffff3fffff4fffff6fffffa
+fffffdfffefffffefffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffefffffefffffffdfffffafffff8fffff6fffff6fffff6fffff8fffffbfffeff
+fffefffffdfffffdfffffefffefffdfcfffafcfffafcfffafcfffafcfffafcfffafcfffa
+fcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffbfcfffdfcfffffefffffcffff
+fefffffcfffffefefffcfffffefefffcfffffefffffcfffffefffbfcfff8fefff6fcfff4
+fefff4fcfff4fefff4fcfff4fefff4fcfff4fefff4fcfff4fefff4fcfff6fefff6fcfff8
+fefffafcfffafefffbfcfffbfcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffa
+fcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffa
+fcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafcfffafefffd
+fffefffffdfffffdfffffefffffefffffffbfffffafffff6fffff6fffff6fffff8fffffa
+fffffdfffefffffefffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffdfffffdfffffdfffffefffffefffffefffffefffffefffffdfffffdfffffcfffffcff
+fffbfffffbfffffafffffcfffcfefffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffcfffffbffff
+fcfffffbfffffcfffffbfffffcfffffbfffffcfffffbfffffcfffdfbfffbfcfffafbfffa
+fcfffffbfffffcfffffbfffffcfffffbfffffcfffffbfffffcfffffbfffffcfffffbffff
+fcfffffbfffffcfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffcfeff
+fffcfffffafffffbfffffbfffffcfffffdfffffdfffffdfffffefffffefffffefffffeff
+fffefffffdfffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffefffffefffffefffffefffffefffffdfffffefffffdfffffdfffffcfffffcff
+fffbfffffbfffffbfffffcfffcfefffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffdfcfffbfcfffafcfff8fcfff8fcfffa
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbffff
+fbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffcfeff
+fffcfffffbfffffbfffffcfffffcfffffdfffffcfffffdfffffdfffffefffffefffffeff
+fffefffffefffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffffafefff8fffff8fefffafffffbfefffdfffffffefffffffffffefffffffefffeffff
+fffefffefffffffefffefffffefffffcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffdfefffbfefffafefff8fefff6
+fefff6fefff4fefff4fefff3fefff3fefff3fefff1fefff1fefff1fefff1fefff1fefff4
+fefffbfefffdfefffffefffdfefffffefffffefffffefffffefffffefffffefffffeffff
+fefffdfefffdfefffdfefffffefffffcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffeffff
+fefffffefffffffefffefffffffefffefffffffefffefffffffffffefffffffffdfefffb
+fffffafefff8fffff8fffffafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fefff8fefff4fefff6fefff8fefffafefffbfefffffefffffefffffefffffefffdfefffd
+fefffbfefffafefffafefffafffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffbfffffafffff8
+fffff4fffff3fffff1fffff1ffffefffffeffffff1fffff1fffff3fffff4fffff6fffff8
+fffffbfffffdfffffdfffffdfffffdfffefffffefffffefffffffdfffffdfffffdfffffb
+fffffbfffffbfffffbfffffbfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffd
+fffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfefffb
+fefffafefffafefffafefffbfefffdfefffdfefffffefffffefffffefffffefffbfefffa
+fefff8fefff6fefff4fefff6fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fefffafcfff8fcfffafcfffbfcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffb
+fcfff8fcfff6fcfff3fefff6fffffdfffefffffefffffefffffefffffefffffefffffeff
+fffefffffefffffefffffefffffefffffefffffefffffdfffffbfffffbfffffcfffffcff
+fffdfffffefbfffefafffef8fffef8fffef8fffefafffdfdfffdfffffcfffffcfffffcff
+fffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffdfffffdfffffdff
+fffdfffffdfdfffdfdfffdfdfffefffffefffffefffffefffffefffffefffffefffffeff
+fffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffeff
+fffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffffd
+fefff6fcfff3fcfff6fcfff8fcfffbfcfffffcfffffcfffffcfffffcfffffcfffffcffff
+fcfffbfcfffafcfff8fefffafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffefffdfefffbfefff8fefff4fefff8fefffffefefffefffffefffffefffafefff8
+fcfffafcfff8fcfff3fefff4fffffafffffdfffefbfffffdfffefffffefffffefffffeff
+fffdfffffdfffffefffffffdfffdfffffefffffdfffffdfffffbfffffbfffffbfffffcff
+fffdfffffdfdfffef8fffef8fffdfdfffdfffffdfffffdfffffcfffffdfffffcfffffbff
+fffbfffffbfffffdfffffdfffffcfffffcfffffbfffffdfffffdfdfffdfffffbfffffbff
+fffcfffffdfffffdfffffdfffffdfffffefffffdfffffefffffefffffefffffdfffffdff
+fffefffffffffffefffffffdfffffafffffbfffefffffdfffffefffffefdfffdfffffdff
+fffdfffffdfffffdfffffefffffefffffffdfffefffffefffffcfffffcfffffdfffffeff
+fefff6fcfff4fcfffbfcfffbfcfff8fcfffbfefefffcfefffefefffcfffffcfffffcfffb
+fcfff8fcfff8fcfffdfcfffffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffcfffffefff1f1e9feffe8ffffdcffffe1f5f1f0fffcfffcf9fffaf9f7f7fae9fdffef
+fdfffefefffff9fff5fbfff0fffff3fffff1ffffeffffff1fffff6fffff8fffff8fffffd
+fffdfffffefffffff6fffff4fffefffffefffffffdfffffdfffefffffefffffefffffffb
+fffff8fffff4ffffeffffff3fffffffffefffffffffffffdfffffbfefffafffff8ffffff
+fffbfffffbfff3f0e9fffef2fffdfffffdfff6f0f2fffffaf5f3e4fffef7fdf9fffffaff
+fffcfff6f6fffefdfff4f5fffcfefffbfefffcfefffbfffffcfffffbfffffcfdfffbfeff
+fcfffffbfffbfcfffafbfff3fcffeafbffeffcfffffefefffcfcf4fffdf1fffefffaf7ff
+fffcfffdfafff4f4fffafbfdfefff8fefff4fffff8fffffffffbfffffbfffffcfffffeff
+fffffafefffdfefdfffefefffefff3fefff4fffdfffefcfffffcfffefffffefff8feffef
+fcffecfcfff1fbfffffcfffffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+f9f6fff7f2f9fffff8ffffe8fdffd3f4f6cefffcf3fffdfffcf7fdfffefbffffedf4f6e1
+f4f4f4f0f1f5fefffdfefff8fffff6fffff3fffff1fffff3fffff8fffffbfffffaffffff
+fffdfffffdfffffff6fffff4fffffffffefffffffffffffdfffefffffefffffffdfffffa
+fffff6fffff1ffffeffffff4fefffffefefffefefffefffffcfffdfcfffafcfff4fefffa
+f8f6fff5f1fffffff8fefef2fbfaf6f2f1effffcf5fffff1ffffecfffff3f2f1f9fdfdff
+f5f7f4f4f9f3f7fafffbfffffbfffffbfffffbfefffbfffffbfffdfbfffffbfefffbfeff
+fbfffffbfff8fbfff8fbfff3fbffe8fbffeffbfffffcffffffffeffcfee6fafaf2f2f1f7
+fdfcfff8f7fff6f9fff3f8f2fcfff3fcfff1fefff8fefffffffbfffffbfffffffaffffef
+fffff1fefffafefefffefefffffff6fffff4fffdfffffcfffffcfffffefffefff3feffea
+fcffe8fcfff1fcfffffcfffffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffdfff5f3f8fdfbfcfffff8fbfde7fdffe5ffffedfbfbeff9f7f8faf9f7f1f3deffffec
+fbfcf4fffffff1f1f3fffefffffefffffefffffffffffffffffefffffefffffefffffdff
+fffcfffffdfffffffffffffdfffefffffefffffefffffefffffdfffffdfffffefffffffd
+fffff8fffff4fffff6fffffdfffcfffffbfffefcfffefdfffefefffefffffefffafefffa
+fefffff4f4f6fcfcfcfffffbfafcf1fcffeeffffeafafee5f6f9e6fffff1ffffeffeffe6
+f2fcc8fcffd6f4fce4f1f6effefffffffefffffdfffffffffffff1ffffedfffff8fffffa
+fffff6fffff6fffffafffffafffffafffffafffffffffff6f8fcdbf9fdd8feffebf9faf4
+fefefff6f6fffcfff8f9ffeefcffeffcfff4fefffffefdfffffbfffffeffffffddffffcf
+ffffddffffecfffffafffffffffffffffffffffffdfffffffffdfffffefffefff1feffea
+fefff1fcfff4fcfff4fcfff6fefffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffefff2f1f7fffffff0f0eefffff8f1f3e6f1f3e8fffffdfbfaf6e7e8d6fcfdeb
+eeefe7fbfbfbf3f2f8fffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdff
+fffdfffffdfffffefffffefffffefffffefffffffffffefffffdfffffdfffffefffffffd
+fffff8fffff8fffffafffffffffdfffffbfffefcfffefcfffefdfffefffffefffbfefff8
+fefff8fefffaf1f2f4feffffeff2ebfefff4f0f5e1f0f5e1f7f9ecf9fdeefdffe9eff7ce
+eaf5bbfeffd3faffe4fefff4fffff6fffff8fffefdfffffaffffefffffecfffff3fffff6
+fffffafffefdfffdfffffdfffffcfffffcfffffdfffffff8f2f4dcfbffe6fffff4fcfff8
+fefffaeff4f0fafefffbfffffcfff1fcfff3fcfffffefcfffefcffffffffffffddffffd1
+ffffddffffe8fffff4fffffffffcfffffdfffffff8fffff6fffefffffefffefff4fefff1
+fefffdfefffdfefff3fefff3fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+edeef2fefffff5f5fdf6f6fffdfcfffefdfff5f4fffefffff2f3edfefff3fffff3fafcef
+fffffdfdfcfffffdffefebfafffcfffffcfffffcfffffcfffffcfffffdfffffdfffffeff
+fffefffffffffffefffffefffffffffffffbfffffdfffffdfffffbfffffafffff8fffff6
+fffff6fffff8fffffdfffffffffffffffefffffefffffefffffefffffffffffffafefff6
+ebf1e3fcfff6f3f8f2f4f8f9fbfefffcfffff3f6fbfcfffffefffdf8fbf4fefff3fefff1
+fefff1f1f5e7f3f6effffffafffff1ffffedffffeffffff1fffff6fffefafffdfdfffdff
+fffbfffffafffffafffff9fffff9fffff9fffffbfffffcfffffdfffffdfff1eeffe6e7ec
+f1fbd9fbffefedecfff9fafffbfffafbffedfbfffffcfdfffefdfffefefffffffdfffff4
+ffffeffffff1fffffafffefffffafffffbfffffffafffff1fffffafffffdfffffbffffff
+fffcfffffcfffffffdfffff8fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff
+fcfffffcfffffbfeffe7e9f5fcfcfff6f4fff2edffece9fffcfffff2f6e7e2e6d8f4f5f0
+f6f4fffffcfffaf6fffffcfffffdfffffdfffffcfffffdfffffdfffffdfffffefffffffd
+fffff4fffff6fffefffffefffffffafffff6fffff8fffff8fffff4fffff3fffff4fffff8
+fffffbfffffffffdfffffdfffffffbfffff8fffffdfffffffffffffffffdfffffbfefff8
+fcfff4fbfff3fafff3e4edecfbfcfff5f4fff1efffebeaffdfe0fff0f1ffedeffbf5f6fb
+fcfcfffcfcfffffefff9f8f6fffff4ffffefffffeafffff1fffbfffffafffffafffffaff
+fff9fffffafffff9fffffafffffafffffbfffffbfffffdfff0ecfbf9f7fffbf7fffcfeff
+fbffdddbe6d6332c89100970f9fefff9fff4f9fffffbfffffcfefffefefffefdfffffdff
+fffffdfffffbfffffffffdfffffafffffbfffffffbffffefffffedfffff3fffffffffdff
+fffbfffffbfffffdfffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff
+f0f3fceef3f9f8fefafbffffe2e3fff6f1fffbeffff6ecfffbfdfffafff6fcfff8f7f8fd
+f9f3fff1ebfffbf7fffffefffffffffefffffefffffefffffefffffefffffefff6feffed
+feffe4feffeafefffdfefffffefff4fefff1fefff4fefff4fefff1fefff3fefff8feffff
+fefefffefcfffefafffefcfffffffbfffff3fffffafffffdfffffffffefffffdffffffff
+eff7eaecf8e2f6ffe7f8ffffe0dffff4edfff9f1fff4ecfff9f2fff9f5ffd5d3fffcfbff
+f3f1fffefeffffffffedeceafffdfffffefbffffeffffffafff8fffff6fffff7fffff9ff
+fffafffffcfffffdfdfffff4ffffedffffe8ffffe8ffffedfbfcf7fcfeffefeefff4f7ff
+fbffe4f4faff1c0da61505aef8f8fff8fffff9fffffbfffffbfffffcfffffcfefffefdff
+fffdfffffdfffffefffffdfffefdfffefdfffefffffefff1feffddfeffe3fffffdfffdff
+fffcfffffbfffffbfffffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff
+f4f6fffbfffff4fcf1f2fafc1a1c45221d7913049d1a0d9bf3f1ffeff5fffafffe060814
+30295f2e255eedeafff7f7f7fefffbfcfffbfcfffbfcfffffcfffffcfffdfcffedfcffe3
+fcffdcfcffe6fcfffffcfffffcfffafcfff4fcfffafcfff8fcfff3fcfff1fcfff6fcfffd
+fcfffffcfdfffcfafffefbfffefff8ffffecfffff6fffffdfffffdfffffbfffffbfffffa
+f3fbf0f9fffaf1fcf8f1f6ff191375211993120c7a19147a0d086e1e1878130e60e8e4ff
+fcfafff9f8ffe9ece1fffff4fffefffffefffffff6fffffdfffafffff8fffffafffffcff
+fffefffffff8fffff3ffffefffffedffffeaffffe1ffffe8f2f7f1fbfffff5f8fff4fcfe
+f3ffe6f8feff08009a1e0dbbf7f8fff7fffff8fffff9fffff9fffbfbfffdfbfffffcfeff
+fffdfffffdfffffdfffefefffefefffcfffffcfffffcfffbfcffe1feffe1fefffbfffeff
+fffefffffdfffffbfffffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffecececffffffffffffefefef
+ffffff101010000000030303050505f9f9f9f1f1f1fffffffcfcfcedededfdfdfdfdfeff
+fafdfff0f5f8effaeaf9fffff4f5ff1710821706b61201b1eae3fff7f9ffecf5fef1f7ff
+1d175ff7effff4f1fffefffffafffcecf3eceef5eefbffffe5e9f5f8fdfffbffecf3ffd5
+f9ffdbfaffebfafefff9fbfff9fdfffafffffafefff9fefff8fff5eef7e4fbffedf5ffe7
+f6ffecfbfffff3f5fffcfdfffcffeff1f8d7fdfff5f4f6f1fbfff1fcffeafdffe1f9ffe1
+fbfffae9eefff8f8ff09026a2315b01c13a0eef2fff5fdfff5f9ff02025829238ff8f2ff
+e9e9fffbffffeaf4d2f7ffdafbfffbf8fdfff4fafafafffceef4f0fbfffbf3faf2f0f9e6
+eef9d9f7ffdffaffe9f2faeffbfefff7fbffe7f0dbfbffeff9fdffedf1fde9f4e4f8ffed
+f3fff1ebf2ff1d1686191584edf6fff4fffff6fffff1f8fff8fffff0faefeef5eef3f7f6
+fffeffdedde3fdfdfffcffffd7dbdcf2f7fdfbfdfff0f3ffedf4ecfcfff1dcdfd8f7f8f0
+ffffedfefde9fbf6f2fffdfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffdbdbdbffffffffffff
+0101010a0a0a010101000000080808000000fffffff2f2f2ffffffffffffffffffedeef0
+fbfeffedf3f1fbfff3edf4fcf7f7ff0a04822012bd1002b7150baaf1eeffecf3fff8ffff
+161066f9f0fff1effffbfefff5f8fff6fafff8fdffdce0fff8f8fff1f3ffd8e1e8f6fff6
+effaf4f6fdfff6f7ffefeeffefeffff6f7fff6f7ffeff1ffe2e6fff8feffeef7fff0faf9
+f8fffde2eaf5f9f9fff1f2ffe3e7f0f7fbfefcfbfffcfbffecebfdf8faf7feffe8ecf2d6
+f5fbf7f9fcffe5dfff0e028c1d0cccefe3ffe7ebffeaf7ffd2dbfff4f7ff090866f5f2ff
+e2e3ffdbdffcfbfffff9ffffe7effceff6fff2f6ffe6ebfff7ffffe5f0f6f7fffff7ffff
+f1fcfff2fdfff7fffff0f4ffd1cefff4f4fff7ffffedf7f8f7f8ffececfff8ffffe8f3f9
+e5edfff5faffebe6ffe8e6ffebf5ffeffef9f2feffdae1fdf1f7ffebeffff9fafff7f6ff
+ebe9fefefdfff4f4fff6f8fffbfdfff9fdffececfff8f9fff9faffe9ebfffcffffecf0e2
+fbfde5f5f5dbfffdf1fffefafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe2e2e2ffffffefefefffffff
+000000040404050505000000000000000000edededfffffffafafae0e0e0ffffffffffff
+f8faf7f7fcf5f3fcebf0f6fff7f3ff2720a4d6d0ff241db91104c30e07a3f4fbffe7f0ff
+171372f8f1fff5f4fff2f2ff120c6e090276221c860902760a0093f7ecfff7f7fff4f7ff
+1c1c64130e721309901c0fa51c10a01308951308931c1299150e902c28971a1b6ef3f7ff
+e1e5fff7f9fff4ecff191083201b6b100c59291c900f0278f0e6fffcf7fff0f2fffbfffe
+fafdffe6e7fff9f6ff2d22a50f00cc1907d90d0991f1f6fff1f7ffdee7fff2feffebf6ff
+f5fbfff7f7ff120c701e187a1f236211155e1a1691ebe7ffe1e5ff21256f120d8d07008c
+ece9ff0c097c0f098f261cbb1c0cce0f05a2141b52f1f9ff130d6f1f1592261d900b066a
+f5f7ff14137b0a00b42119bee5edfff4ffffe9f7fff5fcff120d71180b971605a912048f
+fbf6ffeeeeffefecfff5f2ff2322640606500703611b1581130983eae5ffeff0fffcfffd
+f3f5eafffff3fffbf0f4f1eafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfde5e5e5ffffffffffff
+070707030303000000000000070707101010ffffffd5d5d5ffffffeeeeeefdfdfdfefefc
+eff0eafefff6f6fceef9fdffeee8ff0c0589eff1ff0b0b831005c1110ab8ebf2fff2fbff
+05036eede9ffecebff0f0e5c231ba2f2e9fff4eefff4ebff1b0bce1609b9ededfff1f5ff
+ebeaff181296180eafebdeffebdeff180bba180cb4ebdfffe5dbff00009714128feef1ff
+eff2fff2f2ff0f059c0b009af7f0fff8f0fff8e7ff1605a31d118df8f0fff9f9fffafcff
+fcffffeeefffe4e2ff0c056d1303bc1c0bd6140eb00a09911718970c1477e9f6ffedf9ff
+eef2ff0100711c119cf3ebffedecffe5e4ff1208b72920c9edefffe1e3ff2118c32014cc
+1c17a516139609029de1d5ff1402e41b0ed0f2f6fff0f4fff3e8ff2415b604007ff5f2ff
+f4f8ffe4e4ff1000d40800bdf2fbffebfcfff4fbff12146b050074f7ebff1200b91302a6
+110c60e9e7fff5edff140b7e110c72f5f2fff4f1ffded8ff2013b83228afeaeafff4f9fd
+fdfcfff1eff0fffcf7fffcf7fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffebebebfefefe
+000000090909010101010101000000000000fafafafffffff8f8f8f7f7f7fffffffbfbf9
+fffff8fafaf0fcfff4e7e8ffebe2ff1e1896f2faffeaf4ff1616aa0d0bae0a0d80f0f5ff
+0c0c84f2f2fff5f5ffedeefff0ecff0a069910108c110e990d01c51008b5f1f9ffe5f2ff
+eff5ff121387121098efebffefeaff120da5120f9cefebfff0eaff0400a4030188f1f3ff
+e5e8ff0302772216c2f4e8fff5f1ffeae4ffece0ff1a0ba41d148bf9f4ffecefffeff3fc
+fafbfdfffefffcfdfff3f2ff2e26a00f069f110ca40100a21611cd0f0cbf16189fe7eaff
+140eba1f18c0f4f0ffe7e5ffeae7fff2eaff0000b8170cbedbdeffecf0ff0f08a6030097
+e4eafff2fcff222779e8e6ff0900b70000aa0d0c81e7e4ffecdeff09009af2f5fff4ffff
+f2ffffd9e0ff1406cb1f14d4f1fcffd2dfff201bad2319b8f4f7ffdee2ff1f1b891d168a
+0c095af5f0ff0600952013baeae5ffececffcccdfff1eeff0b00b21b11a6f3f4fff9ffff
+fcfbfffffdfffcf7fdece8e9fffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fdfdfdf0f0f0ffffff
+ffffff000000000000070707080808fffffffdfdfdedededefefeffffffff7f7f7fffffd
+f6f3eef4f1eafffff6fcfbfff3eaff171288dfedffeeffffd8e2ff060a90292cbb00008e
+18179ff1f1ffdde0ff06086f0e0c9b1818ace7e9ffeef0ff0e03cb0000a7f0fdffeeffff
+ebf4ff0d147e0f1188e9ecffebeaff0d0f980f118ae9edffe9e9ff1414a60a0e89e2e6ff
+dce1ff2424a00b02b31108af02035f14166024208f0e067d1e1b76ececfff8fefffaffff
+f9faf4f7f5f6f5f2fff9f6fff1f0fff4f4ffe6ebffedf1ff0a08c50400c60305a7edebff
+0900d80b00c6030671141a6813147e0701852c23be120c92f4f8fff4f7ff170cb0150ca3
+f4fcffe5f4fbe7f0fff3f5fff4edff1b10b41e15acf4ebff1204b1261ea5e5efffe9fbef
+dff4e5f1fdff0e03bf0c01bdd8e4fff1fdff0000ae0200b7e4e9ffe6f3fff5faffebedff
+f6f6ffe0daff1c0bc91d0dd01c1b9a1017721b217f0e11820c089d050382f4f8fff0f7fd
+f4f6ffeeecf9fffdfffffefffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffededed
+fffffffffffff3f3f3fdfdfdfafafafffffffffffffcfcfcffffffe2e2e2fbfbfbfffeff
+fffdfdfcf7f3f8f8ecfcfcffe4dcff0e0a78f1ffffd3ebededffff15237c0000a21813d1
+1615aed5d7fff1f4ff1719881110a9e6e6ffe8ecffd8dbff0000c31e1bcee8f8ffdbf3ff
+edfaff08117609107becf3ffedf0ff080d8b09107becf6ffe6efff0c167706116bedf8ff
+e9f2ff0c0e871610b8edeafff2fdffeffdffeff7ffeff4fff7fcfff7ffffd4dfe1f5fff4
+f8f9e7fffdfffcf1ff1b1366f5f8ffedf8ffe3f6ffdbedffeaf3ff00009b11199ee0e3ff
+190fec0000c0f0f5fff1fdfff4feffe3ecfff5fdffeef6ffd3dcfbeaebff1e0ec91f11c0
+ebf2ffdeede8f5ffffecf1ffe7e6ff2219a60600b81604cc1a10a5e9e8fff4ffffebfbf8
+f2fffacfdbff140bbe1710c0eaf9ffe3f2ff1208bf1608cdf4f7fff4ffffd9e3fef5fdff
+e9effff5f2ff0d00c60200bbdee4ffeeffffddeeffe7f6ffe8f0fff1fafff5ffffe8f5e3
+e8f0e5fefffafffff8faf7f2fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfbfbfbf2f2f2ffffff
+fcfcfcfafafaf8f8f8fdfdfdfbfbfbfafafafffffff6f6f6f4f4f4fffffffafafafdfdfb
+fffffbeae9e4fffff8f6f6fff8f3ff181872deecfff0ffffecffffe7f6ff1112a21812ba
+0c0c8eebeeffe8ebff0d0e780d0c981718a80c0f841215982119d1100eafe9f5ffeafeff
+eef7ff0e1678101579ecf3ffeef1ff0e1486101579ecf6ffe9f4ff1f2b7509155de7f3ff
+eaf2ff0307722a27b60d0d87eaf5ffeefbfff1fafff5fcff0c1536eef6fff7fffff4fff7
+fbfff1f6f4fff6edff201978f7f9ffeaf5fff1ffffeeffff05106c111b8e0e177ce8eeff
+0a05ba1e17c704076ef2fcfff5ffffecf6ffe8f2fb0d1625f7feffefeeff1304a91103a0
+f5f9fff7fffff0f8ffe8edfff7f8ff0a04722f1ecf1403b409036ff5faffe5efffe2f1f6
+f2fffff2fdff100d9c100d9ceefbffeaf7ff1611ab1d14bd0a0e65ecf5ffebf6fff0fbff
+0e1543f5f4ff0c00af261dc80a1162f0ffffe4f6ffedfbffeff9ff010c39f5ffffecf9e8
+fbfff4eff3e4eff0e0fbfbeffffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffb
+f6fcf0fbfff8e4eaeaf7fcff1e1f57090a4a171b48f3fcffe9f2fff5fdffe0e4ff1a1c67
+0c0f54f3f6ffe4e4ff18186e18177f0d0d7b100f75e5e6ff1f1a980504790a0c5ff0f7ff
+12146b1a1d7c1010700d1071f4f3ff14167b060666141871f0f6ff10175f141b5f0e1657
+ebf0ffecefff1212761c1b810e106527287a17176f0a0b5d1c1f62eef4ffe5eefff7ffff
+f8ffffe8eefff1f0ff1e1b740a096717167326297a0c125e0e1364222874dbe3ffe3eaff
+f2f4ff100d80110f7a15167213155f1d216011155210154ff5f9ff171963070568171673
+080d44f5fdffe4ebffedf3fff5faffebeeff13126f110f63f7fbffe2e9fff4fcfff7ffff
+e7f2ff141b451e21720d0f66040d46f2fafff1f3ff0a0a7a090d66141a64131a62161d61
+070b4af5f7fff4f0ff0c097a090d66141a68131869161b6c0b0e5b161a59f5f9ffeff2ff
+fefffffffff6f7f9e3fdffeafffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff
+f9fffdeef7fcf9fdffe7eaffecebfff8f7fff5f2fff7f6fff6f5ffced0fff8f9fff6f9ff
+ecebfff8f7fff0ebfff1edfff7f3fff1effff5f3fff5f3ffe3e1fff2f0fff5f3ffe8e6ff
+edebfff5f3ffe6e4fff0eeffeeecffdcdafff5f3fff0eeffebebfff5f6fff1f3ffe2e5ff
+f5f8ffe8eaffebebffeae8fff4f0ffeae5fff3eefff5f1ffdddcfff5f7ffcfd4ffe8f0ff
+e8f1ffcfd7fef5f8ffdddcfff5f0fff3edffeae4fff4f1ffebecfff3f6fff5fafff0f5ff
+e7e9ffe5e4ffeae6fff0ebffede9fff5f2ffe6e4fff0efffeeeeffdcdcfff5f6fff0f2ff
+eef1fff4f7ffeef1fff5f9ffe8ecfff0f4ffeceffff7f9ffe1e5fff6fbfff4f8ffeaedff
+f8faffd0d2fff7f8fff5f7fff5f6fff4f6fff0f1ffe1e4fff2f4ffe8ecffe6e8fff2f5ff
+f5f7fff7f7fff3f1ffe4e4fff5f3ffebeaffe9e6fff5f3fff5f4ffefeeffedecfffcfaff
+e7e4f7fffdfefffff3eae8d9fffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeff
+fbfcfff7f8ffe9e5ff2b2774140a6a0901682e238c0f076c130a65181367221b6b140f61
+180f6a160e730f0373291f921811810b0573231c8c0a0472160f7f0d07752720900b0573
+110a7a1f1987191282211b890700700f09771e1787110b79201a86221d840b07661c1974
+0c09621f1c772b268c171082160d8c0d03881e14991c13921a14821a16741918642e2f6f
+2e3069191a5b1a17701a14821c12951e139e0d038a160e881712791a1770151464161565
+1a167426208c211895170d9211078c1f15981910912118950700780f087a1e1886110b75
+2520870803671914781511721814750b0768201b7f130f6d1a15672824711c17691b156b
+140d6a0f0969150e7506006c1b14840300720e09811a168e120e870c0b8318148d110e7f
+1b1775060259110c6a1d187c150f790f0b7a1b1486140e7c1611770b066019135deee9ff
+fff9ffe5e0f6e9e3edfffdfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeff
+ececffe9e8fffcf7ffdad4fffbf1fffbf2fffcf1ffebe2fff5ecfffbf5fff8f1ffeae4ff
+f9f0fffbf3fff5e9fff3e9fff8f4fff5f1fff6f2fff8f4ffeeeafff8f4fff8f4fff4f0ff
+f5f1fff6f2ffe9e5ffdad6fff8f4ffefebffddd9fff8f4fff7f3ffdbd7fff8f5fff8f7ff
+d9d8fff5f4ffdddafff8f4fff7f1fff8f1fff8f0ffeae3fff3effff4f2fff8f9ffe4e6ff
+e4e7fff8fafff4f3fff3efffeae3fff8f0fff8f1fff7f1fff8f4ffe9e7fff8f8ffe5e5ff
+f8f6ffd7d3fff2ecfff8f1fff5edfff6eeffe9e1ffdad3fff8f1ffefe9ffddd8fff8f3ff
+f1edfff8f4ffece8ffdbd7ffebe7fff8f4fff0ecfff8f4fffaf3ffede6ffeae3fff9f4ff
+fbf3fff9f3fff2ebfff8f3fff3edfff7f3fff1ecfff5f3fff5f3fff5f3ffe5e3fff4f4ff
+f3f0fff8f6fff3effff8f5fff8f4fff8f3ffe8e3fff7f3ffece7fff9f6fff9f4fffcf6ff
+f9f2fffffbfffff9fff3eff0fffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fefff6f1f6eff8f9fefcfdfffcf9fff3f1ffece8fffbfafff3f1ffedeeffedecfafcfeff
+fefcffe8e8fff7f3fffbf9fff8fafff0f6fff4faffe8eefef1f7fff3f9fff8feffe6ecfc
+edf3fff8feffeff5ffebf1ffdde3f3f9ffffeaf0fff8fdffedf1fff9fdffecf2fff2f9ff
+f3fbfef9fffff4faffe4e9fdf2f5ffeef0ffe2e4fff9fbfff9fdfff7fdfff7fffff2fbf8
+f2fbf8f7fffff7fdfff9fefff9fcffe2e5ffeef1fff2f5ffe7ecfff4fafff7fdfff8ffff
+f6fcfff9fefff2f6ffe4e7ffedeffff8f9ffeff0ffebedffdddffff9fcffeaedfff8fcff
+ecf0ffe9edffeaeefff9fdfff3f7fff9fdffecf0fff2f3fff9fafff6f5fffcfbffe7e7ff
+edecfffafafff5f5ffeff2ffe8ebfff8fcffdfe4ffeef3fff8fdfff7feffdae1fbf8feff
+e8ecfff9fdffe2e3ffeff2fff9fbfff9fbffdcdefff9fcfffbfcfff2f2fffbfaffefeff1
+fffff8fffff1faf8e1ffffedfffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffeaf8fee2f4f7e6f2f5eefdfcfffefefffefcfff6f7fcfffffdfefff8fffff4f3f6eb
+e6e7e1f9fbfafffeffeeeff3f8fdf7f0f8ebf7fdf1fbfff6fcfff6f1f9ecf8fef2fbfff6
+f6fcf0fbfff6fcfff6fbfff6edf3e7fbfff6fbfff5f4fbf3e5e9ecfbfffff9fef8f2faeb
+faffedeef8e0fcfff1f8fff5fcfffffaffffe9ecf5fbfffff1f5f6f2f9f1f6fdedfbffef
+fcfff3f5fdeef3f9eff0f7f0fcffffe8eeeefbfffffbfffff8fcfbfbfffdf1f6f0eef5ed
+e2e8defbfff8fbfff7fbfffbf6fafdfbfffffcfffffbffffedf1f4fbfffffbfffef4faf8
+fcfffdf2f8f4f8fdf9fbfffdeef3efeaf0eefbfffefcffffedf0f5f1f4fbfefefff1f4fd
+fcfffffcfffffcffffeef3f7f1f6f9fbfffffbfffffbfffbe6f0e8f9fffaf6fff5f1fbf2
+f1f7f5fbfffffcfffffbffffe8edf3fbfffff9fcfff4f8fbeaeeeffefffbf1f3e8f9faea
+fdfde5fbfadefffedff5f3dafffff8ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+eff2dffeffecfffff6fefefcfffdfff8f6fffffdfff6f5fbf7f6f4f2f3edf9f9effafcf1
+fffef9fffffdfefcffebeaeffefffffcfffdf2f4f1edf2eeeef0edfcfffdf3f5f2e0e5e1
+fefffdf7fcf8f0f2efe9eeeafcfefbeaefebf5f7f4f9fdfffefdfff4f6fff2f3f8f6faf9
+fcfff6f9fff3f1f4e9fcfffbeff0f4fbfefffefefffcfefff7f7fffcfffff9fbfaf4f8f7
+f6f7fbf7fafffefffff5f9fcfefffffcfffffdfeffedf0f7fafafff5f7fffefefffbfeff
+fafbfde9eeeaf3f6edfcfff8fefffdf7fbfaf0f2f1e9eeeafcfefbeaefe9f5f7f2f9fef8
+e8eae5f6fbf5fafcf7eaefe9fdfffafbfffcfdfffcfefffffefffff6f6fff4f3fbf3f3fb
+fbfbffeeeff4fbfcfffcfffffcffffdee3dfdee3ddfcfff8f8fef4fcfff6fcfff4f6fcf0
+fcfffbdee2e1e0e2e1fcfffff8fcfbfcfffdfefffbf8fbf4ecefe6fffff6f7f9ebfffff1
+fbfae6f8f6e1ffffecffffeffffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fffff3fbfcecf2f2eafefdfbfffefff7f4fbfefbfffffefffffefcfdfcf7fffff6f7f7ed
+fefef6faf9f5eae9e7fffefffbfbfbf8faf9fefffff3f5f4fefffff0f2f1fafbfdfeffff
+f8f9fbfbfdfcfcfdfffefffff2f3f5f1f3f2fefffff6f7fcf6f5fffefdfff1f1fbfeffff
+eef0ebf2f5ecfefff8f1f4edfefffff3f4f9f9f9fff2f2fcfafafffefefff6f7fbfafbff
+faf9fff6f5fffefefffafbfff2f4f3f9fbf8f3f4f6fefffffafafffefdfff3f2fffefeff
+f6f7fbfefffbf9fdeffafeeff8fbf0fbfef5fcfff6fefff8f2f5ecf1f4ebfefff8f6f9f0
+fefff8fefff8f7faf3fefffaf8fbf4fefffaf7f9f4fafcf9fbfbfdfffefff8f7fcffffff
+fefffffcfefdfefffdf4f6f3f9fbf6fefffafdfff7f9fcf1f8faeffdfff3fffff4fefff8
+f9fbfafefffffdfefff9fafcf7f9f8fefefcfffffbfffffafffff8f2f2eafffff7f6f3ec
+fffff8faf5effffaf4f1eee9fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fffff4fffff3fffff6fffffafffefffffefffffefffffffdfffffafffff6fffff4fffff4
+fffff6fffff6fffff8fffffafffffdfffffdfffffffffffdfffffffffffdfffffffffffd
+fffffffffffdfffffffffffdfffffffffffdfffffffffffffffdfffffdfffffefffffffd
+fffff8fffff4fffff3fffff4fffff8fffffbfffffffffffffffffffffffffffffffffeff
+fffdfffffdfffffefffffffdfffff8fffff6fffffafffffdfffefffffdfffffdfffffeff
+fffffffffff6ffffedffffecffffedffffefffffeffffff1fffff1fffff3fffff3fffff3
+fffff4fffff4fffff4fffff4fffff4fffff4fffff6fffff8fffff8fffffafffffafffff8
+fffff8fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffff6fffffb
+fffdfffffcfffffdfffffdfffffdfffffdfffffdfffffefffffdfffffdfffffdfffffcff
+fffcfffffcfffffcfffffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffffbfffffbfffffdfffefffffefffffefffffefffffefffffffdfffffbfffffafffffa
+fffffafffffafffffbfffffbfffffdffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffefffffefffffffffffffb
+fffff8fffff4fffff4fffff4fffff6fffff8fffffbfffffdfffffffffffffffffffffeff
+fffdfffffdfffffffffffffbfffff6fffff4fffff6fffffafffefffffefffffefffffeff
+fffffdfffff4ffffedffffecffffeffffff1fffff1fffff3fffff4fffff6fffff6fffff8
+fffffafffffafffffafffffafffffafffffafffffafffffafffff8fffff8fffff8fffff8
+fffff8fffff8fffff8fffff8fffffafffffafffffbfffffbfffffdfffefffffefffffeff
+fffdfffffcfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffcff
+fffcfffffcfffffcfffffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffdfffffdfffffcfffffcfffffcfffffcfffffcfffffdfffffdfffffdfffffdfffffdff
+fffdfffffdfffffdfffffdfffffefffffefffffefffffefffffefffffefffffefffffeff
+fffefffffefffffefffffefffffefffffefffffefffffefffffefffffffffffffffffffd
+fffffbfffffafffff8fffff8fffff8fffffafffffbfffffdfffffffffffffffffffffeff
+fffdfffffdfffffffffffffdfffff8fffff6fffff8fffffbfffffffffefffffefffffeff
+fffffdfffff8fffff1fffff1fffff8fffffbfffffdfffffdfffffffffefffffefffffeff
+fffefffffefffffefffffefffffefffffefffffefffffefffefffffefffffefffffeffff
+fefffffefffffffffffffefffffdfffffdfffffdfffffcfffffbfffffafffffafffffcff
+fffefffefffffffffdfffffbfffffafffff6fffff4fffff4fffff4fffff4fffff6fffffa
+fffffdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffdfffffcfffffcfffffdfffffcfffffdfffffcfffffdfffffcfffffdfffffcfffffdff
+fffcfffffdfffffdfffffefffffefffffffffffefffffffffffefffffffffffeffffffff
+fffefffffffffffefffffffffffefffffffffffefffffffffffffdfffffdfffffdfffffd
+fffffdfffffdfffffbfffffafffffafffffafffffafffffafffffbfffffdffffffffffff
+fffefffffefffffffffffffdfffffafffffafffffafffffafffffdfffffffffffffffffd
+fffffbfffff8fffff4fffff6fffffbfffffffffffffffefffffefffffdfffffdfffffdff
+fffdfffffdfffffdfffffdfffffdfffffdfffffdfffffefffefffffefffffefffffeffff
+fefffffefffffffefffffefffffdfffffcfffffcfffffbfffffafffffafffff9fffffbff
+fffffffefffafffffafffff8fffff6fffff4fffff3fffff1fffff1fffff3fffff3fffff6
+fffff8fefffafefffbfefffdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffefefffffefffefffffffffffefffffffffffefffffffefffefefffffefffefeff
+fffefffefffffffffffffffffffffdfffffbfffffdfffffbfffffdfffffbfffffdfffffb
+fffffdfffffbfffffdfffffbfffffdfffffbfffffdfffffafffff6fffff4fffff8fffffa
+fffffbfffffdfffffdfffffbfffffafffff8fffff6fffff6fffff6fffff8fffff8fffffa
+fffffbfffffbfffffbfffffbfffffbfffffafffffafffff8fffff8fffff6fffff6fffff6
+fffff6fffff6fffff6fffff8fffffafffffbfffffdfffffffffffffffefffffefffffdff
+fffdfffffdfffffefffffefffffefffffefffffefffefffffcfffffcfffffcfffffcffff
+fcfffffcfffffefffffefffffffffffffefffffdfffffdfffffcfffffbfffffbfffffcff
+fefffffcfffffefffffffffffffffdfffffbfffffafffffafffffafffffafffffafffffb
+fefffdfcfffdfbfffdfcfffffeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffefffffefffffefffbfefffafefff8fefffafefffbfefffffefffffefffffeffff
+fefffffefffdfefffbfefffbfffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffb
+fffffbfffffbfffffbfffffbfffffbfffffbfffffbfffffafffff4fffff3fffff8fffffb
+fffffffffefffffefffffffffffffffffffbfffff8fffff8fffff8fffff8fffffafffffa
+fffff8fffffafffffbfffffffffffffffffffffffffffffbfffff8fffff4fffff4fffff4
+fffff8fffffafffffdfffffdfffffafffffafffffbfffffdfffffffffffffffefffffeff
+fffefffffefffffefffffefffffffffffffffffffffefffffcfffffbfffffcfffffcffff
+fcfffdfcfffdfefffbfefffbfffffbfffffdfffefffffefffffdfffffdfffffcfffffdff
+fefefffcfffffefffffefffffffefffffefffffefffffefffffefffffefffffffdfefffd
+fcfffffbfffff9fffdfbfffdfeffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffcfffdfcfffafcfff6fcfff4fcfff3fcfff4fcfff6fcfffafcfffbfcfffdfcfffd
+fcfffdfcfffafcfff8fcfffafefffdfefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffdfefff8fefff8fefffdfeffff
+fefefffefdfffefdfffefdfffefefffefffffefffffefffffefffffefffffefffffeffff
+fefffdfefffdfefffffefefffefdfffefdfffefefffefffffefffdfefffafefff8fefffa
+fefffffefffffefefffefefffefffbfefff6fefff8fefffafefffdfefffffefffffeffff
+fefffffefffffefffffefffffefffdfefffdfefffbfcfffdfbfffff9fffffbfffffbffff
+fbfffdfbfffbfcfffafcfff8fefff8fefff8fffff8fffffafffffbfffffdfffefffffeff
+fcfffffbfffffcfffffefffffffefffffdfffffdfffffdfffffefffffefffffffffeffff
+fbfffdf9fffdf8fffbf9fffbfefffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fefffbfcfffafcfff6fefff4feffeffefff1fefff6fefffafefffafefff8fefff4fefff6
+fefffffefffffefff8fefff8fefffdfffffffffffffffffffffefffffefffffdfffffdff
+fffefffffefffffffffefffdfefffdfefffffefefffefffffefffafefffafefffffefeff
+fefefffefdfffefdfffefdfffffdfffefdfffefdfffefefffefefffefffffefffffeffff
+fefffffefffffefffffefffffefdfffefcfffefdfffefefffefffffefffbfefffdfeffff
+fefffffefefffefdfffefdfffffffffffffafffffafffffafffffdfffffdfffffafffffb
+fffffffffefffffefffffefffffefffffffdfffff6fefff6fcfffffbfffffcfffffcffff
+fcfffdfcfffbfcfffafefff8fefff8fefff8fffff8fffff8fffffafffffafffffbfffeff
+fefffffcfffffcfffffefffffffefffffefffffefffffefffffefffffffffffffffeffff
+fcfffdfbfffdf9fffbfbfffbfefffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fefff6fefff4fefff8fffff4ffffedfffff3fffefffffdfffffdfffffff4ffffe3ffffea
+fffcfffffbfffffffdfffff6fffffbfffffbfffff6fffffafffdfffffcfffffafffffaff
+fffcfffffefffffff8fffff4fffff4fffffdfefdfffefdfffefffafefff4fffffffffeff
+fffefffffefffffffffffffffffdfffffcfffffbfffffbfffefdfffefffffcfff8fcfff8
+fefffffefffffefff6fefff8fefefffefdfffefefffefffffefff8fefff8fefffffefeff
+fefefffefefffefefffffdfffffdfffffefffffffdfffffdfffefffffffaffffedffffef
+fffefffffcfffffcfffffcfffffcfffffdffffffefffffecfffffafefffffefffffeffff
+fefffffefffdfefffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdfffffdffffff
+fffffffefffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffefffffefffdfefffdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fefff6fefff3fffff3fffff3fffff3fffffbfffbfffffafffffdfffffff6ffffe6ffffed
+fffbfffff9fffffefffffffafffefffffefffffff8fffffafffdfffffcfffffafffffbff
+fffcfffffefffffff8fffff3ffffeffffff6fefffffefffffefff3feffeffefff8ffffff
+fffffffffffffffffbfffffafffffdfffefffffdfffffcfffefefffefffffefff8fefff8
+fefffffefffffeffeffefff1fefffffefefffefefffefffffefff6fefff6fefffffefeff
+fefffffefffffefffffffefffffdfffffdfffffefffffffdfffefffffff8ffffe8ffffec
+fffefffffcfffffcfffffbfffffbfffffdffffffedffffe8fffff8ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fefff8fefff1ffffeaffffedfffffffffcfffffafffffbfffffdfffffffdfffffafffffd
+fffcfffffcfffffefffffefffffcfffffcfffffdfffffefffffefffffefffffefffffffd
+fffffdfffffdfffffdfffff8fffff1ffffecfeffeafeffe6fcffe4fcffe6fcffeffefffa
+fefffffefefffffffffffff6ffffeaffffe4ffffeafffff3fffffdfffffffffffffffffd
+fffffdfffff8ffffedffffeffffffdfffefffffffffffffdfffff8fffff8ffffffffffff
+fffffdfffffafffff8fffffafffffffffffffffffbfffffafffffafffff4ffffeaffffec
+fffffbfffefffffefffffefffffdfffffffffffff1ffffeffffffaffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffefffaffffecfffff3fffcfffff9fffffafffffcfffffefffffffdfffdfffffeff
+fffdfffffefffffefffffefffffdfffffdfffffdfffffefffffefffffffafffff4fffff3
+fffff6fffffbfffefffffffffffffaffffeffeffe1feffe1fcffedfbfff3fcfff4fcfffb
+fcfffffefdfffefefffffffbffffe6ffffddffffe1ffffeafffffaffffffffffffffffff
+fffffdfffffafffff6fffff6fffffbfffffbfffffbfffffafffff8fffff8fffffbfffffb
+fffffbfffffafffffafffffbfefffffefffffefffdfefffafefff8fefff4fefff1fefff3
+fefffbfefffffefffffefffffefffffefffffefffafefff8fffffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffcfffffcfffefffbfefffffefafffef8fffefbfffefdfffffff6fefff4fffefffefeff
+fffffffffffafffffdfffffafffff3fffff3fffffdfefffffffffbfefff6ffffedfeffec
+fffff3fefffbfefefffefdfffefdfffeffffffffedfefff1fbfffff9fefffbfffffbffff
+fbfefffcfdfffcfdfffefefffefff4feffecffffedfffff3fffefffffdfffffefffffeff
+fffdfffffcfffffcfffffdfffffefdfffff6fffff4fffff4fffff6fffff6fffff8fffffb
+fffefffffdfffffcfffffdfffefefffcfffffcfffffcfffffcfffbfcfffbfcfffffcffff
+fcfffffcfffffcfffffcfffffcfffffcfffffcfffffefeffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffcfffffcfffefffdfefffffefbfffefafffcfdfffcfffffcffe8fcffe8fcfffffcffff
+fcfffdfefffafefffdfefff6ffffe8feffeafefffdfcfffffcfffffcfffffcfff8fcfff4
+fcfff6fcfffbfefefffefdfffefcfffefdfffffffbfefffffbfdfff9fdfff9fffff9ffff
+f9fffffbfefffbfdfffcfefffcfffffefffafefff8fffffbfffefffffdfffffffdfffffd
+fffdfffffcfffffafffffbfffffefdfffff6fffff4fffff6fffffafffffafffff8fffffa
+fffefffffdfffffcfffffcfffefefffcfffffefffffcfffffefffbfcfffdfefffffcffff
+fefffdfcfffafefffdfcfffdfefffffcfffffefdfffefdfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffdfefff4fefff6fcfffffcfffffbfffffbffeffbffd4fbffd6fbfff3fbffff
+fbfffffcfffffcfffffcfff8feffe6fcffeafcfffffbfcfffbfcfffbfcfffbfdfffbffff
+fbfffffbfffffcfffdfcfffffefcfffefbfffffcfffefefff9fffff8fffff8fff4f8fff1
+f8fff6f9fffff9fffff9fffffbfffffcfffffefffffffffffffefffffefffffefbfffff8
+fffef8fffdfdfffbfffffbfffffdfdfffef8fffefbfffdfffffcfffffcfffffefafffef8
+fffefafffefafffefafffefbfffffffefffffffffffefffbfffff6fefff8fffefffeffff
+fffff6fefff3fffff4fefff4fffff6fefffdfffdfffffcfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffffafffff6fefff4fcfffafcfffffbfefff9fffff8fffff8ffe4f8ffeaf8fffff9fbff
+f9fbfffbfbfffbfbfffbfefffcfffbfbfffffbfbfff9f8fff9f8fff8f9fff8f9fff8faff
+f8fefff9fffffbfff8fcfff8fcfefffefcfffffcfffefdfff9fffff8fffdf8fffff8ffff
+f8fffff8fefff8fcfff8fcfff9fcfffbfcfffcfefffefffffffffdfffffafffffbfffefb
+fffff8fffefbfffbfffffcfffffdfffffefbfffdfffffdfffffbfffffdfffffdfdfffff8
+fffefafffffafffef8fffffafffffbfffffdfffffbfffffafffff6fffff8fffefffffeff
+fffff6fffff1fffff3fffff3fffff3fffffafffdfffffcfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfbfbfbf2f2f2ffffff
+fcfcfcfafafaf8f8f8fdfdfdfbfbfbfafafafffffff6f6f6f4f4f4fffffffafafafdfdfb
+f8f9f4f9faf5fdfffef5f6fffaf8ffedebfff1f0fff6f9ffeef6fff6fcfff4f0fff1e9ff
+f3edfff1eafff9f2fff0ecffeeecfff9f9ffe9e4fff8f2ffdcd9ffece8fff7f2ffe1deff
+e8eafff0f6fff9fff3ebf5dafcfffaeaebeff6f5fafeffffedf2f8f7fcfff4f6fff2f0ff
+f1edfff5f0fff3effff5f2fff7f7ffeaecfff9fdfffbfffff4f7eefffff8fdfbfef7f4fd
+fffdffdfdce3fffcfffefbfffffafee2e0e1fffefffdfbfcfffafefffefffffefdfefdfb
+faf6f7fffefffaf5fbfbf6fafffcfbf5f1eefffdfcf9f5f2fffefbf8f4f1fefafbfffefd
+fcf9f2fffdf4fbf8eff3f0e7fffff6fffef9fdf9fafffbfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffededed
+fffffffffffff3f3f3fdfdfdfafafafffffffffffffcfcfcffffffe2e2e2fbfbfbfffffd
+f4f5effffff8f5f7f2fafcff05014e27208818137a0b0b61e2e8ff0a0f530c04952d21bf
+1a14820200572d2787221b78171262f8f4ff0000631f188c2b2893100e7c16119216128d
+100f6cf7fbffe3eee6eefbdfeff7eafefffbfffffaf1f3f0f8fbfff3f6ff1f1b6719117e
+190f92130b92130d8918158006065c272966f8fdfff9fffff8fdf6f8fbf0f1f1effdfcff
+efeef6fffefffbfbf9fcfdf8e7e6ebfffeffe8e7ecfbfbfbe8e9e4f3f4efffffffeeedf2
+faf9fefcfcfef3f2f7fffdfeebe7e4fffcf7fffefbede9e8fffdfff8f4f3ebe6e0fffff6
+fffefbfffbf8fffefbfffffaf9f4f1fdfaf3fffdeefaf8e9fffffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fdfdfdf0f0f0ffffff
+ffffff000000000000070707080808fffffffdfdfdedededefefeffffffff7f7f7fffffb
+fffff2fbfee9eef4dafbfffff5efff1b11960c0880f2f6ffeef9fff2f9ff0902a0150ba8
+f1f4fff7fefff1f4ffe0e0ff272475e5dffff7efff020075100f75efefff01008a2c26ba
+140f8d0b0e5ff7fffff2fef4fbfffff7f9f8f9fbf0f9fbeef4f6f3f7f7ff201a60f2e9ff
+e7ddff160e9527239beeeefff4f8ff030a3eeff8fff6ffffe8f1f0fbfff6edf5e0fdfff0
+fcfffbeff5ebedf6d7fcffe8f8fcfde3e5f2fcfeffe9edf0fcfff6fcfff6fafefff3f6fd
+fcfffff4f9f2f1f7edf3f6ebfdfdf3fffff6ece9e2f4f3effffaffeeecedffffecf5f7df
+fffefdf3f0f7f8f3f7f3f1f2f8f3f7fffff4f3f5cefdffd9fffff4ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffebebebfefefe
+000000090909010101010101000000000000fafafafffffff8f8f8f7f7f7fffffffbfcf7
+fffff6eaeddafeffe8f2f5ffe8dfff150aa42724a5d8ddffe9f7ffe7f0ff120bb11e16b7
+ebf3ffecfafae5edfff7fcff18175bdedbffe9e5ff28259a121478e3e5ffefebff03009d
+2623b200005df5fdffeaf3faedf0fff6f6fff9fbeeffffeffffff4ececf6211d4fefeaff
+f7f0ff06007e0a0a78edf1ffe9f1ff0f194ef4faffeef3fff0f1ffe8ebfffbfffff8fefe
+eef3fff9fffff9ffecf9fff3eef0fff3f1fff9f7fff0f1ffe7ebffebeffff5f6fff9f9ff
+e6e9fff6fbfff9fffffbffffe6e7fbfbf8fffefbfffefaffe8e1fff8f2fff4f5f7fdfeff
+faf5fffcf4fffef7fffef8fffbf4ffece9fffeffecf5fdd6fffff4ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffdfdfde5e5e5ffffffffffff
+070707030303000000000000070707101010ffffffd5d5d5ffffffeeeeeefdfdfdfefeff
+fdfafffffffff8fbf0fbfcffebe1ff1409af09078cf0f7ffe9fcffeefdff0701ad1710b8
+dfeafff4fffff1fcffdae2ffeff4fff5faffe6e6ff131381080c6feff3ffe7e7ff0e0cad
+0a089a11147ff4fcffedf5fffbfbfffefcfff9faf4f4f6e0dbddc5fffff4d6d6e2fbf9ff
+f6f1ff120e7c25278cf0f6ffe8f2fff1faff0000660f0c8f190fa61e1497171461e7e8ff
+1c1b670e124f010d19e8f1ff1d188c09009b160aa81e16a0221f88151279150d9410088f
+1c1982e1e2fff5f9fff1f2ff2e29831a137a1b147c00006c2215a3f8eefff4f3fff8f7ff
+140989291ab110038f11058d1a0d99110a72edf2fff9fffbfefffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe2e2e2ffffffefefefffffff
+000000040404050505000000000000000000edededfffffffafafae0e0e0ffffffffffff
+ece9f4fffefffdfffae7e7fff4ebff1209a20d0d85ebf7ffe6fdffe4f5ff0b06b80200b2
+f1f9ffe4f2fff4faff0d1249f5ffffe1ebfff1f4ff101187171b89e2e6ffececff0c0cac
+0c0d99f1f5ffe6effff7ffffe8e8fff6f4fff1f3e6ffffe4ffffe8f3f2e0fcfdf8e7e6ff
+f3edff06027111137af1f8fff0ffffd8e7fff0f5ff1a15af1909ce1708bdebe5fff7f4ff
+eee9ff1a1a88f2fefff2fcfff2edff1307bf0700abeee9fff1f3fff0f1ff120ba60200a0
+2a25b5eeecffe7e7ff17168b0d0a8bf2eeffdcd7fff2ebff160ac60901a6eef1ff0c0f6c
+0a01aaf2e4ffddd1fff2e7ffece0ff16129df2fdfff1fffffcffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffdbdbdbffffffffffff
+0101010a0a0a010101000000080808000000fffffff2f2f2ffffffffffffffffffeeeeee
+fcfafbfffffdedf0e7f8fafff7f3ff1d1d8f020964eefdffedffffe5f7ff0a05ba1a0ede
+0706850b0d710d088819167de9f4fff2fefff2f4ff06038e1817a11717ab0705aeeaeaff
+e6eafff0f9ffe5f4ffdce7e9fbfdfffcfcfff9fedeffffdafffeebefeae6fffdffefedff
+f9efff1a1097121284eaf5ffe9fff5eefff8dfeffff0f2ff0c00c00b00b5eeecffeae8ff
+1309b701009bf0fbffd2dfffebebff1c19a80f117eecf5ffd7e8f8f0fffff1f3ff2a26bb
+08039be6e1ff251ec30602a1d5d6ffeef0ffe5e7ffdddcff0e07c60704a9eef9ff162173
+1b17c30900d10000b50a04bed7d0ffe9ebffeeffffeaffebfbfffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffecececffffffffffffefefef
+ffffff101010000000030303050505f9f9f9f1f1f1fffffffcfcfcedededfdfdfdfefefc
+f5f5edf3f4ecfefffaf5f9ffeeebff0b0b79161d77edfdffe4fff8e4f6ff140cc41506dd
+f2effff4f4fff0e8ff1c1876f1fafff3ffffeeeeff0d0b931715a4e8e8ff0c0da60b0fa6
+11149fdfe7fff1fffff5ffffeff9fbf7fef6feffe3f6fcd6f5f6e6fffffdf7f8fdf1f0ff
+f3eaff110993131289f1fbffe0fde1eeffe4e9fdffd7e0ff221bcb0d02be12108df2f1ff
+0e07aff1edffedf9ffecfcffeaeeff04067f1c2572edfdfff0fffdddf1fcf0f6ff000087
+14139ff1ebff0000aa261dd82725b70003780b14732229940b0aa406069aedf7ffe0eaff
+05078e0d0bac120fb41b16c80f07ce0c0ca0edffffedffe8fbfffaffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+f5f7eafefff4f7fbfaf5f7fff7f1ff191399121389e5efffdef6e9f1ffff0a00b61300cb
+e5e3fff9fdfffbf9fffbfdfff5fefbf0f9fff5f6ff06067815158fe5eaffe6edff0d1498
+1413c60b0aadecf4ffe4f3fff5fff4f1ffdff2fce4f5feedfbfff6f5fff7f5fdfff6faff
+e6e4ff1d18961b1b8ddee6ffe7fef8ecffefe8feffe5f1ff05069e0300ba2621d30b08a1
+111286ebf2fff2ffffdae9ffebefff23259e09155fe3f4ffedffffe1f2fff0f4ff07078b
+141687eeebff170acb1404c9f3ebffe7e8ffe7f3ffe7f3fff5f6fff5f0ffe3ddff19167d
+f5faffedf1fff2efff1408a60f00ce1406b1f2fafff4ffeffcfffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+fffff1f2f6e7f1f5f4ebedfff4eeff0f099113128af1f9ffecfffcecfaff382cd61604ba
+f9f7ffedf1f4f5f7f4e6e8e3ecf3ebf9feffe0dfff0e0c79272797e4e9ffe7f3ff0a127d
+0603b20000aaf0f4ffeaf7fff1fff2d3e4c2f9fff6eef8f0edf9ebedfbecf0fdf6f7feff
+eeefff0b09770d0b79f2f8ffe0f3f7f0fff1e4fbf3eeffffedf3ff1a18c40100bd1210b1
+e2e9fff4fffff0ffffeffdfff1f3ff0000821c237deaf8ffe4f1ffedf7ff0b0e7f090b7c
+f2f8ffeef0ff0b03971a0eae100882f8f7fff7ffffeef8f9f3f4ff140f6bebe2ff150f6f
+eff3fff8fdffece8ffede2ff2715c31e10a1e5e9fff6fff5fefffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+f6f9e6e0e5d1fcfffbf9fcff0602611b188d16187d060e4febfbff1521490000872113b1
+211d69161630eeeef6fefffffcfffde1e5fe2420771e198d12107e050a66f0fbffe0ecff
+1e21a20d0c9614187b0a134ae9f3fcf8fff8e0e9e8f9fffdf0fbeaf8ffedeaf8dfecf7fb
+0f10502f2d8e0f0c77090d57f2ffffd5efcce4fedbd2e7ece4ecff1719a20d09b61817a3
+f3fcffd6e6dbf1fff4e8f3fff1f1ff1e1aac09098113197b11176b181e72070b6fe5eaff
+f4ffffe8f3fff5faff1211611b176b080556100e5914125b16145f1f1d66e8e7ff1b1b59
+22225e0a094f1d1874191375171270f0effff8fefff5fefdfeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fafbf3ebede8fcffffeaecffeeeafff5f1ffe3e3ffeff5ffe7f2fff4f9fff5eefff3e7ff
+f2eafff1ebfffefaffe8e6fcf2f2ffe8e6fff9f1fff4eaffe8e4fff0f4ffe8f1fff1f9ff
+eef1ffe7e8fff1f3fff3f5fff5f9fff5faffebecffefeffff2f3ffedf2fff7feffe0e6fe
+f8f7ffdfdaffe9e2fff4f3fff2fcfff2fffff2fffff1fdfff1f4ffe3dfff0400a1f1f0ff
+f3f9fff7fffff5fdffecf0ffe5ddff0e03b52018b9dbd6fff2f0ffdfdeffece9fff4f6ff
+d2dbfaebf5ffeef2ffeaeafff1edfff7f0fff7eefff4ebffe6e0fff8f5ffefefffececff
+eeeafff8f2ffe5dffff8f3ffefefffedf0fff8feffdfe6f0feffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffcfffefbfff6f4ff0f0d4c261f890200751d1c841b1b7b19197b1a188500007a10048e
+1f119a2f2095180d5c2f246830257418096e0f007f16098c1b158319177802035d101370
+0a0a7a29269b0d09780f0b6a1c195e1b165914075f3a2b9422128c170a7e1c136e221c72
+11087122178d271c9c120a840a04701a16871e15a60000a01403cb1c0fd1130caa1d1896
+120c701d16731209722518a61500cb0d00da1000d42312dc0e00b51e13b91408a61c1295
+16126923216a28227821188125189b0d008b1e0f9e2d1fa8190d8d0c0275130a731b1376
+1b137a221984140a7b170e79251e7b110e53191b44fbfdfffefeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+efecfdeeecfffcfbffe4e2fff8f5fff7f4fff1f3fff2f4ffe8e6ffeceafff7f4fff8f2ff
+f1e3fff3e5fff6ebfff7ecfff5e7ffffeffffceffff0e6ffece8fff7f8fff4f3fff5f6ff
+f5f6fff3f4fff7f3fff1edfffbf7fff2ebfffaebfff2e0fffeebfff7e9ffefe5fffbf4ff
+faf0fff8eeffeee5fff6eefff8f1ffded7ff1105992717c01506bb1508adefeafff1edff
+f5ecfff6edfffbefffe8dbff200ebc1704c22210c606009f14079df7edffe8ddffe5ddff
+f9f4ffd0c9fff2eafffbf0fff8ebffebe0ffece2ffe7defff9f0fff8f0ffeee7fff9f3ff
+f5f0ffe4dffff9f2fff9f3fff2edfff9f7ffe4e7fff1f4fffeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fffff6e5e9daf5fcecfbfffdedf2ffe1e7fff2fafff3fbfff7fbffe4e6fff7fefff7fcff
+f1eefff6f1fffefbfff2effffff7fff4edfffdf6fff7f5fffcfffff6feffe5e9ffe7ecff
+f7feffe3ebf6fbfdfff7f8fff8f8ffedeafdfff7fffff6fff7f1fffefdfff4f5f7e7ebee
+fefcfffbf9ffeeeafff4f2ffe5e7fff2f8fff9fdffe9edfff6f7ffe7e8fff7fbffeef2ff
+eaebfdfefdffececffefeeffebe8fff9f7ffe5e4fff8fafff2f7ffdee4fcf9fefff0f3ff
+eff2fffcfcfffaf5ffe8e2ffeae8fffbfaffe3e4fff4f5fffbfcfff9f9fffbfbfff8f8ff
+f8f9fffbfcfffbfbffe5e4fff1f1fff2f4fffbfffff3f9effefffdffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+f8fbeafeffe7f5fcdbf4fde2fbfff8f5fff6f9fff1f2fef2f1f6fff6fcfff0fbeafbfff1
+f8fafff2f0fff5f5f7fcfcfafbf8fffcf9fffefcfff6f7effeffe8f3fbe3fbfffff8fdff
+f8ffecf9ffeaeff4f0f5f6f8fffffaffffffeee9fdfaf5fffefcfdf2f5e4ffffe4feffe8
+f7faf3ececf6fefcfff9fafffcfffdf2fbe8fbffedfbfff1f7fdf9fbffffe5ebe9fbfff8
+feffefe9ecd9fefff8fcfffdfbfffff0f6f6f5fbf9eaf4ecf7ffeff6ffe8fbffecfcfff1
+f0f5f1ededf7fffcfffdfbfff9fcffd8dedcfbfff8f0f8ebf3faf2f3f9f5f8fefef4f9fc
+fbffffebf0f4f1f5fffbfeffedf1fdfafffff8fff5fcfff4fefffbffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffdfffff8feffeffcfff1fcfffbfbfffbfbfff3f9fff6fbfffffbfffffbfff4fcffef
+fcfffafefffffffffffffffdfffff6fffff8fffefffffffffffff4fefff6fefffffcffff
+fcffe6feffeafefefffffcfffffdfffffdfffffdfffffdfffffcfffffefffffff6fffff3
+fffffbfffefffffbfffefbfffefdfffcfffffcfffffcfffffcfffffcfffffcfffafcfff3
+ffffedfffff1fffffbfefffffefffffcfffffcfffffbfffffcfffffcfffbfcfff8fefffd
+fefdfffffbfffff9fffffbfffefffffcfff4fcfff3fcfff3fcfff3fcfff4fcfffafcffff
+fcfffffcfefffcfefffcfefffcfffffcfffffcfffffcfffffeffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffefffefff8fefff8fefffffcfffdfcfff3fbfff4fcfffffcfffffcfff8fcffef
+feffedfefff1fffffdfffffdfffff1ffffeffffffbfffefffffffafffffdfffefffeffff
+ffffecffffedfffdfffffbfffffcfffffdfffffffafffffafffdfffffdfffffffdfffffb
+fffefffffdfffffcfffffcfffefdfffefefffefefffefefffefefffefffffefff4feffed
+ffffedfffff4fffefffffefffefffffefffffcfffffcfffffcfffffcfffffefffafeffff
+fffcfffffbfffffafffffcfffefffffcfff4fefff1fcffeffefff1fcfff4fefffbfcffff
+fefefffcfffffefefffcfffffefffffcfffffefefffefeffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffdfffffdfffffffffefffffefffffefffffefff4fcfff3fefffbfefffffefffdfefff4
+ffffe4ffffe6fffffbfffffffffff1ffffedfffff6fffffafffffbfffefffffcfffffdff
+fffffafffffafffcfffffcfffffdfffffffdfffff4fffff1fffff1fffff4fffffffffeff
+fffcfffffcfffffdfffffffffffff8fffff6fffffdfffffffffefffffffbffffefffffea
+fffff1fffff8fffefffffefffefffffefffffcfffffcfffffcfffbfcfff6fefff1fefff3
+fffffdfffefffffdfffffefffffefffefffffffff1feffedfffff3fefffdfffdfffefeff
+fffffffefffbfffff8fefff8fffffffefffffffffffffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffdfffffdfffffefffffefffffdfffefffffffff1feffeffffffafefffffffefffffffa
+ffffe4ffffe6fffffbfffffffffff6fffff1fffff4fffff6fffffafffefffffcfffffcff
+fffdfffffdfffffdfffffefffffffbfffff8fffff6fffff1ffffecffffedfffffbfffeff
+fffdfffffdfffffefffffffbfffff3ffffeffffff3fffff4fffff8fffff6fffff1fffff3
+fffff8fffefdfffefffffffffffffffefffdfcfffbfcfff8fcfff3fcffeffeffecfeffed
+fffff3fffff6fffff8fffffdfffcfffffdfffffff6ffffeffffff6fffffffffcfffffcff
+fffffffffff8fffff1fffff1fffff6fffffafffffbfffffdffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffefffffdfffffdfffffdffffffffffffedffffecfffffbfffefffffdffffffff
+ffffedffffeffffffffffefffffffffffffbfffff4fffff3fffff8fffefffffdfffffbff
+fffafffffbfffffffdfffff3fffff1fffff3fffffbfffffbfffff6fefff3fefff3fefff4
+fefffafefffffffefffffefffffffdfffff4ffffeaffffe4ffffe8ffffeffffffdfffeff
+fffcfffffcfffffefffffffffffffffefffbfcfff4fcffeffcffeafcffeafeffecfeffed
+ffffeffffff3fffff8fffefffffcfffffdfffffffffffffafffffafffffffffdfffffdff
+fffdfffffffdfffff1ffffeaffffecfffff3fffffffffeffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffffafffffdfffdfffffcfffffcfffffeffffffe8ffffe8fffefffffcfffffdfffffeff
+fffffafffffafffefffffdfffffefffffffffffffbfffffafffefffffefffffffdfffdff
+fff9fffffafffffffbffffefffffeffffff4fffffdfefffffefffdfefffafefff6fefff3
+fefff4fefff8fffffffffefffffefffffffdfffff3ffffecffffecfffff3fffefffffdff
+fffdfffffdfffffffdfffffdfefffffefffffcfff6fcfff1fcffeffcfff1fefff6fefff8
+fffff4fffff6fffefdfffdfffffcfffffdfffffffdfffff8fffff8fffffdfffdfffffcff
+fffdfffffffffffff1ffffeaffffecfffff4fffefffffdfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+fffff1fffff4fffdfffffcfffffbfffffeffffffe3ffffe6fffcfffff9fffffcfffffdff
+fffefffffdfffffdfffffdfffefffffefffffffdfffffdfffffbfffffdffffffeffffff1
+fffcfffffbfffffffdfffff6fffffafffffbfffffbfefffdfefffffcfffffcfffffcffff
+fefffafefff4fefff4fefffafffefffffdfffffdfffffdfffffefffffeffffffffffffff
+fffefffffffbfffff4fffff8fefefffefefffcfffffbfffffbfffffcfffffefdfffefdff
+fffffffffffffffdfffffcfffffcfffffefffffff1ffffecfffff3fffffbfffcfffffbff
+fffcfffffefffffff3ffffeffffff6fffefffffbfffffbfffffeffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+ffffeffffff1fffffffffdfffffdfffffeffffffe8ffffeafffcfffffbfffffdfffffeff
+fffefffffdfffffefffffefffffffffffffffffcfffffbfffffafffffcffffffefffffed
+fffdfffffcfffffefffffefbfffffdfffffdfffffafffffbfffefffefefffffeffffffff
+fffff6fffff3fffff8fffffbfffefffffdfffffbfffffbfffffdfffffefffffefffffeff
+fffff8fffff6fffff6fffffbfefffffefefffcfffffbfffffcfffffcfefffefcfffefdff
+fffefffffefffffdfffffdfffffdfffffefffffff1ffffeffffff6fffefffffcfffffcff
+fffdfffffffbfffff3fffff6fffdfffffbfffffbfffffcfffffefffffffdfffffdfffffd
+fffefffffefffffefffffefffffffffffffdfffffdfffffbfffffbfffffdffffffffffff
+fffffffffffffffffffffffffffffffffffdfffffafffffbfffefffffefffffeffffffff
+fffffffffffffffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fefff3fefff1fefff4fefffafefffffffffffffff8fffff6fffffdfffffffffffbfefffa
+fefff8fefff6fefff8fffff8fffefbfffdfffffcfffffbfffffdfffffdfffffdfdfffefb
+fffefbfffdfdfffdfffffdfffffefafffef8fffef8fffefbfffdfffffdfffffdfffffef8
+ffffedfffff3fffbfffffbfffffff6fffff3fffdfdfffdfdfffff4fffff6fffcfffffdff
+fffff4fffff4fffefffffefffefffbfefff4fefff1fcfff4fefffbfefffffefffffffeff
+fffdfffffdfffffefffffefdfffdfffffdfffffffdfffefffffefffffdfffffcfffefeff
+fffffafffff3ffffeffffffffff8fffff8fffffdfffffff4fffffafffffbfffff8fffffb
+fffdfffffbfffffcfffffdfffffffffffffbfefff8fefff6fefff6fefff8fefffffeffff
+fffefffffefffffdfffffefffffefffffffaffffedfffff4fffbfffffafffffdfffffeff
+fefffffefffdfefffbfefffbfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fefffdfcfffafefff6fefff8fefffffefffffffffafffff8fffffafffffdfefffffefffd
+fefff3fefff1fcfff8fefffbfffefbfffdfdfffdfffffdfffffefbfffefbfffcfffffdff
+fffefafffefafffdfffffdfffffef8fffff6fffef8fffefbfffdfdfffdfffffdfffffefb
+ffffedfffff4fffafffffafffffef8ffffeffffefafffef8ffffeffffff3fffbfffffbff
+fffffdfffffdfffdfffffdfffefff8feffeffefff1fefff4fefffafefffdfffffafffffd
+fffdfffffefffffff8fffff4fffff8fffefbfffefdfffefffffffffffefffefdfffefeff
+fefff4feffeaffffe8fffffafff7fffff7fffffefbffffecfffff4fffff8fffff3fffff8
+fffdfffffcfffffcfffffdfffffffffffffafffff8fefff6fefff6fefff8fefffffeffff
+fffdfffffdfffffdfffffdfffffefffffff8ffffeafffff1fffcfffffafffffdffffffff
+fffffbfefffafefff8fefffafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fefdfffefdfffefefffefffffffefffffffdffffefffffedfffffdfffdfffffbfffffcff
+fefff8fefff6fefefffefdfffffffffffffdfffffdfffffdfffefffffefffffffdfffffd
+fffffdfffffdfffffbfffffbfffffbfffffbfffffafffffbfffefffffdfffffcfffffcff
+fffffafffffbfffbfffffbfffffefffffffdfffdfffffefffffff6fffff8fffcfffffaff
+fffafffffbfffffdfffffffffffff8fffff6fffffffffefffffefffffffffffffdfffffd
+fffdfffffdfffffff3ffffeaffffeaffffeaffffefffffefffffedfffff6fefefffefeff
+fefff4feffe4ffffd8ffffe8fffafffff8fffffefbffffeffffff4fffff4ffffeffffff1
+fffffafffefffffefffffefffffffbfffffafffffbfffffafffffafffffbfffffffffeff
+fffdfffffdfffffdfffffdfffffefffffffaffffeffffff1fffefffffdfffffffbfffff4
+fffff4fefff3fefff3fefff4fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffbfffefbfffefdfffefefffffefffffffdfffff1fffff1fffffffffdfffffbfffffcff
+fefffffefffdfefdfffefdfffefefffefffffefffffefffffefffffefffffefffffeffff
+fefffffefffffefffffefffffefffffefffffefffffefffffefffbfefffffefcfffefdff
+fefffffefffbfefefffefefffefffffefffffefdfffefefffefff6fefff8fefdfffffbff
+fffafffffbfffffcfffffefffffffafffff8fffffdfffefffffcfffffcfffffdfffffeff
+fffefffffffafffff6fffff1ffffedffffedfffff3fffff4fffff1fffffafefdfffefdff
+fefffafeffe8ffffdaffffe4fffbfffffafffffdfdfffff4fffff8fffffafffff6fffff4
+fffff6fffff8fffffafffffbfffffdfffefffffffffffefffffefffffefffffdfffffdff
+fffefffffefffffefffffefffffefffffffbfffff4fffff4fffffafffffafffff6fffff4
+fffff6fffff6fffff8fffffafffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffdfffffdfffffdfffffefffffffffffffffffffffffefffffefffffdfffffdfffffdff
+fffdfffffefffffefffffefffcfffffcfefffcfefffcfefffcfefffcfefffcfefffcfeff
+fcfefffcfefffcfefffcfefffcfefffcfefffcfefffcfffffcfff6fcfffafcfefffcfeff
+fcfffdfcfff6fcfffdfcfffffcfffbfcfffffcfffffcfffffcfff3fcfff3fcfffffefeff
+fffefffffdfffffafffffbfffffffdfffff1ffffecfffff6fff9fffff7fffff8fffffbff
+fffff6fffff3fffdfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffefafffefbff
+fefefffefff6ffffecfffff1fffcfffffbfffffdfffffefdfffdfffffdfffffdfffffeff
+fffffdfffffafffffafffffdfffefffffdfffffcfffffcfffffbfffffbfffffafffffcff
+fffefdfffff8fffffafffefbfffffbfffffdfffffdfffffbfffff4fffff4fffff8fffffd
+fffefffffdfffffcfffffcfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffefffffefffffefffffffdfffffdfffffffffdfffffdfffffffffffffbfffff8fffffb
+fffdfffffdfffffefffffffdfcfffffbfffffcfefffbfffffcfffffbfffffcfefffbffff
+fcfffffbfffffcfefffbfffffcfefffbfffffcfefffbfffffcfff4fbfff4fcfffffbffff
+fcfffbfbfff4fcfff8fbfff8fcfffafbfffdfcfffffbfffffcfff4fbfff1fcfffafcfffa
+fffff4fffffbfffbfffffafffffcfffffff6ffffe6ffffeffffafffff7fffff7fffffbff
+fffff4fffff1fffdfffffbfffffcfffffbfffffbfffffbfffffbfffffbfffefbfffefcff
+fefefffefffffffffafffffafffefffffefffffefafffffafffefffffdfffffbfffffcff
+fffefffffffbfffff8fffff8fffefffffefffffdfffffcfffffafffffafffffafffffcff
+fffefbfffff6fffff8fffffbfffffdfffefffffdfffffefffffff4fffff1fffffafffeff
+fffcfffffafffff9fffffafffffdffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fffff3ffffeffffff3fffff4fffffafffffffefefffefffffefff3feffe8ffffe3ffffec
+fffefffffdfffffefbfffff6fefff6fcfffafefffffcfffdfefff3fcfff4fefffffcffff
+fefff3fcfff3fefffffcfffffefffafcfffafefffffcfffdfefff3fcfff4fefffffcffff
+fefffbfcfff8fefff8fcfff8fefffafcfffdfefefffcfffffefffbfcfff4fefff3fefff1
+ffffecfffff4fffbfffff9fffff9fffffcffffffefffffecfffdfdfffcfffffafffffcff
+fffff8fffff4fffefffffefffffdfffffdfdfffefffffefffffdfffffdfffefffffefffd
+fefffffefffffffefffffffffffff3ffffecffffeaffffedfffff4fffefffffafffff9ff
+fffdfffffffbfffff1ffffeffffff3fffff3fffff3fffff8fffdfffffcfffffbfffffbff
+fffefdfffefbfffefffffefffffdfffffdfffffbfffffdfffffff6ffffeffffff8fffeff
+fffcfffffafffff8fffff9fffffdffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fffff3ffffedffffeaffffedfffffafefffffefdfffcfffffeffecfeffdffeffdfffffea
+fffefffffdfffffefbfffff4fffff3fffff4fffffafffff6ffffecffffedfffffafffffa
+ffffecffffecfffffafffffdfffff4fffff4fffffafffffbfffff8fffff8fffffbfffffd
+fffffdfffffdfffffdfffffdfffffffffefffffdfffffdfffffefffffffbfffff1ffffec
+ffffe8fffff3fffcfffff9fffff8fffffafffffef8ffffedfffff1fffff6fffffdfffffb
+fffff3fefff4fefffffefffffffffdfffff8fffff8fffff8fffffbfefff8fefff1fcfff8
+fefdfffefbfffefcfffffefffffff3ffffe8ffffe6ffffeafffff3fffefffff7fffff6ff
+fffbfffffdfffffff6ffffefffffefffffedffffe8ffffedfffefbfffdfffffbfffffcff
+fffdfffffefffffdfffffdfffffdfffefdfffefcfffefdfffefff6ffffeffffff4fffffa
+fffdfffffbfffffafffffbfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafaf3f3f3
+fdfdfdfefefef1f1f1fffffff3f3f3ffffffe8e8e8fffffff5f5f5fdfdfdfffffffcfcfc
+f9f4f8fffcf7f8fbe0f2f6dbfefffbf3f6fffbfcfff5f9fffcffedfaffe1f3fce1f7faf3
+fffcfffffbfff0ecedfffff6fbf8effffff8f5f2edfffff8f2f0e1f7f5e6fffff6ece9e0
+f7f5e6fffff1fffdf6f8f4f1fffcf5f2efe8fffefdfffdfffffbfffbf6fafffffafcf9f2
+fcf8f9fffdfffcf6fffffafffef8fffcf6fffffbfffef7fffffbfffcf7fefffff4ffffec
+ffffecfafcf1fcf8fffff9fff3e9fffff9fff9f3f7fffff3f3f3dbffffe4f4f8d7feffe2
+fcffe4eff8e5eef3f6fcfffffbfbfdfffef9f2f2eafffff1e5ebcffcffe4faffe6f2f8f8
+f9f4ffebe4fffcfbfff5f5fffffffdfffff4fbfcecfafbebfefffafbf9fff9eefffef1ff
+f7effffaf5fffffeffecede7fafaf0ffffeef3f6d7ffffeaf9f5f2fffcfffffbfffbf4ff
+fffdfffaf8fdfefbfffcfafff7f6fffcfeffeff1fff4f7fefafff6faffebffffecffffec
+f5f4e0fcf9eafffaeefffef6fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafaecececffffffffffff
+ebebebfbfbfbffffffe4e4e4ffffffe3e3e3fffffffefefeffffffffffffedededf9f9f9
+fffefffffffdfdfef6fafdf4f6fafbebeeffeff2fff9fbffe1e6f9f0f7fffbfffff5f7ff
+ebe7ffeae6fffffffdf4f2e6fdfaf5fcf7f4fef9f5f2ede7fef9f3fffff6d9d5c9fffff3
+fffef3f9f5ecf6f2e7fffbf2fffefafffdfdf6f0f0f1ebeffffbfffffafffffff3fdfae9
+fffefae9e3e7fffbfffef5fffff7fffef5fff2eaf9fbf3fefdf5fff8f2f6fffff1f1f1d9
+f7fbe0f4f6e8fffdfffffbfffffbffdad3e3f8f1f8fffff8ffffefeff2d3f7fed2f2fbd0
+ecf6dbf9ffffe1e6ffeff1fff2effffefaffeeebfffefffffcffecd8e3c3f6ffecf9fdff
+1e1580281f8cebebfff5f9faf0f1f5f9fafceeefe7fefff6e5eae4f1f2ff2c22820d016d
+fcf4ffebe9fff5f4fffffffdfffffbfafbedfeffe2f9fce1f9f5f2fffcfff5effdf4f1f8
+fffffafafbf3fcfcfcfeffffe8ebf4f9fefffafffef8fffcebf1f1fcfffbf5f9e8e4e8cf
+ffffe8ffffe8eee9d3f8f2e2fffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1f1f1efefef
+ffffffe7e7e7fcfcfcfafafaefefeffffffff0f0f0efefeff6f6f6e9e9e9fffffffffffa
+ffffeffafbf3fefbfff3f2fff9ffffe6ecfff7f8ffe3e0fff7f2ffdddafff8f9fff9fbff
+ece9fffefbfff3f4ecebedd8fffefdfef9fdfcf9f4fffef9e6e2e3fffcf9ffffefdfdeca
+fffffafbf8f3fffdeefffff0fdf9f6fffbfffffefdfffefff6f1f8efebeaffffe4ffffe1
+f9f9e1fffff4efebe8fffbfffbf2fffff9fffffdfffffff8f0ede4fffff3f8f8e0f5f9d8
+feffddf7ffe1fefffffcfbffe7e7ddfcfcf0fffefbf1edeeece8e9f7f7edfeffe3fcffe6
+f0f8fae7ecfff5f7fff3f0fff3ecfffcf4fffcf3ffe2dffff3fafff3fef8eef6ff2c2a73
+0c00a41607a2f9fdfff9ffeff1f6fcfcfefff1f3f2fcfffafbfffbf6faff150d7420158b
+e4defff5f5ffebeef7f8fdf9f7f9f8fffff8f3f7dcf7fbe0fdfcf8eeecf1fffefffffff5
+fbffe1ebf5d0f9ffe7f2fbe8f9fffaedf9ebf8ffeaddead8f9feffe1e6fcfcfffffcfff2
+f9fae8eeebd8ffffeffffaeefffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffe8e8e8ffffffe5e5e5ffffff
+f8f8f8fffffffffffff9f9f9fcfcfcfafafae0e0e0fffffffcfcfcfffffffefefef8f9f1
+ffffecfafdf2eaeafffbfaffe9edfff7f9ffe2ddff19129e1a149a221e8c02034425265c
+1d1761ece7fffefff8ffffeaeeeeeef7f6fef3f1f4fffffffffdfff1f1effafbedfcffee
+fefef6fffff8fffff2fffff3e4e3dffcfcfcf9f8f6f8f8fafefbfffffffff9fbe5f6fcda
+ffffe6f4f7e2fffff8f2f0fefaf0ff1c1445ece9f2fefff2f9fbe5e8ecd3fffff0fcffed
+f2fbdcfbffecfcffffdcdedbffffecf7f9e1dddcdafefbfffffefff3f4efebf2e0e5edf0
+f7f9ffe9eaff0809730f0d781f1a78110767281c8af4edffebedffedf4fff7feffd4d4ff
+1907cd2516c7f3fbffeffeddf9ffffeff4fff7fcffd9e3dbe2eee2f7ffff28238906006f
+f4f5fff9fffff9fffbf0f8ebf4f8f9f0f2f1fefff1fcffecfffffbfafaf8e6e7d7f9fee0
+f2fdd5fbffdfe7f1d6f6fff1edf8f2edfbeee5f9d4f5fff6f7faff1b1a5ce6e7fff8fbff
+f4f3f1fffdf6e3dcd4fffcf6fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffffffff
+ffffff101010000000090909090909fffffffffffff3f3f3fffffff4f4f4fffffffffffb
+d5d8cdfefff6fbfffae5eafdf7f8ff0400780300b3190dc90a0980f2f9fff3fcfff7faff
+261c8ff5ebfff2f3f5ecf3d4fcfffff6f9fff9faffeff3fef6fbf7fbfffafafefff4faf8
+e4ebd9f9ffedebf0eafbfffffcfffae5ede2fcffffeaeef7fcfdfff5f8fff0f4f3f8fff1
+e1e9d4fbfff1e2e7e1f8f9ff382e870d045dfcfbfffbfff6fcffe4f8ffe5f8fcffeff3ff
+f6fefff4fdfce9edf6ebeff0eaefd8ffffeffffdfffffcfff5f6f0f8fbf2f5fafff8f9ff
+0e06971811b6232699e2e8ffeaeafff8f5ff0e06762820991e1b82e9edfff4ffffedf2ff
+0c00be2c1fcfe1ecfee7fbd6eaf4fef5fbfff8fefff8fffff7fff4e7f3ff12126a201f7c
+eff6ffe5f3e2e8f8d4f9ffeaf9fffff9fdffe2e6e5f6f8f3fefffff5f8edffffdffeffda
+f4ffe1eef9e9edf7f6f7fffff5fffff0ffffedffe8e7f9fd141379150c89f9f6ffe1e1ff
+f6f3fffffcfffffdfffffbfdfffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff8f8f8f6f6f6e8e8e8fdfdfd
+060606000000101010010101000000000000f8f8f8fffffff7f7f7fffffffafafafdfdfd
+fefffde8eee4fbffeff1f8ffefedff2018bb2518e10c06b0e8f0ffedfdffe6f6fff5fcff
+0d076bf9f1fff1effffcfdffeceeffeff2fff8f7ffe9ecffe8effff2fbfff8f9fff4f8ff
+f8fffff7fffff3f6ffeff3ffdde4f6f5ffffe0e5fff6faffedefffedf1fff8fcfff4fcff
+f4fdfff7fffff6fefff7f9ff090085190e98f8f8ffeef8ffe8f6ddedfbecf8fbfff7f9ff
+f8fbfff8fbfff3f2fffbfafff9fcffe1e3defffdfff2f0fbfafeeffafff6edf1ffe8e6ff
+1a0cd10700c0eaf4ffeefffff3fcffedf0fff7f2ff09018a170ea7f2f1ffdbe9fff1fdff
+2619d80000a9f2fcfff4ffffeef4ffe5e6fff7fafff3f9fff4ffffe7f4ffedebfff4f3ff
+e8f3fff5fff4edfde0f8fff8eaeefff9f8fff8f6fffcfaffe8e6fff5f4fff3f9dfe3ecd1
+f0f6fff5f8fff7faffecf0ffdde4fff0fcffefffffeaf9ff1f1aac0400a2f8f1fffbf8ff
+fefbfffaf7fffffcfce6e1ddfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffafafafffffffcfcfcffffff
+0000000909090000000404040e0e0e000000fffffffffffff4f4f4f1f1f1fffffff9f9f9
+f3f5f4f9fffbdde8daf7fcff1b12a90000ad1613aae7f0ffe9fdfff0fff3edfffff4ffff
+eaf1ffefeeff17097818098a130e82f2f0ff140ba4120f94eff4fff2f9ffefe7ff15119a
+070f3e15214b08047f0f0c91f4f8fff1f9ffeaeaff19198915147c0c0e72141476151a6c
+f4fbffdeeafff2faff1114751809c61b0ecf131083050f42f4ffffdae9fce9e9ff090580
+2422850c076e1a0d9b060078fcf6ffebeafcf2f1f7f8f9f1fdffe9fbfffbf5f7ff06027d
+1305d80b05bfe1f6ffedfff1f4ffeddae7eff3f5ff0e07951608cf0500a1f1ffffeefeff
+0f05be1a0be016178d03075e06027b2b23aa0b0485e4e0ffdce3ff21277f000094231eb0
+f2faffe9f6ffebf8fff1f6ff28218800007710048410027b382c9afaf1fffcfdfffbfcff
+f8f3ff160d8e030085251eac0b0895e5e9fff0ffff141f5f1309c01608d11a128b0f0e48
+dddef2f9faf4ffffecffffecfffff8ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff1f1f1f8f8f8ffffff
+000000040404000000020202010101050505fcfcfcf3f3f3f9f9f9fffffff1f1f1fefffd
+fcfffaeff6eff9ffffe6e8ff1304b51a0bd614129ae9f4ffe6fef0f0ffe4dbefe4eaf9fc
+f7fffff3f6fff9edff1a09ad140ba21915aa0b05a50e0b9af1f5ffeaecff0200aa1912b8
+f1f9ffe5edffeee8ff1d15c2010374f1f5ff09078c120f9ef0f0ffdedeffefeeff0e0f8d
+131971f1fbffe4edfff2f4ff1607d40100c3f1f2ffe4eeffe7f6fff0fcff18189c130faa
+e0defff3edffecddff2211b70f066ff6f1fffefdfff9fdeff8ffe0e3eae3f7f8ff110a94
+1708dd130ec2ebffffe5ffe2e5fed6f5ffffecefff1b12a91806e40d04b9eefdffe8f8ff
+1108b91305d8eae8ffe9ebfff4f0ff09028e1103b0190facf2f5ffe6e9ff1d12c81007b2
+e6ecffe0ecfff4f8ff131079070088f7e9fff3e6ffe4d6ff1304a514088eeae9fff4f3ff
+0d04812b21b8f2e9ff040094100ba61a1c93eaf8ffedf7ff0b00c32b1bedede9ffe8eaff
+fcfdffeeefe7f3f5ddffffe6fffff8ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdecececffffff
+090909000000141414000000060606000000fffffffbfbfbf6f6f6fffffffffffff8fbf2
+f0f8e1fbfff3f2f8fff7f4ff0200a41704d21309a8eaedffe5f7fff1ffeee9feefe8f8f5
+f1fdffecf1fff7f2ff150c89110a98f2effff2f6ff0a0f61f2f2ff0b07901b14afeeeaff
+f2f6ffebeffff2ecff1f17ba0c0890ebe9ffe8e5ffefeeff0b0e9b1216ad00009f0f0ea8
+1d1f90e6edffe7f2fff5f8ff1202bb1809c4f2f8ffe3f1ffecf7ff0d17791015a7e1e4ff
+eef1ffddddffede5ff160cad190e99f9f1fffbfafffafff9fbffe3f9fffaf7f5ff160d9e
+2012d90b04b4edfbffddf3fff0fffbf3fffff2f2ff0700a01804e11409bbe8f5fff1ffff
+160eaf0b00b9f2f4fff2f9ffe6efffeff1ff1204bb1406bbecefffeaefff2315cd1308ba
+e6eefff2fbff08019c1207bdeae5ffeeeeffedeeffebe8ff0500ba1a12c7e8ebff1a1f7a
+0a0a78f4f2ffecf0ff090d66191b8c141a72e4f6ffecf7ff1105bd1101c4eeedfff5faff
+fbfefffcfdffedefe4fffff4fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaeafffffff5f5f5
+f3f3f31010100000000e0e0e000000ffffffe7e7e7f9f9f9fffffffafafafbfbfbfdfff7
+fbffe9edf6e3eff6ffebebff2315a61d0ec11f11bcece8fff2ffffecfff5e4f6e6f4ffff
+f0f6ffe4e6ffe7e5ff2b298a0f0b84eaecfff2ffffe7f3ffecebff2019b40b049f151295
+0d1168272c7d18198500006a202092eceaff16119f1612a70e13a5e6ebffe4e1ff0b09ac
+0e0e88edf1fff6fdffe2e5ff1e0eb70800a5f4faffd7e6ffeef9ff0d138b000498141aac
+0a118310187b171a851a1a8c0d0880efeafff9fbffe4ebe4fbffdddde8d7f0efff0c048e
+1307c3140dbbeef6ffecfdffe5f6fde9f4ffedebff2015bb1607c6170fa3f4feffe9f3ff
+140ba21006a7f1f6fff4ffffe7f4fff4f9ff0e02ac0800a3f4fbffdfe5ff1408b21509b3
+ecf5ffecf4ff1d12ce1405da16169c080f67121c63131c7b2422c50502b1dee3ff0b1181
+141589e4e6ffe8f1fff2fcfff2f7fff1faffdbecf6eef8ff1608c02111ccf7f9fff6fff8
+e7ededdbdfe2ffffffe9e9e9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffeeeeeeededed
+fffffff0f0f0f2f2f2f8f8f8edededf8f8f8e2e2e2ffffffe7e7e7fffffffffffffafcf7
+edf3e5eaf3e2f9fff6f8ffffd8d7ff0e097f190cb4160ea2f3f9ffdae8f1eefff2eefbff
+03006bf5eefff7f3ff0203532e2f8bdee3ffe3f1faf4ffffefecff0a00a50e01b3ece4ff
+dcdffff3fcffe9f2fff4fdfff4fbffe8e8ff190fb00a01b4d8d9ffdde2ffedecff040198
+19198beff3fff1f7fff8f8ff2212b11001a2f5f9fff1feffe4ecff151c901319a5dce4ff
+e6f5ffeeffffe6f7ffd7e3fbf5fcfff4f8ffdde3eff0f9e6f2ffcbf9ffe8f8fafff3eeff
+0800ad2a22d0000065f0fdfff0fffff0faffe7e2ff1206a41c149bdad9ffe9f1ffecf2ff
+150c9d231ba2e7f2ffe6f5eeedf4ffd8d7ff2018a21f1c8dd0dcf4f2ffff080391070294
+f0fbfff2fbff0500ab190dd1e9e9ffecf7ffdbeef4f0ffffe7f0ffdee4ffeef2ff040488
+2621afe4e1fff3f9fff2feffc2caffdfe7fff2ffffeff5ff1d0dd20400afeef2fff9ffec
+edf7defcfff4f5f4fcfffdfffffeffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffefefefafafafcfcfcffffff
+f3f3f3fcfcfcffffffeaeaeafffffffdfdfdfffffff9f9f9fffffff4f4f4f0f0f0f7f9f8
+fcfffdfbfff8edf6e1f8fff7f8fefff5f5ff0a03871711990b0d62f4fbfff4fffff1f8ff
+231d99dcd4fff7f2ff26237a151376f4f9fff4ffffe2f2f2e7e9ff1e17a3170cb21a12a6
+f4f6ffe6eeffeffbfff4ffff061131eef1ff11089f1d13c21313a52529ae05088d1a1b9a
+0b0b7df5f5ffe7eafff7f7ff1e129c120696dee0ffedf7ffedf7ff11197b171c9e091085
+e4f2ffe1f3fff2fffff4ffff151d34eef5fffbfffffbfff6f8ffe0ecf8e4e9edffe5e5ff
+140f901512971f2585e3edffe6f1fff5fcff171381100a84eaebfff3f9fff5fffff3f9ff
+130c90150e8fe3ebfff5fffff5f8ff26248500005bf2f5fff4ffffe0ecff1b17a2100b9b
+f2fcffecf6ff0e09971913b3070872f2fcffe2f3faddeef5f1fcff040a60ecf0ff1c1c8c
+06008629259ddbdfffe9effff4f8ff151d5eeffbffdfe2ff1d0ec31606b1f8faffedf7ec
+e1ead7fafff1f0eff4f6f5fdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6f6fefefef6f6f6
+ffffffe3e3e3fefefeffffffe9e9e9ffffffffffffffffffe6e6e6ebebebffffffedeef2
+f0f3fcf1f6faf9fff2d3ded0f4fdffe6ecfff5f9ff0d0d6314117c130e84140f870c0877
+0a0667f7f3ff00005d160f830b028f0f0d72edfbfbf5ffedf5fefff5f7ff0200750e0789
+0e0b7416176a13165b12174f262d5bebefff161283100c9413129a000075f0f7ff252a86
+0e0a85161281f4f5fff1f1ff0e0572392fac140e78131667e7f2ffeaf5ff04098114179a
+24298f01075d1e23750d115a070942e5e9fffbfdffe7e9f5f4f7fff2f6fff9fdfff7fdff
+f3faffeff9ff0c174d0c145504055815126b12115fedeffff7fcffeff7ffdae5e9e7edff
+1b14860f048f0a04721c1876201d7604044ef7faffeff7ffe7f0fff2f7ff1109ac2019b7
+e7efffdce8fff2f6ff00005c12136d181b68181c631619680e0e721b1c78eff6fff4fbff
+2423800e0a781c198213127a12107b090b5ef4fefff4fbff10098b0e038e0c0a55171a3b
+fbfefff4f8f9f6f8ebfffff3fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffecececfffffffbfbfbffffff
+f8f8f8fffffff2f2f2f5f5f5ffffffeeeeeef1f1f1f5f5f5f0f0f0fffffff4f4f4fffeff
+f6f5fffcfeffebedf9fbfefff2f5fff7fafff5faffe3e6fff5f1ffd6cefff3e9fff5eeff
+f7f5fff1f1fff6effff8edfff2e5fff5f1ffeff8ffedfdf2dfe5ffeff2fff0e9fff5efff
+f4edfff5f3ffe3dffff5f6fff0f1ffedf0ffe8e2ffefebfff1f0fff0f4ffdce4ffe5ebff
+f4eeffeae2fff9f5ffeae8fff2ebffeae0fff0e8ffeceafff2fbffe2ecfff0f3ffe6e6ff
+f1f1ffe6e5fff4f1ffebe8fff8f5fff9f7fff4f2fffcf9fffcf7fff0edffe6e7fff0f4ff
+f0f9ffe5eefff2fafff4f6fff7f0fff6f0ffedecfff4f8fff2f4ffe6eafff8fdfff4f8ff
+f5effff7eefff8ecffebe3ffe9e3fff3f3fff6f7ffdfe1fff2f4fff2f0ff0d04ad0c05a0
+e8eefff4fbffebeefff5f3fff5f2ffeae7fff7f1ffe3dcfff1e8ffe2dcffeff2fff4f9ff
+f4f3fff3edfff7eeffe5deffeee8ffececfff5fcffe1e8fff2effff2eafff8f3fffbf5ff
+eae7ffe9e7fcfffff8fffff1fffffaffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeeeeeef9f9f9fefefe
+fcfcfcf3f3f3ffffffffffffeaeaeafffffffffffff7f7f7fffffff8f8f8ffffffeeeef0
+fffeffe7e4fff2edff261f6f171070130e6c1b1b651a19671510761710841f17910d0676
+0a065a221e72140a7d2116981b0f950f097528295f202453110c6a120a842e22ac160c91
+140d770d0967292482110d6b1d1872262187170c8e1d129d0803830a0b771f22731d1e71
+0f077e140a85150d701c136e251b7e291f8f231994171080000151262978080878161491
+0a0681231e961d168a110a741c1572150d6320166d0d025e100468211579251c790c065e
+1d196e2723820400750f09870d047b110a721b16682824790c01771a108a21197e18136f
+17106f080266170d7e1d1584130c6b201b77060065362dac190eb21309b70f05a4181394
+20227727287a00006c160a9a140898150b921a1184180f8225189c1e12904039980a0559
+120b6a251d8d1c109a1b0f9f0c0285333097000142242566130e75120a81140c7c160c6c
+231c60fbf6fffffcffe8e8eaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff0f0f0ffffffffffffffffff
+f6f6f6fffffff2f2f2fcfcfcfffffff6f6f6fbfbfbf4f4f4fdfdfdfffffff0f0f0ffffff
+f9f9f7fffcfff3eafffcf2fff8efffede8ffefeefff6f8ffe3e3fff7f6ffe5e4fff7f5ff
+f6f5fff9f6fff0ebffece6fff2ecfff8f6ffe9ebffeeeffff8f2fff7eeffede4fff4eeff
+f8f7ffe4e4fff6f4fff1eeffefecffe4dffff8f0fff4ecfff5f5fff5f7ffedefffe8eaff
+f8f4fff9f2fffbf3fff2ebffebe5fff5eeffefe8fff3eefff7f7ffeff3ffeeeffff5f5ff
+f2effff7f4fff3effff3eefff7f1fffaf4fff6eefffcf3fffcf1fff6ebfff9effff7efff
+f8f3ffefeafff7f1fff6f0fff9f2ffece8fffbf5ffd9d4fffbeffff9eefff6ebffe9e3ff
+f8f3fff9f7ffefe8ffede8fff8f2fff4f0fff7edfff2e9ff11079e130aa1f2efffe2e2ff
+f5f8fff0efffefe9fff8effff6edfff6edfff9f4ffeee6fffbf0fff9ecffe2d9fffbf5ff
+fbf5ffefe9ffede3fff1e9fff7f2fff0f0fff3f6fff7fafff5f4fff3eefff9f2ffeae2ff
+f6f1fff8f5fff8f6fffefdffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+fffff1fffffafefbfffcfafffbfdfff9fffff9fffff8fffff8fefff8fffff8fffff9feff
+f9fcfffbfcfffbfffffbfffff9fffff9fffff9fffff9fefff9f9fff9f8fff9fafff9fdff
+f9fffff9fffff9fdfff9fbfff9fbfff9fbfff9fbfff8fdfff8fffff7fffff8fffff9ffff
+f9fefffbfcfffbfbfffcfbfffcfdfffbfefffbfcfff9fcfff9fdfff8fffff8fffff7ffff
+f8fffff9fefff9fcfffbfcfffbfdfffcfefffefefffefdfffefbfffcfbfffcfcfffbfdff
+fbfefff9fefff9fcfff9fbfffbfcfffbfcfffcfafffbfbfffcfbfffbfbfffcf9fffbfbff
+fcfcfffbfefffcfcfffbfcfffcfcfffbfcfffcfbfff9fbfff7fafff5fbfff5fdfff7feff
+f7fdfff8fdfff8fdfff9fdfff9fefffbfefffbfffffcfcfffcf9fffef8fffefcfffefeff
+fcfdfffbfcfffbfafff9fbfff9fefff8fffff8fffff8fffff8fefff8fcfff9fbfffbfcff
+fcfffffefff4fffff4fffff6fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffecfffff1fffdfffefdfffcfffbfbfff4fbfffaf9fffff9fffff8fffff9fffbf9fffb
+fbfffffbfffffcfff6fcfff1fbfff6f9fff8fbfff8f9fffffbfefff9fefffbfffff9fffa
+fbffedf9fff1fbfffff9fffffbfffff9fffffbfffff9fffbf9fff6f9fff4fbfff6fbfffa
+fbfffdfcfffffcfefffcfffffcfff8fcfff8fcfffffbfffffbfffffbfffff9fff8f9fff1
+fbffedfbfff6fbfffffcfdfffcfffffcfff4feffe8feffecfefffffefefffefffffcffff
+fcfff3fbfff3fbfffffbfffffcfffffcfffffcfefffcfffffcfffafcfff8fcfffffcffff
+fcfffffcfffdfcfffffcfffffcfffffcfffffcfffdfbfffff9fffff8fffff8fffff8ffff
+f9fffff9fffdfbfff1fbffecfbffeffcfff4fcfff8fefffffefdfffefefffffff6ffffef
+fefff4fcfffdfcfefffbfffffbfff8f9fff3f9fffbf8fffff8fffdf9fffffbfdfffcfdff
+fefffafeffefffffedfffff3fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa
+ffffedfffff1fffdfffffdfffcfffffbfffffbfffaf9fffff9fefff9fdfffbfffffbfffb
+fcffeafcfff3fefbfffcfbfffcfffffbfff8fcfff8fbfffbfcfffffbfffffcfffffbfffa
+fcfff3fbfff4fcfffdfbfffffcfffffbfffffcfffdfcfffafcfff8fcfffafcfffbfcffff
+fcfefffefdfffefdfffefefffefffbfefffffefdfffcfcfffcfefffcfffffcfffbfcfff3
+fcffe8fcfff4fcfbfffef9fffefdfffefff6ffffe1ffffe4fffefffefcfffefdfffeffff
+fefff1fcfff1fcfffffcfffffefffffefffffefffffefffffefff8fefff6fefffbfeffff
+fefffdfefffdfefffffefffffefffbfefff8fefff8fcfffdfbfffffbfffffbfffffbfffa
+fbffeffbffe4fcffdcfcffe4fcfffffefdfffefcfffffcfffffefffffffdfffff3ffffed
+ffffecfefff8fefcfffcfcfffcfefffbfffff9fffdf9fff8f9fff3f9fffffbfbfffcf8ff
+fefbfffefefffffffafffff6fffffbffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb
+fffff6fffff8fffefffffefffefffffcfffbfcfff6fbfffffbfcfff9fcfffbfdfffbffff
+fcffe6fcffeffefafffef8fffefdfffcfffbfcfff8fcfff6fcfff8fcfff8fcfff8fcfff8
+fcfff8fcfffafcfffdfcfffdfcfffafcfff8fcfff6fefff6fefff4fefffafffefffefdff
+fffcfffefefffefefffefffffefffffefffffefdfffefcfffffcfffefefffffffbfefff3
+ffffeffefffdfff9fffef8fffefcfffeffffffffeaffffeafffffffffcfffefdfffefeff
+fefff8fefff4fffffffefffffffffdfefffbfffffffefffbfffff4fefff4fffff8fefffb
+fffffbfefffbfffffbfefffbfffffafefff8fffff6fefffafefffffefefffefefffefffb
+feffeafeffdffeffddfeffecfffdfffffafffffafffffcfffffffffffff8fffff6fffff4
+ffffedfffff8fffbfffefbfffefdfffcfffffbfffff9fff6f9ffedfbfffbfcfafffcf7ff
+fefafffefdfffffffffffff8fffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffcfffffdfffffffdfffff3feffe8fcffe6fcffecfbfffbfbfdfffbfbfffcfcfffcffff
+fefff6fefff8fffcfffefcfffefdfffefffffefffafefff1feffeafeffeafefff1fefff8
+fefffffefffffefffffefffbfefff6fefff3fefff1feffedffffecfffff8fffafffffaff
+fffdfffffffbfffffdfffffffffefffffefffffffbfffefffffafffffbfffffff8fffff3
+fffefffffcfffffafffffafffffbfffffdfffffffffffffafffffbfffffffffefffffdff
+fffefffffefffffffdfffff8fffff8fffff8fffff8fffff6fffff3fffff3fffffafffffb
+fffffbfffff6ffffedfffff1fffefffffffffffff4fffff4fffefffffdfffffcfffffdff
+fffff4ffffeffffff4fffffffffbfffffafffffbfffffdfffffffafffff8ffffffffffff
+fffffafffffbfffcfffffcfffefffffcfffffbfffffbfffafbffeffbfff6fcfdfffcfbff
+fefcfffffdfffffefffffffbfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffcfffffbfffffefffffff4ffffeafeffe6fcffecfcfff8fbfffffbfefffcfefffcffff
+fefffdfefffbfffffffffefffefefffefefffefffffefff8feffedfeffecfefff3fefffb
+fefefffefefffefffffefffdfefffafefff6fefff3ffffefffffeafffff6fff9fffff8ff
+fffdfffffffafffff3fffff4fffefffffefffffff8fffffdfffbfffffbfffffff6fffff3
+fffdfffffcfffffcfffffcfffffcfffffdfffffefffffffdfffff8fffff8fffffffffeff
+fffcfffffdfffffefffffffbfffffbfffffafffff3fffff3fffffafffefffffefffffeff
+fffffbfffff4ffffecfffff3fffdfffffcfffffffafffff4fffefbfffcfffffafffffcff
+fffefbfffffbfffdfffffbfffffcfffffcfffffdfffffefffffffafffffafffffffffeff
+fffefffffdfffffdfffffdfffffffdfefffbfcfffffbfffdfbfff1fbfff3fcfffffcfeff
+fffdfffffefffffefffffffdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff
+fffefffffcfffffcfffffcfffffefffefffdfcfff6fcfff3fbfff1fbfff3fcfff6fcfff8
+fefffbfefffafffff4fffff6fffffffffdfffffcfffffdfffffefffffffdfffffffffeff
+fffdfffffdfffffefffffefffffefffffffffffffffffffafffff1fffff6fffbfffff9ff
+fffbfffffdffffffe8ffffe4fffffafffdfffffefffffefffffcfffffdfffffff6fffff3
+fffffafffefdfffefffffffdfffff8fffff4fffff4fffff4fffffafffffbfffffdfffffd
+fffefffffdfffffcfffffbfffffcfffffeffffffecffffeffffcfffffafffffcfffffdff
+fffffdfffff8fffff6fffefffffbfffffbfffffdfffffefbfffefafffcfdfffbfffffbff
+fffdfffffcfffff9fffff9fffffffdfffff4fffffafffffdfefffdfefffbfefff4fffff6
+fffdfffffcfffffefffffefffffffafefffafcfffffcfffdfcfff1fcffeffcfffafcffff
+fffffbfffffafffffafffffbfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
+fffefbfffdfffffcfffffcfffffdfffffefffefffbfcfff3fcffecfcffecfcffeffefff4
+fefffbfefffbfffff3fffff4fffffdfffefffffcfffffcfffffdfffffefffffefffffeff
+fffdfffffdfffffefffffefffffefffffefffffefffffefffffff8fffffafffdfffffcff
+fffbfffffdffffffeaffffe4fffff8fffefffffdfffffefffffefffffefbfffff8fffff6
+fffff6fffff6fffffafffff8fffff3fffff1fffff1fffff4fffffbfffffffffffdfffffb
+fffffbfffefffffcfffffbfffffbfffffdffffffedfffff1fffbfffff9fffffbfffffdff
+fffffdfffffafffffbfffefffffbfffffbfffffdfffffefffffefbfffdfbfffcfffffcff
+fffdfffffcfffff9fffffbfffffff8ffffeffffff6fffffbfefffffefffdfefff3fffff4
+fffdfffffcfffffefffffffdfffffafffffbfefffffcfffdfefff4fcfff1fefff8fefffa
+fffff8fffff8fffffafffffbfffffdffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffdfffefffffefffffefffffefffffffffffffdfefffbfefff8fefff8fefffafffffb
+fffffdfffffdfffffbfffffbfffffffffffffffefffffefffffeffffffffffffffffffff
+fffefffffefffffffffffffffffffffffffffffffffffffffffffdfffffdfffefffffeff
+fffefffffffffffff8fffff6fffffdfffffffffffffffffffffffffffffdfffffdfffffb
+fffffbfffffbfffffdfffffdfffffbfffffafffffafffffbfffffdfffffffffffffffffd
+fffffdfffffffffefffffefffffefffffffffffffafffffafffefffffdfffffeffffffff
+fffffffffffdfffffdfffffffffefffffefffffefffffffffffffdfffffdfffefffffeff
+fffefffffefffffdfffffefffffffdfffffafffffbfffffdfffffffffffffffffbfffffb
+fffefffffefffffffffffffffffffdfffffdfffffffefffffffffbfefffafffffdfffffd
+fffffdfffffdfffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffafafafbfbfbfcfcfcfefefe
+fffffffdfdfdf9f9f9f5f5f5ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffff3f3f3ffffffffffffffffff
+fffffffefefefffffffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb
+fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffffffff9f9f9fbfbfb
+fafafafafafafefefef6f6f6ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffcfcfcfbfbfbfafafaf9f9f9
+f9f9f9fafafafbfbfbfcfcfcffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffbfbfbf3f3f3fcfcfcffffff
+fffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffcfcfcffffffffffffffffff
+fffffffffffffffffffffffffefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefafafaf8f8f8ffffffffffff
+f2f2f2f2f2f2f0f0f0f3f3f3ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffefefefffffffffffffdfdfd
+fafafaf9f9f9fbfbfbfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff3f3f3
+f7f7f7fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffbfbfbf4f4f4eaeaea
+e3e3e3e3e3e3e9e9e9efefefe4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4dcdcdcdadadadfdfdfdbdbdb
+f5f5f5f0f0f0d0d0d0f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffbfbfbeeeeee
+e1e1e1dbdbdbdcdcdcdfdfdfe4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4
+e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e7e7e7e7e7e7ececece8e8e8
+f4f4f4c1c1c1949494efefefffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffff7f7f7f9f9f9f7f7f7ededed
+dcdcdcccccccc3c3c3c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bdbdbdbfbfbfc3c3c3bcbcbc
+bababa747474656565ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2c0c0c0c5c5c5b9b9b9c1c1c1c1c1c1bbbbbbbcbcbcc9c9c9
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3c3c3c5c5c5b8b8b8bdbdbd
+c6c6c6c3c3c3bdbdbdc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b8b8b8c3c3c3b3b3b3c0c0c0
+b4b4b46b6b6b6b6b6bffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2adadadcbcbcbbdbdbdc8c8c8b7b7b7d7d7d7bcbcbcb5b5b5
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b8b8b8bdbdbdcdcdcdbdbdbd
+c1c1c1c5c5c5c1c1c1bfbfbfc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b9b9b9ccccccc3c3c3c5c5c5
+c9c9c96e6e6e676767eeeeeeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2c9c9c9c7c7c7b7b7b7c3c3c3c1c1c1b3b3b3c0c0c0c6c6c6
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c7c7c7abababbfbfbfc8c8c8
+bdbdbdbebebebebebeb4b4b4c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bebebeb5b5b5c7c7c7b2b2b2
+c2c2c26868686f6f6ffafafaffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2b9b9b9bababab6b6b6b9b9b9bebebec1c1c1c6c6c6b3b3b3
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c2c2c2141414000000c1c1c1
+c3c3c3b8b8b8cfcfcfbababac0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00a0a0a040404bdbdbdc8c8c8
+c3c3c35c5c5c656565ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2cacacabababad1d1d1c9c9c9b8b8b8d3d3d3bbbbbbc1c1c1
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0a8a8a8c5c5c5202020afafaf
+c9c9c9c0c0c0afafafcdcdcdc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b3b3b3040404bcbcbcb7b7b7
+bbbbbb7c7c7c696969f1f1f1ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c20000000f0f0f010101000000151515000000bababacdcdcd
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d9d9d9c0c0c0000000d2d2d2
+c8c8c8c0c0c0c3c3c3c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d3d3d3000000d1d1d1c9c9c9
+b1b1b1717171636363ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2cfcfcf000000c6c6c6c7c7c7c5c5c5151515000000d0d0d0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0bdbdbdc9c9c9000000cecece
+b4b4b4bdbdbdc6c6c6c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c6c6c6000000bcbcbcc5c5c5
+c0c0c0787878646464fbfbfbffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2c2c2c2000000c7c7c7cacacab2b2b2bababa0f0f0fb7b7b7
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c1c1c1c8c8c8080808cbcbcb
+bebebebfbfbfbabababebebec0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
+c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b7b7b7161616bdbdbdc4c4c4
+c2c2c2686868606060ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2cacaca000000d1d1d1c8c8c8b7b7b7bfbfbf010101bfbfbf
+c6c6c6aaaaaad3d3d3afafaf0f0f0f0b0b0b000000c5c5c5afafafcfcfcf000000b5b5b5
+c2c2c2c2c2c2c6c6c6070707000000000000cfcfcfbebebebebebec0c0c0010101090909
+000000d4d4d4c1c1c1b5b5b5cacacacacaca040404000000000000000000b7b7b7c3c3c3
+b4b4b4777777646464ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2b2b2b2191919b9b9b9b3b3b3cfcfcf050505000000d0d0d0
+c6c6c6dadadaadadad040404b4b4b4b2b2b2cfcfcf000000c0c0c0b9b9b9090909bfbfbf
+cacacabcbcbc000000c0c0c0d4d4d4c6c6c6000000d2d2d2d2d2d20000000a0a0aaeaeae
+bebebe000000cacacabebebec1c1c1000000bbbbbbcacacabfbfbf0b0b0bc4c4c4c0c0c0
+c4c4c45b5b5b6d6d6df0f0f0ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2b6b6b6020202020202000000050505bebebed5d5d5c0c0c0
+b5b5b5c8c8c8000000bfbfbfcbcbcbc3c3c3b5b5b50d0d0dc5c5c5cfcfcf000000cdcdcd
+b4b4b4030303e1e1e1c0c0c0c3c3c3c6c6c6bdbdbd0e0e0eaaaaaac2c2c2c6c6c6cecece
+111111020202bbbbbbbbbbbb151515d2d2d2b4b4b4cfcfcfb3b3b3161616bfbfbfafafaf
+cdcdcd7979795c5c5cffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2c8c8c8000000bfbfbfb7b7b7b4b4b4000000bdbdbdbebebe
+bfbfbfbcbcbc060606000000000000010101181818000000b8b8b8bcbcbc000000cbcbcb
+c3c3c3000000a4a4a4c4c4c4bababac1c1c1d5d5d5020202c5c5c5b9b9b90e0e0e000000
+bbbbbb040404bebebecfcfcf000000bfbfbfc9c9c9abababcacaca000000c0c0c0cccccc
+b6b6b6767676646464f9f9f9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2bdbdbd060606cbcbcbcbcbcbc9c9c9b8b8b8090909b5b5b5
+d3d3d3bfbfbf000000bbbbbbbcbcbcc4c4c4b8b8b8b7b7b7bdbdbdcacaca000000bebebe
+c7c7c7070707bababad1d1d1c2c2c2c9c9c9b9b9b9000000c1c1c1000000b8b8b8c2c2c2
+c5c5c5000000c5c5c5b3b3b3121212bdbdbdc4c4c4cacacacccccc000000c0c0c0bebebe
+c7c7c76060606d6d6dfefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2c6c6c6000000bfbfbfbebebeb3b3b3b0b0b00c0c0ccbcbcb
+b2b2b2cfcfcf090909060606c0c0c0c2c2c2c8c8c80c0c0cbdbdbdc4c4c4101010c5c5c5
+bfbfbfb9b9b9000000c1c1c1c2c2c2c5c5c5000000d6d6d6c8c8c8040404cdcdcdc8c8c8
+000000202020bfbfbfcdcdcd000000040404b7b7b7bbbbbb000000030303c5c5c5c0c0c0
+bcbcbc7a7a7a676767f2f2f2ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2040404181818000000c8c8c8cacacac5c5c5cccccc000000
+0b0b0bbcbcbcacacac080808060606000000000000c6c6c6c6c6c6050505000000000000
+b3b3b3cececec6c6c6000000000000000000c7c7c7abababcacacacdcdcd000000060606
+c7c7c7000000000000b7b7b7cacaca0c0c0c0101010b0b0bc7c7c70000000c0c0cbbbbbb
+b7b7b76f6f6f5b5b5bffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffffffffefefee6e6e6
+e2e2e2c2c2c2bebebec2c2c2bdbdbdbbbbbbc2c2c2cbcbcbbebebeb7b7b7b6b6b6d2d2d2
+babababdbdbdc7c7c7c3c3c3bbbbbbc3c3c3c8c8c8c1c1c1c6c6c6b9b9b9c3c3c3cacaca
+c5c5c5babababcbcbcc1c1c1c1c1c1bdbdbdc4c4c4d1d1d1aeaeaec5c5c5c9c9c9c3c3c3
+bbbbbbd3d3d3babababcbcbccbcbcbb1b1b1c8c8c8b3b3b3c2c2c2b9b9b9b5b5b5cacaca
+bababa757575696969edededffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffff6f6f6fcfcfcffffffd3d3d3
+ecececb6b6b6c4c4c4c0c0c0bebebebebebebebebebebebebebebebebebebebebebebebe
+bebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebe
+bebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebe
+bebebebebebebebebebebebebebebebebebebebebebebebeb7b7b7cacacab8b8b8c8c8c8
+bebebe5f5f5f6e6e6ef8f8f8ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffafafae9e9e9d6d6d6
+e7e7e7d4d4d4c4c4c4bdbdbdc2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2
+c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c0c0c0c8c8c8b7b7b7c1c1c1
+bcbcbc6464646b6b6bffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffff4f4f4fefefefffffff4f4f4
+e4e4e4bfbfbfb4b4b4bdbdbdbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc
+bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc
+bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc
+bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcc0c0c0c2c2c2c1c1c1c8c8c8
+c7c7c7707070616161fefefeffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffff3f3f3f8f8f8d7d7d7
+e3e3e3b6b6b6c8c8c8ccccccc4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4
+c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c2c2c2bdbdbdc2c2c2bdbdbd
+bbbbbb737373606060ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffefefef8f8f8ffffffeeeeee
+cfcfcf7e7e7e6b6b6b5b5b5b686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+686868686868686868686868686868686868686868686868686868686868686868686868
+6868686868686868686868686868686868686868686868687474746a6a6a6f6f6f686868
+7474745b5b5b6b6b6bffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffcfcfcfffffff2f2f2d1d1d1
+7c7c7c5959595959597070706a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a
+6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6262625e5e5e656565636363
+6e6e6e6c6c6c838383e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffffffffbfbfbf4f4f4ffffff
+efefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+f9f9f9eeeeeeefefefffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdfffffffcfcfcf3f3f3fffffffcfcfc
+f8f8f8f4f4f4fffffff1f1f1fefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe
+fefefefefefefefefefefefefefefefefefefefefefefefef7f7f7fbfbfbf9f9f9ffffff
+fefefeffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000030303000000040404000000fefefefdfdfdffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/name.gif b/lib/orber/doc/src/name.gif
new file mode 100644
index 0000000000..d2df460092
--- /dev/null
+++ b/lib/orber/doc/src/name.gif
Binary files differ
diff --git a/lib/orber/doc/src/name.ps b/lib/orber/doc/src/name.ps
new file mode 100644
index 0000000000..f2004b1d79
--- /dev/null
+++ b/lib/orber/doc/src/name.ps
@@ -0,0 +1,1112 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /clearcase/otp/libraries/orber/doc/src/name.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 125 130 486 661
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 46 string def
+
+% define space for color conversions
+/grays 361 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+125 130 translate
+
+% size of image (on paper, in 1/72inch coords)
+361.00800 531.00000 scale
+
+% dimensions of data
+361 531 1
+
+% mapping matrix
+[361 0 0 -531 0 531]
+
+{currentfile pix readhexstring pop}
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ff878787878787878787878787878787878787878787878787878787878787878fffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffe1c1ffffe7fffff03fffff3ffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffcf7ffffe7ffffe73fffff3ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffff977ffffffffffefbffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffa770f4c77461fe3f84033b870fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffbbe64215414c3f5f7377ab32e7ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffb16f76666e5f7f964a7372fc97ffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffbc7866e6664e7fe27e7f727cffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffbd76666ee6c0fffb7f79f67affffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffbe677666767ffef23a78f2b077ffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffbe68276666427e73067cf30e0fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffe8f62404881083e87ad3de5af5fffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffcfbfffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffd0ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffe4ffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffffffffeaabfffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffebffebffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffbffffeffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffffffeffffff5fffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffeffffffffbffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffbffffffffeffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffffeffffffffffbfffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffffbffffffffffefffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffeffffffffffffbffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffdffffffffffffdffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffbffffffffffffeffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffff7fffffffffffff7fffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffdffffffffffffffdfffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffdffffffffffffffdfffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffdffffffffffffffdfffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffdffffffffffffffdfffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffdffffffffffffffdfffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffffdffffffffffffffdfffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffff7fffffffffffff7fffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffbffffffffffffeffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffdffffffffffffdffffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffeffffffffffffbffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffd555552aaaaaaaaaaaaaaaabfffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffd55555555555555555555557fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffebbbbbabbbbbbbbbbbbbbbbbfffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffdffffffffffffffffffffff7fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffefefefebefefefefefefefebfffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffdffffffffffffffffffffff7fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffebbbbbbb3bbbbbbbbbbbbbbbfffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffdff9ffffffdffffefa7ffff7fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffeeecfeaed6cefeeafe6efeebfffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffdffdffbffddfffefff7ffff7fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffebb83911bb5bba83133123bbfffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffdffdd6adffcaab5d7b6e97f7fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffefedc0a9efcfe84dab6ea7ebfffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffdffdd7a5ffdffbdddb6eb7f7fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffebb992a9bb9bbb191b2ab3bbfffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffdffc3980ffdffcc3103113f7fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffeefefefefefefedefefefefbfffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffdfffffffffffffdffffffff7fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffebbbbbbbbbbbbb8bbbbbbbbbfffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffdffffffffffffffffffffff7fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffeaaaaaaaaaaaaaaaaaaaaaabfffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffeaaa95555555555555545557fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffff9ffffffffffffffc7ffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffff3ffffffffffffffe3ffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffe3fffffffffffffff3ffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffe7fffffffffffffff9ffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffffcffffffffffffffff8ffffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffff8ffffffffffffffffc7fffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffff9ffffffffffffffffe3fffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffff3fffffffffffffffff1fffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffe3fffffffffffffffff8fffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffe7fffffffffffffffffcfffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffcffffffffffffffffffe7ffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffff8ffffffffffffffffffe3ffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffff9fffffffffffffffffff1ffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffff3fffffffffffffffffff8ffffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffe3fffffffffffffffffffc7fffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffe7fffffffffffffffffffe3fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffcfffffffffffffffffffff3fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffff8fffffffffffffffffffff9fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffff9fffffffffffffffffffff8fffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffff3fffffffffffffffffffffc7ffffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffe3fffffffffffffffffffffe3ffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffe7ffffffffffffffffffffff1ffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffcfffffffffffffffffffffff8ffffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffff8fffffffffffffffffffffffcffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffff9fffffffffffffffffffffffe7fffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffff3fffffffffffffffffffffffe3fffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffe3ffffffffffffffffffffffff1fffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffe7ffffffffffffffffffffffff8fffffffffffffffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffcfffffffffffffffffffffffffc7ffffffffffffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffc007fcfffffffffffffffffffffffffe3ffc007ffffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffffc3ff87fffffffffffffffffffffffffff3fc3ff87fffffffffffefffffff
+ffffffffffffffffff80
+ffffffffffff3ffff9fffffffffffffffffffffffffff9f3ffff9fffffffffffffffffff
+ffffffffffffffffff80
+fffffffffff8fffffe3ffffffffffffffffffffffffff88fffffe3ffffffffffffffffff
+ffffffffffffffffff80
+ffbffffffff7ffffffdffffffffffffffffffffffffffc7ffffffdffffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffcfffffffe7fffffffffffffffffffffffffcfffffffe7fffffffffffffffff
+ffffffffffffffffff80
+ffbfffffffbffffffffbfffffffffffffffffffffffffbffffffffbfffffffffefffffff
+ffffffffffffffffff80
+ffbfffffff7ffffffffdfffffffffffffffffffffffff7ffffffffdfffffffffefffffff
+ffffffffffffffffff80
+fffffffffefffffffffeffffffffffffffffffffffffefffffffffefffffffffefffffff
+ffffffffffffffffff80
+fffffffffdffffffffff7fffffffffffffffffffffffdffffffffff7ffffffffefffffff
+ffffffffffffffffff80
+fffffffffbffffffffffbfffffffffffffffffffffffbffffffffffbffffffffffffffff
+ffffffffffffffffff80
+fffffffff7ffffffffffdfffffffffffffffffffffff7ffffffffffdffffffffffffffff
+ffffffffffffffffff80
+ffbfffffefffffffffffeffffffffffffffffffffffefffffffffffeffffffffffffffff
+ffffffffffffffffff80
+ffbfffffdffffffffffff7fffffffffffffffffffffdffffffffffff7fffffffffffffff
+ffffffffffffffffff80
+ffbfffffdffffffffffff7fffffffffffffffffffffdffffffffffff7fffffffefffffff
+ffffffffffffffffff80
+ffbfffffbffffffffffffbfffffffffffffffffffffbffffffffffffbfffffffefffffff
+ffffffffffffffffff80
+ffffffff7ffffffffffffdfffffffffffffffffffff7ffffffffffffdfffffffefffffff
+ffffffffffffffffff80
+ffffffff7ffffffffffffdfffffffffffffffffffff7ffffffffffffdfffffffefffffff
+ffffffffffffffffff80
+ffffffff7ffffffffffffdfffffffffffffffffffff7ffffffffffffdfffffffffffffff
+ffffffffffffffffff80
+fffffffefffffffffffffeffffffffffffffffffffefffffffffffffefffffffffffffff
+ffffffffffffffffff80
+ffbffffefffffffffffffeffffffffffffffffffffefffffffffffffefffffffffffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffffffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffefffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffefffffff
+ffffffffffffffffff80
+fffffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffefffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffefffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffffffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffffffffff
+ffffffffffffffffff80
+ffbffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffffffffff
+ffffffffffffffffff80
+ffbffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffffffffff
+ffffffffffffffffff80
+ffbffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffefffffff
+ffffffffffffffffff80
+ffbffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffefffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffefffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffefffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffffffffff
+ffffffffffffffffff80
+fffffffbffffffffffffffbfffffffffffffffffffbffffffffffffffbffffffffffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffffffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffffffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffefffffff
+ffffffffffffffffff80
+ffbffffdffffffffffffff7fffffffffffffffffffdffffffffffffff7ffffffefffffff
+ffffffffffffffffff80
+fffffffefffffffffffffeffffffffffffffffffffefffffffffffffefffffffefffffff
+ffffffffffffffffff80
+fffffffefffffffffffffeffffffffffffffffffffefffffffffffffefffffffefffffff
+ffffffffffffffffff80
+ffffffff7ffffffffffffdfffffffffffffffffffff7ffffffffffffdfffffffffffffff
+ffffffffffffffffff80
+ffffffff7ffffffffffffdfffffffffffffffffffff7ffffffffffffdfffffffffffffff
+ffffffffffffffffff80
+ffbfffff7ffffffffffffdfffffffffffffffffffff7ffffffffffffdfffffffffffffff
+ffffffffffffffffff80
+ffbfffffbffffffffffffbfffffffffffffffffffffbffffffffffffbfffffffffffffff
+ffffffffffffffffff80
+ffbfffffdffffffffffff7fffffffffffffffffffffdffffffffffff7fffffffefffffff
+ffffffffffffffffff80
+ffbfffffdffffffffffff7fffffffffffffffffffffdffffffffffff7fffffffefffffff
+ffffffffffffffffff80
+ffffffffefffffffffffeffffffffffffffffffffffefffffffffffeffffffffefffffff
+ffffffffffffffffff80
+fffffffff7ffffffffffdfffffffffffffffffffffff7ffffffffffdffffffffefffffff
+ffffffffffffffffff80
+fffffffffbffffffffffbfffffffffffffffffffffffbffffffffffbffffffffffffffff
+ffffffffffffffffff80
+fffffffffdffffffffff7fffffffffffffffffffffffdffffffffff7ffffffffffffffff
+ffffffffffffffffff80
+ffbffffffefffffffffeffffffffffffffffffffffffefffffffffefffffffffffffffff
+ffffffffffffffffff80
+ffbfffffff7ffffffffdfffffffffffffffffffffffff7ffffffffdfffffffffffffffff
+ffffffffffffffffff80
+ffbfeaaaaaaaaaaaaaaaaaaaaaabffffffffffd55555555555555555555557ffefffffff
+ffffffffffffffffff80
+ffbfd55555555555555555555557ffffffffffaaaaaaaaaaaaaaaaaaaaaaafffefffffff
+ffffffffffffffffff80
+ffffeffffffffffffffffffffffbffffffffffdffffffffffffffffffffff7ffefffffff
+ffffffffffffffffff80
+ffffdefefefefefefefefefefef7ffffffffffbefefefefefefefefefefeefffefffffff
+ffffffffffffffffff80
+ffffeffffffff3f3fffffffffffbffffffffffdffffffffffffffffffffff7ffffffffff
+ffffffffffffffffff80
+ffffdbbbbbbbbbbb3bbbbbbbbbb7ffffffffffbbbbbbbbbbbbbbbbbbbbbbafffffffffff
+ffffffffffffffffff80
+ffbfeffffffffbfb7ffffffffffbffffffffffdffffffffffffffffffffff7ffffffffff
+ffffffffffffffffff80
+ffbfdfefefefc38a23efefefefe7ffffffffffafefefefe9ecefefefefefefffffffffff
+ffffffffffffffffff80
+ffbfefffffffbb6b5bfffffffffbffffffffffdffffffffdfefffffffffff7ffefffffff
+ffffffffffffffffff80
+ffbfdbbbbbbbbb0b33bbbbbbbbb7ffffffffffbbbbbbbbb9babbbbbbbbbbafffefffffff
+ffffffffffffffffff80
+ffffefffffffbb7b4bfffffffffbffffffffffdfffffff8d0698fffffffff7ffefffffff
+ffffffffffffffffff80
+ffffdefefefeba6a5afefefefef7ffffffffffbefefefe6cba56fefefefeefffefffffff
+ffffffffffffffffff80
+ffffefffffffc19101fffffffffbffffffffffdfffffffcdbadcfffffffff7ffffffffff
+ffffffffffffffffff80
+ffffdbbbbbbbbbbbbbbbbbbbbbb7ffffffffffbbbbbbbb29ba92bbbbbbbbafffffffffff
+ffffffffffffffffff80
+ffbfeffffffffffffffffffffffbffffffffffdfffffff6dbad6fffffffff7ffffffffff
+ffffffffffffffffff80
+ffbfdeefeeefeeefeeefeeefeee7ffffffffffafeeefee0084406eefeeefefffffffffff
+ffffffffffffffffff80
+ffbfeffffffffffffffffffffffbffffffffffdfffffffffbffffffffffff7ffefffffff
+ffffffffffffffffff80
+ffbfdbbbbbbbbbbbbbbbbbbbbbb7ffffffffffbbbbbbbbbbbbbbbbbbbbbbafffefffffff
+ffffffffffffffffff80
+ffffeffffffffffffffffffffffbffffffffffdfffffffff1ffffffffffff7ffefffffff
+ffffffffffffffffff80
+ffffdefefefefefefefefefefef7ffffffffffbefefefefefefefefefefeefffefffffff
+ffffffffffffffffff80
+ffffeaaaaaaaaaaaaaaaaaaaaaabffffffffffd55555555555555555555557ffffffffff
+ffffffffffffffffff80
+ffffd55555555555555555555557ffffffffffaaaaaaaaaaaaaaaaaaaaaaafffffffffff
+ffffffffffffffffff80
+ffbffffffffffffff9ffffffffffffffffffffffffffffffffffffe7ffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffff8fffffffffffffffffffffffffffffffffffff3ffffffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffcfffffffffffffffffffffffffffffffffffff1ffffffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffc7ffffffffffffffffffffffffffffffffffff8ffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffe7ffffffffffffffffffffffffffffffffffffcffffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffe3ffffffffffffffffffffffffffffffffffffe7fffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffff3ffffffffffffffffffffffffffffffffffffe3fffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffff1fffffffffffffffffffffffffffffffffffff1fffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffff9fffffffffffffffffffffffffffffffffffff9fffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffff8fffffffffffffffffffffffffffffffffffffcfffffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffcfffffffffffffffffffffffffffffffffffffc7ffffffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffc7ffffffffffffffffffffffffffffffffffffe3ffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffe7fffffffffffffffffffffffffffffffffffff3ffffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffe3fffffffffffffffffffffffffffffffffffff9ffffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffff3fffffffffffffffffffffffffffffffffffff8ffffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffff1fffffffffffffffffffffffffffffffffffffc7fffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffff9fffffffffffffffffffffffffffffffffffffe7fffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffff8ffffffffffffffffffffffffffffffffffffff3fffffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffcffffffffffffffffffffffffffffffffffffff1fffffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffc7fffffffffffffffffffffffffffffffffffff8fffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffcfffffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffe3fffffffffffffffffffffffffffffffffffffe7ffffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffff3fffffffffffffffffffffffffffffffffffffe3ffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffff1ffffffffffffffffffffffffffffffffffffff3ffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffff9ffffffffffffffffffffffffffffffffffffff9ffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffff8ffffffffffffffffffffffffffffffffffffff8ffffffffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffcffffffffffffffffffffffffffffffffffffffc7fffefffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffc7fffffffffffffffffffffffffffffffffffffe7fffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffff3fffefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffe3ffffffffffffffffffffffffffffffffffffff1fffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffff3ffffffffffffffffffffffffffffffffffffff8fffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffff1ffffffffffffffffffffffffffffffffffffffcfffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffff9ffffffffffffffffffffffffffffffffffffffe7ffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffff8ffffffffffffffffffffffffffffffffffffffe3ffffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffcffe003fffffffffffffffffffffffffffffffff1ffefffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffc7e1ffc3ffffffffffffffffffffffffffffffff9ffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffffe79ffffcffffffffffffffffffffffffffffffffcffefffffff
+ffffffffffffffffff80
+fffffffffffffffffffffe07fffff1fffffffffffffffffffffffffffffffc7fefffffff
+ffffffffffffffffff80
+ffffffffffffffffffffff3ffffffefffffffffffffffffffffffffffffffe3fffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffe7fffffff3fffffffffffffffffffffffffffffff3fffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffdffffffffdfffffffffffffffffffffffffffffff9fffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffffbffffffffefffffffffffffffffffffffffffffff8fffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffff7fffffffff7ffffffffffffffffffffffffffffffc7efffffff
+ffffffffffffffffff80
+ffbfffffffffffffffffeffffffffffbffffffffffffffffffffffffffffffe7efffffff
+ffffffffffffffffff80
+ffffffffffffffffffffdffffffffffdfffffffffffffffffffffffffffffff3efffffff
+ffffffffffffffffff80
+ffffffffffffffffffffbffffffffffefffffffffffffffffffffffffffffff1efffffff
+ffffffffffffffffff80
+ffffffffffffffffffff7fffffffffff7ffffffffffffffffffffffffffffff9ffffffff
+ffffffffffffffffff80
+fffffffffffffffffffeffffffffffffbffffffffffffffffffffffffffffffcffffffff
+ffffffffffffffffff80
+ffbffffffffffffffffeffffffffffffbffffffffffffffffffffffffffffffc7fffffff
+ffffffffffffffffff80
+ffbffffffffffffffffdffffffffffffdffffffffffffffffffffffffffffffe3fffffff
+ffffffffffffffffff80
+ffbffffffffffffffffbffffffffffffefffffffffffffffffffffffffffffff2fffffff
+ffffffffffffffffff80
+ffbffffffffffffffffbffffffffffffefffffffffffffffffffffffffffffff8fffffff
+ffffffffffffffffff80
+fffffffffffffffffffbffffffffffffefffffffffffffffffffffffffffffff8fffffff
+ffffffffffffffffff80
+fffffffffffffffffff7fffffffffffff7ffffffffffffffffffffffffffffffc7ffffff
+ffffffffffffffffff80
+fffffffffffffffffff7fffffffffffff7ffffffffffffffffffffffffffffffe7ffffff
+ffffffffffffffffff80
+ffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffff3ffffff
+ffffffffffffffffff80
+ffbfffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffff1ffffff
+ffffffffffffffffff80
+ffbfffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffff8ffffff
+ffffffffffffffffff80
+ffbfffffffffffffffeffffffffffffffbffffffffffffffffffffffffffffffecffffff
+ffffffffffffffffff80
+ffbfffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffee7fffff
+ffffffffffffffffff80
+ffffffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffee3fffff
+ffffffffffffffffff80
+ffffffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffef1fffff
+ffffffffffffffffff80
+ffffffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffff9fffff
+ffffffffffffffffff80
+ffffffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffffcfffff
+ffffffffffffffffff80
+ffbfffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffffc7ffff
+ffffffffffffffffff80
+ffbfffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffffe3ffff
+ffffffffffffffffff80
+ffbfffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffeff3ffff
+ffffffffffffffffff80
+ffbfffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffeff9ffff
+ffffffffffffffffff80
+ffffffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffeff8ffff
+ffffffffffffffffff80
+ffffffffffffffffffdffffffffffffffdffffffffffffffffffffffffffffffeffcffff
+ffffffffffffffffff80
+ffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffffffe7fff
+ffffffffffffffffff80
+ffffffffffffffffffeffffffffffffffbfffffffffffffffffffffffffffffffffe3fff
+ffffffffffffffffff80
+ffbfffffffffffffffeffffffffffffffbffffffffffffffffffffffffffffffffff1fff
+ffffffffffffffffff80
+ffbfffffffffffffffeffffffffffffffbffffffffffffffffffffffffffffffffff9fff
+ffffffffffffffffff80
+ffbffffffffffffffff7fffffffffffff7ffffffffffffffffffffffffffffffefffcfff
+ffffffffffffffffff80
+ffbffffffffffffffff7fffffffffffff7ffffffffffffffffffffffffffffffefffc7ff
+ffffffffffffffffff80
+fffffffffffffffffffbffffffffffffefffffffffffffffffffffffffffffffefffe3ff
+ffffffffffffffffff80
+fffffffffffffffffffbffffffffffffefffffffffffffffffffffffffffffffeffff3ff
+ffffffffffffffffff80
+fffffffffffffffffffbffffffffffffeffffffffffffffffffffffffffffffffffff9ff
+ffffffffffffffffff80
+fffffffffffffffffffdffffffffffffdffffffffffffffffffffffffffffffffffff8ff
+ffffffffffffffffff80
+ffbffffffffffffffffeffffffffffffbffffffffffffffffffffffffffffffffffffc7f
+ffffffffffffffffff80
+ffbffffffffffffffffeffffffffffffbffffffffffffffffffffffffffffffffffffe7f
+ffffffffffffffffff80
+ffbfffffffffffffffff7fffffffffff7fffffffffffffffffffffffffffffffefffff3f
+ffffffffffffffffff80
+ffbfffffffffffeaaaaaaaaaaaaaaaaaaaaaabffffffffffffffffffffffffffefffff1f
+ffffffffffffffffff80
+ffffffffffffffd55555555555555555555557ffffffffffffffffffffffffffefffff8f
+ffffffffffffffffff80
+ffffffffffffffeefefefefefefefefefefefbffffffffffffffffffffffffffefffffcf
+ffffffffffffffffff80
+ffffffffffffffdffffffffffffffffffffff7ffffffffffffffffffffffffffffffffe7
+ffffffffffffffffff80
+ffffffffffffffebbbbbbbbbbbbbbbbbbbbbbbffffffffffffffffffffffffffffffffe3
+ffffffffffffffffff80
+ffbfffffffffffdffffffffffffffffffffff7fffffffffffffffffffffffffffffffff1
+ffffffffffffffffff80
+ffbfffffffffffefeeefeeefeeefeeefeeefebfffffffffffffffffffffffffffffffff9
+ffffffffffffffffff80
+ffbfffffffffffdfffffffffffbffffffffff7ffffffffffffffffffffffffffeffffffc
+ffffffffffffffffff80
+ffbfffffffffffebbbbbbbbbbbbbbbbbbbbbbbffffffffffffffffffffffffffeffffffc
+7fffffffffffffffff80
+ffffffffffffffdfffffffffffbffffffffff7ffffffffffffffffffffffffffeffffffe
+7fffffffffffffffff80
+ffffffffffffffeec4929862febef0c492488bffffffffffffffffffffffffffefffffff
+3fffffffffffffffff80
+ffffffffffffffdfba4b66dbffbfedb64b2567ffffffffffffffffffffffffffffffffff
+1fffffffffffffffff80
+ffffffffffffffebba9b02b3bbbba9a29b298bffffffffffffffffffffffffffffffffff
+8fffffffffffffffff80
+ffbfffffffffffdfbadb79cbffbff396db6d27ffffffffffffffffffffffffffffffffff
+cfffffffffffffffff80
+ffbfffffffffffefaacb67cbefafefa6cb6d6bffffffffffffffffffffffffffffffffff
+e7ffffffffffffffff80
+ffbfffffffffffdfc4499841ffbff080482407ffffffffffffffffffffffffffefffffff
+e3ffffffffffffffff80
+ffbfffffffffffebbbbbb33bbbbbaabbbbbbbbffffffffffffffffffffffffffefffffff
+f1ffffffffffffffff80
+ffffffffffffffdffffff77fffffeefffffff7ffffffffffffffffffffffffffefffffff
+f9ffffffffffffffff80
+ffffffffffffffeefefef0fefefee0fefefefbffffffffffffffffffffffffffefffffff
+fcffffffffffffffff80
+ffffffffffffffdffffffffffffffffffffff7ffffffffffffffffffffffffffffffffff
+fc7fffffffffffffff80
+ffffffffffffffeaaaaaaaaaaaaaaaaaaaaaabffffffffffffffffffffffffffffffffff
+fe3fffffffffffffff80
+ffbfffffffffffd55555555555555555555557ffffffffffffffffffffffffffffffffff
+ff3fffffffffffffff80
+ffbfffffffffffffffffc7ffffffffffffe01fffffffffffffffffffffffffffffffffff
+ff9fffffffffffffff80
+ffbfffffffffffffffffcffffffffffffffe01ffffffffffffffffffffffffffefffffff
+ff8fffffffffffffff80
+ffbfffffffffffffffff9fffffffffffffffe01fffffffffffffffffffffffffefffffff
+ffc7ffffffffffffff80
+ffffffffffffffffffff1ffffffffffffffffe03ffffffffffffffffffffffffefffffff
+ffe7ffffffffffffff80
+fffffffffffffffffffe3fffffffffffffffffc03fffffffffffffffffffffffefffffff
+fff3ffffffffffffff80
+fffffffffffffffffffe7ffffffffffffffffffc03ffffffffffffffffffffffffffffff
+fff1ffc007ffffffff80
+fffffffffffffffffffcffffffffffffffffffffc03fffffffffffffffffffffffffffff
+fff8fc3ff87fffffff80
+ffbffffffffffffffff8fffffffffffffffffffffc07ffffffffffffffffffffffffffff
+fffcf3ffff9fffffff80
+ffbffffffffffffffff1ffffffffffffffffffffff807fffffffffffffffffffffffffff
+fffe0fffffe3ffffff80
+ff9e1e1e1e1e1e1e1e121e1e1e1e1e1e1e1e1e1e1e18061e1e1e1e1e1e1e1e1e1fffffff
+fffe7ffffffdffffff80
+ffffffffffffffffffe7ffffffffffffffffffffffff807fffffffffffffffffffffffff
+fffcfffffffe7fffff80
+ffffffffffffffffffc7fffffffffffffffffffffffff80fffffffffffffffffffffffff
+fffbffffffffbfffff80
+ffffffffffffffffff8fffffffffffffffffffffffffff00ffffffffffffffffffffffff
+fff7ffffffffdfffff80
+ffffffffffffffffff9ffffffffffffffffffffffffffff00fffffffffffffffffffffff
+ffefffffffffefffff80
+ffffffffffffffffff3fffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffdffffffffff7ffff80
+fffffffffffffffffe3ffffffffffffffffffffffffffffff01fffffffffffffffffffff
+ffbffffffffffbffff80
+fffffffffffffffffc7ffffffffffffffffffffffffffffffe01ffffffffffffffffffff
+ff7ffffffffffdffff80
+fffffffffffffffffcffffffffffffffffffffffffffffffffe01fffffffffffffffffff
+fefffffffffffeffff80
+fffffffffffffffff9fffffffffffffffffffffffffffffffffe01ffffffffffffffffff
+fdffffffffffff7fff80
+fffffffffffffc0079ffffffffffffffffffffffffffffffffffe03fffffffffffffffff
+fdffffffffffff7fff80
+ffffffffffffc3ff87fffffffffffffffffffffffffffffffffffc03ffffffffffffffff
+fbffffffffffffbfff80
+ffffffffffff3ffff9ffffffffffffffffffffffffffffffffffffc03fffffffffffffff
+f7ffffffffffffdfff80
+fffffffffff8fffffe3ffffffffffffffffffffffffffffffffffffc03ffffffffffffff
+f7ffffffffffffdfff80
+fffffffffff7ffffffdfffffffffffffffffffffffffffffffffffffc07fffffffffffff
+f7ffffffffffffdfff80
+ffffffffffcfffffffe7fffffffffffffffffffffffffffffffffffff807ffffffffffff
+efffffffffffffefff80
+ffffffffffbffffffffbffffffffffffffffffffffffffffffffffffff807fffffffffff
+efffffffffffffefff80
+ffffffffff7ffffffffdfffffffffffffffffffffffffffffffffffffff807ffffffffff
+dffffffffffffff7ff80
+fffffffffefffffffffeffffffffffffffffffffffffffffffffffffffff80ffffffffff
+dffffffffffffff7ff80
+fffffffffdffffffffff7ffffffffffffffffffffffffffffffffffffffff00fffffffff
+dffffffffffffff7ff80
+fffffffffbffffffffffbfffffffffffffffffffffffffffffffffffffffff00ffffffff
+dffffffffffffff7ff80
+fffffffff7ffffffffffdffffffffffffffffffffffffffffffffffffffffff00fffffff
+bffffffffffffffbff80
+ffffffffefffffffffffefffffffffffffffffffffffffffffffffffffffffff01ffffff
+bffffffffffffffbff80
+ffffffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffe01fffff
+bffffffffffffffbff80
+ffffffffdffffffffffff7fffffffffffffffffffffffffffffffffffffffffffe01ffff
+bffffffffffffffbff80
+ffffffffbffffffffffffbffffffffffffffffffffffffffffffffffffffffffffe01fff
+bffffffffffffffbff80
+ffffffff7ffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffe03ff
+bffffffffffffffbff80
+ffffffff7ffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffc03f
+bffffffffffffffbff80
+ffffffff7ffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffc03
+bffffffffffffffbff80
+fffffffefffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffc0
+3ffffffffffffffbff80
+fffffffefffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffc
+3ffffffffffffffbff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+bffffffffffffffbff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+dffffffffffffff7ff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+dffffffffffffff7ff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+dffffffffffffff7ff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+dffffffffffffff7ff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+efffffffffffffefff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+efffffffffffffefff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+f7ffffffffffffdfff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+f7ffffffffffffdfff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+f7ffffffffffffdfff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+fbffffffffffffbfff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+fdffffffffffff7fff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+fdffffffffffff7fff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+fefffffffffffeffff80
+fffffffbffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffff
+ff7ffffffffffdffff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+ffbffffffffffbffff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+ffdffffffffff7ffff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+ffefffffffffefffff80
+fffffffdffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffff
+fff7ffffffffdfffff80
+fffffffefffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+fffbffffffffbfffff80
+fffffffefffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffff
+fffcfffffffe7fffff80
+ffffffff7ffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff7ffffffdffffff80
+ffffffff7ffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff8fffffe3ffffff80
+ffffffff7ffffffffffffdffffffffffffffffffffffffffffffffffffffffffffffffff
+fffff3ffff9fffffff80
+ffffffffbffffffffffffbffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffc3ff87fffffff80
+ffffffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffc007ffffffff80
+ffffffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffefffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffff7ffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffbffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffdffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffefffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffff7ffffffffdffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffbffffffffbffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffcfffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffff7ffffffdfffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffff8fffffe3fffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffff3ffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffc3ff87ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffffffc007fffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+fffffffffaffaffffffffffffffffffffffffffffffffffffffffff80fffffffffffffff
+ffffffffffffffffff80
+ffffffffeffffbffffffffffffffffffffffffffffffffffffffffc7f1ffffffffffffff
+ffffffffffffffffff80
+ffffffffbfffffffffffffffffffffffffffffffffffffffffffff3ffe7fffffffffffff
+ffffffffffffffffff80
+fffffffeffffff7ffffffffffffffffffffffffffffffffffffffeffffbfffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffffffffffffffffffffffffffffffffdffffdfffffffffffff
+ffffffffffffffffff80
+fffffffbffffffdffffffffffffffffffffffffffffffffffffffbffffefffffffffffff
+ffffffffffffffffff80
+fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7ffffffffffff
+ffffffffffffffffff80
+ffffffeffffffff7ffffffffffffffffffffffffffffffffffffeffffffbffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffbffffffffffff
+ffffffffffffffffff80
+ffffffdffffffffbffffffffffffffffffffffffffffffffffffdffffffdffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffdffffffdffffffffffff
+ffffffffffffffffff80
+ffffffbffffffffdffffffffffffffffffffffffffffffffffffdffffffdfff1cfdfffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffeffeeeffffdff
+ffffffffffffffffff80
+ffffff7ffffffffeffffffffffffffffffffffffffffffffffffbffffffeffdf6ffffdff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffeffdf6199c0ff
+ffffffffffffffffff80
+fffffeffffffffff7fffffffffffffffffffffffffffffffffffbffffffeffdf6ed6b5ff
+ffffffffffffffffff80
+ffffffffffffffffffce3fffdfffe0ffffffffffffffffffffffbffffffeffdf6ed0bdff
+ffffffffffffffffff80
+fffffeffffffffff7fe77fffffffdefffbffefffffffffffffffbffffffeffdf6ed7bdff
+ffffffffffffffffff80
+ffffffffffffffffffe77fffffffbefffbffefffffffffffffffbffffffeffeeeed6b5ff
+ffffffffffffffffff80
+fffffeffffffffff7feb71249261bfc4919307ffffffffffffffdffffffdfff1e1d9ccff
+ffffffffffffffffff80
+ffffffffffffffffffe96d92d95bbfba5b6b6fffffffffffffffdffffffdffffffdfffff
+ffffffffffffffffff80
+fffffeffffffffff7fed79b6db5bbfbadb0cefffffffffffffffdffffffdffffffdfffff
+ffffffffffffffffff80
+ffffffffffffffffffee65b6db67bfbadb7cefffffffffffffffeffffffbffffff3fffff
+ffffffffffffffffff80
+fffffeffffffffff7fee6db6db5fdebadb6b6fffffffffffffffeffffffbffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffc760120121e1c4499327fffffffffffffff7fffff7ffffffffffff
+ffffffffffffffffff80
+ffffff7ffffffffeffffffffffddfffffffffffffffffffffffffbffffefffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffddfffffffffffffffffffffffffdffffdfffffffffffff
+ffffffffffffffffff80
+ffffff7ffffffffeffffffffffc3fffffffffffffffffffffffffeffffbfffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff3ffe7fffffffffffff
+ffffffffffffffffff80
+ffffeaaaaaaaaaaaabffffffffffffffffffffffffffffffffffffc7f1ffffffffffffff
+ffffffffffffffffff80
+ffffd5555555555557fffffffffffffffffffffffffffffffffffff80fffffffffffffff
+ffffffffffffffffff80
+ffffebbbbbbbbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffeefefefefefefbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffebbbbbbbbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffefefefefefefebffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffebbbbbbbbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffeefefefefefefbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffdffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffebbbbbbbbbbbbbffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffd5555555555557ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffeaaaaaaaaaaaabffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffe1e1e1ffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffeffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffeffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffce3ffffc0effcdffffffffffffffffffffffeffffeff9c7fffbfff
+f0ffffbfffffffffff80
+ffffffffffffffffffe77ffffef7ffefffffffffffffffffffffffeffffeffceffffffff
+eeffffffffffffffff80
+ffffffffffffffffffe77ffffef7ffefffffffffffffffffffffffffffffffceffffffff
+eeffffffffffffffff80
+ffffff000000001fffeb7124e6f49309261ffffffffffffffffffffffffffff6e24924c3
+f7e50d38cfffffffff80
+ffffff000000001fffe96d92da0ecaed95bfffffffffffffffffffffffffffdadb25b2b7
+fbdaedb6b7ffffffff80
+ffffffffffffffffffed79b6c2f6daedb5bfffffffffffffffffffffffffffdafb7dbeb7
+fccaebb787ffffffff80
+ffffffffffffffffffee65b6def6daedb67fffffffffffffffffffeffffeffddcb6fb6ef
+eedffbb7ffffffffff80
+ffffffffffffffffffee6db6daf6daedb5ffffffffffffffffffffeffffeffdcdb6db6bf
+efdaf7beb7ffffffff80
+ffffffffffffffffffc76012640c0900121fffffffffffffffffffeffffeff8ee4a42343
+f1e47759cfffffffff80
+fffffffffffffffffffffffffffffffffddfffffffffffffffffffeffffeffffffffffbb
+ffffffffffffffffff80
+fffffffffffffffffffffffffffffffffddffffffffffffffffffffffffffffffffffffb
+ffffffffffffffffff80
+fffffffffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffff97
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffe1e1e1ffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff80
+
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/naming_graph.ps b/lib/orber/doc/src/naming_graph.ps
new file mode 100644
index 0000000000..c5d650eba1
--- /dev/null
+++ b/lib/orber/doc/src/naming_graph.ps
@@ -0,0 +1,372 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Adobe Photoshop Version 3.0.5
+%%Title: Name.eps
+%%CreationDate: 97-12-01 09.36
+%%BoundingBox: 0 0 349 220
+%%HiResBoundingBox: 0 0 349 220
+%%SuppressDotGainCompensation
+%%DocumentProcessColors: Black
+%%EndComments
+%%BeginProlog
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%ImageData: 349 220 1 1 0 44 2 "beginimage"
+%BeginPhotoshop: 220
+%3842494D03E9000000000078000300000048004800000000030D021AFFE1FFE4
+%032B02370347057B03E0000200000048004800000000030D021A000100000064
+%000000010003030300FF0001270F000100010000000000000000000000006808
+%0019019000000000000000000000000000000001000000000000000000000000
+%000000003842494D03ED00000000001000480000000100020048000000010002
+%3842494D03F300000000000800000000000000003842494D271000000000000A
+%000100000000000000023842494D03FD000000000006000000000000
+%EndPhotoshop
+gsave
+40 dict begin
+/_image systemdict /image get def
+/_setgray systemdict /setgray get def
+/_currentgray systemdict /currentgray get def
+/_settransfer systemdict /settransfer get def
+/_currenttransfer systemdict /currenttransfer get def
+/blank 0 _currenttransfer exec
+1 _currenttransfer exec eq def
+/negative blank
+{0 _currenttransfer exec 0.5 lt}
+{0 _currenttransfer exec 1 _currenttransfer exec gt}
+ifelse def
+/inverted? negative def
+/level2 systemdict /languagelevel known
+{languagelevel 2 ge} {false} ifelse def
+gsave
+/rows 220 def
+/cols 349 def
+349 220 scale
+level2 {
+/DeviceGray
+setcolorspace} if
+/picstr1 44 string def
+/readdata {currentfile exch readhexstring pop} def
+/image2 level2 {/image load def} {{begin
+Width Height BitsPerComponent ImageMatrix
+/DataSource load image end} def} ifelse
+/beginimage {
+image2
+} def
+12 dict begin
+/ImageType 1 def
+/Width cols def
+/Height rows def
+/ImageMatrix [cols 0 0 rows neg 0 rows] def
+/BitsPerComponent 1 def
+/Decode [0 1] def
+/DataSource {picstr1 readdata} def
+currentdict end
+%%BeginBinary: 19674
+beginimage
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEDFEFBF3FFFFFF7FFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFDFDFFFDFFBFFFFFFFFFFFFFFFBFFEDFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFDFD94C833BE9CD265397F18D313245FFFFFFF
+FFFFFFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBDB6DADBF6B
+6DB6D6FED76DADAEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFBFBDB6DB1BF6C6DB6D6FEF76DA1DEEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBDB6DADBF6B6DB6D9FEF76DAFDE
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBDB
+6DADBF6B6DB6D7FED76DADAEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFD8106121E24890048FF38C4D3275FFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFF77F
+FFFFFFFFDFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFF8FFFFFFFFFFBFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE23FFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFE1FC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFC7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
+FFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF87FFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFF1FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFC3FFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFF
+C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF1FFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFF
+FFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFA
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFE1FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FF
+FFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFF
+FFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFE3FFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
+FFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFBFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFF
+FFFFFFC1034A6548C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E381FFFFFFFF
+FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFEB9DBADBB76DB7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFB5D6BFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF55DB9DBB7
+6DB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5D9BFFFFFFFFFFFFFFF8FFFFFFFF
+FFFFFFFFFFFFFFF55DBAE7B76DB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5DEB
+FFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFADDBB5FB76DB7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFB5D6BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
+E3122318F28FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2231DFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDDFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFF1FFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE23FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1FC3FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF1FFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFB
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFF8FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87F
+FFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFFE7FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7FFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFBFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFE1FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFE7FFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE3FFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF3FFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFFFFFFFF
+FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFEFFFFFFFFFFFFFCFFFFFFFF
+FFFFFFFF8FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFF
+FF7FFFFFFFFFFFFDFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFF0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF3FFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFF
+FFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFEFFFFFFFFFFFFB
+FFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFFFFF
+F9FFFFFFFFF3FFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFE3F
+FFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFE1FFF
+FFFFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFE7FFF
+FFFFFFFCFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFBFFFFFFFFFFBFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFF
+FFFFFFFF87FFFFFFFFFFFFFFFFFFFFFE7FFFFFFFFFFFCFFFFFFFFFFBFFFFFFFF
+F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFDFFFFFFFF
+FFFFF7FFFFFFFFFFFFFFFFFFC7FFFFFFFFFFF6DB6DB6DB7FFFFFFFFFFF1FFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFE7FFFFFFFFFFFFFCFFFFFFFFFE
+FFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFDF
+FFFFFFFFFFFFFF7FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7FFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFBFFFFFF9FFFFFFFFFFFFFFFFFFFFFFE7FFFE7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCFFFFCFFFFFFFFFFFFFFFFFFFFFFDFFFEFFFFFFFFFFFFFFFFFFF7FFF
+F7FFFFFFFF7FFFFFFFFFFFFFFFFFFFFFEFFFFEFFFFFFFFEF89D08319E3FFC71C
+447FFA4E3192919C7FFC732277186939A63FFFFFFA4E3192919C7FFF8E644EE3
+0D2734C766EDDAD6DBFFDAEB6B7FFDB5AEDB6D6B7FFB6D75B6EDB6D6DB7FFFFF
+FDB5AEDB6D6B7FFF6DAEB6DDB6DADB6B90EEBAF0E7FFDAECECFFFD866EDB6F0C
+FFFB61AC36EDB6D0DB7FFFFFFD866EDB6F0CFFFF6C3586DDB6DA1B6FE7EEBAF7
+FBFFDAEF6F7FFDBFAEDB6F7F7FFB6FADF6EDB6D7DB7FFFFFFDBFAEDB6F7F7FFF
+6DF5BEDDB6DAFB6E66EF7AD6DBFFDAEB6B7FFDB5AEDB6D6B7FFB6DDDB6EDB6D6
+DB7FFFFFFDB5AEDB6D6B7FFF6DBBB6DDB6DADB6B19C77139C7FF9118F0FFF8CC
+71E43398FFFC33DE631C648989BFFFFFF8CC71E43398FFFF867BCC638C913136
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFFFFFFFFFFF9FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E1FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFE
+3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFCFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7FFC3FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFDBFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFBFFFFFDBFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFEDFFFFFC7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFFFFFEDFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEFFFFFFF87FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEF
+FFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF8FFFFFEF7FFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77FFFFFFFFF87FFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7BFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFFFFFFFF
+FFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFF7EFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEFFFFFFFFFFFFFF0FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
+7FFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFBFFFFFFBF7FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFFFFF
+E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF8FFFFFFDFDFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFF
+FFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF7FFFFFFFFFFFFFFFFFFFC3F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFDF
+F7FFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFFBFFFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFBFFFFFFFFFFFFFF
+FFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFFDFFFFFFFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFDFFFFFFFFFFFFFFFFFFFFFFFFC7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFEFFFFFF
+FFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFFFFFFEFFF7FFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FF7FFFFFFFFFFFFFFFFFFFFF
+FFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFF7
+FFBFFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7FFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF87FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7FFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFBFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0FFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFBFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+FFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF8FFFFFFFDFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFDFFF8000000000000
+0000000000000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+FFFFFFFDFFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFDFFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFBFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF8FFFFFFFEFFFB8FFFFFFFFFF38FFFFFFBC73EFFFFC0FF9FFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFEFFFBDFFFBFFFFFFBDFFFFFFB
+BBBFFFF7EF7F7FFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FFFBDA71134E33F9DCD273FB7D8CCE23EF663FFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFBFFFFFFFEFFFBDDADADB5ADFADB6DADFB7DB6B5B7EF5B7FFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFEFFFBDDB3B1B5E1FB
+5C6DA1FB7DB685F7E0C37FFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFF7FFBDDBDADB5EFFB9B6DAFFB7DB6BDF7EDDF7FFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFF7FFBDDADADB5ADFBDB6DADFBBBB6B5B7
+EEDB7FFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFB8883
+D21273F1DC8913FBC7CECE7BC66637FFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFF7FFBFFFFFFFFFFFFFFFFFFFBFFFEFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFF7FFBFFFFFFFFFFFFFFFFFFFB
+FFFDFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFBFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFBFF8000000000000
+0000000000000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFBFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFBFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFBFFBFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFDFFB9C7FFFFEFFFFFFFFFFFB
+FFFFE6FFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF
+DFFBDEFFFFFCFFFFFFFFFFFBFFFFDCFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFDFFBCECE939EFFFFFFFFFFFBF2938EE7FFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFDFFBD6B76D6EFFFF
+FFFFFFFBCF6DDEF9FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFFBDAC76D0EFFFFFFFFFFFB3F61DEFE7FFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFEFFBDCB76D7EFFFFFFFFFFFBCF6FDEF9
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFBDEB7
+6D6EFFFFFFFFFFFBF36DDEE7FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFFB8ECA489C7FFFFFFFFFFBFE338C7FFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFFFFFFFFEFFBFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7FBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFDFFFFFFFFF7FBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFFF7F8000000000000
+0000000000000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
+FFFFFFFFF7FBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FBFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFBFFFFFFFFFBFB9C7FFFFC7FFFFFFFFFFBFFFFE47FFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFBFBDEFFFFFBBFFFFFFFFFFB
+FFFFDBBFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FBFBCECE939FBFFFFFFFFFFBF2938FA7FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBFBD6B76D6F7FFFFFFFFFFBCF6DDF79FFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFDFBDAC76D0EFFFF
+FFFFFFFB3F61DEFE7FFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFDFBDCB76D7DFFFFFFFFFFFBCF6FDDF9FFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBDEB76D6BBFFFFFFFFFFBF36DDBA7
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB8ECA
+48987FFFFFFFFFFBFE33887FFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFFFFFFFFFDFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FEFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF8FFFFFFFFFEFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFEF8000000000000
+0000000000000000000000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFFFF7BFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF9FFFFFFFFFF7BFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FF7BFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF9FFFFFFFFFF7BFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFBBFFFFFFFFFFFF
+FFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFBBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBFFFFFFFFBFFFFFFFFFFBFFFFFFFB
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFBBFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFDBFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF
+FFDBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF8FFFFFFFFFFDBFFFFFFFFBFFFFFFFFFFBFFFFFFFBFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBFFFFFFFFFFFF
+FFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFDBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBFFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFEBFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFEBFFFFFFFFBFFFFFFFFFFBFFFFFFFBFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFF3FFFFFFFFFFFF
+FFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
+FFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFF3FFFF
+FFFFBFFFFFFFFFFBFFFFFFFBFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFB
+FFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFF
+BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFBFFFFFFFFFFFF
+FFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFF9FFFFFFFFFFFFFFFFFFFBFFFFFFFF
+FFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFF
+FFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFF80000000000000000000000000000000000003FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+%%EndBinary
+grestore end
+grestore
diff --git a/lib/orber/doc/src/notes.gif b/lib/orber/doc/src/notes.gif
new file mode 100644
index 0000000000..e000cca26a
--- /dev/null
+++ b/lib/orber/doc/src/notes.gif
Binary files differ
diff --git a/lib/orber/doc/src/notes.xml b/lib/orber/doc/src/notes.xml
new file mode 100644
index 0000000000..08bbf4b29c
--- /dev/null
+++ b/lib/orber/doc/src/notes.xml
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Release Notes</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>99-02-12</date>
+ <rev>A</rev>
+ <file>notes.xml</file>
+ </header>
+
+ <section>
+ <title>Orber 3.6.14</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>
+ The documentation is now built with open source tools (xsltproc and fop)
+ that exists on most platforms. One visible change is that the frames are removed.</p>
+ <p>
+ Own Id: OTP-8201 Aux Id:</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.13</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Obsolete guards, e.g. record vs is_record, has been changed
+ to avoid compiler warnings.</p>
+ <p>Own id: OTP-7987</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.12</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Only the source instance of InitialReference.java is now
+ included. Users are adviced to use the Interoperable
+ Naming Service (INS) instead. INS is a part of the OMG
+ standard specification.</p>
+ <p>*** POTENTIAL INCOMPATIBILITY ***</p>
+ <p>Own id: OTP-7906 Aux Id: seq11243</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.11</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Updated file headers.</p>
+ <p>Own id: OTP-7837</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.10</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Documentation source included in open source releases.</p>
+ <p>Own id: OTP-7595</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.9</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Updated file headers.</p>
+ <p>Own id: OTP-7011</p>
+ </item>
+ <item>
+ <p>Now compliant with the new behavior of stdlib.</p>
+ <p>Own id: OTP-7030 Aux Id: seq10827</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.8</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>When a local port range has been defined (i.e. iiop_out_ports),
+ Orber set the socket option reuseaddr to true and after one
+ timed out connection attempt no other port in the given range
+ is used for that particular connect attempt.</p>
+ <p>Own Id: OTP-6844 Aux Id: </p>
+ </item>
+ <item>
+ <p>Possible to override global SSL parameters when using
+ local interfaces.</p>
+ <p>Own Id: OTP-6869 Aux Id: seq10742</p>
+ </item>
+ </list>
+ </section>
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The parameter ssl_client_ciphers was used on the server side as well
+ instead of ssl_server_ciphers.</p>
+ <p>Own Id: OTP-6868 Aux Id:</p>
+ </item>
+ <item>
+ <p>The configuration parameter iiop_max_in_requests was ignored, until
+ the first incoming request arrived, if iiop_packet_size was set.</p>
+ <p>Own Id: OTP-6912 Aux Id:</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.7</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>The documentation source has been converted from SGML to XML.</p>
+ <p>Own Id: OTP-6754 Aux Id: </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.6</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to configure incoming connections which
+ overrides some global configuration parameters. See
+ orber:add_listen_interface/2/3.</p>
+ <p>Own Id: OTP-6696 Aux Id: </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.5</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Removed some unused code.</p>
+ <p>Own Id: OTP-6527 Aux Id: </p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.4</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber can now be configured so that different NAT parameters
+ can be specified for different interfaces.</p>
+ <p>Own Id: OTP-6165 Aux Id: </p>
+ </item>
+ <item>
+ <p>It is now possible to set the keepalive option for incoming
+ and outgoing IIOP connections. For more information, see the
+ Configuration chapter in the User's Guide.</p>
+ <p>Own Id: OTP-6370 Aux Id: seq10532</p>
+ </item>
+ <item>
+ <p>The new function orber:close_connection/1/2 allows a client
+ to close connections to an object residing on a remote ORB.</p>
+ <p>Own Id: OTP-6371 Aux Id: seq10532</p>
+ </item>
+ <item>
+ <p>Orber now use the SSL two-phase accept strategy to avoid
+ that new incoming connections via SSL are not blocked
+ by a previous connect attempt that never initiated the
+ SSL handshake. Note, the configuration parameter
+ iiop_ssl_accept_timeout should be set (default infinity).
+ For more information, see the Configuration chapter in the
+ User's Guide. If Orber is started in secure mode, the
+ installed SSL version must support ssl:ssl_accept/1/2 and
+ ssl:transport_accept/1/2.</p>
+ <p>Own Id: OTP-6372 Aux Id: seq10105</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The operation orber_ifr:contents/2 could only handle dk_All.</p>
+ <p>Own Id: OTP-6385 Aux Id:</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.3</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>When installing Orber it is now possible to set the priority
+ for Orber internal Mnesia tables. For more information, see the
+ Reference Manual regarding orber:install/2.</p>
+ <p>Own Id: OTP-5907 Aux Id: seq10156</p>
+ </item>
+ <item>
+ <p>The operation corba_object:is_a/2/3 now only connect to a remote
+ ORB if necessary (i.e. the target object inherits from objects
+ associated with the given IFR id).</p>
+ <p>Own Id: OTP-5908</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The operation corba_object:is_remote/1 always returned
+ true, which was introduced in orber-3.2.10.</p>
+ <p>Own Id: OTP-5909</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.2</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Native interceptors may now export new_in_connection and
+ new_out_connection operations with arity 5. If this is the
+ case, information about the local interface and port is
+ passed to the interceptor. Orber's built in interceptors
+ have been changed to include this information as well.</p>
+ <p>Own Id: OTP-5671</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>In some cases, e.g. incorrect GIOP headers or a CancelRequest
+ containing a non-existing RequestId, the incoming connection
+ would be terminated.</p>
+ <p>Own Id: OTP-5672 Aux Id: seq10037</p>
+ </item>
+ <item>
+ <p>If combining the 'Use Current Interface in IOR' and
+ 'Use IPv6' flags, exported IOR:s contained an incorrect
+ host address.</p>
+ <p>Own Id: OTP-5673</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Reduced overhead when using outgoing ACL with a local interface
+ defined.</p>
+ <p>Own Id: OTP-5659</p>
+ </item>
+ <item>
+ <p>Added guards to ensure that, when so required, a list
+ of IOP_ServiceContext's is passed instead of, for example,
+ just the context record.</p>
+ <p>Own Id: OTP-5660</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The documentation referred to two different context definitions,
+ the incorrect ServiceContext and the correct IOP_ServiceContext.
+ The hrl file PATH/include/corba.hrl also contained the incorrect
+ record definition. This has now been updated so that only
+ IOP_ServiceContext is used and referred to.</p>
+ <p>Own Id: OTP-5658</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.6</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to define a Access Control List (ACL),
+ which limits the host and ports Orber may connect to or
+ accept connections from.</p>
+ <p>Own Id: OTP-5567</p>
+ </item>
+ <item>
+ <p>It is now possible to add, and remove, listen interfaces.
+ For more information, consult the User's Guide and the
+ orber module Reference Manual.</p>
+ <p>Own Id: OTP-5568</p>
+ </item>
+ <item>
+ <p>It is now possible to activate and deactivate Audit/Trail
+ logging. One of the three built in interceptors will be used
+ depending on the requested verbosity.</p>
+ <p>Own Id: OTP-5569</p>
+ </item>
+ <item>
+ <p>It is now possible to configure Orber to add the interface,
+ to exported local IOR:s, a Request came via.</p>
+ <p>Own Id: OTP-5570</p>
+ </item>
+ <item>
+ <p>It is now possible to instruct Orber which local interface an outgoing Request
+ shall be sent via. To accomplish this the Orber generic context must be
+ added added to each invocation.</p>
+ <p>Own Id: OTP-5571</p>
+ </item>
+ <item>
+ <p>It is now possible to define a default local interface,
+ which Orber will use when connecting to another ORB.</p>
+ <p>Own Id: OTP-5583</p>
+ </item>
+ </list>
+ </section>
+ <!-- p>For information about older versions see
+ <url href="part_notes_history_frame.html">release notes history</url>.</p -->
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/notes_history.xml b/lib/orber/doc/src/notes_history.xml
new file mode 100644
index 0000000000..b493f0e379
--- /dev/null
+++ b/lib/orber/doc/src/notes_history.xml
@@ -0,0 +1,1523 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE chapter SYSTEM "chapter.dtd">
+
+<chapter>
+ <header>
+ <copyright>
+ <year>2004</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Release Notes History</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>99-02-12</date>
+ <rev>A</rev>
+ </header>
+
+ <section>
+ <title>Orber 3.5.4</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>In some cases, it was possible for a user to delete the
+ NameService root context.</p>
+ <p>Own Id: OTP-5202</p>
+ </item>
+ <item>
+ <p>Invoking two, or more, concurrent oe_register operations
+ it could corrupt the IFR. If this is the case, the
+ INTF_REPOS system exception is raised. The risk for this
+ to occur is rather slim.</p>
+ <p>Own Id: OTP-5526</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.5.3</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>To avoid malicious attacks, it is now possible to configure
+ Orber to only accept incoming requests up to a certain size.
+ To be able to use this option, it must be supported by inet
+ and SSL.</p>
+ <p>Own id: OTP-5129</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.5.2</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>If a client tried to connect to Orber and immediately
+ closed the connection, then the process accepting new
+ connections could end up with a message in the queue
+ that would never be removed.</p>
+ <p>Own id: OTP-5105</p>
+ </item>
+ <item>
+ <p>The INS corbaloc/corbaname URL:s did only accept DNS style host
+ names. Now it is also possible to use, none compressed, IPv6
+ addresses.</p>
+ <p>Own id: OTP-5108</p>
+ </item>
+ <item>
+ <p>When Orber was configured to use IPv6 for inter-ORB communication,
+ exported IOR:s did not contain a correct IPv6 address. This did not
+ cause any problems if Orber was configured to use DNS style hostname
+ instead.</p>
+ <p>Own id: OTP-5109</p>
+ </item>
+ <item>
+ <p>Orber used external operations not exported in R9B.</p>
+ <p>Own id: OTP-5111</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.5.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When using Light IFR it was not possible unregister data
+ (i.e., invoking 'MyModule':oe_unregister()).
+ Introduced in Orber-3.5.0.1.</p>
+ <p>Own id: OTP-5034</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.5.0.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>orber_ifr:contents/3 always returned an empty list when using
+ Light IFR. Little or no effect.</p>
+ <p>Own id: OTP-5018</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.5</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to configure Orber to use NAT (Network Address
+ Translation) friendly parameters. A new section in the User's Guide
+ describes how to handle communication via firewalls.</p>
+ <p>Own id: OTP-4698</p>
+ </item>
+ <item>
+ <p>A new module called <c>orber_diagnostics</c> have been added, which
+ is intended to aid a user during the test and development phase.
+ For more information, see the reference manual.</p>
+ <p>Own id: OTP-4699</p>
+ </item>
+ <item>
+ <p><c>IPv6</c> supported.</p>
+ <p>Own id: OTP-4937</p>
+ </item>
+ <item>
+ <p>Possible to configure Orber so that exported IOR:s contain
+ multiple IIOP components for different interfaces.</p>
+ <p>Own id: OTP-4938</p>
+ </item>
+ <item>
+ <p>Improved typechecking of typecode supplied to the operations
+ <c>orber_tc:check_tc/1</c>, <c>any:create/2</c> and
+ <c>any:set_typecode/2</c>.</p>
+ <p>Own id: OTP-4939</p>
+ </item>
+ <item>
+ <p>Server objects can now be started as EXIT tolerant.</p>
+ <p>Own id: OTP-4940</p>
+ </item>
+ <item>
+ <p>Possible to use interceptors for local invocations as well.</p>
+ <p>Own id: OTP-4941</p>
+ </item>
+ <item>
+ <p>If the IFR is not explicitly used, Orber can be configured
+ to use a minimal IFR to reduce memory usage and installation
+ time.</p>
+ <p>Own id: OTP-5001</p>
+ </item>
+ <item>
+ <p>To avoid malicious attacks it is now possible to configure
+ Orber to limit the number of concurrent connections and
+ requests and the amount of IIOP fragments.</p>
+ <p>Own id: OTP-5002</p>
+ </item>
+ <item>
+ <p>The operation <c>orber:iiop_connections/0</c> now also include
+ incoming connections.</p>
+ <p>Own id: OTP-5004</p>
+ </item>
+ <item>
+ <p>The function <c>orber:add_node/2</c> now accepts more options.</p>
+ <p>Own id: OTP-5006</p>
+ </item>
+ <item>
+ <p>The module <c>orber_diagnostics</c> now exports a function
+ which list missing modules generated by IC and required by
+ Orber.</p>
+ <p>Own id: OTP-5007</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber's NameService did not return a NIL object reference if the total
+ number of existing bindings was less than, or equal to,
+ the <c>HowMany</c> parameter passed to
+ <c>'CosNaming_NamingContext':list/2</c> operation. This have now been
+ changed to be compliant with the OMG standard. Furthermore, the operation
+ <c>'CosNaming_BindingIterator':next_n/2</c> did not handle the index
+ correctly in all situations.</p>
+ <p>Own id: OTP-4700</p>
+ </item>
+ <item>
+ <p>If the Orber internal gen_server orber_iiop_pm was stopped
+ in such a way that the terminate function was not invoked,
+ then ghost processes would appear.</p>
+ <p>Own id: OTP-5003</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>The work-around introduced in version 3.4.1 (OTP-4608) has
+ now been removed. Make sure you are using IC-4.2 or later.</p>
+ </item>
+ <item>
+ <p>Since the OMG has defined a default port number (2809),
+ Orber no longer support the bootstrap port.</p>
+ <p>Own id: OTP-5005</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.4.2.2</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Due to IFR DB lock mechanisms, concurrent creation
+ of non-anonymous IFR types could still result in duplicated
+ entries.</p>
+ <p>Own id: OTP-4781</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.4.2.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The operation <c>orber:start()</c> could return before
+ all Mnesia tables were accessible.</p>
+ <p>Own id: OTP-4780</p>
+ </item>
+ <item>
+ <p>Concurrent creation of non-anonymous IFR types
+ could result in duplicates in the DB.</p>
+ <p>Own id: OTP-4781</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.4.2</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Improved type tests for string, wide string and sequence when
+ passed via IIOP.</p>
+ <p>Own id: OTP-4759</p>
+ </item>
+ <item>
+ <p>Less (internal) processes are needed when Orber act as client-side ORB
+ and communicate with another ORB. Due to this change, closed connections
+ and socket errors are dealt with in a more gentle way. If the latter
+ occurs, the error_logger application is used to generate an error
+ report containing a description of what went wrong.</p>
+ <p>Own id: OTP-4655</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When communicating with another ORB, via SSL, and a socket error occurred,
+ Orber did not recognize the error message. This occurred when Orber
+ acted as client-side ORB.</p>
+ <p>Own id: OTP-4656</p>
+ </item>
+ <item>
+ <p>If an out-going connection was closed and the receiving process had not
+ been scheduled yet, the close connection message was delivered before
+ the correct message.</p>
+ <p>Own id: OTP-4657</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>Since strstream is deprecated and not accepted by gcc-3.3,
+ Orber no longer includes the InitalReference lib. The source
+ code is still included.</p>
+ <p>Own id: OTP-4767</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.4.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to use IC-versions older than 4.2. But, this is
+ only temporary so it is still necessary upgrade to a correct
+ version.</p>
+ <p>Own id: OTP-4608</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.4</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>If a call-back module illegally caused an EXIT, clients
+ residing on another ORB was not notified (hanged).</p>
+ <p>Own id: OTP-4577</p>
+ </item>
+ <item>
+ <p>The stub/skeleton-files generated by IC have been improved,
+ i.e., depending on the IDL-files, reduced the size of the
+ erl- and beam-files and decreased dependencies off Orber's
+ Interface Repository. It is necessary to re-compile all IDL-files
+ and use COS-applications, including Orber, compiled with
+ IC-4.2.</p>
+ <p>Own id: OTP-4576</p>
+ </item>
+ <item>
+ <p>It is now possible to configure Orber to use the host name
+ in exported IOR:s instead of the IP-number.</p>
+ <p>Own id: OTP-4541</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When Orber acted as server-side ORB and one tried to setup a
+ SSL-connection and using native Interceptors at the same time
+ it failed.</p>
+ <p>Own Id: OTP-4542</p>
+ </item>
+ <item>
+ <p>Oneway operations, using a multi-node Orber, failed for inter-node
+ communication.</p>
+ <p>Own Id: OTP-4543</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.3</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber now supports fragmented IIOP messages for 1.2.</p>
+ <p>Own Id: OTP-4462</p>
+ </item>
+ <item>
+ <p>Orber now has its own set of unique VMCID:s which
+ is used for minor codes in system exceptions. All system exceptions raised
+ by Orber now uses this VMCID base or OMG:s VMCID base. See also the function
+ <c>orber:exception_info/1</c>.</p>
+ <p>Own Id: OTP-4463</p>
+ </item>
+ <item>
+ <p>Since some ORB:s, non-compliant with the OMG specification,
+ have problems using IOR:s which embeds a CodeSet component, it is now
+ possible to configure Orber to exclude it from exported IOR:s.</p>
+ <p>Own Id: OTP-4469</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When combining interceptors and oneway operations, Orber
+ incorrectly sent a MessageError over the connection to the
+ client ORB.</p>
+ <p>Own Id: OTP-4460</p>
+ </item>
+ <item>
+ <p>After (2^32)-1 requests, Orber used the request number 0 twice
+ in a row.</p>
+ <p>Own Id: OTP-4461</p>
+ </item>
+ <item>
+ <p>The COMM_FAILURE exception should only be raised when connection
+ problems occur. Now Orber raises the correct exceptions. Note, when
+ Orber act as client side ORB you must be able to handle any of the system
+ exceptions defined by the OMG. Some of the COMM_FAILURE exceptions
+ have been replaced with the correct TRANSIENT and TIMEOUT exceptions.</p>
+ <p>Own Id: OTP-4465</p>
+ </item>
+ <item>
+ <p>The default port used for corbaloc and corbaname was
+ incorrect. Now changed to follow the OMG standard (2809).</p>
+ <p>Own Id: OTP-4466</p>
+ </item>
+ <item>
+ <p>When Orber acted as a client-side ORB, it failed to encode
+ unions with a default case (i.e. defined in the IDL-code and a
+ default label used).</p>
+ <p>Own Id: OTP-4472</p>
+ </item>
+ <item>
+ <p>The operation corba:print_object/1/2 did not include host/port
+ data for IIOP-1.0 IOR:s.</p>
+ <p>Own Id: OTP-4483</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>Some of the COMM_FAILURE exceptions have been replaced with the correct
+ TRANSIENT and TIMEOUT exceptions. All minor codes used by Orber
+ is now based on the OMG assigned VMCIDs.</p>
+ <p>Own Id: OTP-4465, OTP-4463</p>
+ </item>
+ <item>
+ <p>The default port used for corbaloc and corbaname have been changed
+ to 2809.</p>
+ <p>Own Id: OTP-4466</p>
+ </item>
+ <item>
+ <p>To reduce extra overhead Orber now uses a flag parameter,
+ which makes it possible to configure Orber's behavior in different ways.
+ Hence, the global activation of Local Typechecking, introduced in the previous
+ version, have now been changed.</p>
+ <p>Own Id: OTP-4467</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.13</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to activate automatic typechecking when
+ invoking operations on CORBA Objects locally. For more
+ information, see the configuration and debugging chapters
+ in the User's Guide regarding the <c>local_typecheck</c>
+ option.</p>
+ <p>Own Id: OTP-4410</p>
+ </item>
+ <item>
+ <p>Due to the success of the pre-compiled IIOP-trace interceptor, a less
+ verbose trace interceptor, called <c>orber_iiop_tracer_silent</c>,
+ have been added as well.</p>
+ <p>Own Id: OTP-4257</p>
+ </item>
+ <item>
+ <p>Orber now support the Fixed datatype defined by the OMG. To be able
+ to define Fixed types in an IDL-specification, check that your current
+ IC version supports this type as well. If not, the only option is
+ to encapsulate it in an <c>any</c> type.</p>
+ <p>Own id: OTP-4375</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>It was not possible to use the function <c>corba:print_object/2</c>,
+ which was introduced in the previous release, only
+ <c>corba:print_object/1</c>. Now it is also possible to use
+ the <c>error_logger</c> or receive the data in string form.</p>
+ <p>Own Id: OTP-4376</p>
+ </item>
+ <item>
+ <p>The functions <c>orber_tc:principal</c> and <c>orber_tc:exception</c>
+ returned incorrect.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>The function <c>orber_ifr:get_primitive</c> tried to access a
+ non-existing (primitivdefs) table.</p>
+ <p>Own Id: -</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.12</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber now check if an external IOR contains any
+ TAG_ALTERNATE_IIOP_ADDRESS components when trying to setup
+ a connection to another ORB.</p>
+ <p>Own id: OTP-4294</p>
+ </item>
+ <item>
+ <p>It is now possible to add TAG_ALTERNATE_IIOP_ADDRESS components
+ to a local object reference. See corba:add_alternate_iiop_address/3.</p>
+ <p>Own id: OTP-4294</p>
+ </item>
+ <item>
+ <p>Orber now allows unions with no default value defined and a
+ discriminator out of range to be sent via IIOP. The value-field
+ is set to the atom undefined.</p>
+ <p>Own id: OTP-4295</p>
+ </item>
+ <item>
+ <p>The corba module now exports a function, print_object/1/2, which
+ prints IOR's in a more readable form.</p>
+ <p>Own id: OTP-4296</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Since "all" ORB's accept ISO-8859-1 encoding of chars and strings,
+ Orber assumed that it could be used at all time to reduce the overhead.
+ The JDK-1.3 only accepts ISO 646:1991 IRV (US-ASCII), even though
+ ISO-8859-1 is default, which is why Orber now checks which codeset
+ is accepted.</p>
+ <p>Own Id: OTP-4298</p>
+ </item>
+ <item>
+ <p>When invoking a Locate Request, Orber in some cases did not reply
+ with a Locate Reply header (used a Reply header).</p>
+ <p>Own Id: OTP-4293</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.11</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>If the underlying OS was not configured to allow Erlang to use the
+ fully qualified host name the result could an incorrect IP-address.
+ Hence, if you want to upgrade to Orber-3.2.11 and the fully
+ qualified name must be used you must upgrade your kernel version.
+ Most likely, this change will NOT cause any problems, but if in doubt
+ please contact support or use the mailing-list.
+ See also the release notes for Orber-3.2.6.</p>
+ <p>Own id: OTP-3966</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When looking up Initial Service (e.g. using <c>corbaloc</c>,
+ <c>corbaname</c> or <c>corba:resolve_initial_references_remote/2</c>)
+ and communicating via SSL, Orber used the wrong port number.</p>
+ <p>Own Id: OTP-4264</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.10</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to add new initial references, which can,
+ for example, be accessed via <c>corba:resolve_initial_references/1</c>
+ or the <c>corbaloc</c> schema.</p>
+ <p>Own Id: OTP-4258</p>
+ </item>
+ <item>
+ <p>The orber module now exports functions, <c>iiop_connections</c>
+ and <c>iiop_connections_pending</c>, which, respectively, list
+ all currently open connections to other ORB's and connections
+ which are in process of being set up to another ORB.</p>
+ <p>Own Id: OTP-4262</p>
+ </item>
+ <item>
+ <p>Orber now allows the user to define an interval of ports
+ which Orber is may use (i.e. ports on the local machine)
+ when trying to connect to another ORB. This behavior is useful
+ if Orber resides behind a firewall which only allow applications
+ to use certain ports when communicating with the outside world.
+ If this option is set, it is absolutely necessary to
+ set <c>iiop_connection_timeout</c>. If not, there is risk that
+ Orber run out of ports, which will result in communication failure.
+ This option cannot be used when using SSL since it does not support
+ this feature. The default behavior is that any available port
+ will be used (as before).</p>
+ <p>Own Id: OTP-4260</p>
+ </item>
+ <item>
+ <p>One can now install Orber's NameService as disc_copies, but
+ the default behavior is that Orber uses ram_copies.</p>
+ <p>Own Id: OTP-4259</p>
+ </item>
+ <item>
+ <p>A pre-compiled IIOP-trace interceptor is now
+ included in the Orber release. For more information,
+ see the <c>Debugging</c> chapter in the User's Guide.</p>
+ <p>Own Id: OTP-4257</p>
+ </item>
+ <item>
+ <p>It is now possible to set Orber's configuration parameters
+ in, for example, an Erlang shell. Consult <c>corba:orb_init/1</c> and
+ <c>orber:configure/2</c>.</p>
+ <p>Own Id: OTP-4261</p>
+ </item>
+ <item>
+ <p>The Orber release now include <c>OrberWeb</c>, which is an extension of
+ the <c>WebTool</c> application (first released in R8B). Hence,
+ <c>WebTool</c> must be installed to enable this feature. For more
+ information, see the chapter <c>OrberWeb</c> in the User's Guide.
+ <c>OrberWeb</c> is intended to be used during test and development.</p>
+ <p>Own Id: OTP-4257</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When setting up two Orber ORB's, where one of the ORB's domain
+ name was a prefix of the other ORB's, communication via IIOP would fail.
+ To eliminate any further configuration problems, one may not
+ use <c>^G</c> (i.e. <c>"\\007"</c>) in the domain name. Due to this
+ change it is not possible to upgrade during run-time.</p>
+ <p>Own Id: OTP-4229</p>
+ </item>
+ <item>
+ <p>When using a mix of IIOP-versions (1.0 vs 1.1/1.2) and
+ sending/receiving IOR's to/from Orber could result in a
+ MARSHAL exception.</p>
+ <p>Own Id: OTP-4230</p>
+ </item>
+ <item>
+ <p>Encoding/decoding of wchar/wstring when using IIOP-1.2 do now
+ follow the OMG standard. If your ORB do not follow the
+ standard, contact support for information how to make a work-around
+ to solve this problem. In most cases it is sufficient to
+ configure the ORB's to communicate via IIOP-1.1.</p>
+ <p>Own Id: OTP-4263</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>The encoding/decoding of wchar/wstring when using IIOP-1.2
+ have been updated. See above.</p>
+ <p>Own Id: OTP-4263</p>
+ </item>
+ <item>
+ <p>Orber no longer returns a 'EXIT' message when trying
+ to install Orber, i.e., invoking orber:install/1/2,
+ on a disc-less node. But if if the installation fails due
+ to any other reason, Orber still return a 'EXIT' message.</p>
+ <p>Own Id: OTP-4256</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Known bugs and problems</title>
+ <list type="bulleted">
+ <item>
+ <p><c>OrberWeb</c> only tested with <c>Netscape-4.75</c>. Furthermore,
+ until <c>WebTool</c> reaches version 1.0 OrberWeb should also
+ be considered to be a beta version.</p>
+ <p>Own Id: OTP-4257</p>
+ </item>
+ <item>
+ <p><c>OrberWeb</c> do not escape arguments passed when, for example,
+ creating a new context. Hence, for now you are recommended to
+ only use letters.</p>
+ <p>Own Id: OTP-4257</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.9</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>External IOR:s containing unsupported or incorrectly placed
+ TaggedComponents was corrupted when Orber forwarded the
+ IOR via IIOP. This bug was introduced in 3.2.6.</p>
+ <p>Own Id: OTP-4170</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.8</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber now support interceptors.</p>
+ <p>Own Id: -</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.7</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>When Orber acted as server-side and communicating via IIOP the overhead
+ was unreasonably large and memory consuming (depended on the
+ IDL-specification). This have now been fixed and will, especially,
+ improve the performance when invoking operations with no, or simple,
+ arguments on a complex interface. This change will have little effect
+ on objects started as pseudo since this problem did not affect them.</p>
+ <p>Own Id: OTP-4063</p>
+ </item>
+ <item>
+ <p>When Orber tried to set up a connection to another ORB which did not
+ respond all IIOP access where blocked until the TCP protocol
+ generated a timeout. Now only requests to that particular ORB are
+ queued.</p>
+ <p>Own Id: OTP-4060</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>It was not possible to invoke the operation
+ CosNaming_BindingIterator:next_one via IIOP if no more bindings
+ existed.</p>
+ <p>Own id: OTP-4004</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.6</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Registering data in the IFR overhead reduced.</p>
+ <p>Own id: OTP-3904</p>
+ </item>
+ <item>
+ <p>The overhead for the function <c>is_a/1</c> have been reduced, which also
+ affects remote <c>narrow</c> operations for inherited interfaces
+ (e.g. using Java or C++ ORBs).</p>
+ <p>Own id: OTP-3904</p>
+ </item>
+ <item>
+ <p>If the underlying OS was not configured to allow Erlang to
+ lookup the host-name by using the short-name the result was
+ always the IP-address 127.0.0.1 (loop-back). Now Orber uses
+ the full name. Hence, make sure the <c>net_adm:localhost/0</c> and
+ <c>inet:getaddr/2</c> return proper values.</p>
+ <p>Own id: OTP-3966</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>The CONV_FRAME_CodeSetComponentInfo struct was not placed
+ correctly in IOR:s. Each profile must be self-sustained
+ which is why this information must be duplicated in each
+ profile. Currently this only applies for the IIOP-profile
+ but will also concern future protocols.</p>
+ <p>Own id: OTP-3992</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.5</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber now defines the configuration variable,
+ <c>iiop_setup_connection_timeout</c>, which makes it possible to
+ timeout connection attempts to another ORB before the OS TCP timeout
+ is activated.</p>
+ <p>Own id: OTP-3961</p>
+ </item>
+ <item>
+ <p>It is now possible to configure Orber to generate reports when abnormal
+ situations occurs. For more information consult the User's Guide
+ regarding the configuration parameter <c>orber_debug_level</c>.
+ Note, it is not recommended to use this option for delivered systems
+ since some of the reports is not to be considered as errors.</p>
+ <p>Own id: OTP-3962</p>
+ </item>
+ <item>
+ <p>Orber now accepts a list of addresses as value for the configuration
+ parameter <c>orbInitRef</c>.</p>
+ <p>Own id: OTP-3945</p>
+ </item>
+ <item>
+ <p>Orber now includes services defined by the configuration parameter
+ <c>orbInitRef</c> when invoking <c>corba:list_initial_services/0</c>.</p>
+ <p>Own id: OTP-3946</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When using the configuration variable 'orbDefaultInitRef' with
+ a value pointing to another Orber-ORB it was not possible to
+ install Orber since Orber used to create default <c>NamingContexts</c>.
+ Orber no longer add these contexts.</p>
+ <p>Own id: OTP-3943</p>
+ </item>
+ <item>
+ <p>Orber accessed <c>corbaloc</c> addresses in reverse order. Now fixed.</p>
+ <p>Own id: OTP-3944</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>When installing Orber no default <c>NamingContext's</c>, i.e.,
+ <c>host</c>, <c>hosts</c>, <c>resources</c>, <c>development</c>,
+ <c>factories</c> and <c>workgroup</c>, will be added. These contexts
+ was defined in a cancelled specification.</p>
+ <p>Own id: OTP-3942</p>
+ </item>
+ <item>
+ <p><c>corbaloc</c> addresses are now accessed in FIFO order (instead of
+ LIFO).</p>
+ <p>Own id: OTP-3944</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.4</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <p>-</p>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When communicating via IIOP using version 1.2 Orber used incorrect
+ offset for reply bodies containing system exceptions, exceptions and
+ location forward.</p>
+ <p>Own id: OTP-3912</p>
+ </item>
+ <item>
+ <p>Orber did not return correct IFR Id:s when raising system exceptions
+ via IIOP.</p>
+ <p>Own id: OTP-3911</p>
+ </item>
+ <item>
+ <p>If two different processes concurrently manipulated a
+ <c>CosNaming::NamingContext</c> the data could become corrupted.
+ For single-node Orber this error occurred in version 3.2.1, 3.2.2 and
+ 3.2.3. For multi-node Orber this behavior have been present at all time.</p>
+ <p>Own id: OTP-3910</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>Since Orber now returns a different, and correct, IFR-id for
+ systems exceptions other ORB:s and older versions of Orber
+ might raise a different exception, probably MARSHAL or UNKNOWN.
+ This only occurs when communicating via IIOP. It is not possible to
+ upgrade during runtime. Use <c>orber:stop()</c>, load new version and
+ restart Orber by invoking <c>orber:start()</c>.</p>
+ <p>Own id: OTP-3911</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.3</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Improved performance for all types, simple and complex, when
+ communicating via IIOP. It is not possible to upgrade during
+ runtime. Use <c>orber:stop()</c>, load new version and restart
+ Orber by invoking <c>orber:start()</c>.</p>
+ <p>Own id: OTP-3905</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>If a pseudo object raises an exception or exits the exception
+ was only returned, not thrown.</p>
+ <p>Own id: OTP-3907</p>
+ </item>
+ <item>
+ <p>Orber defined an incorrect ID for CodeSets. This may cause
+ INV_OBJREF or DATA_CONVERSION exceptions to be thrown, it
+ depends on the other ORB.</p>
+ <p>Own id: OTP-3899</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.2</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>The behavior of Orber when receiving unsupported or incorrect
+ messages have now been improved.</p>
+ <p>Own id: OTP-3903</p>
+ </item>
+ <item>
+ <p>Time consumed by <c>oe_MyModule:oe_register()</c> decreased.</p>
+ <p>Own id: OTP-3904</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When Orber received a 'location_forward' reply, the result
+ from the second invocation was never delivered to the
+ client. Now fixed.</p>
+ <p>Own id: OTP-3814</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to use external <c>NamingContexts</c>
+ when, for example, using
+ <c>'CosNaming_NamingContextExt':bind_context/3</c>.</p>
+ <p>Own id: OTP-3902</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.2</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber now supports IIOP-version 1.2.</p>
+ <p>Own id: OTP-3901</p>
+ </item>
+ <item>
+ <p>Improved encoding and decoding performance for IIOP requests containing
+ <c>struct</c>, <c>union</c> or user defined <c>exceptions</c>.</p>
+ <p>Own id: OTP-3900</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Setting the <c>bootstrap_port</c> configuration parameter to a value
+ less than 1024 made it impossible to start Orber properly.
+ Now fixed.</p>
+ <p>Own id: OTP-3898</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.8</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber now accepts <c>Indirection/Repeated</c><c>CORBA::TypeCode</c> as input and/or
+ return value when communicating via IIOP.</p>
+ <p>Own id: -</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When another ORB replied with <c>location forward</c> Orber
+ failed to decode this. Now fixed.</p>
+ <p>Own id: OTP-3709</p>
+ </item>
+ <item>
+ <p>Orber failed to encode <c>CORBA::TypeCode</c> containing <c>tk_alias</c>, e.g.,
+ sending an <c>#any{}</c> which encapsulates data defined by <c>typedef</c>.</p>
+ <p>Own id: OTP-3689</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.7</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Earlier, Orber did not use the IIOP/GIOP version specified
+ in an external object key when invoking an intra-ORB request.</p>
+ <p>Own id: OTP-3663</p>
+ </item>
+ <item>
+ <p>The OMG standard now support an Interoperable Naming Service.
+ Initially there where two proposals of which Orber earlier
+ supported one of them. Now both standards are supported.</p>
+ <p>Own id: OTP-3664</p>
+ </item>
+ <item>
+ <p>The OMG have redefined the operator, used when encoding requests via IIOP,
+ for the function <c>corba_object:non_existent/1</c>. CORBA version 2.0 and
+ 2.2 compliant ORB:s is supposed to support the old definition, while
+ later versions, i.e., 2.3, is supposed to use the new operator
+ (<c>_non_existent</c> instead of <c>_not_existent</c>). Orber accepts
+ both versions.</p>
+ <p>Own id: OTP-3679</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>If an Orber node crashed and was restarted the object keys could
+ point to other processes than it should, which may cause problems if,
+ for example, the other process terminates due to it does not handle
+ unknown messages. Now Orber GC object keys for objects residing on the
+ crashed node. If Orber is started as a multi-node ORB of which one or
+ more nodes runs an older Orber version they can still communicate but
+ with an increased overhead. Hence, all nodes should be upgraded during
+ a relatively short time. If Orber is stopped, i.e., orber:stop() or
+ a shutdown is generated, objects residing on that node will be terminated.</p>
+ <p>Own id: OTP-3678</p>
+ </item>
+ <item>
+ <p>If an IDL-file contains two interfaces of which the first one
+ contains an exception and the second interface, which inherits the first
+ one, contain an operation which raises this exception the IFR
+ failed since multiple references where found when invoking
+ orber_ifr:lookup_id/2. Now fixed.</p>
+ <p>Own id: OTP-3665</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>To be able to start Orber as lightweight the mnesia application
+ cannot be listed in the "orber.app" file. You might find it
+ necessary to add 'mnesia' to the applications-list.
+ For example, you cannot upgrade an older version
+ of Orber (not started as lightweight) to this version without
+ adding mnesia to the application dependencies list.</p>
+ <p>Own id: OTP-3666</p>
+ </item>
+ <item>
+ <p>The function <c>corba_object:non_existent/1</c> have been updated
+ to follow the CORBA 2.3 standard. Hence, Intra-ORB communication
+ with ORB:s not supporting this standard will fail. The operation
+ <c>corba_object:not_existent/1</c> allow users to use the old standard.
+ Consult the ORB vendor's documentation to decide which function to use.</p>
+ <p>Own id: OTP-3679</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.6</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Cosmetic update of internal functions.</p>
+ <p>Own id: -</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.5</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When decoding TypeCode for an object reference, e.g., as a part of
+ an #any{}, Orber failed. This is no longer the case. </p>
+ <p>Own id: OTP-3631</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.4</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>The function <c>start_lightweight/1</c> have been added to the
+ <c>orber</c> module. This function allow us to start orber as
+ lightweight without, or override, the configuration parameter
+ <c>-orber lightweight</c>.</p>
+ <p>Own id: -</p>
+ </item>
+ <item>
+ <p>A new configuration parameter, 'iiop_connection_timeout Secs', is now
+ available. This parameter's purpose, is to terminate the socket
+ connection on the client side if a time span of Secs seconds have passed.
+ The connection will, however, NOT be terminated if a client still waits
+ for a reply. For the last scenario to happen, the client have been
+ configured to use a larger timeout value than the configuration
+ parameter 'iiop_connection_timeout' have been set to.</p>
+ <p>Own id: -</p>
+ </item>
+ <item>
+ <p>Up until now, invoking an an operation with an extra Timeout parameter
+ (using the IC option: ic:gen(IdlFile, [{timeout,"module::interface"}])),
+ only applied to local Objects. Now, using the IC option above, when
+ compiling the stubs, and adding the extra Timeout parameter, a timeout
+ will also be triggered when calling Objects residing on other ORB:s.
+ The return value, after a timeout has been triggered, have changed from
+ an EXIT message to raising the system exception COMM_FAILURE. For more
+ information, about how this feature interacts with the configuration
+ parameter 'iiop_timeout', consult the documentation.</p>
+ <p>Own id: -</p>
+ </item>
+ <item>
+ <p>When using invalid intra-ORB configuration, i.e., incorrect
+ Port/IP-address, when trying to connect to another ORB,
+ a CRASH REPORT was generated if the configuration
+ parameter '-boot start_sasl' was used. This behavior has now changed.</p>
+ <p>Own id: -</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>If a client-side ORB terminated the IIOP connection immediately there
+ was a possibility that the server responsible detecting this did not.</p>
+ <p>Own id: OTP-3593</p>
+ </item>
+ <item>
+ <p>Setting the configuration parameter 'iiop_timeout' did not result in a
+ correct behavior, i.e., no timeout triggered.</p>
+ <p>Own id: OTP-3555</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>When using the IC option, ic:gen(IdlFile, [{timeout,"module::interface"}]),
+ an EXIT was the timeout result. Now, the system exception COMM_FAILURE is
+ raised.</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.3</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber did not ignore unrecognized TaggedProfiles. Other vendors may have
+ registered own TAG's with the OMG. These TAG's are valid but not
+ necessarily handled by other vendors.</p>
+ <p>Own id: OTP-3514</p>
+ </item>
+ <item>
+ <p>When passing Object references over IIOP, decoding local references could
+ fail. Now fixed.</p>
+ <p>Own id: OTP-3515</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.2</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Previously the OMG have published two suggestions for <c>Interoperable Name Service</c>,
+ of which, the <c>CORBA 3</c> specify <c>orbos/98-10-11</c> to be implemented.
+ Unfortunately, the Interoperable Name Service Orber supports, is the one not chosen.
+ Hence, the <c>InitialReferences.idl</c> will not be according to the future standard.
+ The modules name is now changed from <c>CORBA</c> to <c>Orber</c>. This will affect
+ code which are using this interface. The idl specification must be recompiled and
+ then <c>CORBA</c> must be changed to <c>Orber</c> in the client.</p>
+ <p>Own id: OTP-3468, OTP-3155</p>
+ </item>
+ <item>
+ <p>Now possible to run oe_unregister when the IDL-specification contains
+ exceptions correctly.</p>
+ <p>Own Id: OTP-3447</p>
+ </item>
+ <item>
+ <p>Now possible to run oe_unregister when the IDL-specification contains
+ attributes.</p>
+ <p>Own Id: OTP-3439</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <p>The change in <c>InitialReferences.idl</c> to clash with the Corba standard implies changes
+ in code that use this interface. See the OTP-3468 and OTP-3155 in the <c>Fixed Bugs and Malfunctions</c>
+ chapter above.</p>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1.1</title>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>When introducing the configuration parameter <c>ip_address</c>
+ it was no longer possible to have the same default behavior
+ as before. Now fixed.</p>
+ <p>Own Id: OTP-3431</p>
+ </item>
+ <item>
+ <p>The internal request number handling never checked if maximum reached.
+ Now the counter restart at 0 after reaching max.</p>
+ <p>Own Id: OTP-3415</p>
+ </item>
+ <item>
+ <p>Orber did not handle locate-requests correctly, i.e., not able to
+ recognize the new internal representation of object references.</p>
+ <p>Own Id: OTP-3414</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to start Orber as lightweight.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>It is now possible to create pseudo objects, i.e., not server objects.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>One new system exception introduced; 'BAD_QOS'.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>Orber now supports the types 'long long' and 'unsigned long long'</p>
+ <p>Own Id: -</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>Encoding typecode for complex exceptions (non-empty body) was not done
+ correctly.</p>
+ <p>Own Id: OTP-3390</p>
+ </item>
+ <item>
+ <p>orber_iiop_pm crashed when it received an 'EXIT'. Now fixed.</p>
+ <p>Own Id: OTP-3391</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.0.1</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>Orber is now able to handle upgrade properly.</p>
+ <p>Own Id: -</p>
+ </item>
+ </list>
+ </section>
+ </section>
+
+ <section>
+ <title>Orber 3.0</title>
+
+ <section>
+ <title>Improvements and New Features</title>
+ <list type="bulleted">
+ <item>
+ <p>It is now possible to use secure IIOP connections to and from Orber.
+ Orber currently only supports security with the help of SSL and not SECIOP.</p>
+ <p>Own Id: OTP-1510</p>
+ </item>
+ <item>
+ <p>It is now possible to start Orber objects as supervisor children using
+ Module_Interface:oe_create_link/2 or corba:create_link/4 as the start function.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>It is now possible to start a Orber object and be able to tell apart if it is in
+ the process of being restarted or has permanently terminated. This is also the reason
+ for introducing <c>objectkeys_gc_time</c> configuration parameter.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>The service CosEvent has been removed from orber and become its own application, called cosEvent.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>The service CosTransactions is now available as a separate application, called cosTransactions.</p>
+ <p>Own Id: OTP-1741</p>
+ </item>
+ <item>
+ <p>Three new system exceptions, 'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK'
+ and 'INVALID_TRANSACTION', introduced. Required by the cosTransactions application.</p>
+ <p>Own Id: -</p>
+ </item>
+ <item>
+ <p>An configuration variable ip_address has been added, so it's possible
+ to listen on a specific ip interface on a multi interface host.
+ The value is the ip address as a string or a tuple of four integers,
+ default value is all interfaces.</p>
+ <p>Own Id: OTP-3294</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Fixed Bugs and Malfunctions</title>
+ <list type="bulleted">
+ <item>
+ <p>set- and get-operations for the 'any'-module now behaves properly.</p>
+ <p>Own Id: OTP-3355</p>
+ </item>
+ <item>
+ <p>Orber can now handle IORs which contain more than one "Tagged Profile".</p>
+ <p>Own Id: OTP-3266</p>
+ </item>
+ </list>
+ </section>
+
+ <section>
+ <title>Incompatibilities</title>
+ <list type="bulleted">
+ <item>
+ <p>CosEvent include paths have changed since it is now a separate application, called cosEvent.</p>
+ </item>
+ <item>
+ <p>The internal representation of object references have changed. Orber do, however,
+ recognize the old representation. But object references (created by Orber 2.2.2 or older)
+ stored and used through several Orber upgrades may not be supported.</p>
+ </item>
+ <item>
+ <p>The functions oe_create/2 and oe_create_link/2 now take an
+ options list as its second argument. Orber still allow
+ oe_create*(Env, {Type,RegName}) to be used, but may not in future releases.</p>
+ </item>
+ </list>
+ </section>
+ </section>
+</chapter>
+
diff --git a/lib/orber/doc/src/orber.gif b/lib/orber/doc/src/orber.gif
new file mode 100644
index 0000000000..d78cf7d8ed
--- /dev/null
+++ b/lib/orber/doc/src/orber.gif
Binary files differ
diff --git a/lib/orber/doc/src/orber.xml b/lib/orber/doc/src/orber.xml
new file mode 100644
index 0000000000..da5fd05f98
--- /dev/null
+++ b/lib/orber/doc/src/orber.xml
@@ -0,0 +1,689 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>orber</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1997-06-10</date>
+ <rev>A</rev>
+ </header>
+ <module>orber</module>
+ <modulesummary>The main module of the Orber application</modulesummary>
+ <description>
+ <p>This module contains the functions for starting and stopping the
+ application. It also has some utility functions to get some of
+ the configuration information from running application.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>start() -> ok</name>
+ <name>start(Type) -> ok</name>
+ <fsummary>Start the Orber application</fsummary>
+ <type>
+ <v>Type = temporary | permanent</v>
+ </type>
+ <desc>
+ <p>Starts the Orber application (it also starts mnesia if it is not running).
+ Which <c>Type</c> parameter is supplied determines the behavior. If not
+ supplied Orber is started as <c>temporary</c>.
+ See the Reference Manual <em>application(3)</em> for further information. </p>
+ </desc>
+ </func>
+ <func>
+ <name>jump_start(Attributes) -> ok | {'EXIT', Reason}</name>
+ <fsummary>Start the Orber application during tests</fsummary>
+ <type>
+ <v>Attributes = Port | Options</v>
+ <v>Port = integer()</v>
+ <v>Options = [{Key, Value}]</v>
+ <v>Key = any key listed in the configuration chapter</v>
+ <v>Value = allowed value associated with the given key</v>
+ </type>
+ <desc>
+ <p>Installs and starts the Orber and the Mnesia applications with the configuration
+ parameters <c>domain</c> and <c>iiop_port</c> set to <c>"IP-number:Port"</c>
+ and the supplied Port respectively. Theses settings are in most cases
+ sufficient to ensure that no clash with any other Orber instance occur.
+ If this operation fails, check if the listen port (iiop_port) is already
+ in use. This function <em>MAY ONLY</em> be used during development and
+ tests; how Orber is configured when using this operation may change
+ at any time without warning.</p>
+ </desc>
+ </func>
+ <func>
+ <name>stop() -> ok</name>
+ <fsummary>Stop the Orber application</fsummary>
+ <desc>
+ <p>Stops the Orber application.</p>
+ </desc>
+ </func>
+ <func>
+ <name>info() -> ok</name>
+ <name>info(IoType) -> ok | {'EXIT', Reason} | string()</name>
+ <fsummary>Generate Info Report, which contain Orber's configuration settings</fsummary>
+ <type>
+ <v>IoType = info_msg | string | io | {io, IoDevice}</v>
+ </type>
+ <desc>
+ <p>Generates an Info Report, which contain Orber's configuration settings.
+ If no <c>IoType</c> is supplied, <c>info_msg</c> is used (see the
+ error_logger documentation). When the atom string is supplied this
+ function will return a flat list. For <c>io</c> and <c>{io, IoDevice}</c>,
+ <c>io:format/1</c> and <c>io:format/3</c> is used respectively.</p>
+ </desc>
+ </func>
+ <func>
+ <name>exception_info(Exception) -> {ok, string()} | {error, Reason}</name>
+ <fsummary>Return a printable string, which describes the supplied exception</fsummary>
+ <desc>
+ <p>Returns a printable string, which describes the supplied exception
+ in greater detail. Note, this function is mainly intended for
+ system exceptions.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_system_exception(Exception) -> true | false</name>
+ <fsummary>Return true if the supplied exception is a system defined exception otherwise false</fsummary>
+ <desc>
+ <p>Returns true if the supplied exception is a system defined
+ exception, otherwise false.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_tables() -> [Tables]</name>
+ <fsummary>Get the Mnesia tables Orber uses.</fsummary>
+ <desc>
+ <p>Returns a list of the Orber specific Mnesia tables. This list is
+ required to restore Mnesia if it has been partitioned.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_ORBInitRef() -> string() | undefined</name>
+ <fsummary>Get the initial reference address.</fsummary>
+ <desc>
+ <p>This function returns undefined if we will resolve references locally,
+ otherwise a string describing which host we will contact if the Key given
+ to <c>corba:resolve_initial_references/1</c> matches the Key set
+ in this configuration variable. For more information
+ see the user's guide.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_ORBDefaultInitRef() -> string() | undefined</name>
+ <fsummary>Get the initial reference address.</fsummary>
+ <desc>
+ <p>This function returns undefined if we will resolve references locally,
+ otherwise a string describing which host, or hosts, from which we
+ will try to resolve the Key given to
+ <c>corba:resolve_initial_references/1</c>. For more information
+ see the user's guide.</p>
+ </desc>
+ </func>
+ <func>
+ <name>domain() -> string()</name>
+ <fsummary>Display the Orber domain name</fsummary>
+ <desc>
+ <p>This function returns the domain name of the current Orber domain
+ as a string.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_port() -> int()</name>
+ <fsummary>Display the IIOP port number</fsummary>
+ <desc>
+ <p>This function returns the port-number, which is used by the IIOP
+ protocol. It can be configured by setting the application variable
+ <em>iiop_port</em>, if it is not set it will have the default number
+ 4001.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_out_ports() -> 0 | {Min, Max}</name>
+ <fsummary>Display the ports Orber may use when connecting to another ORB</fsummary>
+ <desc>
+ <p>The return value of this operation is what the configuration
+ parameter <seealso marker="ch_install#config">iiop_out_ports</seealso>
+ have been set to.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_ssl_port() -> int()</name>
+ <fsummary>Display the IIOP port number used for secure connections</fsummary>
+ <desc>
+ <p>This function returns the port-number, which is used by the secure IIOP
+ protocol. It can be configured by setting the application variable
+ <em>iiop_ssl_port</em>, if it is not set it will have the default number
+ 4002 if Orber is to configured to run in secure mode. Otherwise it returns -1.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_timeout() -> int() (milliseconds)</name>
+ <fsummary>Display the IIOP timeout value</fsummary>
+ <desc>
+ <p>This function returns the timeout value after which outgoing IIOP requests terminate.
+ It can be configured by setting the application variable
+ <em>iiop_timeout TimeVal (seconds)</em>, if it is not set it will have the default value
+ <em>infinity</em>. If a request times out a system exception, e.g.
+ <em>TIMEOUT</em>, is raised.</p>
+ <p>Note: the iiop_timeout configuration parameter (TimeVal) may only range between 0 and 1000000 seconds.
+ Otherwise, the default value is used.</p>
+ <p>Note: Earlier IC versions required that the compile option <c>{timeout,"module::interface"}</c>,
+ was used, which allow the user to add an extra timeout parameter, e.g.,
+ <c>module_interface:function(ObjRef, Timeout, ... Arguments ...)</c> or
+ <c>module_interface:function(ObjRef, [{timeout, Timeout}], ... Arguments ...)</c>,
+ instead of <c>module_interface:function(ObjRef, ... Arguments ...)</c>.
+ This is no longer the case and if the extra Timeout is used,
+ argument will override the configuration parameter <c>iiop_timeout</c>.
+ It is, however, not possible
+ to use <c>infinity</c> to override the Timeout parameter. The Timeout
+ option is also valid for objects which resides within the same Orber domain.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_connection_timeout() -> int() (milliseconds)</name>
+ <fsummary>Display the IIOP connection timeout value</fsummary>
+ <desc>
+ <p>This function returns the timeout value after which outgoing IIOP connections terminate.
+ It can be configured by setting the application variable
+ <em>iiop_connection_timeout TimeVal (seconds)</em>, if it is not set it will have the default value
+ <em>infinity</em>. The connection will not be terminated if there are
+ pending requests.</p>
+ <p>Note: the iiop_connection_timeout configuration parameter (TimeVal) may only range between 0 and 1000000 seconds.
+ Otherwise, the default value is used.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_connections() -> Result</name>
+ <name>iiop_connections(Direction) -> Result</name>
+ <fsummary>List all existing connections to/from other ORB's</fsummary>
+ <type>
+ <v>Direction = in | out | inout</v>
+ <v>Result = [{Host, Port}] | [{Host, Port, Interface}] | {'EXIT',Reason}</v>
+ <v>Host = string()</v>
+ <v>Port = integer()</v>
+ <v>Interface = string()</v>
+ <v>Reason = term()</v>
+ </type>
+ <desc>
+ <p>The list returned by this operation contain tuples of remote hosts/ports
+ Orber is currently connected to. If no Direction is not supplied, both
+ incoming and outgoing connections are included.</p>
+ <p>If a specific local interface has been defined for the connection,
+ this will be added to the returned tuple.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_connections_pending() -> Result</name>
+ <fsummary>List all connections to another ORB currently being set up</fsummary>
+ <type>
+ <v>Result = [{Host, Port}] | [{Host, Port, Interface}] | {'EXIT',Reason}</v>
+ <v>Host = string()</v>
+ <v>Port = integer()</v>
+ <v>Interface = string()</v>
+ <v>Reason = term()</v>
+ </type>
+ <desc>
+ <p>In some cases a connection attempt (i.e. trying to communicate with
+ another ORB) may block due to a number of reasons. This operation
+ allows the user to check if this is the case. The returned list
+ contain tuples of remote hosts/ports. Normally, the list is empty.</p>
+ <p>If a specific local interface has been defined for the connection,
+ this will be added to the returned tuple.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_in_connection_timeout() -> int() (milliseconds)</name>
+ <fsummary>Display the IIOP connection timeout value for incoming connections</fsummary>
+ <desc>
+ <p>This function returns the timeout value after which incoming IIOP
+ connections terminate. It can be configured by setting the application
+ variable <em>iiop_in_connection_timeout TimeVal (seconds)</em>, if it is
+ not set it will have the default value <em>infinity</em>. The connection
+ will not be terminated if there are pending requests.</p>
+ <p>Note: the iiop_in_connection_timeout configuration parameter (TimeVal) may
+ only range between 0 and 1000000 seconds. Otherwise, the default value is
+ used.</p>
+ </desc>
+ </func>
+ <func>
+ <name>iiop_acl() -> Result</name>
+ <fsummary>Return the ACL configuration</fsummary>
+ <type>
+ <v>Result = [{Direction, Filter}] | [{Direction, Filter, [Interface]}]</v>
+ <v>Direction = tcp_in | ssl_in | tcp_out | ssl_out</v>
+ <v>Filter = string()</v>
+ <v>Interface = string()</v>
+ </type>
+ <desc>
+ <p>Returns the ACL configuration. The <c>Filter</c> uses a extended format of
+ Classless Inter Domain Routing (CIDR). For example, <c>"123.123.123.10"</c> limits
+ the connection to that particular host, while <c>"123.123.123.10/17"</c> allows
+ connections to or from any host equal to the 17 most significant bits. Orber
+ also allow the user to specify a certain port or port range, for example,
+ <c>"123.123.123.10/17#4001"</c> and <c>"123.123.123.10/17#4001/5001"</c>
+ respectively. IPv4 or none compressed IPv6 strings are accepted. <br></br>
+
+ The list of <c>Interfaces</c>, IPv4 or IPv6 strings, are currently only used
+ for outgoing connections and may only contain <em>one</em> address. If set and
+ access is granted, Orber will use that local interface when connecting to the
+ other ORB. The module <seealso marker="orber_acl">orber_acl</seealso>
+ provides operations for evaluating the access control for filters and addresses.</p>
+ </desc>
+ </func>
+ <func>
+ <name>activate_audit_trail() -> Result</name>
+ <name>activate_audit_trail(Verbosity) -> Result</name>
+ <fsummary>Activate IIOP audit/trail</fsummary>
+ <type>
+ <v>Verbosity = stealth | normal | verbose</v>
+ <v>Result = ok | {error, Reason}</v>
+ <v>Reason = string()</v>
+ </type>
+ <desc>
+ <p>Activates audit/trail for all existing incoming and outgoing IIOP
+ connections. The <c>Verbosity</c> parameter, <c>stealth</c>,
+ <c>normal</c> or <c>verbose</c>, determines which of the built in
+ interceptors is used (<c>orber_iiop_tracer_stealth</c>,
+ <c>orber_iiop_tracer_silent</c> or <c>orber_iiop_tracer</c> respectively).
+ If no verbosity level is supplied, then the <c>normal</c> will be used.</p>
+ <p>In case Orber is configured to use other interceptors, the audit/trail
+ interceptors will simply be added to that list.</p>
+ </desc>
+ </func>
+ <func>
+ <name>deactivate_audit_trail() -> Result</name>
+ <fsummary>Deactivate IIOP audit/trail</fsummary>
+ <type>
+ <v>Result = ok | {error, Reason}</v>
+ <v>Reason = string()</v>
+ </type>
+ <desc>
+ <p>Deactivates audit/trail for all existing incoming and outgoing IIOP
+ connections. In case Orber is configured to use other interceptors,
+ those will still be used.</p>
+ </desc>
+ </func>
+ <func>
+ <name>add_listen_interface(IP, Type) -> Result</name>
+ <name>add_listen_interface(IP, Type, Port) -> Result</name>
+ <name>add_listen_interface(IP, Type, ConfigurationParameters) -> Result</name>
+ <fsummary>Add a new listen process for incoming connection</fsummary>
+ <type>
+ <v>IP = string</v>
+ <v>Type = normal | ssl</v>
+ <v>Port = integer() > 0</v>
+ <v>ConfigurationParameters = [{Key, Value}]</v>
+ <v>Key = flags | iiop_in_connection_timeout | iiop_max_fragments | iiop_max_in_requests | interceptors | iiop_port | iiop_ssl_port</v>
+ <v>Value = as described in the User's Guide</v>
+ <v>Result = {ok, Ref} | {error, Reason} | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ <v>Ref = #Ref</v>
+ <v>Reason = string()</v>
+ </type>
+ <desc>
+ <p>Create a new process that handle requests for creating a new incoming
+ IIOP connection via the given interface and port. If the latter is
+ excluded, Orber will use the value of the <c>iiop_port</c> or
+ <c>iiop_ssl_port</c> configuration parameters.
+ The <c>Type</c> parameter determines if it is
+ supposed to be IIOP or IIOP via SSL. If successful, the returned
+ <c>#Ref</c> shall be passed to <c>orber:remove_listen_interface/1</c>
+ when the connection shall be terminated.</p>
+ <p>It is also possible to supply configuration parameters that override
+ the global configuration. The <em>iiop_in_connection_timeout</em>,
+ <em>iiop_max_fragments</em>, <em>iiop_max_in_requests</em> and
+ <em>interceptors</em> parameters simply overrides the global
+ counterparts (See the
+ <seealso marker="ch_install#config">Configuration</seealso> chapter
+ in the User's Guide).
+ But the following parameters there are a few restrictions:</p>
+ <list type="bulleted">
+ <item><em>flags</em> - currently it is only possible to override the global
+ setting for the <c>Use Current Interface in IOR</c> and
+ <c>Exclude CodeSet Component</c> flags.</item>
+ <item><em>iiop_port</em> - requires that <c>Use Current Interface in IOR</c>
+ is activated and the supplied <c>Type</c> is <c>normal</c>. If so,
+ exported IOR:s will contain the IIOP port defined by this configuration
+ parameter. Otherwise, the global setting will be used.</item>
+ <item><em>iiop_ssl_port</em> - almost equivalent to <c>iiop_port</c>.
+ The difference is that <c>Type</c> shall be <c>ssl</c> and that
+ exported IOR:s will contain the IIOP via SSL port defined by this configuration
+ parameter.</item>
+ </list>
+ <p>If it is not possible to add a listener based on the supplied interface
+ and port, the error message is one of the ones described in <c>inet</c>
+ and/or <c>ssl</c> documentation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>remove_listen_interface(Ref) -> ok</name>
+ <fsummary>Terminate listen process for incoming connection</fsummary>
+ <type>
+ <v>Ref = #Ref</v>
+ </type>
+ <desc>
+ <p>Terminates the listen process, associated with the supplied <c>#Ref</c>,
+ for incoming a connection. The Ref parameter is the return value from
+ the <c>orber:add_listen_interface/2/3</c> operation. When terminating
+ the connection, all associated requests will not deliver a reply to
+ the clients.</p>
+ </desc>
+ </func>
+ <func>
+ <name>close_connection(Connection) -> Result</name>
+ <name>close_connection(Connection, Interface) -> Result</name>
+ <fsummary>Terminate outgoing connection(s)</fsummary>
+ <type>
+ <v>Connection = Object | [{Host, Port}]</v>
+ <v>Object = #objref (external)</v>
+ <v>Host = string()</v>
+ <v>Port = string()</v>
+ <v>Interface = string()</v>
+ <v>Result = ok | {'EXCEPTION', #'BAD_PARAM'{}}</v>
+ </type>
+ <desc>
+ <p>Will try to close all outgoing connections to the host/port combinations
+ found in the supplied object reference or the given list of hosts/ports.
+ If a <c>#'IOP_ServiceContext'{}</c> containing a local interface has been
+ used when communicating with the remote object
+ (see also <seealso marker="Module_Interface">Module_Interface</seealso>),
+ that interface shall be passed as the second argument. Otherwise, connections
+ via the default local interface, will be terminated.</p>
+ <p></p>
+ <note>
+ <p>Since several clients maybe communicates via the same connection,
+ they will be affected when invoking this operation. Other clients may
+ re-create the connection by invoking an operation on the target object.</p>
+ </note>
+ </desc>
+ </func>
+ <func>
+ <name>secure() -> no | ssl</name>
+ <fsummary>Display the security mode Orber is running in</fsummary>
+ <desc>
+ <p>This function returns the security mode Orber is running in, which is either no if it is an
+ insecure domain or the type of security mechanism used. For the moment the only security
+ mechanism is ssl. This is configured by setting the application variable
+ <em>secure</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>ssl_server_certfile() -> string()</name>
+ <fsummary>Display the path to the server certificate</fsummary>
+ <desc>
+ <p>This function returns a path to a file containing a chain of PEM encoded
+ certificates for the Orber domain as server.
+ This is configured by setting the application variable
+ <em>ssl_server_certfile</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>ssl_client_certfile() -> string()</name>
+ <fsummary>Display the path to the client certificate</fsummary>
+ <desc>
+ <p>This function returns a path to a file containing a chain of PEM encoded
+ certificates used in outgoing calls in the current process.
+ The default value is configured by setting the application variable
+ <em>ssl_client_certfile</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_ssl_client_certfile(Path) -> ok</name>
+ <fsummary>Set the value of the client certificate</fsummary>
+ <type>
+ <v>Path = string()</v>
+ </type>
+ <desc>
+ <p>This function takes a path to a file containing a chain of PEM encoded
+ certificates as parameter and sets it for the current process.</p>
+ </desc>
+ </func>
+ <func>
+ <name>ssl_server_verify() -> 0 | 1 | 2</name>
+ <fsummary>Display the SSL verification type for incoming calls</fsummary>
+ <desc>
+ <p>This function returns the type of verification used by SSL during authentication of the other
+ peer for incoming calls.
+ It is configured by setting the application variable
+ <em>ssl_server_verify</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>ssl_client_verify() -> 0 | 1 | 2</name>
+ <fsummary>Display the SSL verification type for outgoing calls</fsummary>
+ <desc>
+ <p>This function returns the type of verification used by SSL during authentication of the other
+ peer for outgoing calls.
+ The default value is configured by setting the application variable
+ <em>ssl_client_verify</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_ssl_client_verify(Value) -> ok</name>
+ <fsummary>Set the value of the SSL verification type for outgoing calls</fsummary>
+ <type>
+ <v>Value = 0 | 1 | 2</v>
+ </type>
+ <desc>
+ <p>This function sets the SSL verification type for the other peer of outgoing calls.</p>
+ </desc>
+ </func>
+ <func>
+ <name>ssl_server_depth() -> int()</name>
+ <fsummary>Display the SSL verification depth for incoming calls</fsummary>
+ <desc>
+ <p>This function returns the SSL verification depth for incoming calls.
+ It is configured by setting the application variable
+ <em>ssl_server_depth</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>ssl_client_depth() -> int()</name>
+ <fsummary>Display the SSL verification depth for outgoing calls</fsummary>
+ <desc>
+ <p>This function returns the SSL verification depth for outgoing calls.
+ The default value is configured by setting the application variable
+ <em>ssl_client_depth</em>.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_ssl_client_depth(Depth) -> ok</name>
+ <fsummary>Sets the value of the SSL verification depth for outgoing calls</fsummary>
+ <type>
+ <v>Depth = int()</v>
+ </type>
+ <desc>
+ <p>This function sets the SSL verification depth for the other peer of outgoing calls.</p>
+ </desc>
+ </func>
+ <func>
+ <name>objectkeys_gc_time() -> int() (seconds)</name>
+ <fsummary>Display the Object Keys GC time value</fsummary>
+ <desc>
+ <p>This function returns the timeout value after which after which terminated object keys,
+ related to servers started with the configuration parameter <c>{persistent, true}</c>,
+ will be removed.
+ It can be configured by setting the application variable <em>objectkeys_gc_time TimeVal (seconds)</em>,
+ if it is not set it will have the default value <em>infinity</em>. </p>
+ <p>Objects terminating with reason <em>normal</em> or <em>shutdown</em> are removed automatically.</p>
+ <p>Note: the objectkeys_gc_time configuration parameter (TimeVal) may only range between 0 and 1000000 seconds.
+ Otherwise, the default value is used.</p>
+ </desc>
+ </func>
+ <func>
+ <name>orber_nodes() -> RetVal</name>
+ <fsummary>Displays which nodes that this orber domain consist of.</fsummary>
+ <type>
+ <v>RetVal = [node()]</v>
+ </type>
+ <desc>
+ <p>This function returns the list of node names that this orber
+ domain consists of. </p>
+ </desc>
+ </func>
+ <func>
+ <name>install(NodeList) -> ok</name>
+ <name>install(NodeList, Options) -> ok</name>
+ <fsummary>Install the Orber application</fsummary>
+ <type>
+ <v>NodeList = [node()]</v>
+ <v>Options = [Option]</v>
+ <v>Option = {install_timeout, Timeout} | {ifr_storage_type, TableType} | {nameservice_storage_type, TableType} | {initialreferences_storage_type, TableType} | {load_order, Priority}</v>
+ <v>Timeout = infinity | integer()</v>
+ <v>TableType = disc_copies | ram_copies</v>
+ <v>Priority = integer()</v>
+ </type>
+ <desc>
+ <p>This function installs all the necessary mnesia tables and
+ load default data in some of them. If one or more Orber tables
+ already exists the installation fails. The function\011
+ <em>uninstall</em> may be used, if it is safe, i.e., no other
+ application is running Orber.</p>
+ <p>Preconditions:</p>
+ <list type="bulleted">
+ <item>a mnesia schema must exist before the installation</item>
+ <item>mnesia is running on the other nodes if the new installation
+ shall be a multi node domain</item>
+ </list>
+ <p>Mnesia will be started by the function if it is not already running on
+ the installation node and if it was started it will be stopped
+ afterwards.</p>
+ <p>The options that can be sent to the installation program is:</p>
+ <list type="bulleted">
+ <item><c>{install_timeout, Timeout}</c> - this timeout is how long we
+ will wait for the tables to be created. The Timeout value can be
+ <em>infinity</em> or an integer number in milliseconds.
+ Default is infinity.</item>
+ <item><c>{ifr_storage_type, TableType}</c> - this option sets the
+ type of tables used for the interface repository.
+ The TableType can be disc_copies or ram_copies. Default is
+ disc_copies.</item>
+ <item><c>{initialreferences_storage_type, TableType}</c> - this option
+ sets the type of table used for storing initial references.
+ The TableType can be disc_copies or ram_copies. Default is
+ ram_copies.</item>
+ <item><c>{nameservice_storage_type, TableType}</c> - the default
+ behavior of Orber is to install the NameService as ram_copies.
+ This option makes it possible to change this to disc_copies. But
+ the user should be aware of that if a node is restarted, all
+ local object references stored in the NameService is not valid.
+ Hence, you cannot switch to disc_copies and expect exactly the same
+ behavior as before.</item>
+ <item><c>{load_order, Priority}</c> - per default the priority is set to 0.
+ Using this option it will change the priority of in which order
+ Mnesia will load Orber internal tables. For more information,
+ consult the Mnesia documentation.</item>
+ </list>
+ </desc>
+ </func>
+ <func>
+ <name>uninstall() -> ok</name>
+ <fsummary>Uninstall the Orber application</fsummary>
+ <desc>
+ <p>This function stops the Orber application, terminates all server
+ objects and removes all Orber related mnesia tables.</p>
+ <p>Note: Since other applications may be running on the same node
+ using mnesia <em>uninstall</em> will not stop the mnesia application.</p>
+ </desc>
+ </func>
+ <func>
+ <name>add_node(Node, Options) -> RetVal</name>
+ <fsummary>Add a new node to a group of Orber nodes.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ <v>Options = IFRStorageType | [KeyValue] </v>
+ <v>IFRStorageType = StorageType</v>
+ <v>StorageType = disc_copies | ram_copies</v>
+ <v>KeyValue = {ifr_storage_type, StorageType} | {initialreferences_storage_type, StorageType} | {nameservice_storage_type, StorageType} | {type, Type} </v>
+ <v>Type = temporary | permanent</v>
+ <v>RetVal = ok | exit()</v>
+ </type>
+ <desc>
+ <p>This function add given node to a existing Orber node group and starts
+ Orber on the new node. <c>orber:add_node</c> is called from a member in the Orber
+ node group.</p>
+ <p>Preconditions for new node:</p>
+ <list type="bulleted">
+ <item>Erlang started on the new node using the option <c>-mnesia extra_db_nodes</c>, e.g.,
+ <c>erl -sname new_node_name -mnesia extra_db_nodes ConnectToNodes_List</c></item>
+ <item>The new node's <c>domain</c> name is the same for the nodes we want to connect to.</item>
+ <item>Mnesia is running on the new node (no new schema created).</item>
+ <item>If the new node will use <c>disc_copies</c> the schema type must be changed using:
+ <c>mnesia:change_table_copy_type(schema, node(), disc_copies).</c></item>
+ </list>
+ <p>Orber will be started by the function on the new node.</p>
+ <p>Fails if:</p>
+ <list type="bulleted">
+ <item>Orber already installed on given node.</item>
+ <item>Mnesia not started as described above on the new node.</item>
+ <item>Impossible to copy data in Mnesia tables to the new node.</item>
+ <item>Not able to start Orber on the new node, due to, for example, the
+ <c>iiop_port</c> is already in use.</item>
+ </list>
+ <p>The function do not remove already copied tables after a failure.
+ Use <c>orber:remove_node</c> to remove these tables.</p>
+ </desc>
+ </func>
+ <func>
+ <name>remove_node(Node) -> RetVal</name>
+ <fsummary>Removes a node from a group of Orber nodes.</fsummary>
+ <type>
+ <v>Node = node()</v>
+ <v>RetVal = ok | exit()</v>
+ </type>
+ <desc>
+ <p>This function removes given node from a Orber node group. The Mnesia
+ application is not stopped.</p>
+ </desc>
+ </func>
+ <func>
+ <name>configure(Key, Value) -> ok | {'EXIT', Reason}</name>
+ <fsummary>Change Orber configuration.</fsummary>
+ <type>
+ <v>Key = orbDefaultInitRef | orbInitRef | giop_version | iiop_timeout | iiop_connection_timeout | iiop_setup_connection_timeout | iiop_in_connection_timeout | objectkeys_gc_time | orber_debug_level</v>
+ <v>Value = allowed value associated with the given key</v>
+ </type>
+ <desc>
+ <p>This function allows the user to configure Orber in, for example,
+ an Erlang shell. It is possible to invoke <c>configure</c> at any time
+ the keys specified above.</p>
+ <p>Any other key must be set before installing and starting Orber.</p>
+ <p>Trying to change the configuration in any other way is <em>NOT</em>
+ allowed since it may affect the behavior of Orber.</p>
+ <p>For more information regarding allowed values, see
+ <seealso marker="ch_install#config">configuration settings</seealso>
+ in the User's Guide.</p>
+ <p></p>
+ <note>
+ <p>Configuring the IIOP timeout values will not affect already
+ existing connections. If you want a guaranteed uniform behavior, you
+ must set these parameters from the start.</p>
+ </note>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/orber_acl.xml b/lib/orber/doc/src/orber_acl.xml
new file mode 100644
index 0000000000..441001894a
--- /dev/null
+++ b/lib/orber/doc/src/orber_acl.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2005</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>orber_acl</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>2005-05-19</date>
+ <rev>A</rev>
+ </header>
+ <module>orber_acl</module>
+ <modulesummary>Orber ACL operations</modulesummary>
+ <description>
+ <p>This module contains functions intended for analyzing Access
+ Control List (ACL) filters. The filters uses a extended format of
+ Classless Inter Domain Routing (CIDR).
+ For example, <c>"123.123.123.10"</c> limits
+ the connection to that particular host, while <c>"123.123.123.10/17"</c> allows
+ connections to or from any host equal to the 17 most significant bits. Orber
+ also allow the user to specify a certain port or port range, for example,
+ <c>"123.123.123.10/17#4001"</c> and <c>"123.123.123.10/17#4001/5001"</c>
+ respectively. IPv4 or none compressed IPv6 strings are accepted.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>match(IP, Direction) -> boolean()</name>
+ <name>match(IP, Direction, GetInfo) -> Reply</name>
+ <fsummary>Verify if the IP address versus the current configuration</fsummary>
+ <type>
+ <v>IP = tuple() | [integer()]</v>
+ <v>Direction = tcp_in | ssl_in | tcp_out | ssl_out</v>
+ <v>GetInfo = boolean()</v>
+ <v>Reply = boolean() | {boolean(), [Interface], PortInfo}</v>
+ <v>Interface = string()</v>
+ <v>PortInfo = integer() | {integer(), integer()}</v>
+ </type>
+ <desc>
+ <p>If <c>GetInfo</c> is not supplied or set to false, this operation returns
+ a boolean which tells if the IPv4 or IPv6 address would pass the ACL
+ filter, defined by the <c>iiop_acl</c> configuration parameter, or not.
+ When <c>GetInfo</c> is set to true, a tuple which, besides the boolean
+ that tells if access was granted, also include the defined
+ interfaces and port(s). This operation requires that Orber is running and
+ can be used on a live node to determine if Orber has been properly configured.</p>
+ </desc>
+ </func>
+ <func>
+ <name>verify(IP, Filter, Family) -> Reply</name>
+ <fsummary>Verify if the IP address versus the Filter</fsummary>
+ <type>
+ <v>IP = string()</v>
+ <v>Filter = string()</v>
+ <v>Family = inet | inet6</v>
+ <v>Reply = true | {false, From, To} | {error, string()}</v>
+ <v>From = string()</v>
+ <v>To = string()</v>
+ </type>
+ <desc>
+ <p>This operation returns true if the IPv4 or IPv6 address would pass the
+ supplied ACL. If that is not the case, a tuple containing the accepted range
+ is returned. This operation should only be used for test purposes.</p>
+ </desc>
+ </func>
+ <func>
+ <name>range(Filter, Family) -> Reply</name>
+ <fsummary>Get range of Filter</fsummary>
+ <type>
+ <v>Filter = string()</v>
+ <v>Family = inet | inet6</v>
+ <v>Reply = {ok, From, To} | {error, string()}</v>
+ <v>From = string()</v>
+ <v>To = string()</v>
+ </type>
+ <desc>
+ <p>Returns the range of accepted IP addresses based on the supplied filter.
+ This operation should only be used for test purposes.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/orber_diagnostics.xml b/lib/orber/doc/src/orber_diagnostics.xml
new file mode 100644
index 0000000000..ee688dbec4
--- /dev/null
+++ b/lib/orber/doc/src/orber_diagnostics.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>2003</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>orber_diagnostics</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>2003-04-17</date>
+ <rev>A</rev>
+ </header>
+ <module>orber_diagnostics</module>
+ <modulesummary>Diagnostics API for Orber</modulesummary>
+ <description>
+ <p>This module contains functions which makes it possible to run simple
+ tests.</p>
+ <p></p>
+ <warning>
+ <p>Functions exported by this module may only be used during
+ test and development phase.</p>
+ </warning>
+ </description>
+ <funcs>
+ <func>
+ <name>nameservice() -> Result</name>
+ <name>nameservice(Flags) -> Result</name>
+ <fsummary>Display all objects stored in the Name Service</fsummary>
+ <type>
+ <v>Flags = integer()</v>
+ <v>Result = ok | {'EXCEPTION', E}</v>
+ </type>
+ <desc>
+ <p>Displays all objects stored in the NameService. Existent checks are, per
+ default, also performed on all local objects. This can also be activated
+ for external objects by setting the flag <c>16#01</c>. The displayed
+ information is the stringified Name described in
+ <seealso marker="CosNaming_NamingContextExt">CosNaming_NamingContextExt</seealso>,
+ non existent status (true | false | external | undefined) and the IFR-Id:</p>
+ <code type="none">
+host/
+host/resources/
+host/resources/MyObj/ [false] IDL:MyMod/MyIntf:1.0 </code>
+ </desc>
+ </func>
+ <func>
+ <name>missing_modules() -> Count</name>
+ <fsummary>Echo missing modules required by Orber</fsummary>
+ <type>
+ <v>Count = integer()</v>
+ </type>
+ <desc>
+ <p>This operation list missing modules generated by IC and required by
+ Orber. Requires that all API:s are registered in the IFR.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/orber_ifr.xml b/lib/orber/doc/src/orber_ifr.xml
new file mode 100644
index 0000000000..021082e101
--- /dev/null
+++ b/lib/orber/doc/src/orber_ifr.xml
@@ -0,0 +1,1034 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>orber_ifr</title>
+ <prepared></prepared>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date>1997-10-13</date>
+ <rev>A</rev>
+ </header>
+ <module>orber_ifr</module>
+ <modulesummary>The Interface Repository stores representations of IDL information</modulesummary>
+ <description>
+ <p>This module contains functions for managing the Interface
+ Repository (IFR). This documentation should be used in conjunction
+ with the documentation in chapter 6 of <term id="CORBA"></term>2.3.
+ Whenever the term IFR object is used in this manual page, it
+ refers to a pseudo object used only for interaction with the IFR
+ rather than a CORBA object.</p>
+ </description>
+
+ <section>
+ <title>Initialization of the IFR</title>
+ <p>The following functions are used to initialize the Interface
+ Repository and to obtain the initial reference to the
+ repository.</p>
+ </section>
+ <funcs>
+ <func>
+ <name>init(Nodes,Timeout) -> ok</name>
+ <fsummary>Intialize the IFR</fsummary>
+ <type>
+ <v>Nodes = list()</v>
+ <v>Timeout = integer() | infinity</v>
+ </type>
+ <desc>
+ <p>This function should be called to initialize the IFR. It
+ creates the necessary mnesia-tables. A mnesia schema should
+ exist, and mnesia must be running.</p>
+ </desc>
+ </func>
+ <func>
+ <name>find_repository() -> #IFR_Repository_objref</name>
+ <fsummary>Find the IFR object reference for the Repository</fsummary>
+ <desc>
+ <p>Find the IFR object reference for the Repository. This
+ reference should be used when adding objects to the IFR, and
+ when extracting information from the IFR.
+ The first time this function is called, it will create the
+ repository and all the primitive definitions.</p>
+ </desc>
+ </func>
+ </funcs>
+
+ <section>
+ <title>General methods</title>
+ <p>The following functions are the methods of the IFR. The first
+ argument is always an #IFR_objref, i.e. the IFR (pseudo)object
+ on which to apply this method. These functions are useful when
+ the type of IFR object is not know, but they are somewhat slower
+ than the specific functions listed below which only accept a
+ particular type of IFR object as the first argument.</p>
+ </section>
+ <funcs>
+ <func>
+ <name>get_def_kind(Objref) -> Return</name>
+ <fsummary>Return the definition kind of the IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = atom() (one of dk_none, dk_all, dk_Attribute, dk_Constant, dk_Exception, dk_Interface, dk_Module, dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union, dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed, dk_Sequence, dk_Array, dk_Repository)</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind. Returns the definition
+ kind of the IFR object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>destroy(Objref) -> Return</name>
+ <fsummary>Destroy, except IRObject, Contained and Container, target object and its contents</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = tuple()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind except IRObject,
+ Contained and Container. Destroys that object and its
+ contents (if any). Returns whatever mnesia:transaction
+ returns.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_id(Objref) -> Return</name>
+ <fsummary>Return the target object's repository id</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns the repository id of that object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_id(Objref,Id) -> ok</name>
+ <fsummary>Set the target object's repository id</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Id = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Sets the repository id of that object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_name(Objref) -> Return</name>
+ <fsummary>Return the name of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns the name of that object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_name(Objref,Name) -> ok</name>
+ <fsummary>Set given name to target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Name = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Sets the name of that object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_version(Objref) -> Return</name>
+ <fsummary>Return the version of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns the version of that object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_version(Objref,Version) -> ok</name>
+ <fsummary>Set given version of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Version = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Sets the version of that object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_defined_in(Objref) -> Return</name>
+ <fsummary>Return the Container the target object is contained in</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = #IFR_Container_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns the Container object that the object is
+ defined in.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_absolute_name(Objref) -> Return</name>
+ <fsummary>Return the absolute name of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = string()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns the absolute (scoped) name of that
+ object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_containing_repository(Objref) -> Return</name>
+ <fsummary>Get the most derived Contained object associated with the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = #IFR_Repository_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns the Repository that is eventually reached
+ by recursively following the object's defined_in attribute.</p>
+ </desc>
+ </func>
+ <func>
+ <name>describe(Objref) -> Return</name>
+ <fsummary>Return a tuple which describe the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_object</v>
+ <v>Return = tuple() (a contained_description record) | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. Returns a tuple describing the object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>move(Objref,New_container,New_name,New_version) -> Return</name>
+ <fsummary>Move the target object from its current location to given Container, name and version</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>New_container = #IFR_Container_objref</v>
+ <v>New_name = string()</v>
+ <v>New_version = string()</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Contained. New_container is an IFR object of any kind that
+ inherits from Container. Removes Objref from its current
+ Container, and adds it to New_container. The name attribute
+ is changed to New_name and the version attribute is changed
+ to New_version.</p>
+ </desc>
+ </func>
+ <func>
+ <name>lookup(Objref,Search_name) -> Return</name>
+ <fsummary>Return the IFR object identified by the given name</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Search_name = string()</v>
+ <v>Return = #IFR_object</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Returns an IFR object identified by search_name
+ (a scoped name).</p>
+ </desc>
+ </func>
+ <func>
+ <name>contents(Objref,Limit_type,Exclude_inherited) -> Return</name>
+ <fsummary>Return the content of the target object limited by the given constraints</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Limit_type = atom() (one of dk_none, dk_all, dk_Attribute, dk_Constant, dk_Exception, dk_Interface, dk_Module, dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union, dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed, dk_Sequence, dk_Array, dk_Repository)</v>
+ <v>Exclude_inherited = atom() (true or false)</v>
+ <v>Return = list() (a list of IFR#_objects)</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Returns the contents of that IFR object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>lookup_name(Objref,Search_name,Levels_to_search, Limit_type, Exclude_inherited) -> Return</name>
+ <fsummary>Return a list of IFR objects matching the given name</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Search_name = string()</v>
+ <v>Levels_to_search = integer()</v>
+ <v>Limit_type = atom() (one of dk_none, dk_all, dk_Attribute, dk_Constant, dk_Exception, dk_Interface, dk_Module, dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union, dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed, dk_Sequence, dk_Array, dk_Repository)</v>
+ <v>Exclude_inherited = atom() (true or false)</v>
+ <v>Return = list() (a list of #IFR_objects)</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Returns a list of #IFR_objects with an id
+ matching Search_name.</p>
+ </desc>
+ </func>
+ <func>
+ <name>describe_contents(Objref,Limit_type,Exclude_inherited,Max_returned_objs) -> Return</name>
+ <fsummary>Return a list of descriptions of the IFR objects contained by the target Container object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Limit_type = atom() (one of dk_none, dk_all, dk_Attribute, dk_Constant, dk_Exception, dk_Interface, dk_Module, dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union, dk_Enum, dk_Primitive, dk_String, dk_Wstring, dk_Fixed, dk_Sequence, dk_Array, dk_Repository)</v>
+ <v>Exclude_inherited = atom() (true or false)</v>
+ <v>Return = list() (a list of tuples (contained_description records) | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Returns a list of descriptions of the IFR objects
+ in this Container's contents.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_module(Objref,Id,Name,Version) -> Return</name>
+ <fsummary>Create an IFR object of given type</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Return = #IFR_ModuleDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type ModuleDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_constant(Objref,Id,Name,Version,Type,Value) -> Return</name>
+ <fsummary>Create a ConstantDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Type = #IFR_IDLType_objref</v>
+ <v>Value = any()</v>
+ <v>Return = #IFR_ConstantDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type ConstantDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_struct(Objref,Id,Name,Version,Members) -> Return</name>
+ <fsummary>Create a StructDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Members = list() (list of structmember records)</v>
+ <v>Return = #IFR_StructDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type StructDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_union(Objref,Id,Name,Version,Discriminator_type,Members) -> Return</name>
+ <fsummary>Create a UnionDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Discriminator_type = #IFR_IDLType_Objref</v>
+ <v>Members = list() (list of unionmember records)</v>
+ <v>Return = #IFR_UnionDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type UnionDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_enum(Objref,Id,Name,Version,Members) -> Return</name>
+ <fsummary>Create a EnumDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Members = list() (list of strings)</v>
+ <v>Return = #IFR_EnumDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type EnumDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_alias(Objref,Id,Name,Version,Original_type) -> Return</name>
+ <fsummary>Create a AliasDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Original_type = #IFR_IDLType_Objref</v>
+ <v>Return = #IFR_AliasDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type AliasDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_interface(Objref,Id,Name,Version,Base_interfaces) -> Return</name>
+ <fsummary>Create a InterfaceDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Base_interfaces = list() (a list of IFR_InterfaceDef_objrefs that this interface inherits from</v>
+ <v>Return = #IFR_InterfaceDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type InterfaceDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_exception(Objref,Id,Name,Version,Members) -> Return</name>
+ <fsummary>Create a ExceptionDef IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Members = list() (list of structmember records)</v>
+ <v>Return = #IFR_ExceptionDef_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ Container. Creates an IFR object of the type ExceptionDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_type(Objref) -> Return</name>
+ <fsummary>Return the typecode of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = tuple() (a typecode tuple)</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of any kind that inherits from
+ IDLType or an IFR object of the kind ConstantDef,
+ ExceptionDef or AttributeDef. Returns the typecode of the
+ IFR object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>lookup_id(Objref,Search_id) -> Return</name>
+ <fsummary>Return the IFR object matching the given id</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Search_id = string()</v>
+ <v>Return = #IFR_objref</v>
+ </type>
+ <desc>
+ <p>Returns an IFR object matching the Search_id.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_primitive(Objref,Kind) -> Return</name>
+ <fsummary>Return a PrimitiveDef of the specified kind</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Kind = atom() (one of pk_null, pk_void, pk_short, pk_long, pk_ushort, pk_ulong, pk_float, pk_double, pk_boolean, pk_char, pk_octet, pk_any, pk_TypeCode, pk_Principal, pk_string, pk_wstring, pk_fixed, pk_objref)</v>
+ <v>Return = #IFR_PrimitiveDef_objref</v>
+ </type>
+ <desc>
+ <p>Returns a PrimitiveDef of the specified kind.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_string(Objref,Bound) -> Return</name>
+ <fsummary>Create an IFR objref of the type StringDef</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Bound = integer() (unsigned long /= 0)</v>
+ <v>Return = #IFR_StringDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR objref of the type StringDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_wstring(Objref,Bound) -> Return</name>
+ <fsummary>Create an IFR objref of the type WstringDef</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Bound = integer() (unsigned long /= 0)</v>
+ <v>Return = #IFR_WstringDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR objref of the type WstringDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_fixed(Objref,Digits,Scale) -> Return</name>
+ <fsummary>Create an IFR objref of the type FixedDef</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Digits = Scale = integer()</v>
+ <v>Return = #IFR_FixedDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR objref of the type FixedDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_sequence(Objref,Bound,Element_type) -> Return</name>
+ <fsummary>Create an IFR objref of the type SequenceDef</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Bound = integer() (unsigned long)</v>
+ <v>Element_type = #IFR_IDLType_objref</v>
+ <v>Return = #IFR_SequenceDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR objref of the type SequenceDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_array(Objref,Length,Element_type) -> Return</name>
+ <fsummary>Create an IFR objref of the type ArrayDef</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Bound = integer() (unsigned long)</v>
+ <v>Element_type = #IFR_IDLType_objref</v>
+ <v>Return = #IFR_ArrayDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR objref of the type ArrayDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_idltype(Objref,Typecode) -> Return</name>
+ <fsummary>Create an IFR objref of the type IDLType</fsummary>
+ <type>
+ <v>Objref = #IFR_Repository_objref</v>
+ <v>Typecode = tuple() (a typecode tuple)</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR objref of the type IDLType.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_type_def(Objref) -> Return</name>
+ <fsummary>Return an IFR object of the type IDLType describing the type of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of the kind ConstantDef or
+ AttributeDef. Returns an IFR object of the type IDLType
+ describing the type of the IFR object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_type_def(Objref,TypeDef) -> Return</name>
+ <fsummary>Set given TypeDef of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>TypeDef = #IFR_IDLType_objref</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object of the kind ConstantDef or
+ AttributeDef. Sets the type_def of the IFR Object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_value(Objref) -> Return</name>
+ <fsummary>Return the value attribute of the target ConstantDef object</fsummary>
+ <type>
+ <v>Objref = #IFR_ConstantDef_objref</v>
+ <v>Return = any()</v>
+ </type>
+ <desc>
+ <p>Returns the value attribute of an IFR Object of the type ConstantDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_value(Objref,Value) -> Return</name>
+ <fsummary>Set the value attribute of the target ConstantDef object</fsummary>
+ <type>
+ <v>Objref = #IFR_ConstantDef_objref</v>
+ <v>Value = any()</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the value attribute of an IFR Object of the type ConstantDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_members(Objref) -> Return</name>
+ <fsummary>Return the members of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = list()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind StructDef, UnionDef,
+ EnumDef or ExceptionDef.
+ For StructDef, UnionDef and ExceptionDef: Returns a list of
+ structmember records that are the constituent parts of the
+ object.
+ For EnumDef: Returns a list of strings describing the
+ enumerations.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_members(Objref,Members) -> Return</name>
+ <fsummary>Set the members attribute of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Members = list()</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind StructDef, UnionDef,
+ EnumDef or ExceptionDef.
+ For StructDef, UnionDef and ExceptionDef: Members is a list
+ of structmember records.
+ For EnumDef: Members is a list of strings describing the
+ enumerations.
+ Sets the members attribute, which are the constituent parts of the
+ exception.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_discriminator_type(Objref) -> Return</name>
+ <fsummary>Get the discriminator typecode of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_UnionDef_objref</v>
+ <v>Return = tuple() (a typecode tuple)</v>
+ </type>
+ <desc>
+ <p>Returns the discriminator typecode of an IFR object of the type
+ UnionDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_discriminator_type_def(Objref) -> Return</name>
+ <fsummary>Return IDLType object describing the discriminator type of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_UnionDef_objref</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Returns an IFR object of the type IDLType describing the
+ discriminator type of an IFR object of the type UnionDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_discriminator_type_def(Objref,TypeDef) -> Return</name>
+ <fsummary>Set the attribute discriminator_type_def for the target object to the given TypeDef</fsummary>
+ <type>
+ <v>Objref = #IFR_UnionDef_objref</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Sets the attribute discriminator_type_def, an IFR object of
+ the type IDLType describing the discriminator type of an IFR
+ object of the type UnionDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_original_type_def(Objref) -> Return</name>
+ <fsummary>Return an IFR object of the type IDLType describing the original type</fsummary>
+ <type>
+ <v>Objref = #IFR_AliasDef_objref</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Returns an IFR object of the type IDLType describing the
+ original type.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_original_type_def(Objref,TypeDef) -> Return</name>
+ <fsummary>Set the original_type_def attribute which describes the original type</fsummary>
+ <type>
+ <v>Objref = #IFR_AliasDef_objref</v>
+ <v>Typedef = #IFR_IDLType_objref</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the original_type_def attribute which describes the
+ original type.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_kind(Objref) -> Return</name>
+ <fsummary>Return an atom describing the primitive type</fsummary>
+ <type>
+ <v>Objref = #IFR_PrimitiveDef_objref</v>
+ <v>Return = atom()</v>
+ </type>
+ <desc>
+ <p>Returns an atom describing the primitive type (See CORBA 2.0
+ p 6-21).</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_bound(Objref) -> Return</name>
+ <fsummary>Get the maximum size of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = integer (unsigned long)</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind StringDef or SequenceDef.
+ For StringDef: returns the maximum number of characters in
+ the string.
+ For SequenceDef: Returns the maximum number of elements in
+ the sequence. Zero indicates an unbounded sequence.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_bound(Objref,Bound) -> Return</name>
+ <fsummary>Set the maximum size of the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Bound = integer (unsigned long)</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind StringDef or SequenceDef.
+ For StringDef: Sets the maximum number of characters in the
+ string. Bound must not be zero.
+ For SequenceDef: Sets the maximum number of elements in the
+ sequence. Zero indicates an unbounded sequence.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_element_type(Objref) -> Return</name>
+ <fsummary>Return the typecode of the elements in the IFR object</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = tuple() (a typecode tuple)</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind SequenceDef or ArrayDef.
+ Returns the typecode of the elements in the IFR object.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_element_type_def(Objref) -> Return</name>
+ <fsummary>Return an IFR object of the type IDLType describing the type of the elements in Objref</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind SequenceDef or ArrayDef.
+ Returns an IFR object of the type IDLType describing the
+ type of the elements in Objref.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_element_type_def(Objref,TypeDef) -> Return</name>
+ <fsummary>Set the element_type_def attribute of the target object to the given TypeDef</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>TypeDef = #IFR_IDLType_objref</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind SequenceDef or ArrayDef.
+ Sets the element_type_def attribute, an IFR object of the
+ type IDLType describing the type of the elements in Objref.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_length(Objref) -> Return</name>
+ <fsummary>Return the number of elements in the array</fsummary>
+ <type>
+ <v>Objref = #IFR_ArrayDef_objref</v>
+ <v>Return = integer() (unsigned long)</v>
+ </type>
+ <desc>
+ <p>Returns the number of elements in the array.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_length(Objref,Length) -> Return</name>
+ <fsummary>Set the number of elements in the array</fsummary>
+ <type>
+ <v>Objref = #IFR_ArrayDef_objref</v>
+ <v>Length = integer() (unsigned long)</v>
+ </type>
+ <desc>
+ <p>Sets the number of elements in the array.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_mode(Objref) -> Return</name>
+ <fsummary>Get the mode of the target object (AttributeDef or OperationDef)</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Return = atom()</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind AttributeDef or OperationDef.
+ For AttributeDef: Return is an atom ('ATTR_NORMAL' or
+ 'ATTR_READONLY') specifying the read/write access for this
+ attribute.
+ For OperationDef: Return is an atom ('OP_NORMAL' or
+ 'OP_ONEWAY') specifying the mode of the operation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_mode(Objref,Mode) -> Return</name>
+ <fsummary>Set the mode of the target object (AttributeDef or OperationDef) to the given mode</fsummary>
+ <type>
+ <v>Objref = #IFR_objref</v>
+ <v>Mode = atom()</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Objref is an IFR object the kind AttributeDef or OperationDef.
+ For AttributeDef: Sets the read/write access for this
+ attribute. Mode is an atom ('ATTR_NORMAL' or
+ 'ATTR_READONLY').
+ For OperationDef: Sets the mode of the operation. Mode is an
+ atom ('OP_NORMAL' or 'OP_ONEWAY').</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_result(Objref) -> Return</name>
+ <fsummary>Return typecode describing the type of the value returned by the operation</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Return = tuple() (a typecode tuple)</v>
+ </type>
+ <desc>
+ <p>Returns a typecode describing the type of the value returned by the
+ operation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_result_def(Objref) -> Return</name>
+ <fsummary>Return an IFR object of the type IDLType describing the type of the result</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Return = #IFR_IDLType_objref</v>
+ </type>
+ <desc>
+ <p>Returns an IFR object of the type IDLType describing the type of the
+ result.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_result_def(Objref,ResultDef) -> Return</name>
+ <fsummary>Set the type_def attribute of the target object to the given ResultDef</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>ResultDef = #IFR_IDLType_objref</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the type_def attribute, an IFR Object of the type IDLType
+ describing the result.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_params(Objref) -> Return</name>
+ <fsummary>Return a list of parameter description records describing the parameters of the target OperationDef</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Return = list() (list of parameter description records)</v>
+ </type>
+ <desc>
+ <p>Returns a list of parameter description records, which describes the
+ parameters of the OperationDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_params(Objref,Params) -> Return</name>
+ <fsummary>Set the params attribute of the target object to the given parameter description records</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Params = list() (list of parameter description records)</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the params attribute, a list of parameter description records.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_contexts(Objref) -> Return</name>
+ <fsummary>Return a list of context identifiers for the operation</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Return = list() (list of strings)</v>
+ </type>
+ <desc>
+ <p>Returns a list of context identifiers for the operation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_contexts(Objref,Contexts) -> Return</name>
+ <fsummary>Set the context attribute for the operation</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Contexts = list() (list of strings)</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the context attribute for the operation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_exceptions(Objref) -> Return</name>
+ <fsummary>Return a list of exception types that can be raised by the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Return = list() (list of #IFR_ExceptionDef_objrefs)</v>
+ </type>
+ <desc>
+ <p>Returns a list of exception types that can be raised by this
+ operation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_exceptions(Objref,Exceptions) -> Return</name>
+ <fsummary>Set the exceptions attribute for the target object</fsummary>
+ <type>
+ <v>Objref = #IFR_OperationDef_objref</v>
+ <v>Exceptions = list() (list of #IFR_ExceptionDef_objrefs)</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the exceptions attribute for this operation.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_base_interfaces(Objref) -> Return</name>
+ <fsummary>Return a list of InterfaceDefs from which the target InterfaceDef object inherit</fsummary>
+ <type>
+ <v>Objref = #IFR_InterfaceDef_objref</v>
+ <v>Return = list() (list of #IFR_InterfaceDef_objrefs)</v>
+ </type>
+ <desc>
+ <p>Returns a list of InterfaceDefs from which this InterfaceDef inherits.</p>
+ </desc>
+ </func>
+ <func>
+ <name>set_base_interfaces(Objref,BaseInterfaces) -> Return</name>
+ <fsummary>Set the BaseInterfaces attribute</fsummary>
+ <type>
+ <v>Objref = #IFR_InterfaceDef_objref</v>
+ <v>BaseInterfaces = list() (list of #IFR_InterfaceDef_objrefs)</v>
+ <v>Return = ok | {exception, _}</v>
+ </type>
+ <desc>
+ <p>Sets the BaseInterfaces attribute.</p>
+ </desc>
+ </func>
+ <func>
+ <name>is_a(Objref,Interface_id) -> Return</name>
+ <fsummary>Return a boolean if the target InterfaceDef match or inherit from the given id</fsummary>
+ <type>
+ <v>Objref = #IFR_InterfaceDef_objref</v>
+ <v>Interface_id = #IFR_InterfaceDef_objref</v>
+ <v>Return = atom() (true or false)</v>
+ </type>
+ <desc>
+ <p>Returns true if the InterfaceDef either is identical to or
+ inherits from Interface_id.</p>
+ </desc>
+ </func>
+ <func>
+ <name>describe_interface(Objref) -> Return</name>
+ <fsummary>Return a full inter face description record describing the InterfaceDef</fsummary>
+ <type>
+ <v>Objref = #IFR_InterfaceDef_objref</v>
+ <v>Return = tuple() (a fullinterfacedescription record)</v>
+ </type>
+ <desc>
+ <p>Returns a full inter face description record describing the InterfaceDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_attribute(Objref,Id,Name,Version,Type,Mode) -> Return</name>
+ <fsummary>Create an IFR object of the type AttributeDef contained in the target InterfaceDef object</fsummary>
+ <type>
+ <v>Objref = #IFR_InterfaceDef_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Type = #IFR_IDLType_objref</v>
+ <v>Mode = atom() ('ATTR_NORMAL' or 'ATTR_READONLY')</v>
+ <v>Return = #IFR_AttributeDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR object of the type AttributeDef contained in this
+ InterfaceDef.</p>
+ </desc>
+ </func>
+ <func>
+ <name>create_operation(Objref,Id,Name,Version,Result,Mode,Params, Exceptions,Contexts) -> Return</name>
+ <fsummary>Create an IFR object of the type OperationDef contained in the target InterfaceDef object</fsummary>
+ <type>
+ <v>Objref = #IFR_InterfaceDef_objref</v>
+ <v>Id = string()</v>
+ <v>Name = string()</v>
+ <v>Version = string()</v>
+ <v>Result = #IFR_IDLType_objref</v>
+ <v>Mode = atom() ('OP_NORMAL' or 'OP_ONEWAY')</v>
+ <v>Params = list() (list of parameter description records)</v>
+ <v>Exceptions = list() (list of #IFR_ExceptionDef_objrefs)</v>
+ <v>Contexts = list() (list of strings)</v>
+ <v>Return = #IFR_OperationDef_objref</v>
+ </type>
+ <desc>
+ <p>Creates an IFR object of the type OperationDef contained in this
+ InterfaceDef.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/orber_tc.xml b/lib/orber/doc/src/orber_tc.xml
new file mode 100644
index 0000000000..5d7f6368dd
--- /dev/null
+++ b/lib/orber/doc/src/orber_tc.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1998</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>orber_tc</title>
+ <prepared>Lars Thors&eacute;n</prepared>
+ <responsible>Lars Thors&eacute;n</responsible>
+ <docno></docno>
+ <approved>Lars Thors&eacute;n</approved>
+ <checked></checked>
+ <date>1998-04-20</date>
+ <rev>A</rev>
+ </header>
+ <module>orber_tc</module>
+ <modulesummary>Help functions for IDL typecodes</modulesummary>
+ <description>
+ <p>This module contains some functions that gives support in creating
+ IDL typecodes that can be used in for example the any types typecode field.
+ For the simple types it is meaningless to use this API but the functions exist
+ to get the interface complete.</p>
+ <p>The type <c>TC</c> used below describes an IDL type and is a tuple according
+ to the to the Erlang language mapping.</p>
+ </description>
+ <funcs>
+ <func>
+ <name>null() -> TC</name>
+ <name>void() -> TC</name>
+ <name>short() -> TC</name>
+ <name>unsigned_short() -> TC</name>
+ <name>long() -> TC</name>
+ <name>unsigned_long() -> TC</name>
+ <name>long_long() -> TC</name>
+ <name>unsigned_long_long() -> TC</name>
+ <name>wchar() -> TC</name>
+ <name>float() -> TC</name>
+ <name>double() -> TC</name>
+ <name>boolean() -> TC</name>
+ <name>char() -> TC</name>
+ <name>octet() -> TC</name>
+ <name>any() -> TC</name>
+ <name>typecode() -> TC</name>
+ <name>principal() -> TC</name>
+ <fsummary>Return the IDL typecode</fsummary>
+ <desc>
+ <p>These functions return the IDL typecodes for simple types.</p>
+ </desc>
+ </func>
+ <func>
+ <name>object_reference(Id, Name) -> TC</name>
+ <fsummary>Return the object_reference IDL typecode</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ <v>Name = string()</v>
+ <d>the type name of the object</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for object_reference.</p>
+ </desc>
+ </func>
+ <func>
+ <name>struct(Id, Name, ElementList) -> TC</name>
+ <fsummary>Return the struct IDL typecode</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ <v>Name = string()</v>
+ <d>the type name of the struct</d>
+ <v>ElementList = [{MemberName, TC}]</v>
+ <d>a list of the struct elements</d>
+ <v>MemberName = string()</v>
+ <d>the element name</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for struct.</p>
+ </desc>
+ </func>
+ <func>
+ <name>union(Id, Name, DiscrTC, Default, ElementList) -> TC</name>
+ <fsummary>Return the union IDL typecode</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ <v>Name = string()</v>
+ <d>the type name of the union</d>
+ <v>DiscrTC = TC</v>
+ <d>the typecode for the unions discriminant</d>
+ <v>Default = integer()</v>
+ <d>a value that indicates which tuple in the element list that is default (value &lt; 0 means no default)</d>
+ <v>ElementList = [{Label, MemberName, TC}]</v>
+ <d>a list of the union elements</d>
+ <v>Label = term()</v>
+ <d>the label value should be of the <em>DiscrTC</em>type</d>
+ <v>MemberName = string()</v>
+ <d>the element name</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for union.</p>
+ </desc>
+ </func>
+ <func>
+ <name>enum(Id, Name, ElementList) -> TC</name>
+ <fsummary>Return the enum IDL typecode</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ <v>Name = string()</v>
+ <d>the type name of the enum</d>
+ <v>ElementList = [MemberName]</v>
+ <d>a list of the enums elements</d>
+ <v>MemberName = string()</v>
+ <d>the element name</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for enum.</p>
+ </desc>
+ </func>
+ <func>
+ <name>string(Length) -> TC</name>
+ <fsummary>Return the string IDL typecode</fsummary>
+ <type>
+ <v>Length = integer()</v>
+ <d>the length of the string (0 means unbounded)</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for string.</p>
+ </desc>
+ </func>
+ <func>
+ <name>wstring(Length) -> TC</name>
+ <fsummary>Return the wstring IDL typecode</fsummary>
+ <type>
+ <v>Length = integer()</v>
+ <d>the length of the wstring (0 means unbounded)</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for wstring.</p>
+ </desc>
+ </func>
+ <func>
+ <name>fixed(Digits, Scale) -> TC</name>
+ <fsummary>Return the fixed IDL typecode</fsummary>
+ <type>
+ <v>Digits = Scale = integer()</v>
+ <d>the digits and scale parameters of a Fixed type</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for fixed.</p>
+ </desc>
+ </func>
+ <func>
+ <name>sequence(ElemTC, Length) -> TC</name>
+ <fsummary>Return the sequence IDL typecode</fsummary>
+ <type>
+ <v>ElemTC = TC</v>
+ <d>the typecode for the sequence elements</d>
+ <v>Length = integer()</v>
+ <d>the length of the sequence (0 means unbounded)</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for sequence.</p>
+ </desc>
+ </func>
+ <func>
+ <name>array(ElemTC, Length) -> TC</name>
+ <fsummary>Return the array IDL typecode</fsummary>
+ <type>
+ <v>ElemTC = TC</v>
+ <d>the typecode for the array elements</d>
+ <v>Length = integer()</v>
+ <d>the length of the array</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for array.</p>
+ </desc>
+ </func>
+ <func>
+ <name>alias(Id, Name, AliasTC) -> TC</name>
+ <fsummary>Return the alias IDL typecode</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ <v>Name = string()</v>
+ <d>the type name of the alias</d>
+ <v>AliasTC = TC</v>
+ <d>the typecode for the type which the alias refer to</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for alias.</p>
+ </desc>
+ </func>
+ <func>
+ <name>exception(Id, Name, ElementList) -> TC</name>
+ <fsummary>Return the exception IDL typecode</fsummary>
+ <type>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ <v>Name = string()</v>
+ <d>the type name of the exception</d>
+ <v>ElementList = [{MemberName, TC}]</v>
+ <d>a list of the exception elements</d>
+ <v>MemberName = string()</v>
+ <d>the element name</d>
+ </type>
+ <desc>
+ <p>Function returns the IDL typecode for exception.</p>
+ </desc>
+ </func>
+ <func>
+ <name>get_tc(Object) -> TC</name>
+ <name>get_tc(Id) -> TC</name>
+ <fsummary>Fetch typecode</fsummary>
+ <type>
+ <v>Object = record()</v>
+ <d>an IDL specified struct, union or exception</d>
+ <v>Id = string()</v>
+ <d>the repository ID</d>
+ </type>
+ <desc>
+ <p>If the get_tc/1 gets a record that is and IDL specified
+ struct, union or exception as a parameter it returns the
+ typecode.</p>
+ <p>If the parameter is a repository ID it uses the Interface Repository
+ to get the typecode.</p>
+ </desc>
+ </func>
+ <func>
+ <name>check_tc(TC) -> boolean()</name>
+ <fsummary>Check syntax of an IDL typecode</fsummary>
+ <desc>
+ <p>Function checks the syntax of an IDL typecode.</p>
+ </desc>
+ </func>
+ </funcs>
+
+</erlref>
+
diff --git a/lib/orber/doc/src/orbs.gif b/lib/orber/doc/src/orbs.gif
new file mode 100644
index 0000000000..47f2c85441
--- /dev/null
+++ b/lib/orber/doc/src/orbs.gif
Binary files differ
diff --git a/lib/orber/doc/src/orbs.ps b/lib/orber/doc/src/orbs.ps
new file mode 100644
index 0000000000..1c876a2990
--- /dev/null
+++ b/lib/orber/doc/src/orbs.ps
@@ -0,0 +1,582 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: /clearcase/otp/libraries/orber/doc/src/orbs.ps
+%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley
+%%BoundingBox: 125 263 486 529
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 46 string def
+
+% define space for color conversions
+/grays 361 string def % space for gray scale line
+/npixls 0 def
+/rgbindx 0 def
+
+% lower left corner
+125 263 translate
+
+% size of image (on paper, in 1/72inch coords)
+361.00800 265.96800 scale
+
+% dimensions of data
+361 266 1
+
+% mapping matrix
+[361 0 0 -266 0 266]
+
+{currentfile pix readhexstring pop}
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ff8000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000003ffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffe0000000000ffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaa08080aaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeffeeeeef7effffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaa8a2aaa2affffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeffdf6eef7effffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaa8a20a0aaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeffdf6bef7effffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaa8a28aa2affffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeffeeeeef7effffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaa08200aaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffeaaaaaaaaaaffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffefffffffffeffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffc00000000000000000000000000000000000000000000000000007
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffefffffffffefffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffeaaaaaaaaaafffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffefffffffffefffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffeaaaaaaaaaafffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffefffffffffefffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffeaaaaaaaaaafffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffefffffffffefffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffeaaaaaaaaaafffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdffffffffffffffffffffefffffffffefffffffffffffffffffff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfff8000000000000000000000aa0000000000000000000003fff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffefffdff7ffefffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbfffffffffffffffdfffbffffffffffffffffeaaa8aa2aaafffffffffffffffffbfff7
+fffffffffffffffbffff
+ffbffffffe000000000000000003fffffffffffefffdff7ffefffffffffe000000000000
+000003fffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffeaaa8aa2aaafffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffefffdff7ffefffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffeaaa8aa2aaafffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffefffdff7ffefffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffeaaa8aa2aaafffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffefffdff7ffefffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffeaaa8aa2aaafffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffefffdff7ffefffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffeaaa8aa2aaafffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffef0000000000000007bfffffffffffefffdff7ffefffffffffef00000000000
+00007bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffeaaa8aa2aaafffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffefffdff7ffefffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffe0000000000fffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef7ffffffffffffff7bfffffffffffffffdff7ffffffffffffef7ffffffffff
+ffff7bfffffffffbffff
+ffbffffffef0000000000000007bfffffffffffffffdff7ffffffffffffef00000000000
+00007bfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffffffdff7ffffffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffffffdff7ffffffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffffffdff7ffffffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbfffffffffffffffdff7ffffffffffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffc0ffbffffffff000000000000000001fffffeffffffffffff
+fc0ffbfffffffffbffff
+ffbffffffefffffffffffffdeffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fdeffbfffffffffbffff
+ffbffffffefffffffffffffdeffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fdeffbfffffffffbffff
+ffbffffffefffffffffffffdeffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fdeffbfffffffffbffff
+ffbffffffefffffffffffffdeffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fdeffbfffffffffbffff
+ffbffffffefffffffffffffc0ffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fc0ffbfffffffffbffff
+ffbffffffefffffffffffffffffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffefffffffffffffffffbffffffff7ffffffffffffffffdfffffeffffffffffff
+fffffbfffffffffbffff
+ffbffffffe000000000000000003ffffffff78000000000000003dfffffe000000000000
+000003fffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffe000000000000000003ffffffff7bffffffffffffffbdfffffe000000000000
+000003fffffffffbffff
+ffbffffffefffffffffffffffffdffffffff7bffffffffffffffbdfffffeffffffffffff
+fffffdfffffffffbffff
+ffbffffffdfffffffffffffffffdffffffff7bffffffffffffffbdfffffdffffffffffff
+fffffdfffffffffbffff
+ffbffffffdfffffffffffffffffeffffffff7bffffffffffffffbdfffffdffffffffffff
+fffffefffffffffbffff
+ffbffffffdffffffffffffffffff7fffffff7bffffffffffffffbdfffffdffffffffffff
+ffffff7ffffffffbffff
+ffbffffffbf0000000000000007f7fffffff7bffffffffffffffbdfffffbf00000000000
+00007f7ffffffffbffff
+ffbffffffbffffffffffffffffffbfffffff7bffffffffffffffbdfffffbffffffffffff
+ffffffbffffffffbffff
+ffbffffffbffffffffffffffffffdfffffff7bffffffffffffffbdfffffbffffffffffff
+ffffffdffffffffbffff
+ffbffffff7ffffffffffffffffffdfffffff7bffffffffffffffbdfffff7ffffffffffff
+ffffffdffffffffbffff
+ffbffffff7ffffffffffffffffffefffffff7bffffffffffffffbdfffff7ffffffffffff
+ffffffeffffffffbffff
+ffbffffff6000000000000000003f7ffffff7bffffffffffffffbdfffff6000000000000
+000003f7fffffffbffff
+ffbfffffeffffffffffffffffffff7ffffff7bffffffffffffffbdffffefffffffffffff
+fffffff7fffffffbffff
+ffbfffffeffffffffffffffffffffbffffff7bffffffffffffffbdffffefffffffffffff
+fffffffbfffffffbffff
+ffbfffffeffffffffffffffffffffdffffff7bffffffffffffffbdffffefffffffffffff
+fffffffdfffffffbffff
+ffbfffffdffffffffffffffffffffdffffff7bffffffffffffffbdffffdfffffffffffff
+fffffffdfffffffbffff
+ffbfffffc000000000000000000000ffffff7bffffffffffffffbdffffc0000000000000
+00000000fffffffbffff
+ffbfffffdffffffffffffffffffffeffffff7bffffffffffffffbdffffdfffffffffffff
+fffffffefffffffbffff
+ffbfffffdffffffffffffffffffffeffffff7bffffffffffffffbdffffdfffffffffffff
+fffffffefffffffbffff
+ffbfffffdffffffffffffffffffffeffffff7bffffffffffffffbdffffdfffffffffffff
+fffffffefffffffbffff
+ffbfffffdffffffffffffffffffffeffffff7bffffffffffffffbdffffdfffffffffffff
+fffffffefffffffbffff
+ffbfffffc000000000000000000000ffffff7bffffffffffffffbdffffc0000000000000
+00000000fffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffc7ffffffff3fffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffefffffffffbfffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffefffffffffbfffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffee26c7938c39ffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffedb6b7cb73b6ffffffffffff7bffffffffffffffbdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffef35e7db73b0ffffffffffff7bffffffffffffffbdfffffff01e7ffffce3
+ff3ff1fffffffffbffff
+ffbfffffffffecb997db73b7ffffffffffff7bffffffffffffffbdfffffffbdf7ffffe77
+ffbfeefffffffffbffff
+ffbfffffffffedbbb7db73b6ffffffffffff7bffffffffffffffbdfffffffbff7ffffe77
+ffbfeefffffffffbffff
+ffbfffffffff9c1b83898c19ffffffffffff7bffffffffffffffbdfffffffba9624c3eb7
+8c39fefffffffffbffff
+ffbfffffffffffffffffffffffffffffffff78000000000000003dfffffff8375b2b7e97
+73b6fefffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdfffffffbb7736b7ed7
+73b0fdfffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdfffffffbf74b6cfee7
+73b7fbfffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdfffffffbd75b6bfee7
+73b6f77ffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdfffffff00200243c77
+8c19e0fffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffe07fdfffffffffffffbbfff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffef7fdfffffffffffffbbfff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffef7fdfffffffffffff87fff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffef7fdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffef7fdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffe07fdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffdffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff000000000000000001ffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff000000000000000001ffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffff7ffffffffffffffffeffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffefffffffffffffffffeffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffeffffffffffffffffff7fffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffeffffffffffffffffffbfffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffdf8000000000000003fbfffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffdffffffffffffffffffdfffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffdffffffffffffffffffefffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffbffffffffffffffffffefffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffbfffffffffffffffffff7ffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffb000000000000000001fbffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffff7fffffffffffffffffffbffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffff7fffffffffffffffffffdffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffff7fffffffffffffffffffeffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffeffffffffffffffffffffeffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffe0000000000000000000007fffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffefffffffffffffffffffff7fffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffefffffffffffffffffffff7fffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffefffffffffffffffffffff7fffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffefffffffffffffffffffff7fffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffe0000000000000000000007fffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffff80f3ffffe71ff9ffcffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffdefbfffff3bffdffeffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffdffbfffff3bffdffeffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffdd4b1261f5bc61cfeffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffc1bad95bf4bb9db7effffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffddbb9b5bf6bb9d87effffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffdfba5b67f73b9dbfeffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffdebadb5ff73b9db7effffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffff80100121e3bc60cfc7fffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffffffddfffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffffffddfffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbffffffffffffffffffffffffffffffffffffffffc3fffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffbffff
+ff8000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000003ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff
+
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/lib/orber/doc/src/part.xml b/lib/orber/doc/src/part.xml
new file mode 100644
index 0000000000..c23456deef
--- /dev/null
+++ b/lib/orber/doc/src/part.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber User's Guide</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-04-26</date>
+ <rev>2.2</rev>
+ </header>
+ <description>
+ <p>The <em>Orber</em> application is an Erlang implementation of a
+ CORBA Object Request Broker.</p>
+ </description>
+ <xi:include href="ch_contents.xml"/>
+ <xi:include href="ch_introduction.xml"/>
+ <xi:include href="ch_orber_kernel.xml"/>
+ <xi:include href="ch_ifr.xml"/>
+ <xi:include href="ch_install.xml"/>
+ <xi:include href="ch_idl_to_erlang_mapping.xml"/>
+ <xi:include href="ch_naming_service.xml"/>
+ <xi:include href="ch_security.xml"/>
+ <xi:include href="ch_example.xml"/>
+ <xi:include href="ch_stubs.xml"/>
+ <xi:include href="ch_exceptions.xml"/>
+ <xi:include href="ch_interceptors.xml"/>
+ <xi:include href="ch_orberweb.xml"/>
+ <xi:include href="ch_debugging.xml"/>
+</part>
+
diff --git a/lib/orber/doc/src/part_notes.xml b/lib/orber/doc/src/part_notes.xml
new file mode 100644
index 0000000000..0ff4453d8c
--- /dev/null
+++ b/lib/orber/doc/src/part_notes.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Release Notes</title>
+ <prepared>Lars Thors&eacute;n, Peter Lundell</prepared>
+ <docno></docno>
+ <date>1999-04-20</date>
+ <rev>2.0</rev>
+ </header>
+ <description>
+ <p>The Orber Application is an Erlang implementation of a CORBA Object
+ Request Broker.</p>
+ <p>For information about older versions see
+ <url href="part_notes_history_frame.html">release notes history</url>.</p>
+ </description>
+ <xi:include href="notes.xml"/>
+</part>
+
diff --git a/lib/orber/doc/src/part_notes_history.xml b/lib/orber/doc/src/part_notes_history.xml
new file mode 100644
index 0000000000..624865014e
--- /dev/null
+++ b/lib/orber/doc/src/part_notes_history.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part>
+ <header>
+ <copyright>
+ <year>2004</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Orber Release Notes History</title>
+ <prepared>Niclas Eklund</prepared>
+ <docno></docno>
+ <date>2004-09-15</date>
+ <rev>1.0</rev>
+ </header>
+ <description>
+ <p>The Orber Application is an Erlang implementation of a CORBA Object
+ Request Broker.</p>
+ </description>
+ <include file="notes_history"></include>
+</part>
+
diff --git a/lib/orber/doc/src/ref_man.gif b/lib/orber/doc/src/ref_man.gif
new file mode 100644
index 0000000000..b13c4efd53
--- /dev/null
+++ b/lib/orber/doc/src/ref_man.gif
Binary files differ
diff --git a/lib/orber/doc/src/ref_man.xml b/lib/orber/doc/src/ref_man.xml
new file mode 100644
index 0000000000..638463fc84
--- /dev/null
+++ b/lib/orber/doc/src/ref_man.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE application SYSTEM "application.dtd">
+
+<application xmlns:xi="http://www.w3.org/2001/XInclude">
+ <header>
+ <copyright>
+ <year>1997</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>Orber Reference Manual</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date>1998-05-05</date>
+ <rev>2.0</rev>
+ </header>
+ <description>
+ <p>The <em>Orber</em> application is an Erlang implementation of a
+ CORBA Object Request Broker.</p>
+ </description>
+ <xi:include href="any.xml"/>
+ <xi:include href="fixed.xml"/>
+ <xi:include href="corba.xml"/>
+ <xi:include href="corba_object.xml"/>
+ <xi:include href="orber.xml"/>
+ <xi:include href="orber_ifr.xml"/>
+ <xi:include href="orber_tc.xml"/>
+ <xi:include href="orber_acl.xml"/>
+ <xi:include href="CosNaming.xml"/>
+ <xi:include href="CosNaming_NamingContext.xml"/>
+ <xi:include href="CosNaming_NamingContextExt.xml"/>
+ <xi:include href="CosNaming_BindingIterator.xml"/>
+ <xi:include href="lname.xml"/>
+ <xi:include href="lname_component.xml"/>
+ <xi:include href="Module_Interface.xml"/>
+ <xi:include href="interceptors.xml"/>
+ <xi:include href="orber_diagnostics.xml"/>
+</application>
+
diff --git a/lib/orber/doc/src/summary.html.src b/lib/orber/doc/src/summary.html.src
new file mode 100644
index 0000000000..f88ee7218f
--- /dev/null
+++ b/lib/orber/doc/src/summary.html.src
@@ -0,0 +1 @@
+A CORBA Object Request Broker
diff --git a/lib/orber/doc/src/theORB.gif b/lib/orber/doc/src/theORB.gif
new file mode 100644
index 0000000000..976672b8df
--- /dev/null
+++ b/lib/orber/doc/src/theORB.gif
Binary files differ
diff --git a/lib/orber/doc/src/theORB.ps b/lib/orber/doc/src/theORB.ps
new file mode 100644
index 0000000000..65e6f0701b
--- /dev/null
+++ b/lib/orber/doc/src/theORB.ps
@@ -0,0 +1,635 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (./theORB.tmp.eps)
+%%CreationDate: (Tue Jun 12 17:47:30 2001)
+%%BoundingBox: 0 34 377 386
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%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.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/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 gt
+ {
+ /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 gt
+ {
+ /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 gt
+ {
+ /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 gt
+ {
+ /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-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ 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
+ /Helvetica 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
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 34 377 386
+userdict begin
+%%BeginData:
+DisplayImage
+0 34
+377.000000 352.000000
+12
+451 421
+1
+0
+0
+8
+ffffff
+000000
+00d000
+0000ff
+900090
+b000b0
+000000
+000000
+00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff00ff00ff00ff00ff00ff001a040f0081040f00ff001b0404000f04040077
+0404000f040400ff0012040300190403006f04030019040300ff000b0402002104020069
+04020021040200ff0006040100270401006504010027040100ff00010402002b0402005f
+0402002b040200fc040100310401005b04010031040100f9040000350400005904000035
+040000f6040100370401005504010037040100f20401003b040100510401003b040100ef
+0400003f0400004f0400003f040000ed040000410400004d04000041040000ea04010043
+0401004904010043040100e7040000470400004704000047040000e50400004904000045
+04000049040000e30400004b040000430400004b040000e10400004d040000410400004d
+040000df0400004f0400003f0400004f040000dd040000510400003d04000051040000db
+040000530400003b04000053040000d9040000550400003904000055040000d704000057
+0400003704000057040000d5040000590400003504000059040000d30400005b04000033
+0400005b040000d20400005b040000330400005b040000d10400005d040000310400005d
+040000cf0400005f0400002f0400005f040000ce0400005f0400002f0400005f040000cd
+040000610400002d04000061040000cc040000610400002d04000061040000cb04000063
+0400002b04000063040000c9040000650400002904000065040000c80400006504000029
+04000065040000c7040000670400002704000067040000c6040000670400002704000067
+040000c6040000670400002704000067040000c5040000690400002504000069040000c4
+040000690400002504000069040000c30400006b040000230400006b040000c20400006b
+040000230400006b040000c20400006b040000230400006b040000c10400006d04000021
+0400006d040000c00400006d040000210400006d040000c00400006d040000210400006d
+040000c00400006d040000210400006d040000bf0400006f0400001f0400006f040000be
+0400006f0400001f0400006f040000be0400006f0400001f0400006f040000be0400006f
+0400001f0400006f040000be0400001d0405000004080000040600030403000304020000
+04080000040600180400001f0400006f040000bd0400001d040100020401000104010004
+040000010401000204020002040100050400000204010004040000010401000204020017
+0400001d04000071040000bc0400001d0401000304000001040100040400000104010003
+040100020402000304010002040100040400000104010003040100170400001d04000071
+040000bc0400001d04020005040100030400000204010003040100030401000304000003
+040100030400000204010003040100170400001d04000071040000bc0400001e04020004
+040100030400000204010002040200030402000204000003040100030400000204010002
+040200170400001d0400001b0405000004030005040d000004030002040e001f040000bc
+0400001f040300020406000204060005040100010400000404060002040600180400001d
+0400001a0401000204010001040100080401000104010004040000020402000304000001
+04000002040100020400001f040000bc0400002104020001040100030400000204010000
+0401000704020000040000040401000304000002040100000401001a0400001d04000019
+040100040400000104010008040100010401000404000002040300020400000104000002
+040100020400001f040000bc040000220401000104010003040000020401000104010007
+04030004040100030400000204010001040100190400001d040000180401000504000001
+0401000804010001040100030400000304000000040100020400000504010023040000bc
+0400001d0400000304010001040100050400000004010002040100060402000504010005
+0400000004010002040100180400001d0400001804010008040100080401000104010003
+0400000304000001040100010400000504010023040000bc0400001d0401000204010001
+040100040401000004010002040200060401000504010004040100000401000204020017
+0400001d0400001804010008040100080401000104060003040000010402000004000005
+04010023040000bc0400001d0400000004030001040d00020402000504000005040d0002
+040200160400001d04000018040100080401000804010001040100030400000304000002
+0403000504010023040000bc040000710400001d04000018040100080401000804010001
+0401000304000003040000030402000504010023040000bc040000710400001d04000019
+040100040400000104010004040000020401000104010005040000010400000404010005
+04010023040000bc040000710400001d0400001904020002040000020401000304010002
+040100010401000404010001040000040401000504010023040000bc040000710400001d
+0400001b0403000204080000041300030400000404030022040000bc0400002504000002
+0404000304020006040100110400001f0400001d04000071040000bc0400002304010002
+0401000204010003040100060401000f040000010401001d0400001d04000071040000bd
+0400002104010002040100040401000204010018040000020401001b0400001f0400006f
+040000be0400002104000002040100060401000104010000040200030400000104030002
+04030000040400000401001b0400001f0400006f040000be040000200401000204010006
+04010001040600000402000004000002040100000401000104010000040100030401001a
+0400001f0400001f0400000204040003040200060401001104000023040000be04000020
+0401000204010006040100010401000104020001040a0005040100030401001a0400001f
+0400001d040100020401000204010003040100060401000f0400000104010021040000be
+040000200401000204010006040100010401000204010001040300040401000504010003
+0401001a0400001f0400001c040100020401000404010002040100180400000204010020
+040000bf0400001f04010002040100060401000104010002040100010403000404010003
+040000000401000304010019040000210400001b04000002040100060401000104010000
+04020003040000010403000204030000040400000401001f040000c00400001f04010003
+040100040401000204010002040100010404000204030001040100000401000004000001
+04010019040000210400001a040100020401000604010001040600000402000004000002
+040100000401000104010000040100030401001e040000c00400001f0401000404010002
+040100030401000104010002040100000404000104040001040300010401001904000021
+0400001a0401000204010006040100010401000104020001040a0005040100030401001e
+040000c00400002004010004040400050403000304010001040200030402000204020001
+0401001a040000210400001a040100020401000604010001040100020401000104030004
+04010005040100030401001e040000c10400002004000017040100130400001a04000023
+040000190401000204010006040100010401000204010001040300040401000304000000
+040100030401001d040000c2040000200401001304000001040100120401001a04000023
+040000190401000304010004040100020401000204010001040400020403000104010000
+04010000040000010401001d040000c20400002204000012040300120400001c04000023
+040000190401000404010002040100030401000104010002040100000404000104040001
+040300010401001d040000c3040000690400002504000019040100040404000504030003
+040100010402000304020002040200010401001d040000c404000069040000250400001a
+04000017040100130400001e040000c50400006704000027040000190401001304000001
+040100120401001d040000c604000067040000270400001b04000012040300120400001f
+040000c6040000670400002704000067040000c7040000650400002904000065040000c8
+040000650400002904000065040000c9040000630400002b04000063040000cb04000061
+0400002d04000061040000cc040000610400002d04000061040000cd0400005f0400002f
+0400005f040000ce0400005f0400002f0400005f040000cf0400005d040000310400005d
+040000d10400005b040000330400005b040000d20400005b040000330400005b040000d3
+040000590400003504000059040000d5040000570400003704000057040000d704000055
+0400003904000055040000d9040000530400003b04000053040000db040000510400003d
+04000051040000dd0400004f0400003f0400004f040000df0400004d040000410400004d
+040000e10400004b040000430400004b040000e3040000490400004504000049040000e5
+040000470400004704000047040000e7040100430401004904010043040100ea04000041
+0400004d04000041040000ed0400003f0400004f0400003f040000ef0401003b04010051
+0401003b040100f2040100370401005504010037040100f6040000350400005904000035
+040000f9040100310401005b04010031040100fc0402002b0402005f0402002b040200ff
+0001040100270401006504010027040100ff0006040200210402006904020021040200ff
+000b040300190403006f04030019040300ff00120404000f040400770404000f04040003
+020100ff0015040f0081040f0008020100ff00c0020100ff00c0020200ff00c0020100ff
+00c0020000ff0015020000ff00c1020000ff00c0020100ff00bf020200ff00be020200ac
+020100ff0010020200ac020100ff000f020300ac020100ff000e020400ac020200ff000c
+020500ad020100ff000c020400ae020000ff000c020500ff00bb020600ff00ba020700ff
+00ba020700af020100ff0007020700b0020100ff0006020800b0020100ff0005020900b1
+020100ff0004020900b1020100ff0003020a00b1020100ff0002020a00b2020000ff0002
+02020004020300ff00bb02000001020300ff00bb02010001020200ff00ba020200010202
+00b5020000ff000302010003020000b5020100ff0002020100bb020100ff0002020100bb
+020100ff00c0020100ff00ff00ff00ff0086020000ff00c1020100ff00bf020200ff00bf
+020100c0020100fc020100c1020100fc020100c1020100ff00c1020100ff00c0020100ff
+00c0020000ff00ff00bc020100ff00bf020200ff00bf020100c8020100f5020100c80201
+00f5020100c8020100ff00c0020100ff00c0020100ff00ff00ff00ff0078020100ff00bf
+020200ff00bf020100ff00c0020100cf020100ff00c0020100ff00c0020100ff00c00201
+00ff00ff00ae020000ff00c0020200ff00bf020100ff00c0020100ff00c0020100d60200
+00ff00c0020200ff00c0020100ff00c0020100ff00c0020100e3020000db020000e40201
+00ff00c0020100ff00bf020200ff00c0020000ff00ff00a0020100ff00c0020200ff00c0
+020100dc020000e2020100dc020100e1020100db020200e1020000dc020100ff00bf0201
+00ff00c0020100ff00ff00ff00ff006b020200ff00c0020100ff00c0020100d4020000ea
+020100d4020100e9020000d4020200ff00bf020100ff00bf020100ff00c0020100ff00ff
+00b1020100ff00c0020100ff00c0020100ff00c0020100cc020000e104100202042d0067
+04340202040900d6040000100200002d0400006704000004040000060400000604000006
+0400000604000006040000050201000604000001040000d60400003f0400006704000003
+0400000604000006040000060400000604000006040000050201000604000002040000d6
+0400003f0400006704000002040000060400000604000006040000060400000604000006
+0201000504000003040000d6040000010100000201000002010000020100000201000002
+010000020100000201000002010000020100000201000002010000020100000201000002
+010000020100000004000067040000010400000604000006040000060400000604000006
+0400000604000200000504000004040000d60400003f0400006704000000040000060400
+0006040000060400000604000006040000060400000604000005040000d6040000130201
+002904000067040100060400000604000006040000060400000604000006040000060400
+0006040000d6040000130201002904000067040000060400000604000006040000060400
+0006040000060400000604000006040100d6040000010100000601000006010000000202
+000201000006010000060100000601000006010000040400006704000005040000060400
+0006040000060400000604000006040000060400000604000000040000d6040000140201
+002804000067040000040400000405050003040000060400000305010000040000060400
+020000050400000604000001040000d60400001402010028040000670400000304000004
+050104000001050100020500000604000001050000010501040000060400000002010003
+0400000604000002040000d6040000140200002904000067040000020400000505010003
+050000010400050000050400000205000002040000060400000002020002040000060400
+0003040000d6040000010100000201000002010000020100000201000002010000020100
+000201000002010000020100000201000002010000020100000201000002010000020100
+000004000067040000010400000605020004050800010504040005000002050300010201
+00020400000604000004040000d60400003f040000670400000004000006040000000502
+000204000000050100000501000004000501000105010000050200010501000004000501
+020200010400000604000005040000d60400003f04000067040100060400000205030400
+000105010000050104000000050100010501040000000501000005010000040000030200
+00010400000604000006040000d60400003f040000670400000604000005050200010501
+000104000503000105010001050100000501040000060400000604000006040100d60400
+000101000006010000060100000302020100000601000006010000060100000601000004
+040000670400000504000006040005010001050100000400050000010501000105010001
+050100000501000305000001040000060400000604000000040000d60400001702010025
+040000670400000404000003050000010400000005010001050104000501000105010000
+040005010000050200000502000105010000040000060400000604000001040000d60400
+001702010025040000670400000304000004050104000001050100010509000005050400
+000005040000040000060400000604000002040000d604000012050c0003050300170400
+006704000002040000050500040005030002050500000501000105060001050202000400
+00060400000604000003040000d604000001010000020100000201000002010000020100
+000105010001050100020100050100000100000105010002010000020100000201000002
+010000020100000201000000040000670400000104000006040000060400000604000006
+040000040201040000060400000604000004040000d60400001405010001050100040501
+000205010018040000670400000004000006040000060400000604000006040000040202
+00060400000604000005040000d604000014050100010501000505010001050100180400
+006704010006040000060400000604000006040000040202000604000006040000060400
+00d604000014050100010501000505010001050100180400006704000006040000060400
+00060400000604000005020100060400000604000006040100d604000001010000060100
+000601000001050100010501000505010001050100020100000601000006010000040400
+006704000005040000060400000604000006040000060400000604000006040000060400
+0000040000d6040000140501000105010000020000030501000105010018040000670400
+000404000006040000060400000604000006040000060400000604000006040000010400
+00d604000014050100010501020200020501000105010018040000670400000304000006
+04000006040000060400000604000006040000060400000604000002040000d604000014
+050100010501000002010001050100020501000405000012040000670400000204000006
+04000006040000060400000604000006040000060400000604000003040000d604000001
+010000020100000201000002010000020100000105010001050100000202050100000100
+000105010002010005010000010000020100000201000002010000020100000004000067
+040000010400000604000006040000060400000604000200000504000006040000060400
+0004040000d604000012050b00040508001204000067040000000400000604000003050c
+0003050302010003040000060400000604000005040000d60400003f0400006704010006
+040000060501000105010001040000000501000305010201000304000006040000060400
+0006040000d60400003f0400006704000006040000060400050100010501000004000002
+050100010400050102000003040000060400000604000006040100d60400000101000006
+010000060100000601000006010000060100000601000006010000040400006704000005
+040000060400000005010001050104000004050104000000050102000002040000060400
+00060400000604000000040000d60400003f040000670400000404000006040000010501
+000105010005050100010501000204000006040000060400000604000001040000d60400
+00200200001d040000670400000304000006040000020501000105010005050100010501
+000104000006040000060400000604000002040000d60400001f0201001d040000670400
+000204000006040000030501000004000501000404000501000105010000040000060400
+00060400000604000003040000d604000001010000020100000201000002010000020100
+000201000002010000020100000002020002010000020100000201000002010000020100
+000201000002010000000400006704000001040000060400000405010400000005010003
+0400000005010001050104000006040000060400000604000004040000d6040000200201
+001c04000067040000000400000604000005050100010501000204000000050100020501
+000405000000040000060400000604000005040000d6040000210201001b040000670401
+000604000006050100010501000104000000050102010001050100030501040000060400
+000604000006040000d60400003f040000670400000604000005050b0000020200000508
+00060400000604000006040100d604000001010000060100000601000006010000060100
+000601000006010000060100000404000067040000050400000604000006040000020202
+00000400000604000006040000060400000604000000040000d60400003f040000670400
+000404000006040000060400000302010000040000060400000604000006040000060400
+0001040000d60400000f0505000c05020019040000670400000304000006040000060400
+00060400000604000006040000060400000604000002040000d60400000e050100020501
+000205000009050102000018040000670400000204000006040000060400000604000006
+04000006040000060400000604000003040000d604000001010000020100000201000002
+010005010000010000010500010000010500010000020100000201000000050102000002
+010000020100000201000002010000020100000201000000040000670400000104000006
+04000006040000060400000604000006040000060400000604000004040000d60400000e
+05020004050600000502000105010200050200010503000f040000670400000004000006
+0400000604000003020000010400000604000006040000060400000604000005040000d6
+0400000f05020004050100010501000105010001050800010500000f0400006704010006
+040000060400000302020400000604000006040000060400000604000006040000d60400
+001005030002050100010501000105010001050100000200050500000500000f04000067
+040000050505000005020003020204000003050204000006040000060400000604000006
+040100d60400000101000006010000060100050200010501010000000501000105010100
+000005010002050100000502000201000006010000040400006704000004050100020501
+000105010002020204000005050100060400000105000003040000060400000604000000
+040000d6040000130501000105010001050100010501000105010002050100010503000e
+040000670400000405010003050000000400050100020201040000060501000504000002
+05000002040000060400000604000001040000d60400000e050000030501000105010000
+050200010501000105010002050200020501000e04000067040000030400050200030400
+000005010001050200010503000004000501000205030000050404000503000204000500
+00000502000104000002040000d60400000e050100020501000105090001050100010501
+0000050000020501000e0400006704000002040000010502000104000001050100010501
+000105000002050100000501000105000000040000000501000005010000040005010001
+050100000506000004000003040000d60400000101000002010000020100000201000500
+000005030000010000000502000005020000050200010503000001000504000101000002
+010000020100000201000000040000670400000104000003050300020501000005010001
+050600000501000005060000050104000501000305010000050100010501040000040400
+00d60400002a020100120400006704000000040000060502000105030002050100010400
+000205010000050100050501000005010003050100000501000105010005040000d60400
+002b02010011040000670401000604000000050100010501040005010001050100000400
+0003050100000501000505010000050100020400050100000501000105010005040000d6
+0400002b0202001004000067040000040500000004000001050100000200050102000502
+000005020002050000000501040005020002050004000501000005010001040000000501
+000005010000040005010004040100d60400000101000006010000060100000601000006
+010000060100000102010002010000060100000404000067040000040501000205010201
+050100010502000005040001050100010504040000000505040000000501000105010400
+00000501000304000000040000d60400003f040000670400000405000000050300000200
+050300000502040000000502000105030001050204000001050200010503000105070001
+04000001040000d60400003f040000670400000304000006040000060400000604000006
+04000006040000060400000604000002040000d60400003f040000670400000204000006
+04000006040000060400000604000006040000060400000604000003040000d604000001
+010000020100000201000002010000020100000201000002010000020100000201000002
+010000020100000201000002010000020100000201000002010000000400006704000001
+0400000604000006040000060400000604000006040000060400000604000004040000d6
+040000310200000c04000067040000000400000502000400000604000006040000060400
+0006040000060400000604000005040000d6040000310201000b04000067040100050202
+0005040000060400000604000006040000060400000604000006040000d6040000310202
+000a04000067040000050202000504000006040000060400000604000006040000060400
+0006040100d6040000010100000601000006010000060100000601000006010000060100
+020200030100000404000067040000040202000504000006040000060400000604000006
+040000060400000604000000040000d60400003302010009040000670400000404000200
+000504000006040000060400000604000006040000060400000604000001040000d60400
+003f04000067040000030400000604000006040000060400000604000006040000060400
+000604000002040000d60400003f04000067040000020400000604000006040000060400
+000604000006040000060400000604000003040000d60400000101000002010000020100
+000201000002010000020100000201000002010000020100000201000002010000020100
+000201000002010000020100000201000000040000670400020000000400000604000006
+040000060400000604000006040000060400000604000004040000d60400003902000004
+040000670202000604000006040000060400000604000006040000060400000604000005
+040000d60400003802030002040000650203000604000006040000060400000604000006
+040000060400000604000006040000d60400003a02020001040000640202040000060400
+0006040000060400000604000006040000060400000604000006040100d6040000010100
+000601000006010000060100000601000006010000060100000601000000020200000400
+006402010000040000050400000604000006040000060400000604000006040000060400
+000604000000040000d60400003c02010000040000670400000404000006040000060400
+00060400000604000006040000060400000604000001040000b703ff0328009903c00200
+03660099030100bd02020063030100990301006002010058020300640301009903010060
+02030055020200660301009903010061020300be03010099030100630201004e0200006e
+03010099030100b30202006d0301009903010069020200440203006e0301009903010069
+0204004102020070030100990301006b020300b4030100990301006d0200003b02010077
+0301009903010074020000310205007603010099030100730203002f0203007803010099
+03010074020400030202001d020400800301009903010076020100040206000302020006
+020500050205007f030100990301008002020004020500030205008b030100990301008b
+0201009603010099030100ff002403010099030100ff0024030100990301003303040003
+03020006030100150306002f0307000f0302001803000002030400030306000303070002
+0300003603010099030100320301000203010003030100060301000f0300000503010002
+0302002703000005030100020302000f0301001603010002030100020301000303010002
+030200020301000203020002030100340301009903010031030100040301000203010018
+03000005030100030301002703000005030100030301000f030100150301000203010004
+030100020301000303010002030100030301000303010033030100990301003003010006
+030100010301000003020003030000010303000203030000030400030301000303010003
+030300020302000003000000030200000302000203030001030300000304000303010003
+030100010305000003030002030100010302000103030000030500030300000203010006
+030100010301000303010002030100030301000303010033030100990301003003010006
+030100010306000003020000030000020301000003010001030100000301000503010002
+030200020300000203010000030100010301000103010001030100010300000203030001
+030000010301000503010002030100030301000103020001030100010301000103010001
+030000020301000003010001030000020301000203010006030100010301000203020002
+030100020301000503010032030100990301003003010006030100010301000103020001
+030a00050301000503060002030800020301000103010001030100000309000003000001
+030100050306000303010001030100030301000003010000030100010306000003010005
+030100020301000603010001030600030306000503010032030100990301003003010006
+030100010301000203010001030300040301000503010005030100000301000403010004
+030100020301000103010001030100000301000503020002030100050301000203020002
+030100010301000303010000030300020301000503010005030100020301000603010001
+030100000301000503010002030200040301003203010099030100300301000603010001
+030100020301000103030004030100030300000003010005030100010301000303010004
+030100020301000103010001030100000301000603030000030100050301000303010002
+030100010301000303010000030100000301000103010005030100050301000203010006
+030100010301000103010004030100030301000403010032030100990301003103010004
+030100020301000203010001030400020303000103010000030100000300000303010002
+030100020302000203030001030100010301000103010000030200020301000203010000
+030100000300000303010003030100020301000103010003030100000301000003020000
+030200020300000003010005030100030301000403010002030100020301000303010003
+030100040301003203010099030100320301000203010003030100010301000203010000
+030400010304000103030003030100020302000203040000030600010305000103040000
+030000020301000003030003030100020302000203010002030100010301000103010001
+030200000304000103010005030100040301000203010003030100020302000203010002
+030200040301003203010099030100330304000503030003030100010302000303020002
+030200030303000203020002030200020302000003010001030200000302000103020001
+030400010302000303060003030300020303000103030000030200010302000103030005
+03010004030400030303000203020000030600050301003303010099030100460301002c
+0301004f03000025030000340301009903010043030000010301002c0301004f03010023
+0301003403010099030100430303002c03030050030000210300003603010099030100ff
+002403010099030100ff002403010099030100ff002403010099030100ff002403010099
+030100ff002403010099030100ff002403010099030100ff002403010099030100ff0024
+03010099030100ff002403010099030100ff002403010099030100ff0024030100990301
+00ff002403010099030100ff002403010099030100ff002403010099030100ff00240301
+0099030100ff002403010099030100ff002403010099030100ff002403010099030100ff
+002403010099030100ff002403010099030100ff002403010099030100ff002403010099
+030100ff002403010099030100ff002403010099030100ff002403010099030100ff0024
+0301009903ff0328009903ff032800ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff007b020200ff00410202007802000001020100ff00420205007402000001
+020100ff0043020900270200000002010001020200020203000102030001020300010203
+0002020300040203000602000000020200010203000102060000020200ff0040020d0020
+020a00010200000202030001020000000201000102000000020100010201000002010001
+02030000020000020201000302060000020100010201000102010001020500ff001a0205
+000502050005020500050214001c02010001020100010201000002090000020000000202
+000002000000020100010201000002010002020100000206000402010001020400010201
+00010201000102010001020100ff001a0205000502050005020500050218001802010001
+020100010201000002010005020200020202000302030000020100020201000002010009
+0201000202010001020300010201000102010001020100ff00400212001c020100010201
+000102010000020100060203000102030000020000010201000002050001020100090201
+00020201000002000001020100010201000102010001020100ff0040020d002102010001
+020100010201000002020002020100020202000202030001020100000200000602020002
+020000040201000202030001020100010201000002020001020100ff003f020900260201
+00010201000102010001020400000200000202020002020f000102040005020100010201
+00000206000002050001020100ff003e0205002a020b0001020200010204000002040000
+02020000020100000207000102020006020400010202000002010001020a00ff003c0202
+0054020100040200000b020100ff00ac0206000c020100ff00ad0204000c020300ff00ff
+00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff
+00ff00ff00ff00ff00ff00a9
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 34 377 386
+%%EOF
diff --git a/lib/orber/doc/src/tools_debugging_part.xml b/lib/orber/doc/src/tools_debugging_part.xml
new file mode 100644
index 0000000000..edab8ad0d4
--- /dev/null
+++ b/lib/orber/doc/src/tools_debugging_part.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE part SYSTEM "part.dtd">
+
+<part>
+ <header>
+ <copyright>
+ <year>2002</year>
+ <year>2007</year>
+ <holder>Ericsson AB, All Rights Reserved</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ The Initial Developer of the Original Code is Ericsson AB.
+ </legalnotice>
+
+ <title>Tools, Debugging and FAQ</title>
+ <prepared>Niclas Eklund</prepared>
+ <docno></docno>
+ <date>2002-06-25</date>
+ <rev>A</rev>
+ </header>
+ <description>
+ <p>This chapter describe the available tools and debugging facilities for Orber.
+ Also contain a FAQ listing of the most common mistakes.</p>
+ </description>
+ <include file="ch_orberweb"></include>
+ <include file="ch_debugging"></include>
+</part>
+
diff --git a/lib/orber/doc/src/user_guide.gif b/lib/orber/doc/src/user_guide.gif
new file mode 100644
index 0000000000..e6275a803d
--- /dev/null
+++ b/lib/orber/doc/src/user_guide.gif
Binary files differ
diff --git a/lib/orber/ebin/.gitignore b/lib/orber/ebin/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/ebin/.gitignore
diff --git a/lib/orber/examples/Makefile b/lib/orber/examples/Makefile
new file mode 100644
index 0000000000..5b8e06bd37
--- /dev/null
+++ b/lib/orber/examples/Makefile
@@ -0,0 +1,41 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Common Macros
+# ----------------------------------------------------
+
+SUB_DIRECTORIES = Stack
+
+SPECIAL_TARGETS =
+
+# ----------------------------------------------------
+# Default Subdir Targets
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_subdir.mk
+
diff --git a/lib/orber/examples/Stack/InitialReferences.idl b/lib/orber/examples/Stack/InitialReferences.idl
new file mode 100644
index 0000000000..7c1dddc7c4
--- /dev/null
+++ b/lib/orber/examples/Stack/InitialReferences.idl
@@ -0,0 +1,12 @@
+typedef string ObjectId;
+typedef sequence <ObjectId> ObjectIdList;
+
+module Orber {
+interface InitialReferences {
+
+ Object get(in ObjectId id);
+
+ ObjectIdList list();
+
+};
+};
diff --git a/lib/orber/examples/Stack/Makefile b/lib/orber/examples/Stack/Makefile
new file mode 100644
index 0000000000..6e7f292a04
--- /dev/null
+++ b/lib/orber/examples/Stack/Makefile
@@ -0,0 +1,121 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+
+EBIN= ../../ebin
+
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+IDL_FILES = \
+ stack.idl \
+ InitialReferences.idl
+
+GEN_ERL_MODULES = \
+ oe_stack \
+ StackModule_Stack \
+ StackModule_StackFactory \
+ StackModule_EmptyStack
+
+MODULES= \
+ StackModule_Stack_impl \
+ StackModule_StackFactory_impl \
+ stack_factory \
+ stack_client
+
+GEN_HRL_FILES = \
+ oe_stack.hrl \
+ StackModule.hrl \
+ StackModule_Stack.hrl \
+ StackModule_StackFactory.hrl
+
+HRL_FILES=
+
+ERL_FILES= $(MODULES:%=%.erl)
+
+JAVA_CLASSES = \
+ StackClient
+
+JAVA_FILES= $(JAVA_CLASSES:%=%.java)
+CLASS_FILES= $(JAVA_CLASSES:%=%.class)
+
+TARGET_FILES = \
+ $(GEN_ERL_MODULES:%=$(EBIN)/%.$(EMULATOR)) \
+ $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+
+TEST_TARGET_FILES =
+
+CPP_FILES = StackClient.cc
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+ERL_IDL_FLAGS += -pa $(ERL_TOP)/lib/orber/ebin -pa $(ERL_TOP)/lib/ic/ebin
+# The -pa option is just used temporary until erlc can handle
+# includes from other directories than ../include .
+ERL_COMPILE_FLAGS += \
+ $(ERL_IDL_FLAGS) \
+ -pa $(ERL_TOP)/lib/orber -I$(ERL_TOP)/lib/orber
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+debug opt: $(TARGET_FILES)
+
+clean:
+ rm -f $(TARGET_FILES) $(GEN_ERL_MODULES:%=%.erl) $(GEN_HRL_FILES) $(CLASS_FILES)
+ rm -f errs core *~
+
+docs:
+
+test: $(TEST_TARGET_FILES)
+
+
+$(GEN_ERL_MODULES:%=%.erl) $(GEN_HRL_FILES): stack.idl
+ erlc $(ERL_IDL_FLAGS) stack.idl
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/examples/Stack
+ $(INSTALL_DATA) $(ERL_FILES) $(JAVA_FILES) $(CPP_FILES) $(IDL_FILES) $(RELSYSDIR)/examples/Stack
+
+
+release_docs_spec:
+
+
diff --git a/lib/orber/examples/Stack/StackClient.cc b/lib/orber/examples/Stack/StackClient.cc
new file mode 100644
index 0000000000..30ed85fa58
--- /dev/null
+++ b/lib/orber/examples/Stack/StackClient.cc
@@ -0,0 +1,96 @@
+/**
+ * <copyright>
+ * <year>2000-2007</year>
+ * <holder>Ericsson AB, All Rights Reserved</holder>
+ *</copyright>
+ *<legalnotice>
+ * 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.
+ *
+ * The Initial Developer of the Original Code is Ericsson AB.
+ *</legalnotice>
+ */
+/**
+ * This module gives an example how it is possible to setup a connection
+ * Orbix3.0.1 and Orber3.0.2
+ */
+
+
+#define USE_IIOP
+
+#include <iostream.h>
+#include <stdio.h>
+#include <fstream.h>
+#include <stdlib.h>
+
+#include "NamingService.hh"
+#include "InitialReference.hh"
+#include "InitialReferences.hh"
+#include "stack.hh"
+
+
+int main(int argc, char** argv) {
+
+ CORBA::Object_ptr nsRef, initRef, objRef;
+ InitialReference init;
+ Orber::InitialReferences_var initp;
+ CosNaming::NamingContext_var Ns;
+ CosNaming::NameComponent nc;
+ CosNaming::Name_var name;
+ StackModule::StackFactory_var stackFac;
+ StackModule::Stack_var stack;
+
+ if (argc < 3) {
+ cout << "usage: " << argv[0] << " <hostname>" << " <srvport>" << endl;
+ exit (-1);
+ }
+
+ string srvHost = argv[1];
+ long srvPort = atoi(argv[2]);
+
+ cout << "Using host: " << srvHost << " Port: " << srvPort << endl;
+
+ try
+ {
+ // Create Initial reference (objectkey "INIT").
+ const string s = init.stringified_ior(srvHost, srvPort);
+ initRef = CORBA::Orbix.string_to_object(s);
+ initp = Orber::InitialReferences::_narrow(initRef);
+ nsRef = initp->get("NameService");
+ Ns = CosNaming::NamingContext::_narrow(nsRef);
+
+ // Create a name component.
+ name = new CosNaming::Name(1);
+ name->length(1);
+ name[0].id = CORBA::string_dup("StackFactory");
+ name[0].kind = CORBA::string_dup("");
+
+ // Look up the Object in the NamingService.
+ objRef = Ns->resolve(name);
+ stackFac = StackModule::StackFactory::_narrow(objRef);
+ stack = stackFac->create_stack();
+
+ // push & pop
+ stack->push(8);
+ stack->push(7);
+ stack->push(6);
+ cout << "Stack: " << stack->pop()
+ << " " << stack->pop()
+ << " " << stack->pop() << endl;
+
+ } catch(...) {
+ cerr << "call failed" << endl;
+ cerr << "Unexpected exception " << endl;
+ exit(1);
+ }
+ cout << "Completed successfully" << endl;
+ return 0;
+}
diff --git a/lib/orber/examples/Stack/StackClient.java b/lib/orber/examples/Stack/StackClient.java
new file mode 100644
index 0000000000..4e8c0176a8
--- /dev/null
+++ b/lib/orber/examples/Stack/StackClient.java
@@ -0,0 +1,72 @@
+/*
+ * %CopyrightBegin%
+ *
+ * Copyright Ericsson AB 1997-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%
+ *
+ */
+/*
+ * Stack example.
+ */
+
+package StackModule;
+import org.omg.CORBA.*;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.ORB.*;
+
+public class StackClient
+{
+ public static void main(String args[])
+ {
+ org.omg.CORBA.Object objRef;
+ StackFactory sfRef = null;
+ Stack sRef = null;
+ // The argument can look like
+ // "corbaname::host:4001/#StackFactory"
+ String corbaName = new String(args[0]);
+ try{
+ ORB orb = ORB.init(args, null);
+
+ objRef = orb.string_to_object(corbaName);
+ sfRef = StackFactoryHelper.narrow(objRef);
+ sRef = sfRef.create_stack();
+
+ sRef.push(4);
+ sRef.push(7);
+ sRef.push(1);
+ sRef.push(1);
+
+ try{
+ System.out.println(sRef.pop());
+ System.out.println(sRef.pop());
+ System.out.println(sRef.pop());
+ System.out.println(sRef.pop());
+ // The following operation shall
+ // return an EmptyStack exception
+ System.out.println(sRef.pop());
+ }
+ catch(EmptyStack es) {
+ System.out.println("Empty stack");
+ };
+
+ sfRef.destroy_stack(sRef);
+ }
+ catch(SystemException se)
+ {
+ System.out.println("Unexpected exception: " + se.toString());
+ return;
+ }
+ }
+}
diff --git a/lib/orber/examples/Stack/StackModule_StackFactory_impl.erl b/lib/orber/examples/Stack/StackModule_StackFactory_impl.erl
new file mode 100644
index 0000000000..e283b6f765
--- /dev/null
+++ b/lib/orber/examples/Stack/StackModule_StackFactory_impl.erl
@@ -0,0 +1,40 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% StackModule_StackFactory_impl example file.
+
+-module('StackModule_StackFactory_impl').
+-include_lib("orber/include/corba.hrl").
+-export([create_stack/1, destroy_stack/2, init/1, terminate/2]).
+
+
+init(_Env) ->
+ {ok, []}.
+
+terminate(_From, _Reason) ->
+ ok.
+
+create_stack(State) ->
+ %% Just a create we don't want a link.
+ {reply, 'StackModule_Stack':oe_create(), State}.
+
+destroy_stack(State, Stack) ->
+ {reply, corba:dispose(Stack), State}.
diff --git a/lib/orber/examples/Stack/StackModule_Stack_impl.erl b/lib/orber/examples/Stack/StackModule_Stack_impl.erl
new file mode 100644
index 0000000000..87b5e8a275
--- /dev/null
+++ b/lib/orber/examples/Stack/StackModule_Stack_impl.erl
@@ -0,0 +1,46 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% StackModule_Stack_impl example file.
+
+-module('StackModule_Stack_impl').
+-include_lib("orber/include/corba.hrl").
+-include("StackModule.hrl").
+-export([pop/1, push/2, empty/1, init/1, terminate/2]).
+
+
+init(_Env) ->
+ {ok, []}.
+
+terminate(_From, _Reason) ->
+ ok.
+
+push(Stack, Val) ->
+ {reply, ok, [Val | Stack]}.
+
+pop([Val | Stack]) ->
+ {reply, Val, Stack};
+pop([]) ->
+ corba:raise(#'StackModule_EmptyStack'{}).
+
+empty(_) ->
+ {reply, ok, []}.
+
diff --git a/lib/orber/examples/Stack/stack.idl b/lib/orber/examples/Stack/stack.idl
new file mode 100644
index 0000000000..f21f93917b
--- /dev/null
+++ b/lib/orber/examples/Stack/stack.idl
@@ -0,0 +1,27 @@
+#ifndef _STACK_IDL
+#define _STACK_IDL
+
+module StackModule {
+
+ exception EmptyStack {};
+
+ interface Stack {
+
+ long pop() raises(StackModule::EmptyStack);
+
+ void push(in long value);
+
+ void empty();
+
+ };
+
+ interface StackFactory {
+
+ StackModule::Stack create_stack();
+ void destroy_stack(in StackModule::Stack s);
+
+ };
+
+};
+
+#endif
diff --git a/lib/orber/examples/Stack/stack_client.erl b/lib/orber/examples/Stack/stack_client.erl
new file mode 100644
index 0000000000..c90af33ff8
--- /dev/null
+++ b/lib/orber/examples/Stack/stack_client.erl
@@ -0,0 +1,55 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% stack_client example file.
+
+-module('stack_client').
+
+-export([run/0]).
+
+
+run() ->
+ case catch corba:string_to_object("corbaname:rir:/NameService#StackFactory") of
+ {'EXCEPTION', _E} ->
+ io:format("The stack factory server is not registered~n",[]);
+ SF ->
+ %% Create the stack
+ SS = 'StackModule_StackFactory':create_stack(SF),
+
+ 'StackModule_Stack':push(SS, 4),
+ 'StackModule_Stack':push(SS, 7),
+ 'StackModule_Stack':push(SS, 1),
+ 'StackModule_Stack':push(SS, 1),
+ Res = 'StackModule_Stack':pop(SS),
+ io:format("~w~n", [Res]),
+ Res1 = 'StackModule_Stack':pop(SS),
+ io:format("~w~n", [Res1]),
+ Res2 = 'StackModule_Stack':pop(SS),
+ io:format("~w~n", [Res2]),
+ Res3 = 'StackModule_Stack':pop(SS),
+ io:format("~w~n", [Res3]),
+
+ %% Remove the stack
+ 'StackModule_StackFactory':destroy_stack(SF, SS)
+
+ end.
+
+
diff --git a/lib/orber/examples/Stack/stack_factory.erl b/lib/orber/examples/Stack/stack_factory.erl
new file mode 100644
index 0000000000..2f09b18fc4
--- /dev/null
+++ b/lib/orber/examples/Stack/stack_factory.erl
@@ -0,0 +1,37 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% stack_factory example file.
+
+-module('stack_factory').
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+-include_lib("orber/COSS/CosNaming/lname.hrl").
+
+-export([start/0]).
+
+start() ->
+ SFok = 'StackModule_StackFactory':oe_create(),
+ NS = corba:resolve_initial_references("NameService"),
+ NC = lname_component:set_id(lname_component:create(), "StackFactory"),
+ N = lname:insert_component(lname:create(), 1, NC),
+ 'CosNaming_NamingContext':bind(NS, N, SFok).
+
diff --git a/lib/orber/include/Makefile b/lib/orber/include/Makefile
new file mode 100644
index 0000000000..219b7085e6
--- /dev/null
+++ b/lib/orber/include/Makefile
@@ -0,0 +1,66 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1998-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+EXTERNAL_HRL_FILES= ../include/corba.hrl \
+ ../include/ifr_types.hrl \
+ ../include/orber_pi.hrl
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+debug opt clean docs:
+
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/include
+ $(INSTALL_DATA) $(EXTERNAL_HRL_FILES) $(RELSYSDIR)/include
+
+
+release_docs_spec:
+
+
diff --git a/lib/orber/include/corba.hrl b/lib/orber/include/corba.hrl
new file mode 100644
index 0000000000..b9869855bf
--- /dev/null
+++ b/lib/orber/include/corba.hrl
@@ -0,0 +1,148 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%------------------------------------------------------------
+%% File: corba.hrl
+%%
+%% Description:
+%% Standard header file for the Orber Erlang CORBA environment
+%%
+%%-----------------------------------------------------------------
+-ifndef(corba_hrl).
+-define(corba_hrl, true).
+
+%%
+%% Implementation repository record (not used and can therefor be changed)
+%%
+-record(orb_ImplDef, {node, module, typename, start=start, args=[[]], pid}).
+
+%%
+%% Any record
+%%
+-record(any, {typecode, value}).
+
+%%
+%% Any record
+%%
+-record(fixed, {digits, scale, value}).
+
+%%
+%% Service context record
+%%
+-record('IOP_ServiceContext', {context_id, context_data}).
+
+%%
+%% Exception recod for the resolve initial reference functions
+%%
+-record('InvalidName', {'OE_ID'="IDL:omg.org/CORBA/ORB/InvalidName:1.0"}).
+
+%% Orber OMG assigned TAG's
+%% Service Context IDs 0x45524904 - 0x45524907 ("ERI\x04" - "ERI\x07")
+%% Component IDs 0x45524904 - 0x45524907 ("ERI\x04" - "ERI\x07")
+%% ORB type IDs 0x45524904 - 0x45524907 ("ERI\x04" - "ERI\x07")
+-define(ORBER_ORB_TYPE_1, 16#45524904).
+%-define(ORBER_ORB_TYPE_2, 16#45524905).
+%-define(ORBER_ORB_TYPE_3, 16#45524906).
+%-define(ORBER_ORB_TYPE_4, 16#45524907).
+
+%-define(ORBER_COMPONENT_1, 16#45524904).
+%-define(ORBER_COMPONENT_2, 16#45524905).
+%-define(ORBER_COMPONENT_3, 16#45524906).
+%-define(ORBER_COMPONENT_4, 16#45524907).
+
+-define(ORBER_GENERIC_CTX_ID, 16#45524904).
+%-define(ORBER_SERVICE_CTX_2, 16#45524905).
+%-define(ORBER_SERVICE_CTX_3, 16#45524906).
+%-define(ORBER_SERVICE_CTX_4, 16#45524907).
+
+%%
+%% System exceptions
+%%
+
+%% VMCID
+%% VMCID base assigned to OMG
+-define(CORBA_OMGVMCID, 16#4f4d0000).
+
+%% Orber's VMCID base - "ER\x00\x00" - "ER\x0f\xff".
+%% Range 16#45520000 -> 16#45520fff
+-define(ORBER_VMCID, 16#45520000).
+
+%% Some other Vendors VMCID bases.
+-define(IONA_VMCID_1, 16#4f4f0000).
+-define(IONA_VMCID_2, 16#49540000).
+-define(SUN_VMCID, 16#53550000).
+-define(BORLAND_VMCID, 16#56420000).
+-define(TAO_VMCID, 16#54410000).
+-define(PRISMTECH_VMCID,16#50540000).
+
+-define(ex_body, {'OE_ID'="", minor=?ORBER_VMCID, completion_status}).
+
+-record('UNKNOWN', ?ex_body).
+-record('BAD_PARAM', ?ex_body).
+-record('NO_MEMORY', ?ex_body).
+-record('IMP_LIMIT', ?ex_body).
+-record('COMM_FAILURE', ?ex_body).
+-record('INV_OBJREF', ?ex_body).
+-record('NO_PERMISSION', ?ex_body).
+-record('INTERNAL', ?ex_body).
+-record('MARSHAL', ?ex_body).
+-record('INITIALIZE', ?ex_body).
+-record('NO_IMPLEMENT', ?ex_body).
+-record('BAD_TYPECODE', ?ex_body).
+-record('BAD_OPERATION', ?ex_body).
+-record('NO_RESOURCES', ?ex_body).
+-record('NO_RESPONSE', ?ex_body).
+-record('PERSIST_STORE', ?ex_body).
+-record('BAD_INV_ORDER', ?ex_body).
+-record('TRANSIENT', ?ex_body).
+-record('FREE_MEM', ?ex_body).
+-record('INV_IDENT', ?ex_body).
+-record('INV_FLAG', ?ex_body).
+-record('INTF_REPOS', ?ex_body).
+-record('BAD_CONTEXT', ?ex_body).
+-record('OBJ_ADAPTER', ?ex_body).
+-record('DATA_CONVERSION', ?ex_body).
+-record('OBJECT_NOT_EXIST', ?ex_body).
+-record('TRANSACTION_REQUIRED', ?ex_body).
+-record('TRANSACTION_ROLLEDBACK', ?ex_body).
+-record('INVALID_TRANSACTION', ?ex_body).
+-record('INV_POLICY', ?ex_body).
+-record('CODESET_INCOMPATIBLE', ?ex_body).
+-record('REBIND', ?ex_body).
+-record('TIMEOUT', ?ex_body).
+-record('TRANSACTION_UNAVAILABLE', ?ex_body).
+-record('TRANSACTION_MODE', ?ex_body).
+-record('BAD_QOS', ?ex_body).
+
+%% Defines for the enum exception_type (is also used for reply_status)
+-define(NO_EXCEPTION, 'no_exception').
+-define(USER_EXCEPTION, 'user_exception').
+-define(SYSTEM_EXCEPTION, 'system_exception').
+
+%% Defines for the enum completion_status.
+-define(COMPLETED_YES, 'COMPLETED_YES').
+-define(COMPLETED_NO, 'COMPLETED_NO').
+-define(COMPLETED_MAYBE, 'COMPLETED_MAYBE').
+
+
+-undef(ex_body).
+
+
+-endif.
diff --git a/lib/orber/include/ifr_types.hrl b/lib/orber/include/ifr_types.hrl
new file mode 100644
index 0000000000..d982850e98
--- /dev/null
+++ b/lib/orber/include/ifr_types.hrl
@@ -0,0 +1,72 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : ifr_types.hrl
+%% Purpose : Record definitions for structs used in the interface repository
+%%----------------------------------------------------------------------
+
+
+%%%----------------------------------------------------------------------
+%%% *********************************************************************
+%%% * *
+%%% * PLEASE NOTE *
+%%% * *
+%%% * If a record is removed or added in this file, select/2 in *
+%%% * orber_ifr.erl _MUST_ be updated accordingly. *
+%%% * *
+%%% *********************************************************************
+%%%----------------------------------------------------------------------
+
+-record(contained_description, {kind, value}).
+
+-record(structmember, {name, type, type_def}).
+
+-record(unionmember, {name, label, type, type_def}).
+
+-record(container_description, {contained_object, kind, value}).
+
+-record(moduledescription, {name, id, defined_in, version}).
+
+-record(constantdescription, {name, id, defined_in, version, type, value}).
+
+-record(typedescription, {name, id, defined_in, version, type}).
+
+-define(make_typedescription(Obj,Object_type),
+ #typedescription{name = Obj#Object_type.name,
+ id = Obj#Object_type.id,
+ defined_in = Obj#Object_type.defined_in,
+ version = Obj#Object_type.version,
+ type = Obj#Object_type.type}.
+
+-record(exceptiondescription, {name, id, defined_in, version, type}).
+
+-record(attributedescription, {name, id, defined_in, version, type, mode}).
+
+-record(parameterdescription, {name, type, type_def, mode}).
+
+-record(operationdescription, {name, id, defined_in, version, result, mode,
+ contexts, parameters, exceptions}).
+
+-record(fullinterfacedescription, {name, id, defined_in, version, operations,
+ attributes, base_interfaces, type}).
+
+-record(interfacedescription, {name, id, defined_in, version,
+ base_interfaces}).
diff --git a/lib/orber/include/orber_pi.hrl b/lib/orber/include/orber_pi.hrl
new file mode 100644
index 0000000000..84231758fe
--- /dev/null
+++ b/lib/orber/include/orber_pi.hrl
@@ -0,0 +1,76 @@
+%%----------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_pi.hrl
+%% Purpose :
+%%----------------------------------------------------------------------
+
+%%=============== CONSTANTS ==================================
+%%-------- PortableInterceptor::Interceptor (local) ----------
+%% Reply Status
+-define('PortableInterceptor_SUCCESSFUL', 0).
+-define('PortableInterceptor_SYSTEM_EXCEPTION', 1).
+-define('PortableInterceptor_USER_EXCEPTION', 2).
+-define('PortableInterceptor_LOCATION_FORWARD', 3).
+-define('PortableInterceptor_LOCATION_FORWARD_PERMANENT', 4).
+-define('PortableInterceptor_TRANSPORT_RETRY', 5).
+
+
+%%=============== EXCEPTIONS =================================
+%%-------- PortableInterceptor::Interceptor (local) ----------
+%% forward eq. CORBA::Object, premanent eq. boolean
+-record('PortableInterceptor_ForwardRequest', {'OE_ID'="local", forward, permanent}).
+-record('PortableInterceptor_InvalidSlot', {'OE_ID'="local"}).
+
+%%--------------- IOP_N::Codec (local) -----------------------
+-record('IOP_N_Codec_InvalidTypeForEncoding', {'OE_ID'="local"}).
+-record('IOP_N_Codec_FormatMismatch', {'OE_ID'="local"}).
+-record('IOP_N_Codec_TypeMismatch', {'OE_ID'="local"}).
+
+%%--------------- IOP_N (Module level) -----------------------
+-define('IOP_N_ENCODING_CDR_ENCAPS', 0).
+
+%%--------------- IOP_N::CodecFactory (Module level) ---------
+-record('IOP_N_CodecFactory_UnknownEncoding', {'OE_ID'="local"}).
+
+%%--------------- IOP_N::ORBInitInfo (Module level) ----------
+%% name eq. string()
+-record('PortableInterceptor_ORBInitInfo_DuplicateName', {'OE_ID'="local", name}).
+-record('PortableInterceptor_ORBInitInfo_InvalidName', {'OE_ID'="local"}).
+
+
+%%=============== DATA STRUCTURES ============================
+%%--------------- IOP_N (Module level) -----------------------
+-record('IOP_N_Encoding',
+ {format, %% Currently only 'IOP_N_ENCODING_CDR_ENCAPS' allowed.
+ major_version, %% 1 only
+ minor_version}). %% 0,1 or 2
+
+
+%%--------------- Dynamic (Module level) ---------------------
+%% argument eq. #any{},
+%% mode eq. CORBA::ParameterMode - PARAM_IN, PARAM_OUT, PARAM_INOUT.
+-record('Dynamic_Parameter',
+ {argument,
+ mode}).
+
+%%--------------- END OF MODULE ------------------------------
+
diff --git a/lib/orber/info b/lib/orber/info
new file mode 100644
index 0000000000..c92ea38dd8
--- /dev/null
+++ b/lib/orber/info
@@ -0,0 +1,2 @@
+group: orb
+short: A CORBA Object Request Broker
diff --git a/lib/orber/java_src/Makefile b/lib/orber/java_src/Makefile
new file mode 100644
index 0000000000..27166664b7
--- /dev/null
+++ b/lib/orber/java_src/Makefile
@@ -0,0 +1,41 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Common Macros
+# ----------------------------------------------------
+
+SUB_DIRECTORIES = Orber
+
+SPECIAL_TARGETS =
+
+# ----------------------------------------------------
+# Default Subdir Targets
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_subdir.mk
+
diff --git a/lib/orber/java_src/Orber/InitialReference.java b/lib/orber/java_src/Orber/InitialReference.java
new file mode 100644
index 0000000000..300de59139
--- /dev/null
+++ b/lib/orber/java_src/Orber/InitialReference.java
@@ -0,0 +1,130 @@
+/*
+ * %CopyrightBegin%
+ *
+ * Copyright Ericsson AB 1997-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%
+ *
+ */
+/**
+ * InitialReference is a class which generates the INIT reference
+ * which can be used by the InitialReferences interface.
+ */
+package Orber;
+
+public class InitialReference
+{
+
+ /**
+ * Constructor.
+ */
+ public InitialReference(){;}
+
+ /**
+ * Returns the stringified objectreference to the initial reference server
+ */
+ public String stringified_ior(String host, int port)
+ {
+ String iorByteString;
+ String profileData;
+ String iorString;
+
+ // byte_order followed by ' {"", [{0, '
+ // char iorBytesFirstPart[] = {0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0};
+ char iorBytesFirstPart[] = {0,0,0,0,0,0,0,32,73,68,76,58,79,114,98,101,114,47,73,110,105,116,105,97,108,82,101,102,101,114,101,110,99,101,115,58,49,46,48,0,0,0,0,1,0,0,0,0};
+ // the objectkey "INIT
+ char iorBytesLastPart[] = {0,0,0,4,73,78,73,84};
+
+ // Fix the ProfileData struct.
+ char pdPrefix[] = {0,1,0,0};
+ char nullbyte[] = {0};
+ profileData = new String(pdPrefix) + enc_ulong(host.length() + 1) + host + new String(nullbyte);
+ profileData = align(profileData, 2);
+ profileData += enc_ushort(port);
+ profileData = align(profileData, 4);
+ profileData += new String(iorBytesLastPart);
+ // Fix the whole IOR
+ iorByteString = new String(iorBytesFirstPart) + enc_ulong(profileData.length()) +
+ profileData;
+
+ // System.out.print("Start[" + profileData.length() + "]");
+ // System.out.print("[");
+ // for(int x = 0; x < iorByteString.length(); x++)
+ // {
+ // System.out.print((int) iorByteString.charAt(x) + ",");
+ // }
+ // System.out.println("]");
+
+ iorString = createIOR(iorByteString);
+ // System.out.println(iorString);
+ return iorString;
+ }
+
+
+ private String enc_ushort(int s)
+ {
+ char byteArray[] = {(char) ((s >>> 8) & 0xFF),
+ (char) ((s >>> 0) & 0xFF)};
+
+ return new String(byteArray);
+ }
+
+ private String enc_ulong(int l)
+ {
+ char byteArray[] = {(char) ((l >>> 24) & 0xFF),
+ (char) ((l >>> 16) & 0xFF),
+ (char) ((l >>> 8) & 0xFF),
+ (char) ((l >>> 0) & 0xFF)};
+
+ return new String(byteArray);
+
+ }
+
+ private String createIOR(String bytes)
+ {
+ int i;
+ StringBuffer sb = new StringBuffer("IOR:");
+
+ for(i = 0; i < bytes.length(); i++)
+ {
+ int b = bytes.charAt(i);
+ if(b<0) b+= 256;
+ int n1 = b / 16;
+ int n2 = b % 16;
+ int c1 = (n1 < 10) ? ('0' + n1) : ('a' + (n1 - 10));
+ int c2 = (n2 < 10) ? ('0' + n2) : ('a' + (n2 - 10));
+ sb.append((char)c1);
+ sb.append((char)c2);
+ }
+
+ return sb.toString();
+ }
+
+ private String align(String buffer, int alignment)
+ {
+ String s = buffer;
+ char nullbyte[] = {0};
+
+ int remainder = alignment - (buffer.length() % alignment);
+ if (remainder == alignment) return s;
+
+ for (int i = 0; i < remainder; i++)
+ {
+ s += new String(nullbyte);
+ }
+ return s;
+ }
+
+
+}
diff --git a/lib/orber/java_src/Orber/Makefile b/lib/orber/java_src/Orber/Makefile
new file mode 100644
index 0000000000..49da975a8b
--- /dev/null
+++ b/lib/orber/java_src/Orber/Makefile
@@ -0,0 +1,70 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+
+#
+# JAVA macros
+#
+JAVA_CLASSES = \
+ InitialReference
+
+JAVA_FILES= $(JAVA_CLASSES:%=%.java)
+
+CLASSPATH = ../..
+
+# ----------------------------------------------------
+# Flags
+# ----------------------------------------------------
+JAVA_OPTIONS =
+
+# ----------------------------------------------------
+# Make Rules
+# ----------------------------------------------------
+
+debug opt:
+
+clean:
+
+docs:
+
+# ----------------------------------------------------
+# Release Targets
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/java_src/Orber
+ $(INSTALL_DATA) $(JAVA_FILES) $(RELSYSDIR)/java_src/Orber
+
+release_docs_spec:
+
diff --git a/lib/orber/prebuild.skip b/lib/orber/prebuild.skip
new file mode 100644
index 0000000000..d6c7895b9c
--- /dev/null
+++ b/lib/orber/prebuild.skip
@@ -0,0 +1,5 @@
+priv
+src/PKIXAttributeCertificate.asn1db
+src/PKIX1Explicit88.asn1db
+src/OrberCSIv2.asn1db
+src/PKIX1Implicit88.asn1db
diff --git a/lib/orber/priv/Makefile b/lib/orber/priv/Makefile
new file mode 100755
index 0000000000..2847727035
--- /dev/null
+++ b/lib/orber/priv/Makefile
@@ -0,0 +1,66 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 2001-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+include ../vsn.mk
+VSN = $(ORBER_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(VSN)
+
+#
+# Macros
+#
+HELP_FILES = \
+ orber_help.txt
+
+HTML_FILES = \
+ orber.tool \
+ blank.html \
+ info_frames.html \
+ main_frame.html \
+ start_info.html
+
+#
+# Rules
+#
+
+debug opt:
+
+docs:
+
+clean:
+
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/priv
+ $(INSTALL_DATA) $(HELP_FILES) $(HTML_FILES) $(RELSYSDIR)/priv
+
+release_docs_spec:
+
+
diff --git a/lib/orber/priv/Orber/.gitignore b/lib/orber/priv/Orber/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/priv/Orber/.gitignore
diff --git a/lib/orber/priv/bin/.gitignore b/lib/orber/priv/bin/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/priv/bin/.gitignore
diff --git a/lib/orber/priv/blank.html b/lib/orber/priv/blank.html
new file mode 100755
index 0000000000..44e86908a0
--- /dev/null
+++ b/lib/orber/priv/blank.html
@@ -0,0 +1,6 @@
+<HTML>
+<HEAD></HEAD>
+<BODY BGCOLOR="#FFFFFF">
+&nbsp;
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/lib/orber/priv/info_frames.html b/lib/orber/priv/info_frames.html
new file mode 100755
index 0000000000..75456a67a4
--- /dev/null
+++ b/lib/orber/priv/info_frames.html
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+<TITLE>OrberWeb</TITLE>
+</HEAD>
+<FRAMESET ROWS="85%,15%" BORDER="0">
+<FRAME NAME="main" SRC="./start_info.html">
+<FRAME NAME="proc_data" SRC="./blank.html">
+</FRAMESET>
+</HTML> \ No newline at end of file
diff --git a/lib/orber/priv/main_frame.html b/lib/orber/priv/main_frame.html
new file mode 100755
index 0000000000..056a92812e
--- /dev/null
+++ b/lib/orber/priv/main_frame.html
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+<TITLE>OrberWeb</TITLE>
+</HEAD>
+<FRAMESET COLS="15%,85%" >
+ <FRAME NAME="left" SRC="/orber_erl/orber_web_server/menu">
+ <FRAME NAME="main" SRC="./info_frames.html">
+</FRAMESET>
+</HTML> \ No newline at end of file
diff --git a/lib/orber/priv/obj/.gitignore b/lib/orber/priv/obj/.gitignore
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/orber/priv/obj/.gitignore
diff --git a/lib/orber/priv/orber.tool b/lib/orber/priv/orber.tool
new file mode 100755
index 0000000000..910a7d7e45
--- /dev/null
+++ b/lib/orber/priv/orber.tool
@@ -0,0 +1,2 @@
+{version,"1.2"}.
+[{config_func,{orber_web_server,config_data,[]}}].
diff --git a/lib/orber/priv/orber_help.txt b/lib/orber/priv/orber_help.txt
new file mode 100755
index 0000000000..a6580dc30a
--- /dev/null
+++ b/lib/orber/priv/orber_help.txt
@@ -0,0 +1,42 @@
+
+
+
+ Help for the Orber administration tool
+ --------------------------------------
+
+
+
+
+
+ The purpose of this tool is to supply an easy way to
+ access Orber nodes and via a GUI explore:
+ - NameService
+ - Configuration settings
+ - Interface Repository
+
+ All nodes that are known to this tool is shown in the node
+ window, normally this is all Erlang nodes visible with the
+ [node()|nodes()] commands.
+
+
+The Node window
+---------------
+
+ The node window monitor nodes.
+
+
+Technical Detail
+----------------
+
+ Trouble shooting
+ ----------------
+
+ Q. Why doesn't all my nodes show up in the node window?
+
+ A. Are the nodes visible with the [node()|nodes()] commands
+ in the shell? If not you must do net:ping(NodeName) to add
+ nodes to the Erlang distribution.
+
+ Q. When trying to access a node I get no valid response?
+
+ A. Make sure that Orber is running on the node.
diff --git a/lib/orber/priv/start_info.html b/lib/orber/priv/start_info.html
new file mode 100755
index 0000000000..0ad521c90a
--- /dev/null
+++ b/lib/orber/priv/start_info.html
@@ -0,0 +1,31 @@
+<HTML>
+<HEAD>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<TABLE WIDTH=100% HEIGHT=100%>
+<TR VALIGN="middle">
+<TD ALIGN="center">
+
+<TABLE WIDTH="60%">
+<TR>
+<TD ALIGN="center">
+<FONT SIZE=6>Welcome to the Web based Orber Admin Tool
+</FONT></TD>
+</TR>
+
+<TR>
+<TD><BR><BR><BR><BR>
+</TD>
+</TR>
+
+<TR>
+<TD ALIGN="center">&nbsp;
+</TD>
+</TR>
+</TABLE>
+
+</TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/lib/orber/src/CORBA.idl b/lib/orber/src/CORBA.idl
new file mode 100644
index 0000000000..3cd8790f49
--- /dev/null
+++ b/lib/orber/src/CORBA.idl
@@ -0,0 +1,22 @@
+#ifndef _CORBA_IDL
+#define _CORBA_IDL
+
+#pragma prefix "omg.org"
+
+//******************************************************************
+//
+//Policy Object:
+//
+//******************************************************************
+
+module CORBA {
+
+ // Policy typedefs
+ typedef unsigned long PolicyType;
+ typedef string Identifier;
+ typedef string ScopedName;
+ typedef string RepositoryId;
+
+};
+
+#endif
diff --git a/lib/orber/src/Makefile b/lib/orber/src/Makefile
new file mode 100644
index 0000000000..ccc449333c
--- /dev/null
+++ b/lib/orber/src/Makefile
@@ -0,0 +1,268 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-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%
+#
+#
+include $(ERL_TOP)/make/target.mk
+
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# To get hold of SYSTEM_VSN (e.g. R9C).
+#include $(ERL_TOP)/erts/vsn.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../vsn.mk
+
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/orber-$(ORBER_VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+
+MODULES= \
+ orber \
+ corba \
+ corba_boa \
+ corba_object \
+ any \
+ iop_ior \
+ orber_tc \
+ orber_typedefs \
+ orber_request_number \
+ orber_objectkeys \
+ orber_initial_references \
+ cdrlib \
+ cdr_encode \
+ cdr_decode \
+ orber_iiop \
+ orber_iiop_net \
+ orber_iiop_net_accept \
+ orber_iiop_insup \
+ orber_iiop_inproxy \
+ orber_iiop_inrequest \
+ orber_iiop_pm \
+ orber_iiop_outsup \
+ orber_iiop_outproxy \
+ orber_iiop_socketsup \
+ orber_socket \
+ orber_ifr \
+ orber_ifr_aliasdef \
+ orber_ifr_arraydef \
+ orber_ifr_attributedef \
+ orber_ifr_constantdef \
+ orber_ifr_contained \
+ orber_ifr_container \
+ orber_ifr_enumdef \
+ orber_ifr_exceptiondef \
+ orber_ifr_idltype \
+ orber_ifr_interfacedef \
+ orber_ifr_irobject \
+ orber_ifr_moduledef \
+ orber_ifr_operationdef \
+ orber_ifr_orb \
+ orber_ifr_primitivedef \
+ orber_ifr_repository \
+ orber_ifr_sequencedef \
+ orber_ifr_stringdef \
+ orber_ifr_wstringdef \
+ orber_ifr_structdef \
+ orber_ifr_typecode \
+ orber_ifr_typedef \
+ orber_ifr_uniondef \
+ orber_ifr_fixeddef \
+ orber_ifr_utils \
+ OrberApp_IFR_impl \
+ orber_pi \
+ orber_web \
+ orber_web_server \
+ orber_iiop_tracer \
+ orber_iiop_tracer_silent \
+ orber_iiop_tracer_stealth \
+ fixed \
+ orber_exceptions \
+ orber_diagnostics \
+ orber_acl \
+ orber_env \
+ orber_tb
+
+ASN_MODULES = OrberCSIv2
+ASN_SET = $(ASN_MODULES:%=%.set.asn)
+ASN_ASNS = $(ASN_MODULES:%=%.asn1)
+GEN_ASN_ERL = $(ASN_MODULES:%=%.erl)
+GEN_ASN_HRL = $(ASN_MODULES:%=%.hrl)
+GEN_ASN_DBS = $(ASN_MODULES:%=%.asn1db)
+GEN_ASN_TABLES = $(ASN_MODULES:%=%.table)
+
+PKIX_FILES = \
+ OrberCSIv2.asn1 \
+ PKIXAttributeCertificate.asn1 \
+ PKIX1Explicit88.asn1 \
+ PKIX1Algorithms88.asn1 \
+ PKIX1Implicit88.asn1 \
+ OrberCSIv2.set.asn
+
+EXTERNAL_HRL_FILES= ../include/corba.hrl \
+ ../include/ifr_types.hrl \
+ ../include/orber_pi.hrl
+
+INTERNAL_HRL_FILES = \
+ orber_iiop.hrl \
+ ifr_objects.hrl \
+ orber_ifr.hrl
+
+ERL_FILES= $(MODULES:%=%.erl)
+
+GEN_ERL_FILES1 = \
+ oe_erlang.erl \
+ erlang_pid.erl \
+ erlang_port.erl \
+ erlang_ref.erl \
+ erlang_binary.erl
+
+GEN_ERL_FILES2 = \
+ oe_CORBA.erl
+
+GEN_ERL_FILES3 = \
+ oe_OrberIFR.erl \
+ OrberApp_IFR.erl
+
+GEN_ERL_FILES = $(GEN_ERL_FILES1) $(GEN_ERL_FILES2) \
+ $(GEN_ERL_FILES3) \
+# $(GEN_ASN_ERL)
+
+GEN_HRL_FILES1 = \
+ oe_erlang.hrl \
+ erlang.hrl
+
+GEN_HRL_FILES2 = \
+ CORBA.hrl \
+ oe_CORBA.hrl
+
+GEN_HRL_FILES3 = \
+ OrberApp_IFR.hrl \
+ oe_OrberIFR.hrl \
+ OrberApp.hrl
+
+GEN_HRL_FILES_EXT = $(GEN_HRL_FILES1)
+
+GEN_HRL_FILES_LOC = $(GEN_HRL_FILES2) $(GEN_HRL_FILES3) \
+# $(GEN_ASN_HRL)
+
+
+GEN_FILES = \
+ $(GEN_ERL_FILES) \
+ $(GEN_HRL_FILES_LOC) \
+ $(GEN_HRL_FILES_EXT) \
+# $(GEN_ASN_DBS) \
+# $(GEN_ASN_TABLES)
+
+TARGET_FILES = \
+ $(GEN_ERL_FILES:%.erl=$(EBIN)/%.$(EMULATOR)) \
+ $(MODULES:%=$(EBIN)/%.$(EMULATOR))
+
+APPUP_FILE = orber.appup
+APPUP_SRC = $(APPUP_FILE).src
+APPUP_TARGET = $(EBIN)/$(APPUP_FILE)
+
+APP_FILE = orber.app
+APP_SRC = $(APP_FILE).src
+APP_TARGET = $(EBIN)/$(APP_FILE)
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+ERL_IDL_FLAGS += -pa $(ERL_TOP)/lib/orber/ebin
+# The -pa option is just used temporary until erlc can handle
+# includes from other directories than ../include .
+ERL_COMPILE_FLAGS += $(ERL_IDL_FLAGS) \
+ -I$(ERL_TOP)/lib/orber/include \
+ +'{parse_transform,sys_pre_attributes}' \
+ +'{attribute,insert,app_vsn,"orber_$(ORBER_VSN)"}' \
+ -D'ORBVSN="$(ORBER_VSN)"'
+
+ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize \
+ +nowarn_unused_record
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+debug:
+ @${MAKE} TYPE=debug opt
+
+opt: $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET)
+
+clean:
+ rm -f $(TARGET_FILES) $(GEN_FILES) $(APP_TARGET) $(APPUP_TARGET)
+ rm -f errs core *~
+
+$(APP_TARGET): $(APP_SRC) ../vsn.mk
+ sed -e 's;%VSN%;$(ORBER_VSN);' $< > $@
+
+$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk
+ sed -e 's;%VSN%;$(ORBER_VSN);' $< > $@
+
+docs:
+
+# ----------------------------------------------------
+# Special Build Targets
+# ----------------------------------------------------
+
+$(GEN_ERL_FILES1) $(GEN_HRL_FILES1): $(ERL_TOP)/lib/ic/include/erlang.idl
+ erlc $(ERL_IDL_FLAGS) $(ERL_TOP)/lib/ic/include/erlang.idl
+
+$(GEN_ERL_FILES2) $(GEN_HRL_FILES2): CORBA.idl
+ erlc $(ERL_IDL_FLAGS) CORBA.idl
+
+$(GEN_ERL_FILES3) $(GEN_HRL_FILES3): OrberIFR.idl
+ erlc $(ERL_IDL_FLAGS) +'{this,"Orber::IFR"}' \
+ OrberIFR.idl
+
+$(GEN_ASN_ERL) $(GEN_ASN_HRL): OrberCSIv2.asn1 OrberCSIv2.set.asn
+ erlc $(ERL_COMPILE_FLAGS) $(ASN_FLAGS) +'{inline,"OrberCSIv2"}' OrberCSIv2.set.asn
+ rm -f $(GEN_ASN_ERL:%.erl=%.beam)
+
+# erlc $(ERL_COMPILE_FLAGS) $(ASN_FLAGS) OrberCSIv2.asn1 ;\
+# erlc $(GEN_ASN_ERL)
+# Use the following when we safely can inline the ASN1 runtime code.
+# Requires igor (part of syntax_tools (introduced in R10B
+# erlc $(ERL_COMPILE_FLAGS) $(ASN_FLAGS) +'{inline,"OrberCSIv2"}' OrberCSIv2.set.asn ; \
+
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+
+release_spec: opt
+ $(INSTALL_DIR) $(RELSYSDIR)/ebin
+ $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) $(RELSYSDIR)/ebin
+ $(INSTALL_DIR) $(RELSYSDIR)/src
+ $(INSTALL_DATA) $(ERL_FILES) $(YRL_FILE) $(GEN_HRL_FILES_LOC) $(INTERNAL_HRL_FILES) $(RELSYSDIR)/src
+ $(INSTALL_DIR) $(RELSYSDIR)/include
+ $(INSTALL_DATA) $(EXTERNAL_HRL_FILES) $(GEN_HRL_FILES_EXT) $(RELSYSDIR)/include
+
+
+release_docs_spec:
+
+
diff --git a/lib/orber/src/OrberApp_IFR_impl.erl b/lib/orber/src/OrberApp_IFR_impl.erl
new file mode 100644
index 0000000000..c0c6eb4704
--- /dev/null
+++ b/lib/orber/src/OrberApp_IFR_impl.erl
@@ -0,0 +1,101 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File : OrberApp_IFR_impl.erl
+%% Purpose :
+%%-----------------------------------------------------------------
+
+-module('OrberApp_IFR_impl').
+
+%%--------------- INCLUDES -----------------------------------
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%--------------- IMPORTS ------------------------------------
+
+%%--------------- EXPORTS ------------------------------------
+%% External
+-export([get_absolute_name/3, get_user_exception_type/3]).
+
+%%--------------- gen_server specific exports ----------------
+-export([init/1, terminate/2, code_change/3]).
+
+%%--------------- LOCAL DEFINITIONS --------------------------
+-define(DEBUG_LEVEL, 6).
+
+
+init(State) ->
+ {ok, State}.
+terminate(_Reason, _State) ->
+ ok.
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------
+%%------- Exported external functions -----------------------
+%%-----------------------------------------------------------
+%%----------------------------------------------------------%
+%% function : get_absolute_name
+%% Arguments: TypeID - string()
+%% Returns : Fully scooped name - string()
+%%-----------------------------------------------------------
+
+get_absolute_name(_OE_THIS, _State, []) ->
+ orber:dbg("[~p] OrberApp_IFR_impl:get_absolute_name(); no TypeID supplied.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 11), completion_status=?COMPLETED_MAYBE});
+
+get_absolute_name(_OE_THIS, State, TypeID) ->
+ Rep = orber_ifr:find_repository(),
+ Key = orber_ifr:'Repository_lookup_id'(Rep, TypeID),
+ [$:, $: |N] = orber_ifr:'Contained__get_absolute_name'(Key),
+ {reply, change_colons_to_underscore(N, []), State}.
+
+change_colons_to_underscore([$:, $: | T], Acc) ->
+ change_colons_to_underscore(T, [$_ |Acc]);
+change_colons_to_underscore([H |T], Acc) ->
+ change_colons_to_underscore(T, [H |Acc]);
+change_colons_to_underscore([], Acc) ->
+ lists:reverse(Acc).
+
+%%----------------------------------------------------------%
+%% function : get_user_exception_type
+%% Arguments: TypeID - string()
+%% Returns : Fully scooped name - string()
+%%-----------------------------------------------------------
+
+get_user_exception_type(_OE_THIS, _State, []) ->
+ orber:dbg("[~p] OrberApp_IFR_impl:get_user_exception_type(); no TypeID supplied.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 11), completion_status=?COMPLETED_MAYBE});
+
+get_user_exception_type(_OE_THIS, State, TypeId) ->
+ Rep = orber_ifr:find_repository(),
+ ExceptionDef = orber_ifr:'Repository_lookup_id'(Rep, TypeId),
+ ContainedDescr = orber_ifr_exceptiondef:describe(ExceptionDef),
+ ExceptionDescr = ContainedDescr#contained_description.value,
+ {reply, ExceptionDescr#exceptiondescription.type, State}.
+
+
+%%--------------- LOCAL FUNCTIONS ----------------------------
+%%--------------- MISC FUNCTIONS, E.G. DEBUGGING -------------
+%%--------------- END OF MODULE ------------------------------
diff --git a/lib/orber/src/OrberCSIv2.asn1 b/lib/orber/src/OrberCSIv2.asn1
new file mode 100644
index 0000000000..d776ce2b47
--- /dev/null
+++ b/lib/orber/src/OrberCSIv2.asn1
@@ -0,0 +1,45 @@
+OrberCSIv2 DEFINITIONS ::=
+
+BEGIN
+
+ IMPORTS
+
+ -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
+ -- PKIX1Explicit88 Certificate Extensions
+ Certificate
+ FROM PKIX1Explicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
+ -- PKIXAttributeCertificate
+ AttributeCertificate
+ FROM PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-attribute-cert(12)};
+
+
+
+ -- Authorization Token
+ -- AttributeCertificate - [IETF ID PKIXAC].
+ -- Certificate - [IETF RFC 2459].
+
+ VerifyingCertChain ::= SEQUENCE OF Certificate
+
+ AttributeCertChain ::= SEQUENCE {
+ attributeCert AttributeCertificate,
+ certificateChain VerifyingCertChain
+ }
+
+
+ -- The ASN.1 encoding of identity tokens of this type is defined
+ -- as follows (ITTX509CertChain):
+ CertificateChain ::= SEQUENCE SIZE (1..MAX) OF Certificate
+
+
+ -- The object identifier allocated for the GSSUP mechanism is defined as follows:
+ -- GSS Exported Name Object Form for GSSUP Mechanism
+ gssup-mechanism OBJECT IDENTIFIER ::= { iso-itu-t (2) international-organization (23) omg (130) security (1) authentication (1) gssup-mechanism (1) }
+
+ -- Scoped-Username GSS Name Form
+ scoped-username OBJECT IDENTIFIER ::= { iso-itu-t (2) international-organization (23) omg (130) security (1) naming (2) scoped-username(1) }
+
+END
diff --git a/lib/orber/src/OrberCSIv2.set.asn b/lib/orber/src/OrberCSIv2.set.asn
new file mode 100644
index 0000000000..11fbcc167f
--- /dev/null
+++ b/lib/orber/src/OrberCSIv2.set.asn
@@ -0,0 +1,5 @@
+OrberCSIv2.asn1
+PKIXAttributeCertificate.asn1
+PKIX1Explicit88.asn1
+PKIX1Algorithms88.asn1
+PKIX1Implicit88.asn1
diff --git a/lib/orber/src/OrberIFR.idl b/lib/orber/src/OrberIFR.idl
new file mode 100644
index 0000000000..6d53217658
--- /dev/null
+++ b/lib/orber/src/OrberIFR.idl
@@ -0,0 +1,12 @@
+#ifndef _ORBER_IFR_IDL
+#define _ORBER_IFR_IDL
+
+module OrberApp
+{
+ interface IFR {
+ string get_absolute_name(in string TypeID);
+ CORBA::TypeCode get_user_exception_type(in string TypeID);
+ };
+};
+
+#endif
diff --git a/lib/orber/src/PKIX1Algorithms88.asn1 b/lib/orber/src/PKIX1Algorithms88.asn1
new file mode 100644
index 0000000000..e78de69b0e
--- /dev/null
+++ b/lib/orber/src/PKIX1Algorithms88.asn1
@@ -0,0 +1,274 @@
+ PKIX1Algorithms88 { iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-pkix1-algorithms(17) }
+
+ DEFINITIONS EXPLICIT TAGS ::= BEGIN
+
+ -- EXPORTS All;
+
+ -- IMPORTS NONE;
+
+ --
+ -- One-way Hash Functions
+ --
+
+ md2 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 2 }
+
+ md5 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549)
+ digestAlgorithm(2) 5 }
+
+ id-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) oiw(14) secsig(3)
+ algorithms(2) 26 }
+
+ --
+ -- DSA Keys and Signatures
+ --
+
+ -- OID for DSA public key
+
+ id-dsa OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+
+ -- encoding for DSA public key
+
+ DSAPublicKey ::= INTEGER -- public key, y
+
+ Dss-Parms ::= SEQUENCE {
+ p INTEGER,
+ q INTEGER,
+ g INTEGER }
+
+ -- OID for DSA signature generated with SHA-1 hash
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+
+ -- encoding for DSA signature generated with SHA-1 hash
+
+ Dss-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ --
+ -- RSA Keys and Signatures
+ --
+
+ -- arc for RSA public key and RSA signature OIDs
+
+ pkcs-1 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+
+ -- OID for RSA public keys
+
+ rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+
+ -- OID for RSA signature generated with MD2 hash
+
+ md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+
+ -- OID for RSA signature generated with MD5 hash
+
+ md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+
+ -- OID for RSA signature generated with SHA-1 hash
+
+ sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+
+ -- encoding for RSA public key
+
+ RSAPublicKey ::= SEQUENCE {
+ modulus INTEGER, -- n
+ publicExponent INTEGER } -- e
+
+ --
+ -- Diffie-Hellman Keys
+ --
+
+ dhpublicnumber OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) ansi-x942(10046)
+ number-type(2) 1 }
+
+ -- encoding for DSA public key
+
+ DHPublicKey ::= INTEGER -- public key, y = g^x mod p
+
+ DomainParameters ::= SEQUENCE {
+ p INTEGER, -- odd prime, p=jq +1
+ g INTEGER, -- generator, g
+ q INTEGER, -- factor of p-1
+ j INTEGER OPTIONAL, -- subgroup factor, j>= 2
+ validationParms ValidationParms OPTIONAL }
+
+ ValidationParms ::= SEQUENCE {
+ seed BIT STRING,
+ pgenCounter INTEGER }
+
+ --
+ -- KEA Keys
+ --
+
+ id-keyExchangeAlgorithm OBJECT IDENTIFIER ::=
+ { 2 16 840 1 101 2 1 1 22 }
+
+ KEA-Parms-Id ::= OCTET STRING
+
+ --
+ -- Elliptic Curve Keys, Signatures, and Curves
+ --
+
+ ansi-X9-62 OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) 10045 }
+
+ FieldID ::= SEQUENCE { -- Finite field
+ fieldType OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY fieldType }
+
+ -- Arc for ECDSA signature OIDS
+
+ id-ecSigType OBJECT IDENTIFIER ::= { ansi-X9-62 signatures(4) }
+
+ -- OID for ECDSA signatures with SHA-1
+
+ ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 }
+
+ -- OID for an elliptic curve signature
+ -- format for the value of an ECDSA signature value
+
+ ECDSA-Sig-Value ::= SEQUENCE {
+ r INTEGER,
+ s INTEGER }
+
+ -- recognized field type OIDs are defined in the following arc
+
+ id-fieldType OBJECT IDENTIFIER ::= { ansi-X9-62 fieldType(1) }
+
+ -- where fieldType is prime-field, the parameters are of type Prime-p
+
+ prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 }
+
+ Prime-p ::= INTEGER -- Finite field F(p), where p is an odd prime
+
+ -- where fieldType is characteristic-two-field, the parameters are
+ -- of type Characteristic-two
+
+ characteristic-two-field OBJECT IDENTIFIER ::= { id-fieldType 2 }
+
+ Characteristic-two ::= SEQUENCE {
+ m INTEGER, -- Field size 2^m
+ basis OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY basis }
+
+ -- recognized basis type OIDs are defined in the following arc
+
+ id-characteristic-two-basis OBJECT IDENTIFIER ::= {
+ characteristic-two-field basisType(3) }
+
+ -- gnbasis is identified by OID gnBasis and indicates
+ -- parameters are NULL
+
+ gnBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 1 }
+
+ -- parameters for this basis are NULL
+
+ -- trinomial basis is identified by OID tpBasis and indicates
+ -- parameters of type Pentanomial
+
+ tpBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 2 }
+
+ -- Trinomial basis representation of F2^m
+ -- Integer k for reduction polynomial xm + xk + 1
+
+ Trinomial ::= INTEGER
+
+ -- for pentanomial basis is identified by OID ppBasis and indicates
+ -- parameters of type Pentanomial
+
+ ppBasis OBJECT IDENTIFIER ::= { id-characteristic-two-basis 3 }
+
+ -- Pentanomial basis representation of F2^m
+ -- reduction polynomial integers k1, k2, k3
+ -- f(x) = x**m + x**k3 + x**k2 + x**k1 + 1
+
+ Pentanomial ::= SEQUENCE {
+ k1 INTEGER,
+ k2 INTEGER,
+ k3 INTEGER }
+
+ -- The object identifiers gnBasis, tpBasis and ppBasis name
+ -- three kinds of basis for characteristic-two finite fields
+
+ FieldElement ::= OCTET STRING -- Finite field element
+
+ ECPoint ::= OCTET STRING -- Elliptic curve point
+
+ -- Elliptic Curve parameters may be specified explicitly,
+ -- specified implicitly through a "named curve", or
+ -- inherited from the CA
+
+ EcpkParameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve OBJECT IDENTIFIER,
+ implicitlyCA NULL }
+
+ ECParameters ::= SEQUENCE { -- Elliptic curve parameters
+ version ECPVer,
+ fieldID FieldID,
+ curve Curve,
+ base ECPoint, -- Base point G
+ order INTEGER, -- Order n of the base point
+ cofactor INTEGER OPTIONAL } -- The integer h = #E(Fq)/n
+
+ ECPVer ::= INTEGER {ecpVer1(1)}
+
+ Curve ::= SEQUENCE {
+ a FieldElement, -- Elliptic curve coefficient a
+ b FieldElement, -- Elliptic curve coefficient b
+ seed BIT STRING OPTIONAL }
+
+ id-publicKeyType OBJECT IDENTIFIER ::= { ansi-X9-62 keyType(2) }
+
+ id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 }
+
+ -- Named Elliptic Curves in ANSI X9.62.
+
+ ellipticCurve OBJECT IDENTIFIER ::= { ansi-X9-62 curves(3) }
+
+ c-TwoCurve OBJECT IDENTIFIER ::= {
+ ellipticCurve characteristicTwo(0) }
+
+ c2pnb163v1 OBJECT IDENTIFIER ::= { c-TwoCurve 1 }
+ c2pnb163v2 OBJECT IDENTIFIER ::= { c-TwoCurve 2 }
+ c2pnb163v3 OBJECT IDENTIFIER ::= { c-TwoCurve 3 }
+ c2pnb176w1 OBJECT IDENTIFIER ::= { c-TwoCurve 4 }
+ c2tnb191v1 OBJECT IDENTIFIER ::= { c-TwoCurve 5 }
+ c2tnb191v2 OBJECT IDENTIFIER ::= { c-TwoCurve 6 }
+ c2tnb191v3 OBJECT IDENTIFIER ::= { c-TwoCurve 7 }
+ c2onb191v4 OBJECT IDENTIFIER ::= { c-TwoCurve 8 }
+ c2onb191v5 OBJECT IDENTIFIER ::= { c-TwoCurve 9 }
+ c2pnb208w1 OBJECT IDENTIFIER ::= { c-TwoCurve 10 }
+ c2tnb239v1 OBJECT IDENTIFIER ::= { c-TwoCurve 11 }
+ c2tnb239v2 OBJECT IDENTIFIER ::= { c-TwoCurve 12 }
+ c2tnb239v3 OBJECT IDENTIFIER ::= { c-TwoCurve 13 }
+ c2onb239v4 OBJECT IDENTIFIER ::= { c-TwoCurve 14 }
+ c2onb239v5 OBJECT IDENTIFIER ::= { c-TwoCurve 15 }
+ c2pnb272w1 OBJECT IDENTIFIER ::= { c-TwoCurve 16 }
+ c2pnb304w1 OBJECT IDENTIFIER ::= { c-TwoCurve 17 }
+ c2tnb359v1 OBJECT IDENTIFIER ::= { c-TwoCurve 18 }
+ c2pnb368w1 OBJECT IDENTIFIER ::= { c-TwoCurve 19 }
+ c2tnb431r1 OBJECT IDENTIFIER ::= { c-TwoCurve 20 }
+
+ primeCurve OBJECT IDENTIFIER ::= { ellipticCurve prime(1) }
+
+ prime192v1 OBJECT IDENTIFIER ::= { primeCurve 1 }
+ prime192v2 OBJECT IDENTIFIER ::= { primeCurve 2 }
+ prime192v3 OBJECT IDENTIFIER ::= { primeCurve 3 }
+ prime239v1 OBJECT IDENTIFIER ::= { primeCurve 4 }
+ prime239v2 OBJECT IDENTIFIER ::= { primeCurve 5 }
+ prime239v3 OBJECT IDENTIFIER ::= { primeCurve 6 }
+ prime256v1 OBJECT IDENTIFIER ::= { primeCurve 7 }
+
+ END
diff --git a/lib/orber/src/PKIX1Explicit88.asn1 b/lib/orber/src/PKIX1Explicit88.asn1
new file mode 100644
index 0000000000..9b8068fed0
--- /dev/null
+++ b/lib/orber/src/PKIX1Explicit88.asn1
@@ -0,0 +1,619 @@
+PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18) }
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+-- IMPORTS NONE --
+
+-- UNIVERSAL Types defined in 1993 and 1998 ASN.1
+-- and required by this specification
+
+-- UniversalString ::= [UNIVERSAL 28] IMPLICIT OCTET STRING
+ -- UniversalString is defined in ASN.1:1993
+
+-- BMPString ::= [UNIVERSAL 30] IMPLICIT OCTET STRING
+ -- BMPString is the subtype of UniversalString and models
+ -- the Basic Multilingual Plane of ISO/IEC/ITU 10646-1
+
+-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+ -- The content of this type conforms to RFC 2279.
+
+-- PKIX specific OIDs
+
+id-pkix OBJECT IDENTIFIER ::=
+ { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) }
+
+-- PKIX arcs
+
+id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+ -- arc for private certificate extensions
+id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ -- arc for policy qualifier types
+id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+ -- arc for extended key purpose OIDS
+id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ -- arc for access descriptors
+
+-- policyQualifierIds for Internet policy qualifiers
+
+id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ -- OID for CPS qualifier
+id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ -- OID for user notice qualifier
+
+-- access descriptor definitions
+
+id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+id-ad-timeStamping OBJECT IDENTIFIER ::= { id-ad 3 }
+id-ad-caRepository OBJECT IDENTIFIER ::= { id-ad 5 }
+
+-- attribute data types
+
+Attribute ::= SEQUENCE {
+ type AttributeType,
+ values SET OF AttributeValue }
+ -- at least one value is required
+
+AttributeType ::= OBJECT IDENTIFIER
+
+AttributeValue ::= ANY
+
+AttributeTypeAndValue ::= SEQUENCE {
+ type AttributeType,
+ value AttributeValue }
+
+-- suggested naming attributes: Definition of the following
+-- information object set may be augmented to meet local
+-- requirements. Note that deleting members of the set may
+-- prevent interoperability with conforming implementations.
+-- presented in pairs: the AttributeType followed by the
+-- type definition for the corresponding AttributeValue
+--Arc for standard naming attributes
+id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 }
+
+-- Naming attributes of type X520name
+
+id-at-name AttributeType ::= { id-at 41 }
+id-at-surname AttributeType ::= { id-at 4 }
+id-at-givenName AttributeType ::= { id-at 42 }
+id-at-initials AttributeType ::= { id-at 43 }
+id-at-generationQualifier AttributeType ::= { id-at 44 }
+
+X520name ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-name)),
+ printableString PrintableString (SIZE (1..ub-name)),
+ universalString UniversalString (SIZE (1..ub-name)),
+ utf8String UTF8String (SIZE (1..ub-name)),
+ bmpString BMPString (SIZE (1..ub-name)) }
+
+-- Naming attributes of type X520CommonName
+
+id-at-commonName AttributeType ::= { id-at 3 }
+
+X520CommonName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-common-name)),
+ printableString PrintableString (SIZE (1..ub-common-name)),
+ universalString UniversalString (SIZE (1..ub-common-name)),
+ utf8String UTF8String (SIZE (1..ub-common-name)),
+ bmpString BMPString (SIZE (1..ub-common-name)) }
+
+-- Naming attributes of type X520LocalityName
+
+id-at-localityName AttributeType ::= { id-at 7 }
+
+X520LocalityName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-locality-name)),
+ printableString PrintableString (SIZE (1..ub-locality-name)),
+ universalString UniversalString (SIZE (1..ub-locality-name)),
+ utf8String UTF8String (SIZE (1..ub-locality-name)),
+ bmpString BMPString (SIZE (1..ub-locality-name)) }
+
+-- Naming attributes of type X520StateOrProvinceName
+
+id-at-stateOrProvinceName AttributeType ::= { id-at 8 }
+
+X520StateOrProvinceName ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-state-name)),
+ printableString PrintableString (SIZE (1..ub-state-name)),
+ universalString UniversalString (SIZE (1..ub-state-name)),
+ utf8String UTF8String (SIZE (1..ub-state-name)),
+ bmpString BMPString (SIZE(1..ub-state-name)) }
+
+-- Naming attributes of type X520OrganizationName
+
+id-at-organizationName AttributeType ::= { id-at 10 }
+
+X520OrganizationName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organization-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organization-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organization-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organization-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organization-name)) }
+
+-- Naming attributes of type X520OrganizationalUnitName
+
+id-at-organizationalUnitName AttributeType ::= { id-at 11 }
+
+X520OrganizationalUnitName ::= CHOICE {
+ teletexString TeletexString
+ (SIZE (1..ub-organizational-unit-name)),
+ printableString PrintableString
+ (SIZE (1..ub-organizational-unit-name)),
+ universalString UniversalString
+ (SIZE (1..ub-organizational-unit-name)),
+ utf8String UTF8String
+ (SIZE (1..ub-organizational-unit-name)),
+ bmpString BMPString
+ (SIZE (1..ub-organizational-unit-name)) }
+
+-- Naming attributes of type X520Title
+
+id-at-title AttributeType ::= { id-at 12 }
+
+X520Title ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-title)),
+ printableString PrintableString (SIZE (1..ub-title)),
+ universalString UniversalString (SIZE (1..ub-title)),
+ utf8String UTF8String (SIZE (1..ub-title)),
+ bmpString BMPString (SIZE (1..ub-title)) }
+
+-- Naming attributes of type X520dnQualifier
+
+id-at-dnQualifier AttributeType ::= { id-at 46 }
+
+X520dnQualifier ::= PrintableString
+
+-- Naming attributes of type X520countryName (digraph from IS 3166)
+
+id-at-countryName AttributeType ::= { id-at 6 }
+
+X520countryName ::= PrintableString (SIZE (2))
+
+-- Naming attributes of type X520SerialNumber
+
+id-at-serialNumber AttributeType ::= { id-at 5 }
+
+X520SerialNumber ::= PrintableString (SIZE (1..ub-serial-number))
+
+-- Naming attributes of type X520Pseudonym
+
+id-at-pseudonym AttributeType ::= { id-at 65 }
+
+X520Pseudonym ::= CHOICE {
+ teletexString TeletexString (SIZE (1..ub-pseudonym)),
+ printableString PrintableString (SIZE (1..ub-pseudonym)),
+ universalString UniversalString (SIZE (1..ub-pseudonym)),
+ utf8String UTF8String (SIZE (1..ub-pseudonym)),
+ bmpString BMPString (SIZE (1..ub-pseudonym)) }
+
+-- Naming attributes of type DomainComponent (from RFC 2247)
+
+id-domainComponent AttributeType ::=
+ { 0 9 2342 19200300 100 1 25 }
+
+DomainComponent ::= IA5String
+
+-- Legacy attributes
+
+pkcs-9 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+
+id-emailAddress AttributeType ::= { pkcs-9 1 }
+
+EmailAddress ::= IA5String (SIZE (1..ub-emailaddress-length))
+
+-- naming data types --
+
+Name ::= CHOICE { -- only one possibility for now --
+ rdnSequence RDNSequence }
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+
+-- Directory string type --
+
+DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+-- certificate and CRL specific structures begin here
+
+Certificate ::= SEQUENCE {
+ tbsCertificate TBSCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertificate ::= SEQUENCE {
+ version [0] Version DEFAULT v1,
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
+ -- If present, version MUST be v2 or v3
+ extensions [3] Extensions OPTIONAL
+ -- If present, version MUST be v3 -- }
+
+Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+CertificateSerialNumber ::= INTEGER
+
+Validity ::= SEQUENCE {
+ notBefore Time,
+ notAfter Time }
+
+Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+UniqueIdentifier ::= BIT STRING
+
+SubjectPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier,
+ subjectPublicKey BIT STRING }
+
+Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+Extension ::= SEQUENCE {
+ extnID OBJECT IDENTIFIER,
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+-- CRL structures
+
+CertificateList ::= SEQUENCE {
+ tbsCertList TBSCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING }
+
+TBSCertList ::= SEQUENCE {
+ version Version OPTIONAL,
+ -- if present, MUST be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates SEQUENCE OF SEQUENCE {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, MUST be v2
+ } OPTIONAL,
+ crlExtensions [0] Extensions OPTIONAL }
+ -- if present, MUST be v2
+
+-- Version, Time, CertificateSerialNumber, and Extensions were
+-- defined earlier for use in the certificate structure
+
+AlgorithmIdentifier ::= SEQUENCE {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+ -- contains a value of the type
+ -- registered for use with the
+ -- algorithm object identifier value
+
+-- X.400 address syntax starts here
+
+ORAddress ::= SEQUENCE {
+ built-in-standard-attributes BuiltInStandardAttributes,
+ built-in-domain-defined-attributes
+ BuiltInDomainDefinedAttributes OPTIONAL,
+ -- see also teletex-domain-defined-attributes
+ extension-attributes ExtensionAttributes OPTIONAL }
+
+-- Built-in Standard Attributes
+
+BuiltInStandardAttributes ::= SEQUENCE {
+ country-name CountryName OPTIONAL,
+ administration-domain-name AdministrationDomainName OPTIONAL,
+ network-address [0] IMPLICIT NetworkAddress OPTIONAL,
+ -- see also extended-network-address
+ terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL,
+ private-domain-name [2] PrivateDomainName OPTIONAL,
+ organization-name [3] IMPLICIT OrganizationName OPTIONAL,
+ -- see also teletex-organization-name
+ numeric-user-identifier [4] IMPLICIT NumericUserIdentifier
+ OPTIONAL,
+ personal-name [5] IMPLICIT PersonalName OPTIONAL,
+ -- see also teletex-personal-name
+ organizational-unit-names [6] IMPLICIT OrganizationalUnitNames
+ OPTIONAL }
+ -- see also teletex-organizational-unit-names
+
+CountryName ::= [APPLICATION 1] CHOICE {
+ x121-dcc-code NumericString
+ (SIZE (ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+ numeric NumericString (SIZE (0..ub-domain-name-length)),
+ printable PrintableString (SIZE (0..ub-domain-name-length)) }
+
+NetworkAddress ::= X121Address -- see also extended-network-address
+
+X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+
+TerminalIdentifier ::= PrintableString (SIZE
+(1..ub-terminal-id-length))
+
+PrivateDomainName ::= CHOICE {
+ numeric NumericString (SIZE (1..ub-domain-name-length)),
+ printable PrintableString (SIZE (1..ub-domain-name-length)) }
+
+OrganizationName ::= PrintableString
+ (SIZE (1..ub-organization-name-length))
+ -- see also teletex-organization-name
+
+NumericUserIdentifier ::= NumericString
+ (SIZE (1..ub-numeric-user-id-length))
+
+PersonalName ::= SET {
+ surname [0] IMPLICIT PrintableString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT PrintableString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT PrintableString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT PrintableString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+ -- see also teletex-personal-name
+
+OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+ OF OrganizationalUnitName
+ -- see also teletex-organizational-unit-names
+
+OrganizationalUnitName ::= PrintableString (SIZE
+ (1..ub-organizational-unit-name-length))
+
+-- Built-in Domain-defined Attributes
+
+BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF
+ BuiltInDomainDefinedAttribute
+
+BuiltInDomainDefinedAttribute ::= SEQUENCE {
+ type PrintableString (SIZE
+ (1..ub-domain-defined-attribute-type-length)),
+ value PrintableString (SIZE
+ (1..ub-domain-defined-attribute-value-length)) }
+
+-- Extension Attributes
+
+ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
+ ExtensionAttribute
+
+ExtensionAttribute ::= SEQUENCE {
+ extension-attribute-type [0] IMPLICIT INTEGER
+ (0..ub-extension-attributes),
+ extension-attribute-value [1]
+ ANY DEFINED BY extension-attribute-type }
+
+-- Extension types and attribute values
+
+common-name INTEGER ::= 1
+
+CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+
+teletex-common-name INTEGER ::= 2
+
+TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+
+teletex-organization-name INTEGER ::= 3
+
+TeletexOrganizationName ::=
+ TeletexString (SIZE (1..ub-organization-name-length))
+
+teletex-personal-name INTEGER ::= 4
+
+TeletexPersonalName ::= SET {
+ surname [0] IMPLICIT TeletexString
+ (SIZE (1..ub-surname-length)),
+ given-name [1] IMPLICIT TeletexString
+ (SIZE (1..ub-given-name-length)) OPTIONAL,
+ initials [2] IMPLICIT TeletexString
+ (SIZE (1..ub-initials-length)) OPTIONAL,
+ generation-qualifier [3] IMPLICIT TeletexString
+ (SIZE (1..ub-generation-qualifier-length))
+ OPTIONAL }
+
+teletex-organizational-unit-names INTEGER ::= 5
+
+TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+ (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+
+TeletexOrganizationalUnitName ::= TeletexString
+ (SIZE (1..ub-organizational-unit-name-length))
+
+pds-name INTEGER ::= 7
+
+PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+
+physical-delivery-country-name INTEGER ::= 8
+
+PhysicalDeliveryCountryName ::= CHOICE {
+ x121-dcc-code NumericString (SIZE
+(ub-country-name-numeric-length)),
+ iso-3166-alpha2-code PrintableString
+ (SIZE (ub-country-name-alpha-length)) }
+
+postal-code INTEGER ::= 9
+
+PostalCode ::= CHOICE {
+ numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+ printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+
+physical-delivery-office-name INTEGER ::= 10
+
+PhysicalDeliveryOfficeName ::= PDSParameter
+
+physical-delivery-office-number INTEGER ::= 11
+
+PhysicalDeliveryOfficeNumber ::= PDSParameter
+
+extension-OR-address-components INTEGER ::= 12
+
+ExtensionORAddressComponents ::= PDSParameter
+
+physical-delivery-personal-name INTEGER ::= 13
+
+PhysicalDeliveryPersonalName ::= PDSParameter
+
+physical-delivery-organization-name INTEGER ::= 14
+
+PhysicalDeliveryOrganizationName ::= PDSParameter
+
+extension-physical-delivery-address-components INTEGER ::= 15
+
+ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+
+unformatted-postal-address INTEGER ::= 16
+
+UnformattedPostalAddress ::= SET {
+ printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines)
+ OF PrintableString (SIZE (1..ub-pds-parameter-length))
+ OPTIONAL,
+ teletex-string TeletexString
+ (SIZE (1..ub-unformatted-address-length)) OPTIONAL }
+
+street-address INTEGER ::= 17
+
+StreetAddress ::= PDSParameter
+
+post-office-box-address INTEGER ::= 18
+
+PostOfficeBoxAddress ::= PDSParameter
+
+poste-restante-address INTEGER ::= 19
+
+PosteRestanteAddress ::= PDSParameter
+
+unique-postal-name INTEGER ::= 20
+
+UniquePostalName ::= PDSParameter
+
+local-postal-attributes INTEGER ::= 21
+
+LocalPostalAttributes ::= PDSParameter
+
+PDSParameter ::= SET {
+ printable-string PrintableString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+ teletex-string TeletexString
+ (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+
+extended-network-address INTEGER ::= 22
+
+ExtendedNetworkAddress ::= CHOICE {
+ e163-4-address SEQUENCE {
+ number [0] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-number-length)),
+ sub-address [1] IMPLICIT NumericString
+ (SIZE (1..ub-e163-4-sub-address-length))
+ OPTIONAL },
+ psap-address [0] IMPLICIT PresentationAddress }
+
+PresentationAddress ::= SEQUENCE {
+ pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+ sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+ tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+ nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
+
+terminal-type INTEGER ::= 23
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) } (0..ub-integer-options)
+
+-- Extension Domain-defined Attributes
+
+teletex-domain-defined-attributes INTEGER ::= 6
+
+TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+ (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString
+ (SIZE (1..ub-domain-defined-attribute-type-length)),
+ value TeletexString
+ (SIZE (1..ub-domain-defined-attribute-value-length)) }
+
+-- specifications of Upper Bounds MUST be regarded as mandatory
+-- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
+-- Upper Bounds
+
+-- Upper Bounds
+ub-name INTEGER ::= 32768
+ub-common-name INTEGER ::= 64
+ub-locality-name INTEGER ::= 128
+ub-state-name INTEGER ::= 128
+ub-organization-name INTEGER ::= 64
+ub-organizational-unit-name INTEGER ::= 64
+ub-title INTEGER ::= 64
+ub-serial-number INTEGER ::= 64
+ub-match INTEGER ::= 128
+ub-emailaddress-length INTEGER ::= 128
+ub-common-name-length INTEGER ::= 64
+ub-country-name-alpha-length INTEGER ::= 2
+ub-country-name-numeric-length INTEGER ::= 3
+ub-domain-defined-attributes INTEGER ::= 4
+ub-domain-defined-attribute-type-length INTEGER ::= 8
+ub-domain-defined-attribute-value-length INTEGER ::= 128
+ub-domain-name-length INTEGER ::= 16
+ub-extension-attributes INTEGER ::= 256
+ub-e163-4-number-length INTEGER ::= 15
+ub-e163-4-sub-address-length INTEGER ::= 40
+ub-generation-qualifier-length INTEGER ::= 3
+ub-given-name-length INTEGER ::= 16
+ub-initials-length INTEGER ::= 5
+ub-integer-options INTEGER ::= 256
+ub-numeric-user-id-length INTEGER ::= 32
+ub-organization-name-length INTEGER ::= 64
+ub-organizational-unit-name-length INTEGER ::= 32
+ub-organizational-units INTEGER ::= 4
+ub-pds-name-length INTEGER ::= 16
+ub-pds-parameter-length INTEGER ::= 30
+ub-pds-physical-address-lines INTEGER ::= 6
+ub-postal-code-length INTEGER ::= 16
+ub-pseudonym INTEGER ::= 128
+ub-surname-length INTEGER ::= 40
+ub-terminal-id-length INTEGER ::= 24
+ub-unformatted-address-length INTEGER ::= 180
+ub-x121-address-length INTEGER ::= 16
+
+-- Note - upper bounds on string types, such as TeletexString, are
+-- measured in characters. Excepting PrintableString or IA5String, a
+-- significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified
+-- upper bound, whichever is the larger, should be allowed for
+-- TeletexString. For UTF8String or UniversalString at least four
+-- times the upper bound should be allowed.
+
+END
diff --git a/lib/orber/src/PKIX1Implicit88.asn1 b/lib/orber/src/PKIX1Implicit88.asn1
new file mode 100644
index 0000000000..ced270baf6
--- /dev/null
+++ b/lib/orber/src/PKIX1Implicit88.asn1
@@ -0,0 +1,349 @@
+PKIX1Implicit88 { iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19) }
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ id-pe, id-kp, id-qt-unotice, id-qt-cps,
+ -- delete following line if "new" types are supported --
+ -- BMPString,
+ -- UTF8String, end "new" types --
+ ORAddress, Name, RelativeDistinguishedName,
+ CertificateSerialNumber, Attribute, DirectoryString
+ FROM PKIX1Explicit88 { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-explicit(18) };
+
+
+-- ISO arc for standard certificate and CRL extensions
+
+id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
+
+-- authority key identifier OID and syntax
+
+id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+AuthorityKeyIdentifier ::= SEQUENCE {
+ keyIdentifier [0] KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
+ -- authorityCertIssuer and authorityCertSerialNumber MUST both
+ -- be present or both be absent
+
+KeyIdentifier ::= OCTET STRING
+
+-- subject key identifier OID and syntax
+
+id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
+
+SubjectKeyIdentifier ::= KeyIdentifier
+
+-- key usage extension OID and syntax
+
+id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+-- private key usage period extension OID and syntax
+
+id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }
+
+PrivateKeyUsagePeriod ::= SEQUENCE {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+ -- either notBefore or notAfter MUST be present
+
+-- certificate policies extension OID and syntax
+
+id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
+
+anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
+
+CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
+
+PolicyInformation ::= SEQUENCE {
+ policyIdentifier CertPolicyId,
+ policyQualifiers SEQUENCE SIZE (1..MAX) OF
+ PolicyQualifierInfo OPTIONAL }
+
+CertPolicyId ::= OBJECT IDENTIFIER
+
+PolicyQualifierInfo ::= SEQUENCE {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+-- Implementations that recognize additional policy qualifiers MUST
+-- augment the following definition for PolicyQualifierId
+
+PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+-- CPS pointer qualifier
+
+CPSuri ::= IA5String
+
+-- user notice qualifier
+
+UserNotice ::= SEQUENCE {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+NoticeReference ::= SEQUENCE {
+ organization DisplayText,
+ noticeNumbers SEQUENCE OF INTEGER }
+
+DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+-- policy mapping extension OID and syntax
+
+id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }
+
+PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+-- subject alternative name extension OID and syntax
+
+id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }
+
+SubjectAltName ::= GeneralNames
+
+GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
+
+GeneralName ::= CHOICE {
+ otherName [0] AnotherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER }
+
+-- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as
+-- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax
+
+AnotherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+EDIPartyName ::= SEQUENCE {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+-- issuer alternative name extension OID and syntax
+
+id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 }
+
+IssuerAltName ::= GeneralNames
+
+id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 }
+
+SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+-- basic constraints extension OID and syntax
+
+id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
+
+BasicConstraints ::= SEQUENCE {
+ cA BOOLEAN DEFAULT FALSE,
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL }
+
+-- name constraints extension OID and syntax
+
+id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 }
+
+NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+BaseDistance ::= INTEGER (0..MAX)
+
+-- policy constraints extension OID and syntax
+
+id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 }
+
+PolicyConstraints ::= SEQUENCE {
+ requireExplicitPolicy [0] SkipCerts OPTIONAL,
+ inhibitPolicyMapping [1] SkipCerts OPTIONAL }
+
+SkipCerts ::= INTEGER (0..MAX)
+
+-- CRL distribution points extension OID and syntax
+
+id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31}
+
+CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
+
+DistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL }
+
+DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
+
+ReasonFlags ::= BIT STRING {
+ unused (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ privilegeWithdrawn (7),
+ aACompromise (8) }
+
+-- extended key usage extension OID and syntax
+
+id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37}
+
+ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
+
+
+KeyPurposeId ::= OBJECT IDENTIFIER
+
+-- permit unspecified key uses
+
+anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
+
+-- extended key purpose OIDs
+
+id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
+id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
+id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
+id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
+id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
+id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
+
+-- inhibit any policy OID and syntax
+
+id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
+
+InhibitAnyPolicy ::= SkipCerts
+
+-- freshest (delta)CRL extension OID and syntax
+
+id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
+
+FreshestCRL ::= CRLDistributionPoints
+
+-- authority info access
+
+id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+AuthorityInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+-- subject info access
+
+id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 }
+
+SubjectInfoAccessSyntax ::=
+ SEQUENCE SIZE (1..MAX) OF AccessDescription
+
+-- CRL number extension OID and syntax
+
+id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
+
+CRLNumber ::= INTEGER (0..MAX)
+
+-- issuing distribution point extension OID and syntax
+
+id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
+
+IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
+
+BaseCRLNumber ::= CRLNumber
+
+-- CRL reasons extension OID and syntax
+
+id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 }
+
+CRLReason ::= ENUMERATED {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10) }
+
+-- certificate issuer CRL entry extension OID and syntax
+
+id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
+
+CertificateIssuer ::= GeneralNames
+
+-- hold instruction extension OID and syntax
+
+id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 }
+
+HoldInstructionCode ::= OBJECT IDENTIFIER
+
+-- ANSI x9 holdinstructions
+
+-- ANSI x9 arc holdinstruction arc
+
+holdInstruction OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2}
+
+-- ANSI X9 holdinstructions referenced by this standard
+
+id-holdinstruction-none OBJECT IDENTIFIER ::=
+ {holdInstruction 1} -- deprecated
+
+id-holdinstruction-callissuer OBJECT IDENTIFIER ::=
+ {holdInstruction 2}
+
+id-holdinstruction-reject OBJECT IDENTIFIER ::=
+ {holdInstruction 3}
+
+-- invalidity date CRL entry extension OID and syntax
+
+id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
+
+InvalidityDate ::= GeneralizedTime
+
+END
diff --git a/lib/orber/src/PKIXAttributeCertificate.asn1 b/lib/orber/src/PKIXAttributeCertificate.asn1
new file mode 100644
index 0000000000..7d93e6b37e
--- /dev/null
+++ b/lib/orber/src/PKIXAttributeCertificate.asn1
@@ -0,0 +1,189 @@
+ PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
+ internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
+ id-mod-attribute-cert(12)}
+
+ DEFINITIONS IMPLICIT TAGS ::=
+
+ BEGIN
+
+ -- EXPORTS ALL --
+
+ IMPORTS
+
+ -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
+ -- PKIX Certificate Extensions
+ Attribute, AlgorithmIdentifier, CertificateSerialNumber,
+ Extensions, UniqueIdentifier,
+ id-pkix, id-pe, id-kp, id-ad, id-at
+ FROM PKIX1Explicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
+
+ GeneralName, GeneralNames, id-ce
+ FROM PKIX1Implicit88 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5)
+ pkix(7) id-mod(0) id-pkix1-implicit-88(2)} ;
+
+ id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 }
+ id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 }
+ id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 }
+ id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 }
+
+ id-aca OBJECT IDENTIFIER ::= { id-pkix 10 }
+ id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 }
+ id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 }
+ id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 }
+ id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 }
+ -- { id-aca 5 } is reserved
+ id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 }
+
+ id-at-role OBJECT IDENTIFIER ::= { id-at 72}
+ id-at-clearance OBJECT IDENTIFIER ::=
+ { joint-iso-ccitt(2) ds(5) module(1)
+ selected-attribute-types(5) clearance (55) }
+
+ -- Uncomment this if using a 1988 level ASN.1 compiler
+ -- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
+
+ AttributeCertificate ::= SEQUENCE {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+ AttributeCertificateInfo ::= SEQUENCE {
+ version AttCertVersion, -- version is v2
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes SEQUENCE OF Attribute,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= INTEGER { v2(1) }
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the
+ -- holder, for example, an executable
+ }
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- MUST NOT be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+ V2Form ::= SEQUENCE {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST
+ -- NOT be present in this profile
+ }
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUID UniqueIdentifier OPTIONAL
+ }
+
+ AttCertValidityPeriod ::= SEQUENCE {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+ IetfAttrSyntax ::= SEQUENCE {
+ policyAuthority[0] GeneralNames OPTIONAL,
+ values SEQUENCE OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+ SvceAuthInfo ::= SEQUENCE {
+ service GeneralName,
+ ident GeneralName,
+ authInfo OCTET STRING OPTIONAL
+ }
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+ Clearance ::= SEQUENCE {
+ policyId [0] OBJECT IDENTIFIER,
+ classList [1] ClassList DEFAULT {unclassified},
+ securityCategories
+ [2] SET OF SecurityCategory OPTIONAL
+ }
+
+ ClassList ::= BIT STRING {
+ unmarked (0),
+ unclassified (1),
+ restricted (2),
+ confidential (3),
+ secret (4),
+ topSecret (5)
+ }
+
+ SecurityCategory ::= SEQUENCE {
+ type [0] IMPLICIT OBJECT IDENTIFIER,
+ value [1] ANY DEFINED BY type
+ }
+
+ AAControls ::= SEQUENCE {
+ pathLenConstraint INTEGER (0..MAX) OPTIONAL,
+ permittedAttrs [0] AttrSpec OPTIONAL,
+ excludedAttrs [1] AttrSpec OPTIONAL,
+ permitUnSpecified BOOLEAN DEFAULT TRUE
+ }
+
+ AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
+
+ ACClearAttrs ::= SEQUENCE {
+ acIssuer GeneralName,
+ acSerial INTEGER,
+ attrs SEQUENCE OF Attribute
+ }
+
+ ProxyInfo ::= SEQUENCE OF Targets
+
+ END
diff --git a/lib/orber/src/any.erl b/lib/orber/src/any.erl
new file mode 100644
index 0000000000..b5ad34365b
--- /dev/null
+++ b/lib/orber/src/any.erl
@@ -0,0 +1,73 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1998-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: any.erl
+%% Description:
+%% This file conatins the interface for the any type
+%%
+%%-----------------------------------------------------------------
+-module(any).
+
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([create/0, create/2,
+ set_typecode/2, get_typecode/1,
+ set_value/2, get_value/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+create() ->
+ #any{}.
+
+create(TC, V) ->
+ case orber_tc:check_tc(TC) of
+ true ->
+ #any{typecode=TC, value=V};
+ false ->
+ corba:raise(#'BAD_TYPECODE'{completion_status=?COMPLETED_NO})
+ end.
+
+set_typecode(Any, TC) ->
+ case orber_tc:check_tc(TC) of
+ true ->
+ Any#any{typecode=TC};
+ false ->
+ corba:raise(#'BAD_TYPECODE'{completion_status=?COMPLETED_NO})
+ end.
+
+get_typecode(Any) ->
+ Any#any.typecode.
+
+set_value(Any, V) ->
+ Any#any{value=V}.
+
+get_value(Any) ->
+ Any#any.value.
+
diff --git a/lib/orber/src/cdr_decode.erl b/lib/orber/src/cdr_decode.erl
new file mode 100644
index 0000000000..9d30098940
--- /dev/null
+++ b/lib/orber/src/cdr_decode.erl
@@ -0,0 +1,1487 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: cdr_decode.erl
+%%
+%% Description:
+%% This file contains all decoding functions for the CDR
+%% format.
+%%
+%%-----------------------------------------------------------------
+-module(cdr_decode).
+
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/corba.hrl").
+
+-include_lib("orber/src/ifr_objects.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([dec_giop_message_header/1, dec_reply_header/4,
+ dec_reply_body/6, dec_locate_reply_header/4,
+ dec_locate_reply_body/5, dec_message_header/3, dec_request_body/6,
+ dec_octet_sequence_bin/6, dec_message/2, peek_request_id/2]).
+
+%%-----------------------------------------------------------------
+%% Functions which only are exported for the testcases.
+%%-----------------------------------------------------------------
+-export([dec_type/5, dec_byte_order/1, dec_system_exception/4, dec_user_exception/4,
+ dec_byte_order_list/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 9).
+
+-define(ODD(N), (N rem 2) == 1).
+
+%%-----------------------------------------------------------------
+%% Func: dec_message/3
+%% Args:
+%% TypeCodes - is the type_codes of the return value and out parameters
+%% when one decodes a reply.
+%% Bytes - is the the message as a byte sequence.
+%% Returns:
+%% A tupple which contains the decoded message,
+%% {ok, Header, Parameters, TypeCodes}.
+%%-----------------------------------------------------------------
+dec_message(TypeCodes, Bytes) ->
+ Message = dec_giop_message_header(Bytes),
+ case Message#giop_message.message_type of
+ ?GIOP_MSG_REQUEST ->
+ {Version, ReqHdr, Rest, Len, ByteOrder} =
+ dec_request_header(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order, Bytes),
+ dec_request_body(Version, ReqHdr, Rest, Len, ByteOrder, Bytes);
+ ?GIOP_MSG_REPLY ->
+ dec_reply(Message#giop_message.giop_version,
+ TypeCodes, Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_CANCEL_REQUEST ->
+ dec_cancel_request(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_LOCATE_REQUEST ->
+ dec_locate_request(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_LOCATE_REPLY ->
+ dec_locate_reply(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_CLOSE_CONNECTION ->
+ 'close_connection';
+ ?GIOP_MSG_MESSAGE_ERROR ->
+ 'message_error';
+ ?GIOP_MSG_FRAGMENT ->
+ dec_fragment_header(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order, Bytes)
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: dec_giop_message_header/1
+%% Args:
+%% Bytes - is the the message as a byte sequence.
+%% Returns:
+%% A giop_message record.
+%%-----------------------------------------------------------------
+%% Magic|Version|BO| Type | Size | Body
+dec_giop_message_header(<<"GIOP",1:8,0:8,1:8,MessType:8,
+ MessSize:32/little-unsigned-integer,Message/binary>>) ->
+ #giop_message{magic = "GIOP", giop_version = {1,0},
+ byte_order = little, message_type = MessType,
+ message_size = MessSize, message = Message};
+dec_giop_message_header(<<"GIOP",1:8,0:8,0:8,MessType:8,
+ MessSize:32/big-unsigned-integer,Message/binary>>) ->
+ #giop_message{magic = "GIOP", giop_version = {1,0},
+ byte_order = big, message_type = MessType,
+ message_size = MessSize, message = Message};
+dec_giop_message_header(<<"GIOP",1:8,Minor:8,Flags:8,MessType:8,
+ MessSize:32/little-unsigned-integer,Message/binary>>) when
+ ((Flags band 16#01) == 16#01) ->
+ #giop_message{magic = "GIOP", giop_version = {1,Minor},
+ byte_order = little, fragments = ((Flags band 16#02) == 16#02),
+ message_type = MessType, message_size = MessSize, message = Message};
+dec_giop_message_header(<<"GIOP",1:8,Minor:8,Flags:8,MessType:8,
+ MessSize:32/big-unsigned-integer,Message/binary>>) ->
+ #giop_message{magic = "GIOP", giop_version = {1,Minor},
+ byte_order = big, fragments = ((Flags band 16#02) == 16#02),
+ message_type = MessType, message_size = MessSize, message = Message};
+dec_giop_message_header(<<Hdr:?GIOP_HEADER_SIZE/binary, _Body/binary>>) ->
+ orber:dbg("[~p] cdr_decode:dec_giop_message_header(~p);~n"
+ "Orber cannot decode the GIOP-header.", [?LINE, Hdr], ?DEBUG_LEVEL),
+ exit(message_error);
+dec_giop_message_header(Other) ->
+ orber:dbg("[~p] cdr_decode:dec_giop_message_header(~p);~n"
+ "Orber cannot decode the GIOP-header.", [?LINE, Other], ?DEBUG_LEVEL),
+ exit(message_error).
+
+
+peek_request_id(big, <<ReqId:32/big-unsigned-integer,_/binary>>) ->
+ ReqId;
+peek_request_id(little, <<ReqId:32/little-unsigned-integer,_/binary>>) ->
+ ReqId.
+
+%%-----------------------------------------------------------------
+%% Func: dec_message_header/2
+%% Args:
+%% Header - #giop_message{}
+%% Bytes - is the the message body as a byte sequence.
+%% Returns:
+%%-----------------------------------------------------------------
+dec_message_header(TypeCodes, Message, Bytes) ->
+ case Message#giop_message.message_type of
+ ?GIOP_MSG_REQUEST ->
+ dec_request_header(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order, Bytes);
+ ?GIOP_MSG_REPLY ->
+ dec_reply(Message#giop_message.giop_version,
+ TypeCodes, Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_CANCEL_REQUEST ->
+ dec_cancel_request(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_LOCATE_REQUEST ->
+ dec_locate_request(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_LOCATE_REPLY ->
+ dec_locate_reply(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order);
+ ?GIOP_MSG_CLOSE_CONNECTION ->
+ 'close_connection';
+ ?GIOP_MSG_MESSAGE_ERROR ->
+ 'message_error';
+ ?GIOP_MSG_FRAGMENT ->
+ dec_fragment_header(Message#giop_message.giop_version,
+ Message#giop_message.message, ?GIOP_HEADER_SIZE,
+ Message#giop_message.byte_order, Bytes)
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_byte_order/1
+%% Args:
+%% The message as a byte sequence.
+%% Returns:
+%% A tuple {Endianess, Rest} where Endianess is big or little.
+%% Rest is the remaining message byte sequence.
+%%-----------------------------------------------------------------
+dec_byte_order(<<0:8,T/binary>>) ->
+ {big, T};
+dec_byte_order(<<1:8,T/binary>>) ->
+ {little, T}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_byte_order_list/1
+%% Args:
+%% The message as a byte sequence.
+%% Returns:
+%% A tuple {Endianess, Rest} where Endianess is big or little.
+%% Rest is the remaining message byte sequence.
+%%-----------------------------------------------------------------
+dec_byte_order_list([0|T]) ->
+ {big, T};
+dec_byte_order_list([1|T]) ->
+ {little, T}.
+
+%%-----------------------------------------------------------------
+%% Func : dec_response_flags
+%% Args :
+%% Returns : boolean
+%%-----------------------------------------------------------------
+%% FIX ME!! Not correct flag handling.
+dec_response_flags(_Version, <<0:8, Rest/binary>>, Len) ->
+ {false, Rest, Len+1};
+dec_response_flags(_Version, <<1:8, Rest/binary>>, Len) ->
+ {true_oneway, Rest, Len+1};
+dec_response_flags(_Version, <<3:8, Rest/binary>>, Len) ->
+ {true, Rest, Len+1};
+dec_response_flags(_Version, <<X:8, Rest/binary>>, Len) ->
+ %% Not only the Response flag is set, test which.
+ if
+ %% Since the 6 most significant bits are unused we'll accept this for now.
+ ((X band 16#03) == 16#03) ->
+ {true, Rest, Len+1};
+ ((X band 16#01) == 16#01) ->
+ {true_oneway, Rest, Len+1};
+ true ->
+ {false, Rest, Len+1}
+ end.
+
+%%-----------------------------------------------------------------
+%% Func : dec_target_addr
+%% Args : Octet
+%% Returns : boolean
+%%-----------------------------------------------------------------
+dec_target_addr(Version, Message, Len, ByteOrder, RequestId, Type) ->
+ case dec_type(?TARGETADDRESS, Version, Message, Len, ByteOrder, [], 0) of
+ {#'GIOP_TargetAddress'{label = ?GIOP_KeyAddr, value = KeyAddr}, Rest3, Len3, C} ->
+ {dec_target_key(KeyAddr, RequestId, Version, Type), Rest3, Len3, C};
+ {#'GIOP_TargetAddress'{label = ?GIOP_ProfileAddr,
+ value = #'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=PA}},
+ Rest3, Len3, C} ->
+ {dec_target_key(PA, RequestId, Version, Type), Rest3, Len3, C};
+ {#'GIOP_TargetAddress'{label = ?GIOP_ReferenceAddr,
+ value = #'GIOP_IORAddressingInfo'{
+ selected_profile_index = _PI,
+ ior = IOR}}, Rest3, Len3, C} ->
+ {dec_target_key(iop_ior:get_objkey(IOR), RequestId, Version, Type),
+ Rest3, Len3, C};
+ Other ->
+ orber:dbg("[~p] cdr_decode:dec_target_addr(~p);~n"
+ "Unsupported TargetAddress.", [?LINE, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 12), completion_status=?COMPLETED_MAYBE})
+ end.
+
+%%-----------------------------------------------------------------
+%% Func : dec_target_key
+%% Args : Octet
+%% Returns : boolean
+%%-----------------------------------------------------------------
+dec_target_key(Key, RequestId, Version, Type) ->
+ %% The Type argument is used as an identifier of which operation it is.
+ %% We need it to be able to tell the difference if it's, for example,
+ %% a request or locate-request.
+ case corba:string_to_objkey_local(Key) of
+ {location_forward, Object} ->
+ throw({Type, Object, RequestId, Version, Key});
+ ObjRef ->
+ ObjRef
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: dec_request_header/3
+%% Args:
+%% Message - The message
+%% Len0 - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%%-----------------------------------------------------------------
+dec_request_header(Version, Message, Len0, ByteOrder, _Buffer) when Version == {1,2} ->
+ {Request_id, Rest1, Len1, _} = dec_type('tk_ulong', Version, Message, Len0,
+ ByteOrder, [], 0),
+ {ResponseFlags, Rest2, Len2} = dec_response_flags(Version, Rest1, Len1),
+ {_, Rest2b, Len2b, _} = dec_type({'tk_array', 'tk_octet', 3}, Version, Rest2, Len2, ByteOrder, [], 0),
+ {Object_key, Rest3, Len3, _} = dec_target_addr(Version, Rest2b, Len2b, ByteOrder, Request_id,
+ 'location_forward'),
+ {Operation, Rest4, Len4, _} = dec_type({'tk_string', 0}, Version, Rest3, Len3, ByteOrder, [], 0),
+ {Context, Rest5, Len5} = dec_service_context(Version, Rest4, Len4, ByteOrder),
+ {Version, #request_header{service_context=Context,
+ request_id=Request_id,
+ response_expected=ResponseFlags,
+ object_key=Object_key,
+ operation=list_to_atom(Operation),
+ requesting_principal=""}, Rest5, Len5, ByteOrder};
+dec_request_header(Version, Message, Len0, ByteOrder, _Buffer) ->
+ {Context, Rest1, Len1} = dec_service_context(Version, Message, Len0, ByteOrder),
+ {Request_id, Rest2, Len2, _} = dec_type('tk_ulong', Version, Rest1, Len1, ByteOrder, [], 0),
+ {Response_expected, Rest3, Len3, _} = dec_type('tk_boolean', Version, Rest2, Len2,
+ ByteOrder, [], 0),
+ {ObjKey, Rest4, Len4, _} = dec_type({'tk_sequence', 'tk_octet', 0}, Version, Rest3,
+ Len3, ByteOrder, [], 0),
+ Object_key = dec_target_key(ObjKey, Request_id, Version, 'location_forward'),
+ {Operation, Rest5, Len5, _} = dec_type({'tk_string', 0}, Version, Rest4, Len4, ByteOrder, [], 0),
+ {Principal, Rest, Len, _} = dec_type({'tk_string', 0}, Version, Rest5,Len5, ByteOrder, [], 0),
+ {Version, #request_header{service_context=Context,
+ request_id=Request_id,
+ response_expected=Response_expected,
+ object_key=Object_key,
+ operation=list_to_atom(Operation),
+ requesting_principal=Principal}, Rest, Len, ByteOrder}.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_service_context/4
+%% Args: Version - e.g. 1.2
+%% Message - The message
+%% Len - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%%-----------------------------------------------------------------
+dec_service_context(Version, Message, Len, ByteOrder) ->
+ {Context, Rest, Len1} = dec_type(?IOP_SERVICECONTEXT, Version, Message,
+ Len, ByteOrder),
+ {dec_used_contexts(Version, Context, []), Rest, Len1}.
+
+dec_used_contexts(_Version, [], Ctxs) ->
+ Ctxs;
+dec_used_contexts({1,0}, [#'IOP_ServiceContext'{context_id=?IOP_CodeSets}|T], Ctxs) ->
+ %% Not supported by 1.0, drop it.
+ dec_used_contexts({1,0}, T, Ctxs);
+dec_used_contexts(Version, [#'IOP_ServiceContext'{context_id=?IOP_CodeSets,
+ context_data = Bytes}|T], Ctxs) ->
+ {ByteOrder, Rest} = dec_byte_order(list_to_binary(Bytes)),
+ {CodeCtx, _, _} = dec_type(?CONV_FRAME_CODESETCONTEXT, Version,
+ Rest, 1, ByteOrder),
+ dec_used_contexts(Version, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_CodeSets,
+ context_data = CodeCtx}|Ctxs]);
+dec_used_contexts(Version, [#'IOP_ServiceContext'{context_id=?IOP_BI_DIR_IIOP,
+ context_data = Bytes}|T], Ctxs) ->
+ {ByteOrder, Rest} = dec_byte_order(list_to_binary(Bytes)),
+ {BiDirCtx, _, _} = dec_type(?IIOP_BIDIRIIOPSERVICECONTEXT, Version,
+ Rest, 1, ByteOrder),
+ dec_used_contexts(Version, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_BI_DIR_IIOP,
+ context_data = BiDirCtx}|Ctxs]);
+dec_used_contexts(Version, [#'IOP_ServiceContext'{context_id=?IOP_FT_REQUEST,
+ context_data = Bytes}|T], Ctxs) ->
+ {ByteOrder, Rest} = dec_byte_order(list_to_binary(Bytes)),
+ {Ctx, _, _} = dec_type(?FT_FTRequestServiceContext, Version,
+ Rest, 1, ByteOrder),
+ dec_used_contexts(Version, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_FT_REQUEST,
+ context_data = Ctx}|Ctxs]);
+dec_used_contexts(Version, [#'IOP_ServiceContext'{context_id=?IOP_FT_GROUP_VERSION,
+ context_data = Bytes}|T], Ctxs) ->
+ {ByteOrder, Rest} = dec_byte_order(list_to_binary(Bytes)),
+ {Ctx, _, _} = dec_type(?FT_FTGroupVersionServiceContext, Version,
+ Rest, 1, ByteOrder),
+ dec_used_contexts(Version, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_FT_GROUP_VERSION,
+ context_data = Ctx}|Ctxs]);
+dec_used_contexts(Version, [#'IOP_ServiceContext'{context_id=?IOP_SecurityAttributeService,
+ context_data = Bytes}|T], Ctxs) ->
+ {ByteOrder, Rest} = dec_byte_order(list_to_binary(Bytes)),
+ {Ctx, _, _} = dec_type(?CSI_SASContextBody, Version,
+ Rest, 1, ByteOrder),
+ dec_used_contexts(Version, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_SecurityAttributeService,
+ context_data = Ctx}|Ctxs]);
+dec_used_contexts(Version, [#'IOP_ServiceContext'{context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = Bytes}|T], Ctxs) ->
+ {ByteOrder, Rest} = dec_byte_order(list_to_binary(Bytes)),
+ {Ctx, _, _} = dec_type(?ORBER_GENERIC_CTX, Version,
+ Rest, 1, ByteOrder),
+ dec_used_contexts(Version, T,
+ [#'IOP_ServiceContext'{context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = binary_to_term(list_to_binary(Ctx))}|Ctxs]);
+dec_used_contexts(Version, [H|T], Ctxs) ->
+ dec_used_contexts(Version, T, [H|Ctxs]).
+
+%%-----------------------------------------------------------------
+%% Func: dec_request_body
+%% Args: Version - e.g. 1.2
+%% Returns:
+%%-----------------------------------------------------------------
+dec_request_body(Version, ReqHdr, Rest, Len, ByteOrder, Buffer) ->
+ {Parameters, TypeCodes, _} =
+ dec_request_body(Version, ReqHdr#request_header.object_key,
+ ReqHdr#request_header.operation,
+ Rest, Len, ByteOrder, Buffer, Len),
+ {Version, ReqHdr, Parameters, TypeCodes}.
+
+dec_request_body(Version, Object_key, Operation, Body, Len, ByteOrder, Buffer, Counter)
+ when Version == {1,2} ->
+ case orber_typedefs:get_op_def(Object_key, Operation) of
+ {RetType, [], OutParameters} ->
+ {[], {RetType, [], OutParameters}, Len};
+ {RetType, InParameters, OutParameters} ->
+ {Rest, Len1, NewC} = dec_align(Body, Len, 8, Counter),
+ {Parameters, Len2} = dec_parameters(Version, InParameters, Rest, Len1,
+ ByteOrder, Buffer, NewC),
+ {Parameters, {RetType, InParameters, OutParameters}, Len2}
+ end;
+dec_request_body(Version, Object_key, Operation, Body, Len, ByteOrder, Buffer, Counter) ->
+ {RetType, InParameters, OutParameters} =
+ orber_typedefs:get_op_def(Object_key, Operation),
+ {Parameters, Len1} = dec_parameters(Version, InParameters, Body, Len, ByteOrder, Buffer, Counter),
+ {Parameters, {RetType, InParameters, OutParameters}, Len1}.
+
+dec_parameters(_, [], _, Len, _, _, _) ->
+ {[], Len};
+dec_parameters(Version, [P1 |InParList], Body, Len, ByteOrder, Buffer, Counter) ->
+ {Object, Rest, Len1, NewCounter} = dec_type(P1, Version, Body, Len, ByteOrder, Buffer, Counter),
+ {List, Len2} = dec_parameters(Version, InParList, Rest, Len1, ByteOrder, Buffer, NewCounter),
+ {[Object | List], Len2}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_reply/5
+%% Args:
+%% Message - The message
+%% Len0 - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%% A tuple {ReplyHeader, Result} where ReplyHeader is a
+%% reply_header record and Result the decode result.
+%%-----------------------------------------------------------------
+dec_reply(Version, TypeCodes, Message, Len0, ByteOrder) ->
+ {ReplyHeader, Rest, Len} = dec_reply_header(Version, Message, Len0, ByteOrder),
+ {Result, Par} =
+ case ReplyHeader#reply_header.reply_status of
+ 'no_exception' ->
+ {R, P, _} = dec_reply_body(Version, TypeCodes, Rest, Len, ByteOrder, Message),
+ {R, P};
+ 'system_exception' ->
+ {R, _} = dec_system_exception(Version, Rest, Len, ByteOrder),
+ {R, []};
+ 'user_exception' ->
+ {R, _} = dec_user_exception(Version, Rest, Len, ByteOrder),
+ {R, []};
+ 'location_forward' ->
+ {R, _, _} = dec_reply_body(Version, {{'tk_objref', "", ""}, [],[]},
+ Rest, Len, ByteOrder, Message),
+ {R, []};
+ %% This is deprecated in later version than CORBA-2.3.1. We'll leave it for
+ %% now.
+ 'location_forward_perm' ->
+ {R, _, _} = dec_reply_body(Version, {{'tk_objref', "", ""}, [],[]},
+ Rest, Len, ByteOrder, Message),
+ {R, []};
+ 'needs_addressing_mode' ->
+ {R, _, _} = dec_reply_body(Version, {'tk_short', [],[]},
+ Rest, Len, ByteOrder, Message),
+ {R, []}
+ end,
+ {ReplyHeader, Result, Par}.
+
+
+%% ## NEW IIOP 1.2 ##
+dec_reply_header(Version, Message, Len0, ByteOrder) when Version == {1,2} ->
+ {Request_id, Rest1, Len1} = dec_type('tk_ulong', Version, Message, Len0, ByteOrder),
+ {ReplyStatus, Rest2, Len2} = dec_reply_status(Version, Rest1, Len1, ByteOrder),
+ {Context, Rest, Len3} = dec_service_context(Version, Rest2, Len2, ByteOrder),
+ {#reply_header{service_context=Context, request_id=Request_id, reply_status=ReplyStatus},
+ Rest, Len3};
+
+dec_reply_header(Version, Message, Len0, ByteOrder) ->
+ {Context, Rest1, Len1} = dec_service_context(Version, Message, Len0, ByteOrder),
+ {Request_id, Rest2, Len2} = dec_type('tk_ulong', Version, Rest1, Len1, ByteOrder),
+ {ReplyStatus, Rest, Len3} = dec_reply_status(Version, Rest2, Len2, ByteOrder),
+ {#reply_header{service_context=Context, request_id=Request_id, reply_status=ReplyStatus},
+ Rest, Len3}.
+
+dec_reply_status(Version, Status, Len, ByteOrder) ->
+ {L, Rest, Len1}= dec_type('tk_ulong', Version, Status, Len, ByteOrder),
+ {dec_giop_reply_status_type(L), Rest, Len1}.
+
+dec_reply_body(_, {'tk_void', _, []}, <<>>, Len, _, _) ->
+ %% This case is mainly to be able to avoid removing non-existent alignment for
+ %% IIOP-1.2 messages if the body should be empty, i.e., void return value and
+ %% no out parameters.
+ {ok, [], Len};
+dec_reply_body(Version, {RetType, _InParameters, OutParameters}, Body, Len,
+ ByteOrder, Bytes) when Version == {1,2} ->
+ {Rest, Len1, Counter} = dec_align(Body, Len, 8, Len),
+ {Result, Rest2, Len2, C} = dec_type(RetType, Version, Rest, Len1, ByteOrder, Bytes, Counter),
+ {Par, Len3} = dec_parameters(Version, OutParameters, Rest2, Len2, ByteOrder, Bytes, C),
+ {Result, Par, Len3};
+dec_reply_body(Version, {RetType, _InParameters, OutParameters}, Body, Len, ByteOrder, Bytes) ->
+ {Result, Rest, Len1, C} = dec_type(RetType, Version, Body, Len, ByteOrder, Bytes, Len),
+ {Par, Len2} = dec_parameters(Version, OutParameters, Rest, Len1, ByteOrder, Bytes, C),
+ {Result, Par, Len2}.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_cancel_request/3
+%% Args:
+%% Message - The message
+%% Len - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%% A cancel_request_header record.
+%%-----------------------------------------------------------------
+dec_cancel_request(Version, Message, Len, ByteOrder) ->
+ {Request_id, _, _} = dec_type('tk_ulong', Version, Message, Len, ByteOrder),
+ #cancel_request_header{request_id=Request_id}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_locate_request/3
+%% Args:
+%% Message - The message
+%% Len - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%% A locate_request_header record.
+%%-----------------------------------------------------------------
+%% ## NEW IIOP 1.2 ##
+dec_locate_request(Version, Message, Len, ByteOrder) when Version == {1,2} ->
+ {Request_id, Rest, Len1} = dec_type('tk_ulong', Version, Message, Len, ByteOrder),
+ {Object_key, _, _, _} = dec_target_addr(Version, Rest, Len1, ByteOrder, Request_id,
+ 'object_forward'),
+ {Version, #locate_request_header{request_id=Request_id, object_key=Object_key}};
+dec_locate_request(Version, Message, Len, ByteOrder) ->
+ {Request_id, Rest, Len1} = dec_type('tk_ulong', Version, Message, Len, ByteOrder),
+ {ObjKey, _, _} = dec_type({'tk_sequence', 'tk_octet', 0}, Version, Rest,
+ Len1, ByteOrder),
+ Object_key = dec_target_key(ObjKey, Request_id, Version, 'object_forward'),
+ {Version, #locate_request_header{request_id=Request_id, object_key=Object_key}}.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_locate_reply/3
+%% Args:
+%% Message - The message
+%% Len - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%% A locate_reply_header record.
+%%-----------------------------------------------------------------
+dec_locate_reply(Version, Message, Len, ByteOrder) ->
+ {ReplyHeader, Rest1, Len1} = dec_locate_reply_header(Version, Message, Len, ByteOrder),
+ {ReplyHeader, dec_locate_reply_body(Version, ReplyHeader#locate_reply_header.locate_status, Rest1,
+ Len1, ByteOrder)}.
+
+dec_locate_reply_header(Version, Message, Len, ByteOrder) ->
+ {Request_id, Rest1, Len1} = dec_type('tk_ulong', Version, Message, Len, ByteOrder),
+ {Locate_status, Rest2, Len2} = dec_locate_status(Version, Rest1, Len1, ByteOrder),
+ {#locate_reply_header{request_id=Request_id, locate_status=Locate_status}, Rest2, Len2}.
+
+dec_locate_reply_body(Version, LocateStatus, Rest, Len, ByteOrder) when Version == {1,2} ->
+ %% In CORBA-2.3.1 the LocateReply body didn't align the body (8-octet
+ %% boundry) for IIOP-1.2. This have been changed in CORBA-2.4 and
+ %% changed back in CORBA-2.6. Hence, we should not change this.
+ case LocateStatus of
+ 'object_forward' ->
+ {ObjRef, _, _, _} = dec_objref(Version, Rest, Len, ByteOrder),
+ ObjRef;
+ 'object_forward_perm' ->
+ %% This is deprecated in later version than CORBA-2.3.1. We'll leave it for
+ %% now.
+ {ObjRef, _, _, _} = dec_objref(Version, Rest, Len, ByteOrder),
+ ObjRef;
+ 'loc_system_exception' ->
+ %% This should be updated but since 'dec_system_exception' removes
+ %% alignment, which the LocateReplyBody don't have, for 1.2 we
+ %% pretend it's 1.1 for now.
+ {SysExc, _} = dec_system_exception({1,1}, Rest, Len, ByteOrder),
+ corba:raise(SysExc);
+ 'loc_needs_addressing_mode' ->
+ %% Not supported.
+ [];
+ _ ->
+ []
+ end;
+dec_locate_reply_body(Version, LocateStatus, Rest, Len, ByteOrder) ->
+ case LocateStatus of
+ 'object_forward' ->
+ {ObjRef, _, _, _} = dec_objref(Version, Rest, Len, ByteOrder),
+ ObjRef;
+ _ ->
+ []
+ end.
+
+dec_locate_status(Version, Bytes, Len, ByteOrder) ->
+ {L, Rest, Len1} = dec_type('tk_ulong', Version, Bytes, Len, ByteOrder),
+ {dec_giop_locate_status_type(L), Rest, Len1}.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_fragment_header/5
+%% Args:
+%% Message - The message
+%% Len0 - Number of bytes already read.
+%% ByteOrder - little or big
+%% Returns:
+%%-----------------------------------------------------------------
+dec_fragment_header(Version, Message, Len0, ByteOrder, _Buffer) when Version == {1,2} ->
+ {RequestId, Rest1, Len1, _} = dec_type('tk_ulong', Version, Message, Len0,
+ ByteOrder, [], 0),
+ {Version, #fragment_header{request_id=RequestId}, Rest1, Len1, ByteOrder};
+dec_fragment_header(Version, _Message, _Len0, _ByteOrder, _Buffer) ->
+ %% The FragmentHeader is IIOP-1.2 specific. Hence, do nothing here.
+ orber:dbg("[~p] cdr_decode:dec_fragment_header(~p)~n"
+ "Orber only supports fragmented messages for IIOP-1.2.",
+ [?LINE, Version], ?DEBUG_LEVEL),
+ exit(message_error).
+% {Version, #fragment_header{}, Message, Len0, ByteOrder}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_giop_reply_status_type
+%% Args:
+%% An integer status code
+%% Returns:
+%% An atom which is the reply status
+%%-----------------------------------------------------------------
+dec_giop_reply_status_type(0) ->
+ 'no_exception';
+dec_giop_reply_status_type(1) ->
+ 'user_exception';
+dec_giop_reply_status_type(2) ->
+ 'system_exception';
+dec_giop_reply_status_type(3) ->
+ 'location_forward';
+%% ## IIOP-1.2 ##
+dec_giop_reply_status_type(4) ->
+ 'location_forward_perm';
+dec_giop_reply_status_type(5) ->
+ 'needs_addressing_mode'.
+
+%%-----------------------------------------------------------------
+%% Func: dec_giop_locate_status_type
+%% Args:
+%% An integer status code
+%% Returns:
+%% An atom which is the reply status
+%%-----------------------------------------------------------------
+dec_giop_locate_status_type(0) ->
+ 'unknown_object';
+dec_giop_locate_status_type(1) ->
+ 'object_here';
+dec_giop_locate_status_type(2) ->
+ 'object_forward';
+%% ## IIOP-1.2 ##
+dec_giop_locate_status_type(3) ->
+ 'object_forward_perm';
+dec_giop_locate_status_type(4) ->
+ 'loc_system_exception';
+dec_giop_locate_status_type(5) ->
+ 'loc_needs_addressing_mode'.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_type/5
+%%-----------------------------------------------------------------
+dec_type(Type, Version, Bytes, Len, ByteOrder) ->
+ {Val, Rest, Len2, _} =
+ dec_type(Type, Version, Bytes, Len, ByteOrder, [], 0),
+ {Val, Rest, Len2}.
+
+dec_type('tk_null', _Version, Bytes, Len, _, _, C) ->
+ {'null', Bytes, Len, C};
+dec_type('tk_void', _Version, Bytes, Len, _, _, C) ->
+ {'ok', Bytes, Len, C};
+dec_type('tk_short', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 2, C),
+ {Short, Rest1} = cdrlib:dec_short(ByteOrder, Rest),
+ {Short, Rest1, Len1 + 2, NewC+2};
+dec_type('tk_long', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 4, C),
+ {Long, Rest1} = cdrlib:dec_long(ByteOrder, Rest),
+ {Long, Rest1, Len1 + 4, NewC+4};
+dec_type('tk_longlong', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 8, C),
+ {Long, Rest1} = cdrlib:dec_longlong(ByteOrder, Rest),
+ {Long, Rest1, Len1 + 8, NewC+8};
+dec_type('tk_ushort', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 2, C),
+ {Short, Rest1} = cdrlib:dec_unsigned_short(ByteOrder, Rest),
+ {Short, Rest1, Len1 + 2, NewC+2};
+dec_type('tk_ulong', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 4, C),
+ {Long, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ {Long, Rest1, Len1 + 4, NewC+4};
+dec_type('tk_ulonglong', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 8, C),
+ {Long, Rest1} = cdrlib:dec_unsigned_longlong(ByteOrder, Rest),
+ {Long, Rest1, Len1 + 8, NewC+8};
+dec_type('tk_float', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 4, C),
+ {Float, Rest1} = cdrlib:dec_float(ByteOrder, Rest),
+ {Float, Rest1, Len1 + 4, NewC+4};
+dec_type('tk_double', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 8, C),
+ {Double, Rest1} = cdrlib:dec_double(ByteOrder, Rest),
+ {Double, Rest1, Len1 + 8, NewC+8};
+dec_type('tk_boolean', _Version, Bytes, Len, _, _, C) ->
+ {Bool, Rest} = cdrlib:dec_bool(Bytes),
+ {Bool, Rest, Len + 1, C+1};
+dec_type('tk_char', _Version, Bytes, Len, _, _, C) ->
+ {Char, Rest} = cdrlib:dec_char(Bytes),
+ {Char, Rest, Len + 1, C+1};
+dec_type('tk_wchar', {1,2}, Bytes, Len, _ByteOrder, _, C) ->
+ %% For IIOP-1.2 a wchar is almost encoded the same way as an octet-sequence.
+ %% The only difference is that the length-value is an octet as well.
+ case cdrlib:dec_octet(Bytes) of
+ {2, Rest1} ->
+ %% Currently we only allow 2-bytes wchar.
+ {WChar, Rest2} = cdrlib:dec_unsigned_short(big, Rest1),
+ {WChar, Rest2, Len+3, C+3};
+ {What, _} ->
+ orber:dbg("[~p] cdr_decode:dec_type(~p); unsupported wchar",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'DATA_CONVERSION'{completion_status=?COMPLETED_NO})
+ end;
+%% For 1.1 the wchar is limited to the use of two-octet fixed-length encoding.
+dec_type('tk_wchar', _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 2, C),
+ {WChar, Rest2} = cdrlib:dec_unsigned_short(ByteOrder, Rest),
+ {WChar, Rest2, Len1 + 2, NewC+2};
+dec_type('tk_octet', _Version, Bytes, Len, _, _, C) ->
+ {Octet, Rest} = cdrlib:dec_octet(Bytes),
+ {Octet, Rest, Len + 1, C+1};
+dec_type('tk_any', Version, Bytes, Len, ByteOrder, Buff, C) ->
+ {TypeCode, Rest1, Len1, NewC} = dec_type('tk_TypeCode', Version, Bytes, Len, ByteOrder, Buff, C),
+ {Value, Rest2, Len2, NewC2} = dec_type(TypeCode, Version, Rest1, Len1, ByteOrder, Buff, NewC),
+ {#any{typecode=TypeCode, value=Value}, Rest2, Len2, NewC2};
+dec_type('tk_TypeCode', Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_type_code(Version, Bytes, Len, ByteOrder, Buff, C);
+dec_type('tk_Principal', Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_sequence(Version, Bytes, 'tk_octet', Len, ByteOrder, Buff, C);
+dec_type({'tk_objref', _IFRId, _Name}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_objref(Version, Bytes, Len, ByteOrder, Buff, C);
+dec_type({'tk_struct', IFRId, Name, ElementList}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_struct(Version, IFRId, Name, ElementList, Bytes, Len, ByteOrder, Buff, C);
+dec_type({'tk_union', IFRId, Name, DiscrTC, Default, ElementList},
+ Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_union(Version, IFRId, Name, DiscrTC, Default, ElementList, Bytes, Len, ByteOrder, Buff, C);
+dec_type({'tk_enum', _IFRId, _Name, ElementList}, _Version, Bytes, Len, ByteOrder, _, C) ->
+ {Rest, Len1, NewC} = dec_align(Bytes, Len, 4, C),
+ {Enum, Rest1} = cdrlib:dec_enum(ByteOrder, ElementList, Rest),
+ {Enum, Rest1, Len1 + 4, NewC+4};
+dec_type({'tk_string', _MaxLength}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_string(Version, Bytes, Len, ByteOrder, Buff, C);
+dec_type({'tk_wstring', _MaxLength}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_wstring(Version, Bytes, Len, ByteOrder, Buff, C);
+dec_type({'tk_sequence', ElemTC, _MaxLength}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_sequence(Version, Bytes, ElemTC, Len, ByteOrder, Buff, C);
+dec_type({'tk_array', ElemTC, Size}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_array(Version, Bytes, Size, ElemTC, Len, ByteOrder, Buff, C);
+dec_type({'tk_alias', _IFRId, _Name, TC}, Version, Bytes, Len, ByteOrder, Buff, C) ->
+ dec_type(TC, Version, Bytes, Len, ByteOrder, Buff, C);
+%dec_type({'tk_except', IFRId, Name, ElementList}, Version, Bytes, Len, ByteOrder) ->
+dec_type({'tk_fixed', Digits, Scale}, _Version, Bytes, Len, _ByteOrder, _Buff, C) ->
+ dec_fixed(Digits, Scale, Bytes, Len, C);
+dec_type(Type, _, _, _, _, _, _) ->
+ orber:dbg("[~p] cdr_decode:dec_type(~p)~n"
+ "Incorrect TypeCode or unsupported type.",
+ [?LINE, Type], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 13), completion_status=?COMPLETED_MAYBE}).
+
+stringify_enum({tk_enum,_,_,_}, Label) ->
+ atom_to_list(Label);
+stringify_enum(_, Label) ->
+ Label.
+
+%%-----------------------------------------------------------------
+%% Func: dec_fixed
+%%-----------------------------------------------------------------
+%% Digits eq. total number of digits.
+%% Scale eq. position of the decimal point.
+%% E.g. fixed<5,2> - "123.45"
+%% E.g. fixed<4,2> - "12.34"
+%% These are encoded as:
+%% ## <5,2> ## ## <4,2> ##
+%% 1,2 0,1 eq. 1 octet
+%% 3,4 2,3
+%% 5,0xC 4,0xC
+%%
+%% Each number is encoded as a half-octet. Note, for <4,2> a zero is
+%% added first to to be able to create "even" octets.
+dec_fixed(0, 0, Bytes, Len, C) ->
+ {#fixed{digits = 0, scale = 0, value = ""}, Bytes, Len, C};
+dec_fixed(Digits, Scale, Bytes, Len, C) ->
+ case ?ODD(Digits) of
+ true ->
+ {Fixed, Bytes2, Len2, C2, Sign} = dec_fixed_2(Digits, Scale, Bytes, Len, C),
+ case Sign of
+ ?FIXED_POSITIVE ->
+ {#fixed{digits = Digits, scale = Scale,
+ value = list_to_integer(Fixed)}, Bytes2, Len2, C2};
+ ?FIXED_NEGATIVE ->
+ {#fixed{digits = Digits, scale = Scale,
+ value = -list_to_integer(Fixed)}, Bytes2, Len2, C2}
+ end;
+ false ->
+ %% If the length (of fixed) is even a zero is added first.
+ %% Subtract that we've read 1 digit.
+ <<0:4,D2:4,T/binary>> = Bytes,
+ {Fixed, Bytes2, Len2, C2, Sign} = dec_fixed_2(Digits-1, Scale, T, Len+1, C+1),
+ case Sign of
+ ?FIXED_POSITIVE ->
+ {#fixed{digits = Digits, scale = Scale,
+ value = list_to_integer([D2+48|Fixed])}, Bytes2, Len2, C2};
+ ?FIXED_NEGATIVE ->
+ {#fixed{digits = Digits, scale = Scale,
+ value = -list_to_integer([D2+48|Fixed])}, Bytes2, Len2, C2}
+ end
+ end.
+
+dec_fixed_2(1, _Scale, <<D1:4,?FIXED_POSITIVE:4,T/binary>>, Len, C) ->
+ {[D1+48], T, Len+1, C+1, ?FIXED_POSITIVE};
+dec_fixed_2(1, _Scale, <<D1:4,?FIXED_NEGATIVE:4,T/binary>>, Len, C) ->
+ {[D1+48], T, Len+1, C+1, ?FIXED_NEGATIVE};
+dec_fixed_2(Digits, Scale, _Bytes, _Len, _C) when Digits =< 0 ->
+ orber:dbg("[~p] cdr_decode:dec_fixed_2(~p, ~p)~n"
+ "Malformed fixed type.", [?LINE, Digits, Scale], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 14), completion_status=?COMPLETED_MAYBE});
+dec_fixed_2(Digits, Scale, <<>>, _Len, _C) ->
+ orber:dbg("[~p] cdr_decode:dec_fixed_2(~p, ~p)~n"
+ "The fixed type received was to short.",
+ [?LINE, Digits, Scale], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 14), completion_status=?COMPLETED_MAYBE});
+dec_fixed_2(Digits, Scale, <<D1:4,D2:4,T/binary>>, Len, C) ->
+ {Seq, Rest2, Len2, NewC2, Sign} = dec_fixed_2(Digits-2, Scale, T, Len+1, C+1),
+ {[D1+48, D2+48 | Seq], Rest2, Len2, NewC2, Sign}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_sequence/7 and dec_sequence/8
+%%-----------------------------------------------------------------
+dec_sequence(_Version, Message, 'tk_octet', Len, ByteOrder, _Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ <<OctetSeq:Size/binary, Rest2/binary>> = Rest1,
+ {binary_to_list(OctetSeq), Rest2, Len1+4+Size, NewC+4+Size};
+dec_sequence(_Version, Message, 'tk_char', Len, ByteOrder, _Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ <<OctetSeq:Size/binary, Rest2/binary>> = Rest1,
+ {binary_to_list(OctetSeq), Rest2, Len1+4+Size, NewC+4+Size};
+%% We test if it's a sequence of struct's or unions. By doing this we only
+%% have to look up the IFR-ID once instead of N times (N eq length of sequence).
+dec_sequence(Version, Message, {'tk_struct', IFRId, ShortName, ElementList},
+ Len, ByteOrder, Buff, C) when IFRId /= "", ShortName /= "" ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ case IFRId of
+ ?SYSTEM_TYPE ->
+ dec_sequence_struct(Version, Rest1, Size, ElementList, Len1 + 4,
+ ByteOrder, Buff, NewC+4, ShortName);
+ _ ->
+ Name = ifrid_to_name(IFRId, ?IFR_StructDef),
+ dec_sequence_struct(Version, Rest1, Size, ElementList, Len1 + 4,
+ ByteOrder, Buff, NewC+4, Name)
+ end;
+dec_sequence(Version, Message,
+ {'tk_union', ?SYSTEM_TYPE, TCName, DiscrTC, Default, ElementList},
+ Len, ByteOrder, Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ dec_sequence_union(Version, Rest1, Size, DiscrTC, Default, ElementList, Len1 + 4,
+ ByteOrder, Buff, NewC+4, TCName);
+dec_sequence(Version, Message,
+ {'tk_union', IFRId, _TCName, DiscrTC, Default, ElementList},
+ Len, ByteOrder, Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ Name = ifrid_to_name(IFRId, ?IFR_UnionDef),
+ dec_sequence_union(Version, Rest1, Size, DiscrTC, Default, ElementList, Len1 + 4,
+ ByteOrder, Buff, NewC+4, Name);
+dec_sequence(Version, Message, TypeCode, Len, ByteOrder, Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ dec_sequence(Version, Rest1, Size, TypeCode, Len1 + 4, ByteOrder, Buff, NewC+4).
+
+
+dec_sequence(_, Message, 0, _Type, Len, _ByteOrder, _Buff, C) ->
+ {[], Message, Len, C};
+dec_sequence(Version, Message, N, Type, Len, ByteOrder, Buff, C) ->
+ {Object, Rest1, Len1, NewC} = dec_type(Type, Version, Message, Len, ByteOrder, Buff, C),
+ {Seq, Rest2, Len2, NewC2} = dec_sequence(Version, Rest1, N - 1, Type, Len1, ByteOrder, Buff, NewC),
+ {[Object | Seq], Rest2, Len2, NewC2}.
+
+dec_sequence_struct(_, Message, 0, _Type, Len, _ByteOrder, _Buff, C, _Name) ->
+ {[], Message, Len, C};
+dec_sequence_struct(Version, Message, N, TypeCodeList, Len, ByteOrder, Buff, C, Name) ->
+ {Struct, Rest1, Len1, NewC} = dec_struct1(Version, TypeCodeList, Message, Len, ByteOrder, Buff, C),
+ {Seq, Rest2, Len2, NewC2} = dec_sequence_struct(Version, Rest1, N - 1, TypeCodeList, Len1, ByteOrder,
+ Buff, NewC, Name),
+ {[list_to_tuple([Name |Struct]) | Seq], Rest2, Len2, NewC2}.
+dec_sequence_union(_, Message, 0, _DiscrTC, _Default, _ElementList, Len, _ByteOrder, _Buff, C, _Name) ->
+ {[], Message, Len, C};
+dec_sequence_union(Version, Message, N, DiscrTC, Default, ElementList, Len, ByteOrder, Buff, C, Name) ->
+
+ {Label, Rest1, Len1, NewC} = dec_type(DiscrTC, Version, Message, Len, ByteOrder, Buff, C),
+ Result = dec_union(Version, stringify_enum(DiscrTC, Label), ElementList, Default,
+ Rest1, Len1, ByteOrder, Buff, NewC),
+ {Value, Rest2, Len2, NewC3} = case Result of
+ {default, R, L, NewC2} ->
+ dec_union(Version, default, ElementList, Default,
+ R, L, ByteOrder, Buff, NewC2);
+ X ->
+ X
+ end,
+ {Seq, Rest3, Len3, NewC4} = dec_sequence_union(Version, Rest2, N - 1,
+ DiscrTC, Default, ElementList,
+ Len2, ByteOrder,
+ Buff, NewC3, Name),
+ {[{Name, Label, Value} | Seq], Rest3, Len3, NewC4}.
+
+%% A special case; when something is encapsulated (i.e. sent as octet-sequence)
+%% we sometimes don not want the result to be converted to a list.
+dec_octet_sequence_bin(_Version, Message, Len, ByteOrder, _Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ <<OctetSeq:Size/binary, Rest2/binary>> = Rest1,
+ {OctetSeq, Rest2, Len1+4+Size, NewC+4+Size}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_array/5
+%%-----------------------------------------------------------------
+dec_array(Version, Message, Size, TypeCode, Len, ByteOrder, Buff, C) ->
+ {Seq, Rest1, Len1, NewC} = dec_sequence(Version, Message, Size, TypeCode, Len,
+ ByteOrder, Buff, C),
+ {list_to_tuple(Seq), Rest1, Len1, NewC}.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_string/4
+%%-----------------------------------------------------------------
+dec_string(_Version, Message, Len, ByteOrder, _Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ if
+ Size > 0 ->
+ DataSize = Size-1,
+ <<String:DataSize/binary, _Null:1/binary, Rest2/binary>> = Rest1,
+ {binary_to_list(String), Rest2, Len1+4+Size, NewC+4+Size};
+ true ->
+ {"", Rest1, Len1 + 4, NewC+4}
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: dec_string/4
+%%-----------------------------------------------------------------
+dec_wstring({1,2}, Message, Len, ByteOrder, Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Octets, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ if
+ Octets == 0 ->
+ {"", Rest1, Len1 + 4, NewC+4};
+ Octets > 0 ->
+ Size = round(Octets/2),
+ {String, Rest2, Len2, NewC2} =
+ dec_sequence({1,2}, Rest1, Size, 'tk_ushort',
+ Len1 + 4, big, Buff, NewC+4),
+ {String, Rest2, Len2, NewC2};
+ true ->
+ orber:dbg("[~p] cdr_decode:dec_wstring(~p);",
+ [?LINE, Rest1], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO})
+ end;
+dec_wstring(Version, Message, Len, ByteOrder, Buff, C) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, C),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ if
+ Size > 0 ->
+ {String, Rest2, Len2, NewC2} = dec_sequence(Version, Rest1, Size - 1, 'tk_wchar',
+ Len1 + 4, ByteOrder, Buff, NewC+4),
+ %% Remove the NULL character.
+ {_, Rest3} = cdrlib:dec_unsigned_short(ByteOrder, Rest2),
+ {String, Rest3, Len2 + 2, NewC2+2};
+ Size == 0 ->
+ {"", Rest1, Len1 + 4, NewC+4};
+ true ->
+ orber:dbg("[~p] cdr_decode:dec_wstring(~p);",
+ [?LINE, Rest1], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO})
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_union/9
+%%-----------------------------------------------------------------
+%% ## NEW IIOP 1.2 ##
+dec_union(Version, ?SYSTEM_TYPE, Name, DiscrTC, Default, ElementList, Bytes, Len, ByteOrder, Buff, C) ->
+ {Label, Rest1, Len1, NewC} = dec_type(DiscrTC, Version, Bytes, Len, ByteOrder, Buff, C),
+ {Value, Rest2, Len2, NewC3} = dec_union(Version, Label, ElementList, Default,
+ Rest1, Len1, ByteOrder, Buff, NewC),
+ {{Name, Label, Value}, Rest2, Len2, NewC3};
+
+
+dec_union(Version, IFRId, _, DiscrTC, Default, ElementList, Bytes, Len, ByteOrder, Buff, C) ->
+ {Label, Rest1, Len1, NewC} = dec_type(DiscrTC, Version, Bytes, Len, ByteOrder, Buff, C),
+ Result = dec_union(Version, stringify_enum(DiscrTC, Label), ElementList, Default,
+ Rest1, Len1, ByteOrder, Buff, NewC),
+ {Value, Rest2, Len2, NewC3} = case Result of
+ {default, R, L, NewC2} ->
+ dec_union(Version, default, ElementList, Default,
+ R, L, ByteOrder, Buff, NewC2);
+ X ->
+ X
+ end,
+ Name = ifrid_to_name(IFRId, ?IFR_UnionDef),
+ {{Name, Label, Value}, Rest2, Len2, NewC3}.
+
+dec_union(_, _, [], Default, Message, Len, _, _Buff, C) when Default < 0 ->
+ {undefined, Message, Len, C};
+dec_union(_, _, [], _Default, Message, Len, _, _Buff, C) ->
+ {default, Message, Len, C};
+dec_union(Version, Label, [{Label, _Name, Type}|_List], _Default, Message, Len, ByteOrder, Buff, C) ->
+ dec_type(Type, Version, Message, Len, ByteOrder, Buff, C);
+dec_union(Version, Label, [_H|List], Default, Message, Len, ByteOrder, Buff, C) ->
+ dec_union(Version, Label, List, Default, Message, Len, ByteOrder, Buff, C).
+
+%%-----------------------------------------------------------------
+%% Func: dec_struct/7
+%%-----------------------------------------------------------------
+dec_struct(Version, "", "", TypeCodeList, Message, Len, ByteOrder, Buff, C) ->
+ {Struct, Rest, Len1, NewC} = dec_struct1(Version, TypeCodeList, Message, Len, ByteOrder, Buff, C),
+ {list_to_tuple(Struct), Rest, Len1, NewC};
+dec_struct(Version, [], Name, TypeCodeList, Message, Len, ByteOrder, Buff, C) ->
+ %% This case is used when communicating with ORB:s which don't supply the IFRId
+ %% field in struct type codes (used in any)
+ {Struct, Rest, Len1, NewC} = dec_struct1(Version, TypeCodeList, Message, Len, ByteOrder, Buff, C),
+ {list_to_tuple([list_to_atom(Name) |Struct]), Rest, Len1, NewC};
+dec_struct(Version, ?SYSTEM_TYPE, ShortName, TypeCodeList, Message, Len, ByteOrder, Buff, C) ->
+ {Struct, Rest, Len1, NewC} = dec_struct1(Version, TypeCodeList, Message, Len, ByteOrder, Buff, C),
+ {list_to_tuple([ShortName |Struct]), Rest, Len1, NewC};
+dec_struct(Version, IFRId, _ShortName, TypeCodeList, Message, Len, ByteOrder, Buff, C) ->
+ Name = ifrid_to_name(IFRId, ?IFR_StructDef),
+ {Struct, Rest, Len1, NewC} = dec_struct1(Version, TypeCodeList, Message, Len, ByteOrder, Buff, C),
+ {list_to_tuple([Name |Struct]), Rest, Len1, NewC}.
+
+dec_struct1(_, [], Message, Len, _ByteOrder, _, C) ->
+ {[], Message, Len, C};
+dec_struct1(Version, [{_ElemName, ElemType} | TypeCodeList], Message, Len, ByteOrder, Buff, C) ->
+ {Element, Rest, Len1, NewC} = dec_type(ElemType, Version, Message, Len, ByteOrder, Buff, C),
+ {Struct, Rest1, Len2, NewC2} = dec_struct1(Version, TypeCodeList, Rest, Len1, ByteOrder, Buff, NewC),
+ {[Element |Struct], Rest1, Len2, NewC2}.
+
+ifrid_to_name([], Type) ->
+ orber:dbg("[~p] ~p:ifrid_to_name([], ~p). No Id supplied.",
+ [?LINE, ?MODULE, Type], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?CORBA_OMGVMCID bor 11),
+ completion_status=?COMPLETED_MAYBE});
+ifrid_to_name(Id, Type) ->
+ case orber:light_ifr() of
+ true ->
+ orber_ifr:get_module(Id, Type);
+ false ->
+ case catch ifrid_to_name_helper(Id, Type) of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ {'EXIT',{aborted,{no_exists,_}}} ->
+ case orber:get_lightweight_nodes() of
+ false ->
+ orber:dbg("[~p] cdr_decode:ifrid_to_name(~p, ~p). IFRid not found.",
+ [?LINE, Id, Type], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ Nodes ->
+ {A,B,C} = now(),
+ random:seed(A,B,C),
+ L = length(Nodes),
+ IFR = get_ifr_node(Nodes, random:uniform(L), L),
+ list_to_atom('OrberApp_IFR':get_absolute_name(IFR, Id))
+ end;
+ {'EXIT', Other} ->
+ orber:dbg("[~p] cdr_decode:ifrid_to_name(~p). Unknown: ~p",
+ [?LINE, Id, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ Name ->
+ list_to_atom(Name)
+ end
+ end.
+
+ifrid_to_name_helper(Id, ?IFR_UnionDef) ->
+ case mnesia:dirty_index_read(ir_UnionDef, Id, #ir_UnionDef.id) of
+ [#ir_UnionDef{absolute_name = [$:,$:|N]}] ->
+ change_colons_to_underscore(N, []);
+ Other ->
+ orber:dbg("[~p] cdr_decode:ifrid_to_name(~p). IFR Id not found: ~p",
+ [?LINE, Id, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 9),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+ifrid_to_name_helper(Id, ?IFR_StructDef) ->
+ case mnesia:dirty_index_read(ir_StructDef, Id, #ir_StructDef.id) of
+ [#ir_StructDef{absolute_name = [$:,$:|N]}] ->
+ change_colons_to_underscore(N, []);
+ Other ->
+ orber:dbg("[~p] cdr_decode:ifrid_to_name(~p). IFR Id not found: ~p",
+ [?LINE, Id, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 10),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+ifrid_to_name_helper(Id, ?IFR_ExceptionDef) ->
+ case mnesia:dirty_index_read(ir_ExceptionDef, Id, #ir_ExceptionDef.id) of
+ [#ir_ExceptionDef{absolute_name = [$:,$:|N]}] ->
+ change_colons_to_underscore(N, []);
+ Other ->
+ orber:dbg("[~p] cdr_decode:ifrid_to_name(~p). IFR Id not found: ~p",
+ [?LINE, Id, Other], ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{minor=(?CORBA_OMGVMCID bor 1),
+ completion_status=?COMPLETED_MAYBE})
+ end.
+
+change_colons_to_underscore([$:, $: | T], Acc) ->
+ change_colons_to_underscore(T, [$_ |Acc]);
+change_colons_to_underscore([H |T], Acc) ->
+ change_colons_to_underscore(T, [H |Acc]);
+change_colons_to_underscore([], Acc) ->
+ lists:reverse(Acc).
+
+get_ifr_node([], _, _) ->
+ %% Were not able to contact any of the given nodes.
+ orber:dbg("[~p] cdr_decode:get_ifr_node([]). No Node available.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_MAYBE});
+get_ifr_node(Nodes, N, L) ->
+ Node = lists:nth(N, Nodes),
+ case catch corba:resolve_initial_references_remote("OrberIFR", [Node]) of
+ IFR when is_record(IFR, 'IOP_IOR') ->
+ IFR;
+ _ ->
+ %% Not able to commincate with the node. Try next one.
+ NewL = L-1,
+ get_ifr_node(lists:delete(Node, Nodes), random:uniform(NewL), NewL)
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: dec_objref/4
+%%-----------------------------------------------------------------
+dec_objref(Version, Message, Len, ByteOrder) ->
+ dec_objref(Version, Message, Len, ByteOrder, [], 0).
+dec_objref(Version, Message, Len, ByteOrder, _Buff, C) ->
+ {IOR, Rest, Length} = iop_ior:decode(Version, Message, Len, ByteOrder),
+ {IOR, Rest, Length, C+Length-Len}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_system_exception/4 and dec_user_exception/4
+%%-----------------------------------------------------------------
+dec_system_exception(Version, Message, Len, ByteOrder) when Version == {1,2} ->
+ {Rest0, Len0, _Counter} = dec_align(Message, Len, 8, Len),
+ {TypeId, Rest1, Len1} = dec_type({'tk_string', 0}, Version, Rest0, Len0, ByteOrder),
+ Name = orber_exceptions:get_name(TypeId, ?SYSTEM_EXCEPTION),
+ {Struct, _Rest2, Len2} =
+ dec_exception_1(Version, [{"minor",'tk_ulong'},
+ {"completed",
+ {'tk_enum', "", "completion_status",
+ ["COMPLETED_YES", "COMPLETED_NO",
+ "COMPLETED_MAYBE"]}}],
+ Rest1, Len1, ByteOrder),
+ {list_to_tuple([Name, "" |Struct]), Len2};
+dec_system_exception(Version, Message, Len, ByteOrder) ->
+ {TypeId, Rest1, Len1} = dec_type({'tk_string', 0}, Version, Message, Len, ByteOrder),
+ Name = orber_exceptions:get_name(TypeId, ?SYSTEM_EXCEPTION),
+ {Struct, _Rest2, Len2} =
+ dec_exception_1(Version, [{"minor",'tk_ulong'},
+ {"completed",
+ {'tk_enum', "", "completion_status",
+ ["COMPLETED_YES", "COMPLETED_NO",
+ "COMPLETED_MAYBE"]}}],
+ Rest1, Len1, ByteOrder),
+ {list_to_tuple([Name, "" |Struct]), Len2}.
+
+dec_user_exception(Version, Message, Len, ByteOrder) when Version == {1,2} ->
+ {Rest0, Len0, _Counter} = dec_align(Message, Len, 8, Len),
+ {TypeId, Rest1, Len1} = dec_type({'tk_string', 0}, Version, Rest0, Len0, ByteOrder),
+ Name = ifrid_to_name(TypeId, ?IFR_ExceptionDef),
+ {'tk_except', _, _, ElementList} = get_user_exception_type(TypeId),
+ {Struct, _Rest2, Len2} = dec_exception_1(Version, ElementList, Rest1, Len1,
+ ByteOrder),
+ {list_to_tuple([Name, TypeId |Struct]), Len2};
+dec_user_exception(Version, Message, Len, ByteOrder) ->
+ {TypeId, Rest1, Len1} = dec_type({'tk_string', 0}, Version, Message, Len, ByteOrder),
+ Name = ifrid_to_name(TypeId, ?IFR_ExceptionDef),
+ {'tk_except', _, _, ElementList} = get_user_exception_type(TypeId),
+ {Struct, _Rest2, Len2} = dec_exception_1(Version, ElementList, Rest1, Len1,
+ ByteOrder),
+ {list_to_tuple([Name, TypeId |Struct]), Len2}.
+
+dec_exception_1(_, [], Message, Len, _ByteOrder) ->
+ {[], Message, Len};
+dec_exception_1(Version, [{_ElemName, ElemType} | ElementList], Message,
+ Len, ByteOrder) ->
+ {Element, Rest, Len1} = dec_type(ElemType, Version, Message, Len, ByteOrder),
+ {Struct, Rest1, Len2} = dec_exception_1(Version, ElementList, Rest, Len1,
+ ByteOrder),
+ {[Element |Struct], Rest1, Len2}.
+
+
+get_user_exception_type(TypeId) ->
+ case orber:light_ifr() of
+ true ->
+ orber_ifr:get_tc(TypeId, ?IFR_ExceptionDef);
+ false ->
+ case orber:get_lightweight_nodes() of
+ false ->
+ case mnesia:dirty_index_read(ir_ExceptionDef, TypeId,
+ #ir_ExceptionDef.id) of
+ [ExcDef] when is_record(ExcDef, ir_ExceptionDef) ->
+ ExcDef#ir_ExceptionDef.type;
+ Other ->
+ orber:dbg("[~p] cdr_decode:get_user_exception_type(~p). IFR Id not found: ~p",
+ [?LINE, TypeId, Other], ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{minor=(?CORBA_OMGVMCID bor 1),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+ Nodes ->
+ {A,B,C} = now(),
+ random:seed(A,B,C),
+ L = length(Nodes),
+ IFR = get_ifr_node(Nodes, random:uniform(L), L),
+ 'OrberApp_IFR':get_user_exception_type(IFR, TypeId)
+ end
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: dec_type_code/4
+%%-----------------------------------------------------------------
+dec_type_code(Version, Message, Len, ByteOrder, Buff, C) ->
+ {TypeNo, Message1, Len1, NewC} = dec_type('tk_ulong', Version, Message, Len, ByteOrder, Buff, C),
+ dec_type_code(TypeNo, Version, Message1, Len1, ByteOrder, Buff, NewC).
+
+%%-----------------------------------------------------------------
+%% Func: dec_type_code/5
+%%-----------------------------------------------------------------
+dec_type_code(0, _, Message, Len, _, _, C) ->
+ {'tk_null', Message, Len, C};
+dec_type_code(1, _, Message, Len, _, _, C) ->
+ {'tk_void', Message, Len, C};
+dec_type_code(2, _, Message, Len, _, _, C) ->
+ {'tk_short', Message, Len, C};
+dec_type_code(3, _, Message, Len, _, _, C) ->
+ {'tk_long', Message, Len, C};
+dec_type_code(23, _, Message, Len, _, _, C) ->
+ {'tk_longlong', Message, Len, C};
+dec_type_code(25, _, Message, Len, _, _, C) ->
+ {'tk_longdouble', Message, Len, C};
+dec_type_code(4, _, Message, Len, _, _, C) ->
+ {'tk_ushort', Message, Len, C};
+dec_type_code(5, _, Message, Len, _, _, C) ->
+ {'tk_ulong', Message, Len, C};
+dec_type_code(24, _, Message, Len, _, _, C) ->
+ {'tk_ulonglong', Message, Len, C};
+dec_type_code(6, _, Message, Len, _, _, C) ->
+ {'tk_float', Message, Len, C};
+dec_type_code(7, _, Message, Len, _, _, C) ->
+ {'tk_double', Message, Len, C};
+dec_type_code(8, _, Message, Len, _, _, C) ->
+ {'tk_boolean', Message, Len, C};
+dec_type_code(9, _, Message, Len, _, _, C) ->
+ {'tk_char', Message, Len, C};
+dec_type_code(26, _, Message, Len, _, _, C) ->
+ {'tk_wchar', Message, Len, C};
+dec_type_code(10, _, Message, Len, _, _, C) ->
+ {'tk_octet', Message, Len, C};
+dec_type_code(11, _, Message, Len, _, _, C) ->
+ {'tk_any', Message, Len, C};
+dec_type_code(12, _, Message, Len, _, _, C) ->
+ {'tk_TypeCode', Message, Len, C};
+dec_type_code(13, _, Message, Len, _, _, C) ->
+ {'tk_Principal', Message, Len, C};
+dec_type_code(14, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_objref', RepId, Name}, Message1, Len1, NewC};
+dec_type_code(15, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, ElementList}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"element list",
+ {'tk_sequence', {'tk_struct', "","",
+ [{"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'}]},
+ 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_struct', RepId, Name, ElementList}, Message1, Len1, NewC};
+dec_type_code(16, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, DiscrTC, Default}, Rest2, RestLen2, NewC} =
+ dec_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"discriminant type", 'tk_TypeCode'},
+ {"default used", 'tk_long'}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {ElementList, <<>>, _RestLen3, NewC2} =
+ dec_type({'tk_sequence', {'tk_struct', "","",
+ [{"label value", DiscrTC},
+ {"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'}]}, 0},
+ Version, Rest2, RestLen2, ByteOrder1, Buff, NewC),
+ NewElementList =
+ case check_enum(DiscrTC) of
+ true ->
+ lists:map(fun({L,N,T}) -> {atom_to_list(L),N,T} end, ElementList);
+ false ->
+ ElementList
+ end,
+ {{'tk_union', RepId, Name, DiscrTC, Default, NewElementList}, Message1, Len1, NewC2};
+dec_type_code(17, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, ElementList}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"element list",
+ {'tk_sequence', {'tk_string', 0}, 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_enum', RepId, Name, ElementList}, Message1, Len1, NewC};
+dec_type_code(18, Version, Message, Len, ByteOrder, Buff, C) ->
+ {MaxLength, Message1, Len1, NewC} =
+ dec_type('tk_ulong', Version, Message, Len, ByteOrder, Buff, C),
+ {{'tk_string', MaxLength}, Message1, Len1, NewC};
+dec_type_code(19, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{ElemTC, MaxLength}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"element type", 'tk_TypeCode'},
+ {"max length", 'tk_ulong'}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_sequence', ElemTC, MaxLength}, Message1, Len1, NewC};
+dec_type_code(20, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{ElemTC, Length}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"element type", 'tk_TypeCode'},
+ {"length", 'tk_ulong'}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_array', ElemTC, Length}, Message1, Len1, NewC};
+dec_type_code(21, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg ge a byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, TC}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"TypeCode", 'tk_TypeCode'}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_alias', RepId, Name, TC}, Message1, Len1, NewC};
+dec_type_code(22, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ %% Decode marshalled parameters, eg get the byteorder first
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, ElementList}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"element list",
+ {'tk_sequence', {'tk_struct', "","",
+ [{"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'}]},
+ 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_except', RepId, Name, ElementList}, Message1, Len1, NewC};
+dec_type_code(27, Version, Message, Len, ByteOrder, Buff, C) ->
+ {MaxLength, Message1, Len1, NewC} =
+ dec_type('tk_ulong', Version, Message, Len, ByteOrder, Buff, C),
+ {{'tk_wstring', MaxLength}, Message1, Len1, NewC};
+dec_type_code(28, Version, Message, Len, ByteOrder, Buff, C) ->
+ {Digits, Message1, Len1, C1} =
+ dec_type('tk_ushort', Version, Message, Len, ByteOrder, Buff, C),
+ {Scale, Message2, Len2, C2} =
+ dec_type('tk_short', Version, Message1, Len1, ByteOrder, Buff, C1),
+ {{'tk_fixed', Digits, Scale}, Message2, Len2, C2};
+dec_type_code(29, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, ValueModifier, TC, ElementList}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"ValueModifier", 'tk_short'},
+ {"TypeCode", 'tk_TypeCode'},
+ {"element list",
+ {'tk_sequence',
+ {'tk_struct', "","",
+ [{"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'},
+ {"Visibility", 'tk_short'}]},
+ 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_value', RepId, Name, ValueModifier, TC, ElementList}, Message1, Len1, NewC};
+dec_type_code(30, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name, TC}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"TypeCode", 'tk_TypeCode'}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_value_box', RepId, Name, TC}, Message1, Len1, NewC};
+dec_type_code(31, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_native', RepId, Name}, Message1, Len1, NewC};
+dec_type_code(32, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"RepositoryId", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_abstract_interface', RepId, Name}, Message1, Len1, NewC};
+dec_type_code(33, Version, Message, Len, ByteOrder, Buff, C) ->
+ {ComplexParams, Message1, Len1, Ex} = decode_complex_tc_parameters(Version, Message, Len, ByteOrder),
+ {ByteOrder1, Rest1} = dec_byte_order(ComplexParams),
+ {{RepId, Name}, <<>>, _Len2, NewC} =
+ dec_type({'tk_struct', "", "", [{"RepositoryId", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Version, Rest1, 1, ByteOrder1, Buff, C+1+Ex),
+ {{'tk_local_interface', RepId, Name}, Message1, Len1, NewC};
+dec_type_code(16#ffffffff, Version, Message, Len, ByteOrder, Buff, C) -> %% placeholder
+ {Indirection, Message1, Len1, NewC} =
+ dec_type('tk_long', Version, Message, Len, ByteOrder, Buff, C),
+ Position = C+Indirection,
+ <<_:Position/binary, SubBuff/binary>> = Buff,
+ {TC, _, _, _} = dec_type_code(Version, SubBuff, Position, ByteOrder, Buff, Position),
+ {TC, Message1, Len1, NewC};
+dec_type_code(Type, _, _, _, _, _, _) ->
+ orber:dbg("[~p] cdr_decode:dec_type_code(~p); No match.",
+ [?LINE, Type], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 8), completion_status=?COMPLETED_MAYBE}).
+
+check_enum({'tk_enum', _, _, _}) ->
+ true;
+check_enum(_) ->
+ false.
+
+
+decode_complex_tc_parameters(_Version, Message, Len, ByteOrder) ->
+ {Rest, Len1, NewC} = dec_align(Message, Len, 4, 0),
+ {Size, Rest1} = cdrlib:dec_unsigned_long(ByteOrder, Rest),
+ <<OctetSeq:Size/binary, Rest2/binary>> = Rest1,
+ {OctetSeq, Rest2, Len1+4+Size, NewC+4}.
+
+%%-----------------------------------------------------------------
+%% Func: dec_align/3
+%% Args:
+%% R - The byte sequence that shall be aligned.
+%% Len - The number of bytes read so far.
+%% Alignment - The alignment as an integer (for example: 2,4,8).
+%% Returns:
+%% An aligned byte sequence.
+%%-----------------------------------------------------------------
+dec_align(R, Len, Alignment, C) ->
+ Rem = Len rem Alignment,
+ if Rem == 0 ->
+ {R, Len, C};
+ true ->
+ Diff = Alignment - Rem,
+ <<_:Diff/binary,Rest/binary>> = R,
+ {Rest, Len + Diff, C + Diff}
+ end.
+
+%%---------------- EOF MODULE ----------------------------------------
diff --git a/lib/orber/src/cdr_encode.erl b/lib/orber/src/cdr_encode.erl
new file mode 100644
index 0000000000..3ecb8833f5
--- /dev/null
+++ b/lib/orber/src/cdr_encode.erl
@@ -0,0 +1,1151 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: cdr_encode.erl
+%%
+%% Description:
+%% This file contains all encoding functions for the CDR
+%% format.
+%%
+%%-----------------------------------------------------------------
+-module(cdr_encode).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([enc_giop_msg_type/1,
+ enc_request/1, enc_request_split/1,
+ enc_reply/1, enc_reply_split/1,
+ enc_type/3, enc_type/5,
+ enc_cancel_request/1,
+ enc_locate_request/1,
+ enc_locate_reply/1,
+ enc_close_connection/1,
+ enc_message_error/1,
+ enc_fragment/1,
+ enc_giop_message_header/5,
+ validate_request_body/1,
+ validate_reply_body/2]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 9).
+
+-define(ODD(N), (N rem 2) == 1).
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_giop_message_header/5
+%%-----------------------------------------------------------------
+%% The header size is known so we know that the size will be aligned.
+%% MessSize already includes the header length.
+%%-----------------------------------------------------------------
+enc_giop_message_header(#giop_env{version = {Major,Minor}}, MessType,
+ _Flags, MessSize, Message) ->
+ Type = enc_giop_msg_type(MessType),
+ %% The Flag handling must be fixed, i.e., it's not correct to only use '0'.
+ %% If IIOP-1.0 a boolean (FALSE == 0), otherwise, IIOP-1.1 or 1.2,
+ %% an octet. The octet bits represents:
+ %% * The least significant the byteorder (0 eq. big-endian)
+ %% * The second least significant indicates if the message is fragmented.
+ %% If set to 0 it's not fragmented.
+ %% * The most significant 6 bits are reserved. Hence, must be set to 0.
+ %% Since we currently don't support fragmented messages and we always
+ %% encode using big-endian it's ok to use '0' for now.
+ list_to_binary([ <<"GIOP",Major:8,Minor:8,0:8,
+ Type:8,MessSize:32/big-unsigned-integer>> | Message]).
+
+enc_byte_order(Env, Message) ->
+ enc_type('tk_boolean', Env, 'false', Message, 0).
+
+%%-----------------------------------------------------------------
+%% Func: enc_parameters/2
+%%-----------------------------------------------------------------
+enc_parameters(_, [], [], Message, Len) ->
+ {Message, Len};
+enc_parameters(_, [], P, _, _) ->
+ orber:dbg("[~p] cdr_encode:encode_parameters(~p); to many parameters.",
+ [?LINE, P], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 17), completion_status=?COMPLETED_MAYBE});
+enc_parameters(_, _, [], TC, _) ->
+ orber:dbg("[~p] cdr_encode:encode_parameters(~p); to few parameters.",
+ [?LINE, TC], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 17), completion_status=?COMPLETED_MAYBE});
+enc_parameters(Env, [PT1 |TypeList], [ P1 | Parameters], Message, Len) ->
+ {Message1, Len1} = enc_type(PT1, Env, P1, Message, Len),
+ enc_parameters(Env, TypeList, Parameters, Message1, Len1).
+
+%%-----------------------------------------------------------------
+%% Func: enc_request/8
+%%-----------------------------------------------------------------
+%% ## NEW IIOP 1.2 ##
+enc_request(#giop_env{version = {1,2}} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_response_flags(Env, Message, Len),
+ {Message2, Len2} = enc_reserved(Env, {0,0,0}, Message1, Len1),
+ {Message3, Len3} = enc_target_address(Env, Message2, Len2),
+ {Message4, Len4} = enc_operation(Env, Message3, Len3),
+ {Message5, Len5} = enc_service_context(Env, Message4, Len4),
+ {Message6, Len6} = enc_request_body(Env, Message5, Len5),
+ enc_giop_message_header(Env, 'request', Flags, Len6 - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message6));
+enc_request(#giop_env{version = Version} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message0, Len0} = enc_service_context(Env, [], ?GIOP_HEADER_SIZE),
+ {Message, Len} = enc_request_id(Env, Message0, Len0),
+ {Message1, Len1} = enc_response(Env, Message, Len),
+ {Message1b, Len1b} =
+ if
+ Version /= {1,0} ->
+ enc_reserved(Env, {0,0,0}, Message1, Len1);
+ true ->
+ {Message1, Len1}
+ end,
+ {Message2, Len2} = enc_object_key(Env, Message1b, Len1b),
+ {Message3, Len3} = enc_operation(Env, Message2, Len2),
+ {Message4, Len4} = enc_principal(Env, Message3, Len3),
+ {Message5, Len5} = enc_request_body(Env, Message4, Len4),
+ enc_giop_message_header(Env, 'request', Flags, Len5 - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message5)).
+
+%% ## NEW IIOP 1.2 ##
+enc_request_split(#giop_env{version = {1,2}} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_response_flags(Env, Message, Len),
+ {Message2, Len2} = enc_reserved(Env, {0,0,0}, Message1, Len1),
+ {Message3, Len3} = enc_target_address(Env, Message2, Len2),
+ {Message4, Len4} = enc_operation(Env, Message3, Len3),
+ {Message5, Len5} = enc_service_context(Env, Message4, Len4),
+ {Body, Len6} = enc_request_body(Env, [], Len5),
+ {lists:reverse(Message5), list_to_binary(lists:reverse(Body)),
+ Len5 - ?GIOP_HEADER_SIZE, Len6-Len5, Flags};
+enc_request_split(#giop_env{version = Version} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message0, Len0} = enc_service_context(Env, [], ?GIOP_HEADER_SIZE),
+ {Message, Len} = enc_request_id(Env, Message0, Len0),
+ {Message1, Len1} = enc_response(Env, Message, Len),
+ {Message1b, Len1b} =
+ if
+ Version /= {1,0} ->
+ enc_reserved(Env, {0,0,0}, Message1, Len1);
+ true ->
+ {Message1, Len1}
+ end,
+ {Message2, Len2} = enc_object_key(Env, Message1b, Len1b),
+ {Message3, Len3} = enc_operation(Env, Message2, Len2),
+ {Message4, Len4} = enc_principal(Env, Message3, Len3),
+ {Body, Len5} = enc_request_body(Env, [], Len4),
+ {lists:reverse(Message4), list_to_binary(lists:reverse(Body)),
+ Len4 - ?GIOP_HEADER_SIZE, Len5-Len4, Flags}.
+
+enc_principal(Env, Mess, Len) ->
+ enc_type({'tk_string', 0}, Env, atom_to_list(node()), Mess, Len).
+
+enc_operation(Env, Mess, Len) ->
+ enc_type({'tk_string', 0}, Env, atom_to_list(Env#giop_env.op), Mess, Len).
+
+enc_object_key(Env, Mess, Len) ->
+ enc_type({'tk_sequence', 'tk_octet', 0}, Env, Env#giop_env.objkey, Mess, Len).
+
+enc_reserved(Env, Reserved, Mess, Len) ->
+ enc_type({'tk_array', 'tk_octet', 3}, Env, Reserved, Mess, Len).
+
+enc_response(Env, Mess, Len) ->
+ enc_type('tk_boolean', Env, Env#giop_env.response_expected, Mess, Len).
+
+enc_request_id(Env, Mess, Len) ->
+ enc_type('tk_ulong', Env, Env#giop_env.request_id, Mess, Len).
+
+enc_service_context(Env, Message, Len) ->
+ Ctxs = enc_used_contexts(Env, Env#giop_env.ctx, []),
+ enc_type(?IOP_SERVICECONTEXT, Env, Ctxs, Message, Len).
+
+enc_used_contexts(_Env, [], Message) ->
+ Message;
+enc_used_contexts(#giop_env{version = {1, 0}} = Env,
+ [#'IOP_ServiceContext'{context_id=?IOP_CodeSets}|T], Ctxs) ->
+ %% Not supported by 1.0, drop it.
+ enc_used_contexts(Env, T, Ctxs);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?IOP_CodeSets,
+ context_data = CodeSetCtx}|T],
+ Ctxs) ->
+ %% Encode ByteOrder
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {Bytes1, _Len1} = enc_type(?CONV_FRAME_CODESETCONTEXT, Env, CodeSetCtx,
+ Bytes0, Len0),
+ Bytes = list_to_binary(lists:reverse(Bytes1)),
+ enc_used_contexts(Env, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_CodeSets,
+ context_data = Bytes}|Ctxs]);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?IOP_BI_DIR_IIOP,
+ context_data = BiDirCtx}|T],
+ Ctxs) ->
+ %% Encode ByteOrder
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {Bytes1, _Len1} = enc_type(?IIOP_BIDIRIIOPSERVICECONTEXT, Env, BiDirCtx,
+ Bytes0, Len0),
+ Bytes = list_to_binary(lists:reverse(Bytes1)),
+ enc_used_contexts(Env, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_BI_DIR_IIOP,
+ context_data = Bytes}|Ctxs]);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?IOP_FT_REQUEST,
+ context_data = Ctx}|T],
+ Ctxs) ->
+ %% Encode ByteOrder
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {Bytes1, _Len1} = enc_type(?FT_FTRequestServiceContext, Env, Ctx,
+ Bytes0, Len0),
+ Bytes = list_to_binary(lists:reverse(Bytes1)),
+ enc_used_contexts(Env, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_FT_REQUEST,
+ context_data = Bytes}|Ctxs]);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?IOP_FT_GROUP_VERSION,
+ context_data = Ctx}|T],
+ Ctxs) ->
+ %% Encode ByteOrder
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {Bytes1, _Len1} = enc_type(?FT_FTGroupVersionServiceContext, Env, Ctx,
+ Bytes0, Len0),
+ Bytes = list_to_binary(lists:reverse(Bytes1)),
+ enc_used_contexts(Env, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_FT_GROUP_VERSION,
+ context_data = Bytes}|Ctxs]);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?IOP_SecurityAttributeService,
+ context_data = Ctx}|T],
+ Ctxs) ->
+ %% Encode ByteOrder
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {Bytes1, _Len1} = enc_type(?CSI_SASContextBody, Env, Ctx,
+ Bytes0, Len0),
+ Bytes = list_to_binary(lists:reverse(Bytes1)),
+ enc_used_contexts(Env, T,
+ [#'IOP_ServiceContext'{context_id=?IOP_SecurityAttributeService,
+ context_data = Bytes}|Ctxs]);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {interface, _I}}|T],
+ Ctxs) ->
+ %% This shall not be forwarded.
+ enc_used_contexts(Env, T, Ctxs);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {configuration, _O}}|T],
+ Ctxs) ->
+ %% This shall not be forwarded.
+ enc_used_contexts(Env, T, Ctxs);
+enc_used_contexts(Env, [#'IOP_ServiceContext'{context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = Ctx}|T],
+ Ctxs) ->
+ %% Encode ByteOrder
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {Bytes1, _Len1} = enc_type(?ORBER_GENERIC_CTX, Env,
+ binary_to_list(term_to_binary(Ctx)),
+ Bytes0, Len0),
+ Bytes = list_to_binary(lists:reverse(Bytes1)),
+ enc_used_contexts(Env, T,
+ [#'IOP_ServiceContext'{context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = Bytes}|Ctxs]);
+enc_used_contexts(Env, [H|T], Ctxs) ->
+ enc_used_contexts(Env, T, [H|Ctxs]).
+
+%% ## NEW IIOP 1.2 ##
+enc_target_address(#giop_env{objkey = TargetAddr} = Env, Mess, Len)
+ when is_record(TargetAddr, 'GIOP_TargetAddress') ->
+ enc_type(?TARGETADDRESS, Env, TargetAddr, Mess, Len);
+enc_target_address(#giop_env{objkey = IORInfo} = Env, Mess, Len)
+ when is_record(IORInfo, 'GIOP_IORAddressingInfo') ->
+ enc_type(?TARGETADDRESS, Env, #'GIOP_TargetAddress'{label = ?GIOP_ReferenceAddr,
+ value = IORInfo},
+ Mess, Len);
+enc_target_address(#giop_env{objkey = TP} = Env, Mess, Len)
+ when is_record(TP, 'IOP_TaggedProfile') ->
+ enc_type(?TARGETADDRESS, Env, #'GIOP_TargetAddress'{label = ?GIOP_ProfileAddr,
+ value = TP},
+ Mess, Len);
+enc_target_address(#giop_env{objkey = ObjKey} = Env, Mess, Len) ->
+ enc_type(?TARGETADDRESS, Env, #'GIOP_TargetAddress'{label = ?GIOP_KeyAddr,
+ value = ObjKey},
+ Mess, Len).
+
+%% FIX ME!! This is temporary, not proper flag handling.
+enc_response_flags(#giop_env{response_expected = true} = Env, Mess, Len) ->
+ enc_type('tk_octet', Env, 3, Mess, Len);
+enc_response_flags(#giop_env{response_expected = false} = Env, Mess, Len) ->
+ enc_type('tk_octet', Env, 0, Mess, Len).
+
+%%-----------------------------------------------------------------
+%% Func: enc_request_body/5
+%%-----------------------------------------------------------------
+enc_request_body(#giop_env{tc = {_, [], _}}, Message, Len) ->
+ %% This case is used to avoid adding alignment even though no body will be added.
+ {Message, Len};
+enc_request_body(#giop_env{version = {1,2},
+ tc = {_RetType, InParameters, _OutParameters},
+ parameters = Parameters} = Env,
+ Message, Len) ->
+ {Message1, Len1} = enc_align(Message, Len, 8),
+ enc_parameters(Env, InParameters, Parameters, Message1, Len1);
+enc_request_body(#giop_env{tc = {_RetType, InParameters, _OutParameters},
+ parameters = Parameters} = Env,
+ Message, Len) ->
+ enc_parameters(Env, InParameters, Parameters, Message, Len).
+
+%%-----------------------------------------------------------------
+%% Func: validate_request_body/1
+%%-----------------------------------------------------------------
+validate_request_body(#giop_env{tc = {_RetType, InParameters, _OutParameters},
+ parameters = Parameters} = Env) ->
+ enc_parameters(Env, InParameters, Parameters, [], 0).
+
+%%-----------------------------------------------------------------
+%% Func: enc_reply/6
+%%-----------------------------------------------------------------
+%% ## NEW IIOP 1.2 ##
+enc_reply(#giop_env{version = {1,2}} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_reply_status(Env, Message, Len),
+ {Message2, Len2} = enc_service_context(Env, Message1, Len1),
+ {Message3, Len3} = enc_reply_body(Env, Message2, Len2),
+ enc_giop_message_header(Env, 'reply', Flags, Len3 - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message3));
+enc_reply(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_service_context(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_request_id(Env, Message, Len),
+ {Message2, Len2} = enc_reply_status(Env, Message1, Len1),
+ {Message3, Len3} = enc_reply_body(Env, Message2, Len2),
+ enc_giop_message_header(Env, 'reply', Flags, Len3 - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message3)).
+
+%% ## NEW IIOP 1.2 ##
+enc_reply_split(#giop_env{version = {1,2}} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len0} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_reply_status(Env, Message, Len0),
+ {Message2, Len2} = enc_service_context(Env, Message1, Len1),
+ {Body, Len} = enc_reply_body(Env, [], Len2),
+ {lists:reverse(Message2), list_to_binary(lists:reverse(Body)),
+ Len2 - ?GIOP_HEADER_SIZE, Len-Len2, Flags};
+enc_reply_split(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len0} = enc_service_context(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_request_id(Env, Message, Len0),
+ {Message2, Len2} = enc_reply_status(Env, Message1, Len1),
+ {Body, Len} = enc_reply_body(Env, [], Len2),
+ {lists:reverse(Message2), list_to_binary(lists:reverse(Body)),
+ Len2 - ?GIOP_HEADER_SIZE, Len-Len2, Flags}.
+
+enc_reply_status(Env, Mess, Len) ->
+ L = enc_giop_reply_status_type(Env#giop_env.reply_status),
+ enc_type('tk_ulong', Env, L, Mess, Len).
+
+%%-----------------------------------------------------------------
+%% Func: enc_reply_body/6
+%%-----------------------------------------------------------------
+enc_reply_body(#giop_env{tc = {'tk_void', _, []}, result = ok,
+ parameters = []}, Message, Len) ->
+ %% This case is mainly to be able to avoid adding alignment for
+ %% IIOP-1.2 messages if the body should be empty, i.e., void return value and
+ %% no out parameters.
+ {Message, Len};
+enc_reply_body(#giop_env{version = {1,2},
+ tc = {RetType, _InParameters, OutParameters},
+ parameters = Parameters, result = Result} = Env,
+ Message, Len) ->
+ {Message1, Len1} = enc_align(Message, Len, 8),
+ {Message2, Len2} = enc_type(RetType, Env, Result, Message1, Len1),
+ enc_parameters(Env, OutParameters, Parameters, Message2, Len2);
+enc_reply_body(#giop_env{tc = {RetType, _InParameters, OutParameters},
+ parameters = Parameters, result = Result} = Env,
+ Message, Len) ->
+ {Message1, Len1} = enc_type(RetType, Env, Result, Message, Len),
+ enc_parameters(Env, OutParameters, Parameters, Message1, Len1).
+
+
+%%-----------------------------------------------------------------
+%% Func: validate_reply_body/3
+%%-----------------------------------------------------------------
+validate_reply_body(Env, {'EXCEPTION', Exception}) ->
+ {TypeOfException, ExceptionTypeCode, NewExc} =
+ orber_exceptions:get_def(Exception),
+ {'tk_except', TypeOfException, ExceptionTypeCode,
+ (catch enc_reply_body(Env#giop_env{tc = {ExceptionTypeCode, [], []},
+ result = NewExc, parameters = []}, [], 0))};
+validate_reply_body(#giop_env{tc = {_RetType, _InParameters, []}} = Env, Reply) ->
+ enc_reply_body(Env#giop_env{result = Reply}, [], 0);
+validate_reply_body(Env, Reply) when is_tuple(Reply) ->
+ [Result|Parameters] = tuple_to_list(Reply),
+ enc_reply_body(Env#giop_env{result = Result, parameters = Parameters}, [], 0);
+validate_reply_body(Env, Reply) ->
+ enc_reply_body(Env#giop_env{result = Reply}, [], 0).
+
+%%-----------------------------------------------------------------
+%% Func: enc_cancel_request/2
+%%-----------------------------------------------------------------
+enc_cancel_request(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ enc_giop_message_header(Env, 'cancel_request', Flags, Len - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message)).
+
+%%-----------------------------------------------------------------
+%% Func: enc_locate_request/3
+%%-----------------------------------------------------------------
+%% ## NEW IIOP 1.2 ##
+enc_locate_request(#giop_env{version = {1,2}} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_target_address(Env, Message, Len),
+ enc_giop_message_header(Env, 'locate_request', Flags, Len1-?GIOP_HEADER_SIZE,
+ lists:reverse(Message1));
+enc_locate_request(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_object_key(Env, Message, Len),
+ enc_giop_message_header(Env, 'locate_request', Flags, Len1-?GIOP_HEADER_SIZE,
+ lists:reverse(Message1)).
+
+%%-----------------------------------------------------------------
+%% Func: enc_locate_reply
+%%-----------------------------------------------------------------
+%% No forward etc. Just encode the status.
+enc_locate_reply(#giop_env{tc = undefined} = Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_locate_status(Env, Message, Len),
+ enc_giop_message_header(Env, 'locate_reply', Flags, Len1 - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message1));
+enc_locate_reply(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ {Message, Len} = enc_request_id(Env, [], ?GIOP_HEADER_SIZE),
+ {Message1, Len1} = enc_locate_status(Env, Message, Len),
+ {Message2, Len2} = enc_locate_reply_body(Env, Message1, Len1),
+ enc_giop_message_header(Env, 'locate_reply', Flags, Len2 - ?GIOP_HEADER_SIZE,
+ lists:reverse(Message2)).
+
+enc_locate_reply_body(#giop_env{tc = TC, result = Data} = Env, Message, Len) ->
+ %% In CORBA-2.3.1 the LocateReply body didn't align the body (8-octet
+ %% boundry) for IIOP-1.2. This have been changed in later specs.
+ %% Un-comment the line below when we want to be CORBA-2.4 compliant.
+ %% But in CORB-2.6 this was changed once again (i.e. no alignment).
+ %% The best solution is to keep it as is.
+ enc_type(TC, Env, Data, Message, Len).
+
+enc_locate_status(Env, Mess, Len) ->
+ L = enc_giop_locate_status_type(Env#giop_env.reply_status),
+ enc_type('tk_ulong', Env, L, Mess, Len).
+%%-----------------------------------------------------------------
+%% Func: enc_close_connection/1
+%%-----------------------------------------------------------------
+enc_close_connection(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ enc_giop_message_header(Env, 'close_connection', Flags, 0, []).
+
+%%-----------------------------------------------------------------
+%% Func: enc_message_error/1
+%%-----------------------------------------------------------------
+enc_message_error(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ enc_giop_message_header(Env, 'message_error', Flags, 0, []).
+
+%%-----------------------------------------------------------------
+%% Func: enc_fragment/1
+%%-----------------------------------------------------------------
+enc_fragment(Env) ->
+ Flags = 1, %% LTH Not correct, just placeholder
+ enc_giop_message_header(Env, 'fragment', Flags, 0, []).
+
+%%-----------------------------------------------------------------
+%% Func: enc_giop_msg_type
+%% Args: An integer message type code
+%% Returns: An atom which is the message type code name
+%%-----------------------------------------------------------------
+enc_giop_msg_type('request') ->
+ 0;
+enc_giop_msg_type('reply') ->
+ 1;
+enc_giop_msg_type('cancel_request') ->
+ 2;
+enc_giop_msg_type('locate_request') ->
+ 3;
+enc_giop_msg_type('locate_reply') ->
+ 4;
+enc_giop_msg_type('close_connection') ->
+ 5;
+enc_giop_msg_type('message_error') ->
+ 6;
+enc_giop_msg_type('fragment') ->
+ 7.
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_giop_reply_status_type
+%% Args: An atom which is the reply status
+%% Returns: An integer status code
+%%-----------------------------------------------------------------
+enc_giop_reply_status_type(?NO_EXCEPTION) ->
+ 0;
+enc_giop_reply_status_type(?USER_EXCEPTION) ->
+ 1;
+enc_giop_reply_status_type(?SYSTEM_EXCEPTION) ->
+ 2;
+enc_giop_reply_status_type('location_forward') ->
+ 3;
+%% ## NEW IIOP 1.2 ##
+enc_giop_reply_status_type('location_forward_perm') ->
+ 4;
+enc_giop_reply_status_type('needs_addressing_mode') ->
+ 5.
+
+%%-----------------------------------------------------------------
+%% Func: enc_giop_locate_status_type
+%% Args: An integer status code
+%% Returns: An atom which is the reply status
+%%-----------------------------------------------------------------
+enc_giop_locate_status_type('unknown_object') ->
+ 0;
+enc_giop_locate_status_type('object_here') ->
+ 1;
+enc_giop_locate_status_type('object_forward') ->
+ 2;
+%% ## NEW IIOP 1.2 ##
+enc_giop_locate_status_type('object_forward_perm') ->
+ 3;
+enc_giop_locate_status_type('loc_system_exception') ->
+ 4;
+enc_giop_locate_status_type('loc_needs_addressing_mode') ->
+ 5.
+
+%%-----------------------------------------------------------------
+%% Func: enc_type/3
+%%-----------------------------------------------------------------
+enc_type(Env, TypeCode, Value) ->
+ {Bytes, _Len} = enc_type(TypeCode, Env, Value, [], 0),
+ list_to_binary(lists:reverse(Bytes)).
+
+%%-----------------------------------------------------------------
+%% Func: enc_type/5
+%%-----------------------------------------------------------------
+enc_type('tk_null', _Env, null, Bytes, Len) ->
+ {Bytes, Len};
+enc_type('tk_void', _Env, ok, Bytes, Len) ->
+ {Bytes, Len};
+enc_type('tk_short', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 2),
+ {cdrlib:enc_short(Value, Rest), Len1 + 2};
+enc_type('tk_long', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 4),
+ {cdrlib:enc_long(Value, Rest ), Len1 + 4};
+enc_type('tk_longlong', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 8),
+ {cdrlib:enc_longlong(Value, Rest ), Len1 + 8};
+enc_type('tk_ushort', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 2),
+ {cdrlib:enc_unsigned_short(Value, Rest), Len1 + 2};
+enc_type('tk_ulong', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 4),
+ {cdrlib:enc_unsigned_long(Value, Rest), Len1 + 4};
+enc_type('tk_ulonglong', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 8),
+ {cdrlib:enc_unsigned_longlong(Value, Rest), Len1 + 8};
+enc_type('tk_float', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 4),
+ {cdrlib:enc_float(Value, Rest), Len1 + 4};
+enc_type('tk_double', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 8),
+ {cdrlib:enc_double(Value, Rest), Len1 + 8};
+enc_type('tk_boolean', _Env, Value, Bytes, Len) ->
+ {cdrlib:enc_bool(Value, Bytes), Len + 1};
+enc_type('tk_char', _Env, Value, Bytes, Len) ->
+ {cdrlib:enc_char(Value, Bytes), Len + 1};
+%% The wchar decoding can be 1, 2 or 4 bytes but for now we only accept 2.
+enc_type('tk_wchar', #giop_env{version = {1,2}}, Value, Bytes, Len) ->
+ Bytes1 = cdrlib:enc_octet(2, Bytes),
+ {cdrlib:enc_unsigned_short(Value, Bytes1), Len + 3};
+enc_type('tk_wchar', _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 2),
+ {cdrlib:enc_unsigned_short(Value, Rest), Len1 + 2};
+enc_type('tk_octet', _Env, Value, Bytes, Len) ->
+ {cdrlib:enc_octet(Value, Bytes), Len + 1};
+enc_type('tk_any', Env, Any, Bytes, Len) when is_record(Any, any) ->
+ {Rest, Len1} = enc_type('tk_TypeCode', Env, Any#any.typecode, Bytes, Len),
+ enc_type(Any#any.typecode, Env, Any#any.value, Rest, Len1);
+enc_type('tk_TypeCode', Env, Value, Bytes, Len) ->
+ enc_type_code(Value, Env, Bytes, Len);
+enc_type('tk_Principal', Env, Value, Bytes, Len) ->
+ %% Set MaxLength no 0 (i.e. unlimited).
+ enc_sequence(Env, Value, 0, 'tk_octet', Bytes, Len);
+enc_type({'tk_objref', _IFRId, Name}, Env, Value, Bytes, Len) ->
+ enc_objref(Env, Name,Value, Bytes, Len);
+enc_type({'tk_struct', _IFRId, _Name, ElementList}, Env, Value, Bytes, Len) ->
+ enc_struct(Env, Value, ElementList, Bytes, Len);
+enc_type({'tk_union', _IFRId, _Name, DiscrTC, Default, ElementList},
+ Env, Value, Bytes, Len) ->
+ enc_union(Env, Value, DiscrTC, Default, ElementList, Bytes, Len);
+enc_type({'tk_enum', _IFRId, _Name, ElementList}, _Env, Value, Bytes, Len) ->
+ {Rest, Len1} = enc_align(Bytes, Len, 4),
+ {cdrlib:enc_enum(atom_to_list(Value), ElementList, Rest), Len1 + 4};
+enc_type({'tk_string', MaxLength}, Env, Value, Bytes, Len) ->
+ enc_string(Env, Value, MaxLength, Bytes, Len);
+enc_type({'tk_wstring', MaxLength}, Env, Value, Bytes, Len) ->
+ enc_wstring(Env, Value, MaxLength, Bytes, Len);
+enc_type({'tk_sequence', ElemTC, MaxLength}, Env, Value, Bytes, Len) ->
+ enc_sequence(Env, Value, MaxLength, ElemTC, Bytes, Len);
+enc_type({'tk_array', ElemTC, Size}, Env, Value, Bytes, Len) ->
+ enc_array(Env, Value, Size, ElemTC, Bytes, Len);
+enc_type({'tk_alias', _IFRId, _Name, TC}, Env, Value, Bytes, Len) ->
+ enc_type(TC, Env, Value, Bytes, Len);
+enc_type({'tk_except', IFRId, Name, ElementList}, Env, Value, Bytes, Len) ->
+ enc_exception(Env, Name, IFRId, Value, ElementList, Bytes, Len);
+enc_type({'tk_fixed', Digits, Scale}, Env, Value, Bytes, Len) ->
+ enc_fixed(Env, Digits, Scale, Value, Bytes, Len);
+enc_type(Type, _, Value, _, _) ->
+ orber:dbg("[~p] cdr_encode:type(~p, ~p)~n"
+ "Incorrect TypeCode or unsupported type.",
+ [?LINE, Type, Value], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 13), completion_status=?COMPLETED_MAYBE}).
+
+
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_fixed
+%%-----------------------------------------------------------------
+%% Digits eq. total number of digits.
+%% Scale eq. position of the decimal point.
+%% E.g. fixed<5,2> - "123.45" eq. #fixed{digits = 5, scale = 2, value = 12345}
+%% E.g. fixed<4,2> - "12.34" eq. #fixed{digits = 4, scale = 2, value = 1234}
+%% These are encoded as:
+%% ## <5,2> ## ## <4,2> ##
+%% 1,2 0,1 eq. 1 octet
+%% 3,4 2,3
+%% 5,0xC 4,0xC
+%%
+%% Each number is encoded as a half-octet. Note, for <4,2> a zero is
+%% added first to to be able to create "even" octets.
+enc_fixed(Env, Digits, Scale,
+ #fixed{digits = Digits, scale = Scale, value = Value}, Bytes, Len)
+ when is_integer(Value) andalso is_integer(Digits) andalso is_integer(Scale)
+ andalso Digits < 32 andalso Digits >= Scale ->
+ %% This isn't very efficient and we should improve it before supporting it
+ %% officially.
+ Odd = ?ODD(Digits),
+ case integer_to_list(Value) of
+ [$-|ValueList] when Odd == true ->
+ Padded = lists:duplicate((Digits-length(ValueList)), 0) ++ ValueList,
+ enc_fixed_2(Env, Digits, Scale, Padded,
+ Bytes, Len, ?FIXED_NEGATIVE);
+ [$-|ValueList] ->
+ Padded = lists:duplicate((Digits-length(ValueList)), 0) ++ ValueList,
+ enc_fixed_2(Env, Digits, Scale, [0|Padded],
+ Bytes, Len, ?FIXED_NEGATIVE);
+ ValueList when Odd == true ->
+ Padded = lists:duplicate((Digits-length(ValueList)), 0) ++ ValueList,
+ enc_fixed_2(Env, Digits, Scale, Padded,
+ Bytes, Len, ?FIXED_POSITIVE);
+ ValueList ->
+ Padded = lists:duplicate((Digits-length(ValueList)), 0) ++ ValueList,
+ enc_fixed_2(Env, Digits, Scale, [0|Padded],
+ Bytes, Len, ?FIXED_POSITIVE)
+ end;
+enc_fixed(_Env, Digits, Scale, Fixed, _Bytes, _Len) ->
+ orber:dbg("[~p] cdr_encode:enc_fixed(~p, ~p, ~p)~n"
+ "The supplied fixed type incorrect. Check that the 'digits' and 'scale' field~n"
+ "match the definition in the IDL-specification. The value field must be~n"
+ "a list of Digits lenght.",
+ [?LINE, Digits, Scale, Fixed], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE}).
+
+enc_fixed_2(_Env, _Digits, _Scale, [D1], Bytes, Len, Sign) ->
+ {[<<D1:4,Sign:4>>|Bytes], Len+1};
+enc_fixed_2(Env, Digits, Scale, [D1, D2|Ds], Bytes, Len, Sign) ->
+ %% We could convert the ASCII-value to digit values but the bit-syntax will
+ %% truncate it correctly.
+ enc_fixed_2(Env, Digits, Scale, Ds, [<<D1:4,D2:4>> | Bytes], Len+1, Sign);
+enc_fixed_2(_Env, Digits, Scale, Value, _Bytes, _Len, Sign) ->
+ orber:dbg("[~p] cdr_encode:enc_fixed_2(~p, ~p, ~p, ~p)~n"
+ "The supplied fixed type incorrect. Most likely the 'digits' field don't match the~n"
+ "supplied value. Hence, check that the value is correct.",
+ [?LINE, Digits, Scale, Value, Sign], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE}).
+
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_sequence/5
+%%-----------------------------------------------------------------
+%% This is a special case used when encoding encapsualted data, i.e., contained
+%% in an octet-sequence.
+enc_sequence(_Env, Sequence, MaxLength, 'tk_octet', Bytes, Len)
+ when is_binary(Sequence) ->
+ {ByteSequence, Len1} = enc_align(Bytes, Len, 4),
+ Size = size(Sequence),
+ if
+ Size > MaxLength, MaxLength > 0 ->
+ orber:dbg("[~p] cdr_encode:enc_sequnce(~p, ~p). Sequence exceeds max.",
+ [?LINE, Sequence, MaxLength], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 19),
+ completion_status=?COMPLETED_MAYBE});
+ true ->
+ ByteSequence1 = cdrlib:enc_unsigned_long(Size, ByteSequence),
+ {[Sequence |ByteSequence1], Len1 + 4 + Size}
+ end;
+enc_sequence(Env, Sequence, MaxLength, TypeCode, Bytes, Len) ->
+ Length = length(Sequence),
+ if
+ Length > MaxLength, MaxLength > 0 ->
+ orber:dbg("[~p] cdr_encode:enc_sequnce(~p, ~p). Sequence exceeds max.",
+ [?LINE, Sequence, MaxLength], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 19),
+ completion_status=?COMPLETED_MAYBE});
+ true ->
+ {ByteSequence, Len1} = enc_align(Bytes, Len, 4),
+ ByteSequence1 = cdrlib:enc_unsigned_long(Length, ByteSequence),
+ enc_sequence1(Env, Sequence, TypeCode, ByteSequence1, Len1 + 4)
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: enc_sequence1/4
+%%-----------------------------------------------------------------
+enc_sequence1(_Env, [], _TypeCode, Bytes, Len) ->
+ {Bytes, Len};
+enc_sequence1(_Env, CharSeq, 'tk_char', Bytes, Len) ->
+ {[list_to_binary(CharSeq) |Bytes], Len + length(CharSeq)};
+enc_sequence1(_Env, OctetSeq, 'tk_octet', Bytes, Len) ->
+ {[list_to_binary(OctetSeq) |Bytes], Len + length(OctetSeq)};
+enc_sequence1(Env, [Object| Rest], TypeCode, Bytes, Len) ->
+ {ByteSequence, Len1} = enc_type(TypeCode, Env, Object, Bytes, Len),
+ enc_sequence1(Env, Rest, TypeCode, ByteSequence, Len1).
+
+%%-----------------------------------------------------------------
+%% Func: enc_array/4
+%%-----------------------------------------------------------------
+enc_array(Env, Array, Size, TypeCode, Bytes, Len) when size(Array) == Size ->
+ Sequence = tuple_to_list(Array),
+ enc_sequence1(Env, Sequence, TypeCode, Bytes, Len);
+enc_array(_,Array, Size, _, _, _) ->
+ orber:dbg("[~p] cdr_encode:enc_array(~p, ~p). Incorrect size.",
+ [?LINE, Array, Size], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 15), completion_status=?COMPLETED_MAYBE}).
+
+%%-----------------------------------------------------------------
+%% Func: enc_string/4
+%%-----------------------------------------------------------------
+enc_string(_Env, String, MaxLength, Bytes, Len) ->
+ StrLen = length(String),
+ if
+ StrLen > MaxLength, MaxLength > 0 ->
+ orber:dbg("[~p] cdr_encode:enc_string(~p, ~p). String exceeds max.",
+ [?LINE, String, MaxLength], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 16),
+ completion_status=?COMPLETED_MAYBE});
+ true ->
+ {ByteSequence, Len1} = enc_align(Bytes, Len, 4),
+ ByteSequence1 = cdrlib:enc_unsigned_long(StrLen + 1, ByteSequence),
+ {cdrlib:enc_octet(0, [String | ByteSequence1]), Len1 + StrLen + 5}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_wstring/4
+%%-----------------------------------------------------------------
+enc_wstring(#giop_env{version = {1,2}} = Env, String, MaxLength, Bytes, Len) ->
+ %% Encode the length of the string (ulong).
+ {Bytes1, Len1} = enc_align(Bytes, Len, 4),
+ %% For IIOP-1.2 the length is the total number of octets. Hence, since the wchar's
+ %% we accepts is encoded as <<255, 255>> the total size is 2*length of the list.
+ ListLen = length(String),
+ if
+ ListLen > MaxLength, MaxLength > 0 ->
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 16),
+ completion_status=?COMPLETED_MAYBE});
+ true ->
+ StrLen = ListLen * 2,
+ Bytes2 = cdrlib:enc_unsigned_long(StrLen, Bytes1),
+ %% For IIOP-1.2 no terminating null character is used.
+ enc_sequence1(Env, String, 'tk_ushort', Bytes2, Len1+4)
+ end;
+enc_wstring(Env, String, MaxLength, Bytes, Len) ->
+ %% Encode the length of the string (ulong).
+ {Bytes1, Len1} = enc_align(Bytes, Len, 4),
+ ListLen = length(String),
+ if
+ ListLen > MaxLength, MaxLength > 0 ->
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 16),
+ completion_status=?COMPLETED_MAYBE});
+ true ->
+ StrLen = ListLen + 1,
+ Bytes2 = cdrlib:enc_unsigned_long(StrLen, Bytes1),
+ {Bytes3, Len3} = enc_sequence1(Env, String, 'tk_wchar', Bytes2, Len1+4),
+ %% The terminating null character is also a wchar.
+ {cdrlib:enc_unsigned_short(0, Bytes3), Len3+2}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_union/5
+%%-----------------------------------------------------------------
+enc_union(Env, {_, Label, Value}, DiscrTC, Default, TypeCodeList, Bytes, Len) ->
+ {ByteSequence, Len1} = enc_type(DiscrTC, Env, Label, Bytes, Len),
+ Label2 = stringify_enum(DiscrTC,Label),
+ enc_union2(Env, {Label2, Value},TypeCodeList, Default,
+ ByteSequence, Len1, undefined).
+
+enc_union2(_Env, _What, [], Default, Bytes, Len, _) when Default < 0 ->
+ {Bytes, Len};
+enc_union2(Env, {_, Value}, [], _Default, Bytes, Len, Type) ->
+ enc_type(Type, Env, Value, Bytes, Len);
+enc_union2(Env, {Label,Value} ,[{Label, _Name, Type} |_List],
+ _Default, Bytes, Len, _) ->
+ enc_type(Type, Env, Value, Bytes, Len);
+enc_union2(Env, Union ,[{default, _Name, Type} |List], Default, Bytes, Len, _) ->
+ enc_union2(Env, Union, List, Default, Bytes, Len, Type);
+enc_union2(Env, Union,[_ | List], Default, Bytes, Len, DefaultType) ->
+ enc_union2(Env, Union, List, Default, Bytes, Len, DefaultType).
+
+stringify_enum({tk_enum, _,_,_}, Label) ->
+ atom_to_list(Label);
+stringify_enum(_, Label) ->
+ Label.
+%%-----------------------------------------------------------------
+%% Func: enc_struct/4
+%%-----------------------------------------------------------------
+enc_struct(Env, Struct, TypeCodeList, Bytes, Len) ->
+ [_Name | StructList] = tuple_to_list(Struct),
+ enc_struct1(Env, StructList, TypeCodeList, Bytes, Len).
+
+enc_struct1(_Env, [], [], Bytes, Len) ->
+ {Bytes, Len};
+enc_struct1(Env, [Object | Rest], [{_ElemName, ElemType} | TypeCodeList], Bytes,
+ Len) ->
+ {ByteSequence, Len1} = enc_type(ElemType, Env, Object, Bytes, Len),
+ enc_struct1(Env, Rest, TypeCodeList, ByteSequence, Len1).
+
+%%-----------------------------------------------------------------
+%% Func: enc_objref/4
+%%-----------------------------------------------------------------
+enc_objref(Env, _Name, Value, Bytes, Len) ->
+ iop_ior:code(Env, Value, Bytes, Len).
+
+%%-----------------------------------------------------------------
+%% Func: enc_exception/5
+%%-----------------------------------------------------------------
+enc_exception(Env, _Name, IFRId, Value, ElementList, Bytes, Len) ->
+ [_Name1, _TypeId | Args] = tuple_to_list(Value),
+ {Bytes1, Len1} = enc_type({'tk_string', 0}, Env, IFRId , Bytes, Len),
+ enc_exception_1(Env, Args, ElementList, Bytes1, Len1).
+
+enc_exception_1(_Env, [], [], Bytes, Len) ->
+ {Bytes, Len};
+enc_exception_1(Env, [Arg |Args], [{_ElemName, ElemType} |ElementList],
+ Bytes, Len) ->
+ {Bytes1, Len1} = enc_type(ElemType, Env, Arg, Bytes, Len),
+ enc_exception_1(Env, Args, ElementList, Bytes1, Len1).
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_type_code/3
+%%-----------------------------------------------------------------
+enc_type_code('tk_null', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 0, Message, Len);
+enc_type_code('tk_void', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 1, Message, Len);
+enc_type_code('tk_short', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 2, Message, Len);
+enc_type_code('tk_long', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 3, Message, Len);
+enc_type_code('tk_longlong', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 23, Message, Len);
+enc_type_code('tk_longdouble', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 25, Message, Len);
+enc_type_code('tk_ushort', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 4, Message, Len);
+enc_type_code('tk_ulong', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 5, Message, Len);
+enc_type_code('tk_ulonglong', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 24, Message, Len);
+enc_type_code('tk_float', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 6, Message, Len);
+enc_type_code('tk_double', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 7, Message, Len);
+enc_type_code('tk_boolean', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 8, Message, Len);
+enc_type_code('tk_char', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 9, Message, Len);
+enc_type_code('tk_wchar', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 26, Message, Len);
+enc_type_code('tk_octet', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 10, Message, Len);
+enc_type_code('tk_any', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 11, Message, Len);
+enc_type_code('tk_TypeCode', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 12, Message, Len);
+enc_type_code('tk_Principal', Env, Message, Len) ->
+ enc_type('tk_ulong', Env, 13, Message, Len);
+enc_type_code({'tk_objref', RepId, Name}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 14, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Env,
+ {"", RepId, Name},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_struct', RepId, SimpleName, ElementList}, Env, Message, Len) ->
+ %% Using SimpleName should be enough (and we avoid some overhead).
+ %% Name = ifrid_to_name(RepId),
+ {Message1, Len1} = enc_type('tk_ulong', Env, 15, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"element list",
+ {'tk_sequence', {'tk_struct', "","",
+ [{"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'}]},
+ 0}}]},
+ Env,
+ {"", RepId, SimpleName,
+ lists:map(fun({N,T}) -> {"",N,T} end, ElementList)},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_union', RepId, Name, DiscrTC, Default, ElementList},
+ Env, Message, Len) ->
+ NewElementList =
+ case check_enum(DiscrTC) of
+ true ->
+ lists:map(fun({L,N,T}) -> {"",list_to_atom(L),N,T} end, ElementList);
+ false ->
+ lists:map(fun({L,N,T}) -> {"",L,N,T} end, ElementList)
+ end,
+ {Message1, Len1} = enc_type('tk_ulong', Env, 16, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"discriminant type", 'tk_TypeCode'},
+ {"default used", 'tk_long'},
+ {"element list",
+ {'tk_sequence', {'tk_struct', "","",
+ [{"label value", DiscrTC},
+ {"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'}]},
+ 0}}]},
+ Env,
+ {"", RepId, Name, DiscrTC, Default, NewElementList},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_enum', RepId, Name, ElementList}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 17, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"element list",
+ {'tk_sequence', {'tk_string', 0}, 0}}]},
+ Env,
+ {"", RepId, Name, ElementList},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_string', MaxLength}, Env, Message, Len) ->
+ enc_type({'tk_struct', "", "", [{"TCKind", 'tk_ulong'},
+ {"max length", 'tk_ulong'}]},
+ Env,
+ {"", 18, MaxLength},
+ Message, Len);
+enc_type_code({'tk_wstring', MaxLength}, Env, Message, Len) ->
+ enc_type({'tk_struct', "", "", [{"TCKind", 'tk_ulong'},
+ {"max length", 'tk_ulong'}]},
+ Env,
+ {"", 27, MaxLength},
+ Message, Len);
+enc_type_code({'tk_sequence', ElemTC, MaxLength}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 19, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"element type", 'tk_TypeCode'},
+ {"max length", 'tk_ulong'}]},
+ Env,
+ {"", ElemTC, MaxLength},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_array', ElemTC, Length}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 20, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"element type", 'tk_TypeCode'},
+ {"length", 'tk_ulong'}]},
+ Env,
+ {"", ElemTC, Length},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_alias', RepId, Name, TC}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 21, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"TypeCode", 'tk_TypeCode'}]},
+ Env,
+ {"", RepId, Name, TC},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_except', RepId, Name, ElementList}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 22, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "", [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"element list",
+ {'tk_sequence',
+ {'tk_struct', "", "",
+ [{"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'}]}, 0}}]},
+ Env,
+ {"", RepId, Name,
+ lists:map(fun({N,T}) -> {"",N,T} end, ElementList)},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_fixed', Digits, Scale}, Env, Message, Len) ->
+ enc_type({'tk_struct', "", "", [{"TCKind", 'tk_ulong'},
+ {"digits", 'tk_ushort'},
+ {"scale", 'tk_short'}]},
+ Env,
+ {"", 28, Digits, Scale},
+ Message, Len);
+enc_type_code({'tk_value', RepId, Name, ValueModifier, TC, ElementList}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 29, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"ValueModifier", 'tk_short'},
+ {"TypeCode", 'tk_TypeCode'},
+ {"element list",
+ {'tk_sequence',
+ {'tk_struct', "","",
+ [{"member name", {'tk_string', 0}},
+ {"member type", 'tk_TypeCode'},
+ {"Visibility", 'tk_short'}]},
+ 0}}]},
+ Env,
+ {"", RepId, Name, ValueModifier, TC,
+ lists:map(fun({N,T,V}) -> {"",N,T,V} end, ElementList)},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_value_box', RepId, Name, TC}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 30, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}},
+ {"TypeCode", 'tk_TypeCode'}]},
+ Env,
+ {"", RepId, Name, TC},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_native', RepId, Name}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 31, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "",
+ [{"repository ID", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Env,
+ {"", RepId, Name},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_abstract_interface', RepId, Name}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 32, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "",
+ [{"RepositoryId", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Env,
+ {"", RepId, Name},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'tk_local_interface', RepId, Name}, Env, Message, Len) ->
+ {Message1, Len1} = enc_type('tk_ulong', Env, 33, Message, Len),
+ {Message2, _} = enc_byte_order(Env, []),
+ {ComplexParams, Len2} = enc_type({'tk_struct', "", "",
+ [{"RepositoryId", {'tk_string', 0}},
+ {"name", {'tk_string', 0}}]},
+ Env,
+ {"", RepId, Name},
+ Message2, 1),
+ encode_complex_tc_paramters(lists:reverse(ComplexParams), Len2, Message1, Len1);
+enc_type_code({'none', Indirection}, Env, Message, Len) -> %% placeholder
+ enc_type({'tk_struct', "", "", [{"TCKind", 'tk_ulong'},
+ {"indirection", 'tk_long'}]},
+ Env,
+ {"", 16#ffffffff, Indirection},
+ Message, Len);
+enc_type_code(Type, _, _, _) ->
+ orber:dbg("[~p] cdr_encode:enc_type_code(~p); No match.",
+ [?LINE, Type], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 7), completion_status=?COMPLETED_MAYBE}).
+
+check_enum({'tk_enum', _, _, _}) ->
+ true;
+check_enum(_) ->
+ false.
+
+encode_complex_tc_paramters(Value, ValueLength, Message, Len) ->
+ {Message1, _Len1} = enc_align(Message, Len, 4),
+ Message2 = cdrlib:enc_unsigned_long(ValueLength, Message1),
+ {[Value |Message2], Len+ValueLength+4}.
+
+%%-----------------------------------------------------------------
+%% Func: enc_align/1
+%%-----------------------------------------------------------------
+enc_align(R, Len, Alignment) ->
+ Rem = Len rem Alignment,
+ if Rem == 0 ->
+ {R, Len};
+ true ->
+ Diff = Alignment - Rem,
+ {add_bytes(R, Diff), Len + Diff}
+ end.
+
+add_bytes(R, 0) ->
+ R;
+add_bytes(R, 1) ->
+ [<<16#01:8>> | R];
+add_bytes(R, 2) ->
+ [<<16#02:8, 16#02:8>> | R];
+add_bytes(R, 3) ->
+ [<<16#03:8, 16#03:8, 16#03:8>> | R];
+add_bytes(R, 4) ->
+ [<<16#04:8, 16#04:8, 16#04:8, 16#04:8>> | R];
+add_bytes(R, 5) ->
+ [<<16#05:8, 16#05:8, 16#05:8, 16#05:8, 16#05:8>> | R];
+add_bytes(R, 6) ->
+ [<<16#06:8, 16#06:8, 16#06:8, 16#06:8, 16#06:8, 16#06:8>> | R];
+add_bytes(R, 7) ->
+ [<<16#07:8, 16#07:8, 16#07:8, 16#07:8, 16#07:8, 16#07:8, 16#07:8>> | R];
+add_bytes(R,N) ->
+ add_bytes([<<16#08:8>> | R], N - 1).
+
diff --git a/lib/orber/src/cdrlib.erl b/lib/orber/src/cdrlib.erl
new file mode 100644
index 0000000000..8fd032e968
--- /dev/null
+++ b/lib/orber/src/cdrlib.erl
@@ -0,0 +1,414 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: cdrlib.erl
+%%
+%% Description:
+%% CDR basic type encode/decode functions
+%%
+%%-----------------------------------------------------------------
+-module(cdrlib).
+
+-include_lib("orber/include/corba.hrl").
+-include("orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([ %% IIOP 1.0 -
+ enc_short/2, dec_short/2,
+ enc_unsigned_short/2, dec_unsigned_short/2,
+ enc_long/2, dec_long/2,
+ enc_unsigned_long/2, dec_unsigned_long/2,
+ enc_bool/2, dec_bool/1,
+ enc_float/2, dec_float/2,
+ enc_double/2, dec_double/2,
+ enc_char/2, dec_char/1,
+ enc_octet/2, dec_octet/1,
+ enc_enum/3, dec_enum/3,
+ %% IIOP 1.1 -
+ enc_longlong/2, dec_longlong/2,
+ enc_unsigned_longlong/2, dec_unsigned_longlong/2
+ %%enc_longdouble/2, dec_longdouble/2
+ %%enc_fixed/4, dec_fixed/2
+ ]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 10).
+
+%%-----------------------------------------------------------------
+%% short
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_short/2
+%%-----------------------------------------------------------------
+enc_short(X, Message) when is_integer(X) andalso X >= ?SHORTMIN andalso X =< ?SHORTMAX ->
+ [<<X:16/big-signed-integer>> | Message];
+enc_short(X, _Message) when is_integer(X) ->
+ orber:dbg("[~p] cdrlib:enc_short(~p); Out of range.", [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+enc_short(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_short(~p); not integer.", [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_short/2
+%%-----------------------------------------------------------------
+dec_short(big, <<Short:16/big-signed-integer,Rest/binary>>) ->
+ {Short, Rest};
+dec_short(little, <<Short:16/little-signed-integer,Rest/binary>>) ->
+ {Short, Rest}.
+
+%%-----------------------------------------------------------------
+%% unsigned short
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_unsigned_short/2
+%%-----------------------------------------------------------------
+enc_unsigned_short(X, Message) when is_integer(X) andalso X >= ?USHORTMIN andalso X =< ?USHORTMAX ->
+ [<<X:16/big-unsigned-integer>> | Message];
+enc_unsigned_short(X, _Message) when is_integer(X) ->
+ orber:dbg("[~p] cdrlib:enc_unsigned_short(~p); Out of range.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+enc_unsigned_short(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_unsigned_short(~p); not integer >= 0",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_unsigned_short/2
+%%-----------------------------------------------------------------
+dec_unsigned_short(big, <<UShort:16/big-unsigned-integer,Rest/binary>>) ->
+ {UShort, Rest};
+dec_unsigned_short(little, <<UShort:16/little-unsigned-integer,Rest/binary>>) ->
+ {UShort, Rest}.
+
+%%-----------------------------------------------------------------
+%% long
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_long/2
+%%-----------------------------------------------------------------
+enc_long(X, Message) when is_integer(X) andalso X >= ?LONGMIN andalso X =< ?LONGMAX ->
+ [<<X:32/big-signed-integer>> | Message];
+enc_long(X, _Message) when is_integer(X) ->
+ orber:dbg("[~p] cdrlib:enc_long(~p); Out of range.",[?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+enc_long(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_long(~p); not integer.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_long/2
+%%-----------------------------------------------------------------
+dec_long(big, <<Long:32/big-signed-integer,Rest/binary>>) ->
+ {Long, Rest};
+dec_long(little, <<Long:32/little-signed-integer,Rest/binary>>) ->
+ {Long, Rest}.
+
+%%-----------------------------------------------------------------
+%% unsigned_long
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_unsigned_long/2
+%%-----------------------------------------------------------------
+enc_unsigned_long(X, Message) when is_integer(X) andalso X >= ?ULONGMIN andalso X =< ?ULONGMAX ->
+ [<<X:32/big-unsigned-integer>> | Message];
+enc_unsigned_long(X, _Message) when is_integer(X) ->
+ orber:dbg("[~p] cdrlib:enc_unsigned_long(~p); Out of range.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+enc_unsigned_long(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_unsigned_long(~p); not integer >=0 ",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_unsigned_long/2
+%%-----------------------------------------------------------------
+dec_unsigned_long(big, <<ULong:32/big-unsigned-integer,Rest/binary>>) ->
+ {ULong, Rest};
+dec_unsigned_long(little, <<ULong:32/little-unsigned-integer,Rest/binary>>) ->
+ {ULong, Rest}.
+
+%%-----------------------------------------------------------------
+%% boolean
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_bool/2
+%%-----------------------------------------------------------------
+enc_bool(true, Message) -> [<<1:8>>| Message];
+enc_bool(false, Message) -> [<<0:8>>| Message];
+enc_bool(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_bool(~p); Must be 'true' or 'false'",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 3), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_bool/1
+%%-----------------------------------------------------------------
+dec_bool(<<1:8,Rest/binary>>) -> {true, Rest};
+dec_bool(<<0:8,Rest/binary>>) -> {false, Rest};
+dec_bool(<<X:8,_Rest/binary>>) ->
+ orber:dbg("[~p] cdrlib:dec_bool(~p); Not a boolean (1 or 0).",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 3), completion_status=?COMPLETED_NO}).
+
+
+%%-----------------------------------------------------------------
+%% Func: enc_float/2
+%%-----------------------------------------------------------------
+enc_float(X, Message) when is_number(X) ->
+ [<<X:32/big-float>> | Message];
+enc_float(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_float(~p); not a number.", [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 4), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_float/2
+%%-----------------------------------------------------------------
+dec_float(big, <<Float:32/big-float,Rest/binary>>) ->
+ {Float, Rest};
+dec_float(little, <<Float:32/little-float,Rest/binary>>) ->
+ {Float, Rest}.
+
+%%-----------------------------------------------------------------
+%% Func: enc_double/2
+%%-----------------------------------------------------------------
+enc_double(X, Message) when is_number(X) ->
+ [<<X:64/big-float>> | Message];
+enc_double(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_double(~p); not a number.", [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 4), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_double/2
+%%-----------------------------------------------------------------
+dec_double(big, <<Double:64/big-float,Rest/binary>>) ->
+ {Double, Rest};
+dec_double(little, <<Double:64/little-float,Rest/binary>>) ->
+ {Double, Rest}.
+
+%%-----------------------------------------------------------------
+%% char
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_char/2
+%%-----------------------------------------------------------------
+enc_char(X, Message) when is_integer(X) andalso X =< 255, X >= 0 ->
+ [<<X:8>> | Message];
+enc_char(X,_) ->
+ orber:dbg("[~p] cdrlib:enc_char(~p); not a char.", [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 6),completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_char/1
+%%-----------------------------------------------------------------
+dec_char(<<Char:8,Rest/binary>>) ->
+ {Char, Rest}.
+
+%%-----------------------------------------------------------------
+%% octet
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_octet/2
+%%-----------------------------------------------------------------
+enc_octet(X, Message) when is_integer(X) andalso X =< 255, X >= 0 ->
+ [<<X:8/big-unsigned-integer>> | Message];
+enc_octet(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_octet(~p); not an octet.", [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 6),completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_octet/1
+%%-----------------------------------------------------------------
+dec_octet(<<Octet:8/big-unsigned-integer,Rest/binary>>) ->
+ {Octet, Rest}.
+
+%%-----------------------------------------------------------------
+%% enum
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_enum/3
+%%-----------------------------------------------------------------
+enc_enum(Enum, ElemList, Message) ->
+ Val = getEnumValue(ElemList,Enum, 0),
+ enc_unsigned_long(Val, Message).
+
+getEnumValue([],Enum, _) ->
+ orber:dbg("[~p] cdrlib:enc_enum/enc_r_enum(~p); not exist.",
+ [?LINE, Enum], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 5),
+ completion_status=?COMPLETED_NO});
+getEnumValue([Enum|_List], Enum, N) ->
+ N;
+getEnumValue([_ |List], Enum, N) ->
+ getEnumValue(List, Enum, N + 1).
+
+%%-----------------------------------------------------------------
+%% Func: dec_enum/2
+%%-----------------------------------------------------------------
+dec_enum(ByteOrder, ElemList, Message) ->
+ {N, Rest} = dec_unsigned_long(ByteOrder, Message),
+ case catch lists:nth(N + 1, ElemList) of
+ {'EXIT', _} ->
+ orber:dbg("[~p] cdrlib:dec_enum(~p, ~p); not defined.",
+ [?LINE, N, ElemList], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 5),
+ completion_status=?COMPLETED_NO});
+ X ->
+ {list_to_atom(X), Rest}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% IIOP 1.1 -
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% longlong
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: enc_longlong/2
+%%-----------------------------------------------------------------
+enc_longlong(X, Message) when is_integer(X) andalso X >= ?LONGLONGMIN andalso X =< ?LONGLONGMAX ->
+ [<<X:64/big-signed-integer>> | Message];
+enc_longlong(X, _Message) when is_integer(X) ->
+ orber:dbg("[~p] cdrlib:enc_longlong(~p); Out of range.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+enc_longlong(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_longlong(~p); not integer.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_longlong/2
+%%-----------------------------------------------------------------
+dec_longlong(big, <<LongLong:64/big-signed-integer,Rest/binary>>) ->
+ {LongLong, Rest};
+dec_longlong(little, <<LongLong:64/little-signed-integer,Rest/binary>>) ->
+ {LongLong, Rest}.
+
+%%-----------------------------------------------------------------
+%% Func: enc_unsigned_longlong/2
+%%-----------------------------------------------------------------
+enc_unsigned_longlong(X, Message) when is_integer(X) andalso X >= ?ULONGLONGMIN andalso X =< ?ULONGLONGMAX ->
+ [<<X:64/big-unsigned-integer>> | Message];
+enc_unsigned_longlong(X, _Message) when is_integer(X) ->
+ orber:dbg("[~p] cdrlib:enc_unsigned_longlong(~p); Out of range.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+enc_unsigned_longlong(X, _Message) ->
+ orber:dbg("[~p] cdrlib:enc_unsigned_longlong(~p); not integer >= 0.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: dec_unsigned_longlong/2
+%%-----------------------------------------------------------------
+dec_unsigned_longlong(big, <<ULongLong:64/big-unsigned-integer,Rest/binary>>) ->
+ {ULongLong, Rest};
+dec_unsigned_longlong(little, <<ULongLong:64/little-unsigned-integer,Rest/binary>>) ->
+ {ULongLong, Rest}.
+
+%%%-----------------------------------------------------------------
+%%% long double [S=1 | E=15 | F=112]
+%%% X = (-1)^S * 2^(E-16383) * 1.F
+%%%-----------------------------------------------------------------
+%-define(LONGDOUBLE_BASE, 16#10000000000000000000000000000).
+%-define(LONGDOUBLE_BIAS, 16383).
+%%%-----------------------------------------------------------------
+%%% Func: enc_longdouble/2
+%%%-----------------------------------------------------------------
+%enc_longdouble(X, Message) when number(X) ->
+% {S, E, F} = enc_ieee(X, ?LONGDOUBLE_BASE, ?LONGDOUBLE_BIAS),
+% [ (S bsl 7) bor ((E bsr 8) band 16#7f),
+% E band 16#ff,
+% (F bsr 104) band 16#ff,
+% (F bsr 96) band 16#ff,
+% (F bsr 88) band 16#ff,
+% (F bsr 80) band 16#ff,
+% (F bsr 72) band 16#ff,
+% (F bsr 64) band 16#ff,
+% (F bsr 56) band 16#ff,
+% (F bsr 48) band 16#ff,
+% (F bsr 40) band 16#ff,
+% (F bsr 32) band 16#ff,
+% (F bsr 24) band 16#ff,
+% (F bsr 16) band 16#ff,
+% (F bsr 8) band 16#ff,
+% F band 16#ff | Message];
+%enc_longdouble(X, Message) ->
+% corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 4), completion_status=?COMPLETED_NO}).
+
+%%%-----------------------------------------------------------------
+%%% Func: dec_longdouble/2
+%%%-----------------------------------------------------------------
+%dec_longdouble([X15,X14,X13,X12,X11,X10,X9,X8,X7,X6,X5,X4,X3,X2,X1,X0 | R], big) ->
+
+% E = (X15 band 16#7f) bsl 8 + X14,
+
+% F = (X13 bsl 104) + (X12 bsl 96) +
+% (X11 bsl 88) + (X10 bsl 80) + (X9 bsl 72) +
+% (X8 bsl 64) + (X7 bsl 56) + (X6 bsl 48) +
+% (X5 bsl 40) + (X4 bsl 32) + (X3 bsl 24) +
+% (X2 bsl 16) + (X1 bsl 8) + X0,
+
+% if
+% E == 0, F == 0 ->
+% { 0.0, R};
+% X15 >= 16#80 ->
+% { - math:pow(2, E-?LONGDOUBLE_BIAS) * (1 + F / ?LONGDOUBLE_BASE), R};
+% true ->
+% { math:pow(2, E-?LONGDOUBLE_BIAS) * (1 + F / ?LONGDOUBLE_BASE), R}
+% end;
+%dec_longdouble([X15,X14,X13,X12,X11,X10,X9,X8,X7,X6,X5,X4,X3,X2,X1,X0 | R], little) ->
+
+% E = (X0 band 16#7f) bsl 8 + X1,
+
+% F =
+% (X2 bsl 104) + (X3 bsl 96) +
+% (X4 bsl 88) + (X5 bsl 80) + (X6 bsl 72) +
+% (X7 bsl 64) + (X8 bsl 56) + (X9 bsl 48) +
+% (X10 bsl 40) + (X11 bsl 32) + (X12 bsl 24) +
+% (X13 bsl 16) + (X14 bsl 8) + X15,
+
+% if
+% E == 0, F == 0 ->
+% { 0.0, R};
+% X0 >= 16#80 ->
+% { - math:pow(2, E-?DOUBLE_BIAS) * (1 + F / ?DOUBLE_BASE), R};
+% true ->
+% { math:pow(2, E-?DOUBLE_BIAS) * (1 + F / ?DOUBLE_BASE), R}
+% end.
+
+%%------------------ END OF MODULE -----------------------------------
+
diff --git a/lib/orber/src/corba.erl b/lib/orber/src/corba.erl
new file mode 100644
index 0000000000..ea1363742c
--- /dev/null
+++ b/lib/orber/src/corba.erl
@@ -0,0 +1,2180 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%--------------------------------------------------------------------
+%% File: corba.erl
+%%
+%% Description:
+%% This file contains the CORBA::ORB interface plus some
+%% Orber specific functions.
+%%-----------------------------------------------------------------
+-module(corba).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% Standard interface CORBA
+%%-----------------------------------------------------------------
+-export([orb_init/1, orb_init/2]).
+%%-----------------------------------------------------------------
+%% Standard interface CORBA::ORB
+%%-----------------------------------------------------------------
+-export([%create_list/2,
+ %create_operation_list/2,
+ %% get_default_context/1,
+ %% 'BOA_init/2,
+ resolve_initial_references/1,
+ resolve_initial_references/2,
+ resolve_initial_references_local/1,
+ list_initial_services/0,
+ add_initial_service/2,
+ remove_initial_service/1,
+ resolve_initial_references_remote/2,
+ resolve_initial_references_remote/3,
+ list_initial_services_remote/1,
+ list_initial_services_remote/2,
+ object_to_string/1, object_to_string/2,
+ object_to_string/3, object_to_string/4,
+ string_to_object/1,
+ string_to_object/2]).
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([create/2,
+ create/3,
+ create/4,
+ create_link/2,
+ create_link/3,
+ create_link/4,
+ create_remote/3,
+ create_remote/5,
+ create_link_remote/3,
+ create_link_remote/5,
+ create_nil_objref/0,
+ dispose/1,
+ create_subobject_key/2,
+ get_subobject_key/1,
+ get_pid/1,
+ raise/1, raise_with_state/2,
+ print_object/1,
+ print_object/2,
+ add_alternate_iiop_address/3,
+ add_FTGroup_component/4,
+ add_FTPrimary_component/1,
+ call_internal/10]).
+
+%%-----------------------------------------------------------------
+%% Internal (inside orber implementation) exports
+%%-----------------------------------------------------------------
+-export([call/4, call/5, reply/2,
+ cast/4, cast/5, locate/1, locate/2, locate/3,
+ request_from_iiop/6,
+ common_create/5,
+ mk_objkey/4,
+ mk_light_objkey/2,
+ objkey_to_string/1,
+ string_to_objkey/1,
+ string_to_objkey_local/1,
+ call_relay/3,
+ cast_relay/2,
+ handle_init/2,
+ handle_terminate/3,
+ handle_info/3,
+ handle_code_change/4,
+ handle_call/7,
+ handle_call/10,
+ handle_cast/9,
+ handle_cast/6,
+ get_implicit_context/1]).
+
+%%-----------------------------------------------------------------
+%% Internal definitions
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+-record(is, {flags = 0}).
+
+%% Defines possible configuration parameters a user can add when
+%% creating new CORBA objects.
+-record(options, {sup_child = false,
+ persistent = false,
+ regname = [],
+ pseudo = false,
+ object_flags = ?ORB_INIT_FLAGS,
+ object_flags_set = ?ORB_INIT_FLAGS,
+ create_options = [],
+ passive = false,
+ group_id = 0,
+ internal_state}).
+
+-record(extra, {timeout = infinity,
+ context = []}).
+
+
+%%--------------------------------------------------------------------
+%% FT stuff
+%%--------------------------------------------------------------------
+-define(IDL_MODULES, [oe_TimeBase,
+ oe_CosEventComm,
+ oe_CosEventChannelAdmin,
+ oe_CosNotification,
+ oe_CosNotifyComm,
+ oe_CosNotifyFilter,
+ oe_GIOP]).
+
+-define(groupid_to_table(Integer),
+ list_to_atom("ft_" ++ integer_to_list(Integer))).
+
+-define(RM_TABLE_SPEC,
+ [{attributes, record_info(fields, ft_replication_manager)}]).
+-define(RO_TABLE_SPEC,
+ [{attributes, record_info(fields, ft_replicated_object)}]).
+-define(RR_TABLE_SPEC,
+ [{attributes, record_info(fields, ft_reply_retention)}]).
+
+%% how long we're allowed to wait for database tables to be available.
+-define(TABLE_TIMEOUT, infinite).
+
+%-record(rm_state, {default_options, type_options, node_port_ips}).
+
+%-record(node_port_ip, {node, port, ip}).
+
+-record(ft_replication_manager, {object_group_id,
+ type_id,
+ primary,
+ iogr,
+ ref_version,
+ options}).
+
+-record(ft_replicated_object, {group_id, state}).
+-record(ft_reply_retention, {retention_id, reply}).
+
+%-record(ft_properties, {replications_style,
+% membership_style,
+% consistency_style,
+% initial_number_replicas,
+% minimum_number_replicas}).
+
+% one should change things work with stdlib:proplist and clean up the mess.
+%-record(ft_criteria, {ft_properties,
+% object_location,
+% object_init,
+% object_impl}).
+
+%%------------------------------------------------------------
+%%
+%% Implementation of CORBA CORBA::ORB interfaces
+%%
+%%------------------------------------------------------------
+
+%%create_list(Count) ->
+%% corba_nvlist:create_list(Count).
+
+%%create_operation_list(OpDef) ->
+%% corba_nvlist:create_operation_list(OpDef).
+
+orb_init(KeyValueList) ->
+ orb_init(KeyValueList, "ORBER").
+
+orb_init([], _Name) ->
+ ok;
+orb_init(KeyValueList, _Name) ->
+ orber:multi_configure(KeyValueList).
+
+%%-----------------------------------------------------------------
+%% Initial reference handling
+%%-----------------------------------------------------------------
+resolve_initial_references(ObjectId) ->
+ resolve_initial_references(ObjectId, []).
+resolve_initial_references(ObjectId, Ctx) ->
+ case use_local_host(ObjectId) of
+ true ->
+ orber_initial_references:get(ObjectId);
+ Ref ->
+ string_to_object(Ref, Ctx)
+ end.
+
+resolve_initial_references_local(ObjectId) ->
+ orber_initial_references:get(ObjectId).
+
+list_initial_services() ->
+ Local = orber_initial_references:list(),
+ case orber:get_ORBInitRef() of
+ undefined ->
+ Local;
+ InitRef ->
+ orber_tb:unique(Local ++ get_prefixes(InitRef, []))
+ end.
+
+get_prefixes([], Acc) ->
+ Acc;
+%% A list of ORBInitRef's
+get_prefixes([H|T], Acc) when is_list(H) ->
+ [Key|_] = string:tokens(H, "="),
+ get_prefixes(T, [Key|Acc]);
+%% A single ORBInitRef
+get_prefixes(InitRef, _Acc) when is_list(InitRef) ->
+ [Key|_] = string:tokens(InitRef, "="),
+ [Key];
+get_prefixes(What, _) ->
+ orber:dbg("[~p] corba:get_prefixes(~p);~nMalformed argument?",
+ [?LINE, What], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO}).
+
+
+use_local_host(ObjectId) ->
+ case orber:get_ORBInitRef() of
+ undefined ->
+ case orber:get_ORBDefaultInitRef() of
+ undefined ->
+ true;
+ DefRef ->
+ DefRef++"/"++ObjectId
+ end;
+ InitRef ->
+ case check_prefixes(InitRef, ObjectId) of
+ false ->
+ case orber:get_ORBDefaultInitRef() of
+ undefined ->
+ true;
+ DefRef ->
+ DefRef++"/"++ObjectId
+ end;
+ UseRef ->
+ strip_junk(UseRef)
+ end
+ end.
+
+
+check_prefixes([], _) ->
+ false;
+%% A list of ORBInitRef's
+check_prefixes([H|T], ObjectId) when is_list(H) ->
+ case prefix(ObjectId, H) of
+ false ->
+ check_prefixes(T, ObjectId);
+ UseRef ->
+ UseRef
+ end;
+%% A single ORBInitRef
+check_prefixes(InitRef, ObjectId) when is_list(InitRef) ->
+ case prefix(ObjectId, InitRef) of
+ false ->
+ false;
+ UseRef ->
+ UseRef
+ end;
+check_prefixes(What,_) ->
+ orber:dbg("[~p] corba:check_prefixes(~p);~nMalformed argument?",
+ [?LINE, What], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO}).
+
+
+%% Valid is, for example, "NameService = corbaloc::host/NameService".
+%% Hence, we must remove ' ' and '='.
+strip_junk([32|T]) ->
+ strip_junk(T);
+strip_junk([$=|T]) ->
+ strip_junk(T);
+strip_junk(Ref) ->
+ Ref.
+
+add_initial_service(ObjectId, ObjectRef) ->
+ orber_initial_references:add(ObjectId, ObjectRef).
+
+remove_initial_service(ObjectId) ->
+ orber_initial_references:remove(ObjectId).
+
+resolve_initial_references_remote(ObjectId, Address) ->
+ resolve_initial_references_remote(ObjectId, Address, []).
+
+resolve_initial_references_remote(_ObjectId, [], _Ctx) ->
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO});
+resolve_initial_references_remote(ObjectId, [RemoteModifier| Rest], Ctx)
+ when is_list(RemoteModifier) ->
+ case lists:prefix("iiop://", RemoteModifier) of
+ true ->
+ [_, Host, Port] = string:tokens(RemoteModifier, ":/"),
+ IOR = iop_ior:create_external(orber:giop_version(), "",
+ Host, list_to_integer(Port), "INIT"),
+ %% We know it's an external referens. Hence, no need to check.
+ {_, Key} = iop_ior:get_key(IOR),
+ orber_iiop:request(Key, 'get', [ObjectId],
+ {{'tk_objref', 12, "object"},
+ [{'tk_string', 0}],
+ []}, 'true', infinity, IOR, Ctx);
+ false ->
+ resolve_initial_references_remote(ObjectId, Rest, Ctx)
+ end.
+
+list_initial_services_remote(Address) ->
+ list_initial_services_remote(Address, []).
+
+list_initial_services_remote([], _Ctx) ->
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO});
+list_initial_services_remote([RemoteModifier| Rest], Ctx) when is_list(RemoteModifier) ->
+ case lists:prefix("iiop://", RemoteModifier) of
+ true ->
+ [_, Host, Port] = string:tokens(RemoteModifier, ":/"),
+ IOR = iop_ior:create_external(orber:giop_version(), "",
+ Host, list_to_integer(Port), "INIT"),
+ %% We know it's an external referens. Hence, no need to check.
+ {_, Key} = iop_ior:get_key(IOR),
+ orber_iiop:request(Key, 'list', [],
+ {{'tk_sequence', {'tk_string',0},0},
+ [], []}, 'true', infinity, IOR, Ctx);
+ false ->
+ list_initial_services_remote(Rest, Ctx)
+ end;
+list_initial_services_remote(_, _) ->
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+
+%%-----------------------------------------------------------------
+%% Objectreference convertions
+%%-----------------------------------------------------------------
+object_to_string(Object) ->
+ iop_ior:string_code(Object).
+
+object_to_string(Object, [H|_] = Hosts) when is_list(H) ->
+ iop_ior:string_code(Object, Hosts);
+object_to_string(_Object, _Hosts) ->
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+object_to_string(Object, [H|_] = Hosts, Port) when is_list(H) andalso
+ is_integer(Port) ->
+ iop_ior:string_code(Object, Hosts, Port);
+object_to_string(_Object, _Hosts, _Port) ->
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+object_to_string(Object, [H|_] = Hosts, Port, SSLPort) when is_list(H) andalso
+ is_integer(Port) andalso
+ is_integer(SSLPort)->
+ iop_ior:string_code(Object, Hosts, Port, SSLPort);
+object_to_string(_Object, _Hosts, _Port, _SSLPort) ->
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+string_to_object(IORString) ->
+ string_to_object(IORString, []).
+
+string_to_object(IORString, Ctx) when is_list(Ctx) ->
+ case lists:prefix("IOR", IORString) of
+ true ->
+ {ObjRef, _, _} = iop_ior:string_decode(IORString),
+ ObjRef;
+ _ ->
+ %% CORBA-2.4 allows both IOR and ior prefix.
+ case lists:prefix("ior", IORString) of
+ true ->
+ {ObjRef, _, _} = iop_ior:string_decode(IORString),
+ ObjRef;
+ _ ->
+ Data = orber_cosnaming_utils:select_type(IORString),
+ case orber_cosnaming_utils:lookup(Data, Ctx) of
+ String when is_list(String) ->
+ {Obj, _, _} = iop_ior:string_decode(String),
+ Obj;
+ ObjRef ->
+ ObjRef
+ end
+ end
+ end;
+string_to_object(IORString, Ctx) ->
+ orber:dbg("[~p] corba:string_to_object(~p, ~p);~n"
+ "Failed to supply a context list.",
+ [?LINE, IORString, Ctx], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%------------------------------------------------------------
+%%
+%% Implementation of NON-standard functions
+%%
+%%------------------------------------------------------------
+create(Module, TypeID) ->
+ create(Module, TypeID, []).
+
+create(Module, TypeID, Env) ->
+ common_create(Module, TypeID, Env, [], 'start').
+
+create(Module, TypeID, Env, {Type, RegName}) ->
+ common_create(Module, TypeID, Env, [{regname, {Type, RegName}}], 'start');
+create(Module, TypeID, Env, Options) ->
+ common_create(Module, TypeID, Env, Options, 'start').
+
+
+create_link(Module, TypeID) ->
+ create_link(Module, TypeID, []).
+
+create_link(Module, TypeID, Env) ->
+ common_create(Module, TypeID, Env, [], 'start_link').
+
+create_link(Module, TypeID, Env, {Type, RegName}) ->
+ common_create(Module, TypeID, Env, [{regname, {Type, RegName}}], 'start_link');
+create_link(Module, TypeID, Env, Options) ->
+ common_create(Module, TypeID, Env, Options, 'start_link').
+
+
+create_remote(Node, Module, TypeID) ->
+ create_remote(Node, Module, TypeID, []).
+
+create_remote(Node, Module, TypeID, Env) ->
+ common_create_remote(Node, Module, TypeID, Env, [], 'start').
+
+create_remote(Node, Module, TypeID, Env, {Type, RegName}) ->
+ common_create_remote(Node, Module, TypeID, Env, [{regname, {Type, RegName}}], 'start');
+create_remote(Node, Module, TypeID, Env, Options) ->
+ common_create_remote(Node, Module, TypeID, Env, Options, 'start').
+
+
+create_link_remote(Node, Module, TypeID) ->
+ create_link_remote(Node, Module, TypeID, []).
+
+create_link_remote(Node, Module, TypeID, Env) ->
+ common_create_remote(Node, Module, TypeID, Env, [], 'start_link').
+
+create_link_remote(Node, Module, TypeID, Env, {Type, RegName}) ->
+ common_create_remote(Node, Module, TypeID, Env, [{regname, {Type, RegName}}], 'start_link');
+create_link_remote(Node, Module, TypeID, Env, Options) ->
+ common_create_remote(Node, Module, TypeID, Env, Options, 'start_link').
+
+common_create_remote(Node, Module, TypeID, Env, {Type, RegName}, StartMethod) ->
+ common_create_remote(Node, Module, TypeID, Env, [{regname, {Type, RegName}}], StartMethod);
+common_create_remote(Node, Module, TypeID, Env, Options, StartMethod) ->
+ case node_check(Node) of
+ true ->
+ rpc:call(Node, corba, common_create, [Module, TypeID, Env, Options, StartMethod]);
+ _ ->
+ orber:dbg("[~p] corba:common_create_remote(~p);~n"
+ "Node not in current domain.", [?LINE, Node], ?DEBUG_LEVEL),
+ raise(#'OBJ_ADAPTER'{completion_status=?COMPLETED_NO})
+ end.
+
+node_check(Node) ->
+ lists:member(Node,orber:orber_nodes()).
+
+common_create(Module, _TypeID, Env, Options, StartMethod) when is_list(Options) ->
+ Opt = evaluate_options(Options, #options{}),
+ case Opt#options.regname of
+ [] ->
+ ok;
+ {'local', Atom} when is_atom(Atom) andalso Opt#options.persistent == false ->
+ ok;
+ {'global', _} ->
+ ok;
+ Why ->
+ orber:dbg("[~p] corba:common_create(~p, ~p);~n"
+ "Bad name type or combination(~p).",
+ [?LINE, Module, Options, Why], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_NO})
+ end,
+ case Opt of
+ #options{pseudo = false, passive = false} ->
+ case gen_server:StartMethod(Module, {Opt#options.object_flags, Env},
+ Opt#options.create_options) of
+ {ok, Pid} ->
+ case catch mk_objkey(Module, Pid, Opt#options.regname,
+ Opt#options.persistent,
+ Opt#options.object_flags) of
+ {'EXCEPTION', E} ->
+ %% This branch is only used if we couldn't register
+ %% our new objectkey due to an internal error in orber.
+ gen_server:call(Pid, stop),
+ raise(E);
+ {'EXIT', _} ->
+ %% This branch takes care of exit values
+ %% which aren't expected (due to bug).
+ gen_server:call(Pid, stop),
+ raise(#'BAD_PARAM'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_NO});
+ Objkey when Opt#options.sup_child == true ->
+ {ok, Pid, Objkey};
+ Objkey ->
+ Objkey
+ end;
+ X ->
+ X
+ end;
+ #options{pseudo = true, passive = false} ->
+ ModuleImpl = list_to_atom(lists:concat([Module, '_impl'])),
+ case ModuleImpl:init(Env) of
+ {ok, State} ->
+ create_subobject_key(mk_pseudo_objkey(Module, ModuleImpl,
+ Opt#options.object_flags),
+ State);
+ {ok, State,_} ->
+ create_subobject_key(mk_pseudo_objkey(Module, ModuleImpl,
+ Opt#options.object_flags),
+ State);
+ Reason ->
+ orber:dbg("[~p] corba:common_create(~p);~n"
+ "'init' function incorrect(~p).",
+ [?LINE, ModuleImpl, Reason], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_NO})
+ end;
+ #options{pseudo = false, passive = true} ->
+ ModuleImpl = list_to_atom(lists:concat([Module, '_impl'])),
+ create_subobject_key(mk_passive_objkey(Module, ModuleImpl,
+ Opt#options.object_flags),
+ ?groupid_to_table(Opt#options.group_id));
+ What ->
+ orber:dbg("[~p] corba:common_create(~p, ~p);~n"
+ "not a boolean(~p).",
+ [?LINE, Module, Options, What], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_NO})
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : dispose
+%% Arguments : Object
+%% Returns :
+%% Description: Terminate the object represented by the supplied reference.
+%%----------------------------------------------------------------------
+dispose(?ORBER_NIL_OBJREF) ->
+ ok;
+dispose(Obj) ->
+ corba_boa:dispose(Obj).
+
+%%----------------------------------------------------------------------
+%% Function : create_nil_objref
+%% Arguments : -
+%% Returns : A NIL object reference
+%% Description:
+%%----------------------------------------------------------------------
+create_nil_objref() ->
+ ?ORBER_NIL_OBJREF.
+
+%%----------------------------------------------------------------------
+%% Function : create_subobject_key
+%% Arguments : A local object reference and an Erlang term().
+%% Returns : A new instance of the supplied reference with the
+%% sub-object field changed to the given value.
+%% Description: Initially, this field is set to 'undefined'
+%%----------------------------------------------------------------------
+create_subobject_key(Objkey, B) when is_binary(B) ->
+ iop_ior:set_privfield(Objkey, B);
+create_subobject_key(Objkey, T) ->
+ create_subobject_key(Objkey, term_to_binary(T)).
+
+%%----------------------------------------------------------------------
+%% Function : get_subobject_key
+%% Arguments : A local object reference
+%% Returns : Erlang term().
+%% Description: Return the value set by using create_subobject_key/2
+%%----------------------------------------------------------------------
+get_subobject_key(Objkey) ->
+ iop_ior:get_privfield(Objkey).
+
+%%----------------------------------------------------------------------
+%% Function : get_pid
+%% Arguments : A local object reference
+%% Returns : If the object is local and is associated with a pid, this
+%% pid is returned. Otherwise, external- or pseudo-object,
+%% an exception is raised.
+%% Description:
+%%----------------------------------------------------------------------
+get_pid(Objkey) ->
+ case iop_ior:get_key(Objkey) of
+ {'internal', Key, _, _, _} ->
+ orber_objectkeys:get_pid(Key);
+ {'internal_registered', Key, _, _, _} when is_atom(Key) ->
+ case whereis(Key) of
+ undefined ->
+ raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO});
+ Pid ->
+ Pid
+ end;
+ R ->
+ orber:dbg("[~p] corba:get_pid(~p);~n"
+ "Probably a pseudo- or external object(~p).",
+ [?LINE, Objkey, R], ?DEBUG_LEVEL),
+ raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : raise
+%% Arguments : Local exception representation.
+%% Returns : Throws the exception.
+%% Description:
+%%----------------------------------------------------------------------
+raise(E) ->
+ throw({'EXCEPTION', E}).
+
+%%----------------------------------------------------------------------
+%% Function : raise_with_state
+%% Arguments : Local exception representation.
+%% Returns : Throws the exception.
+%% Description:
+%%----------------------------------------------------------------------
+raise_with_state(E, State) ->
+ throw({reply, {'EXCEPTION', E}, State}).
+
+%%----------------------------------------------------------------------
+%% Function : reply
+%% Arguments : To - pid
+%% Reply - Erlang term().
+%% Returns :
+%% Description: Used to reply to the invoker but still be able
+%% to do some more work in the callback module.
+%%----------------------------------------------------------------------
+reply(To, Reply) ->
+ gen_server:reply(To, Reply).
+
+%%----------------------------------------------------------------------
+%% Function : print_object
+%% Arguments : An object represented as one of the following:
+%% - local (tuple)
+%% - IOR
+%% - stringified IOR
+%% - corbaloc- or corbaname-schema
+%% IoDevice - the same as the io-module defines.
+%% Returns :
+%% Description: Prints the object's components and profiles.
+%%----------------------------------------------------------------------
+print_object(Object) ->
+ iop_ior:print(Object).
+print_object(Object, IoDevice) ->
+ iop_ior:print(IoDevice, Object).
+
+%%----------------------------------------------------------------------
+%% Function : add_alternate_iiop_address
+%% Arguments : Local object (tuple or IOR).
+%% IP - IP-string
+%% Port - integer().
+%% Returns : A local IOR with a TAG_ALTERNATE_IIOP_ADDRESS component.
+%% Description:
+%%----------------------------------------------------------------------
+add_alternate_iiop_address(Obj, Host, Port) when is_list(Host) andalso is_integer(Port) ->
+ TC = #'IOP_TaggedComponent'{tag = ?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data = #'ALTERNATE_IIOP_ADDRESS'{
+ 'HostID' = Host,
+ 'Port' = Port}},
+ iop_ior:add_component(Obj, TC);
+add_alternate_iiop_address(_, Host, Port) ->
+ orber:dbg("[~p] corba:add_alternate_iiop_address(~p, ~p);~n"
+ "Incorrect argument(s). Host must be IP-string and Port an integer.",
+ [?LINE, Host, Port], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO}).
+
+
+%%----------------------------------------------------------------------
+%% Function : add_FTGroup_component
+%% Arguments : Local object (tuple or IOR).
+%% FTDomain - FT Domain. String().
+%% GroupID - Replicated object group's id. Integer(). (ulonglong)
+%% GroupVer - Object group's version number. Integer(). (ulong)
+%% Returns : A local IOR with one TAG_FT_GROUP component.
+%% Description:
+%%----------------------------------------------------------------------
+add_FTGroup_component(Obj, FTDomain, GroupID, GroupVer)
+ when is_list(FTDomain) andalso is_integer(GroupID) andalso is_integer(GroupVer) andalso
+ GroupID >= ?ULONGLONGMIN andalso GroupID =< ?ULONGLONGMAX andalso
+ GroupVer >= ?ULONGMIN andalso GroupVer =< ?ULONGMAX ->
+ TC = #'IOP_TaggedComponent'{tag = ?TAG_FT_GROUP,
+ component_data = #'FT_TagFTGroupTaggedComponent'{
+ version = #'GIOP_Version'{major = 1, minor = 0},
+ ft_domain_id = FTDomain,
+ object_group_id = GroupID,
+ object_group_ref_version = GroupVer}},
+ iop_ior:add_component(Obj, TC);
+add_FTGroup_component(_Obj, FTDomain, GroupID, GroupVer) ->
+ orber:dbg("[~p] corba:add_FTGroup_component(~p, ~p, ~p);~n"
+ "Incorrect argument(s).",
+ [?LINE, FTDomain, GroupID, GroupVer], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO}).
+
+
+%%----------------------------------------------------------------------
+%% Function : add_FTPrimary_component
+%% Arguments : Local object (tuple or IOR).
+%% Returns : A local IOR with one TAG_FT_PRIMARY component.
+%% Description:
+%%----------------------------------------------------------------------
+add_FTPrimary_component(Obj) ->
+ TC = #'IOP_TaggedComponent'{
+ tag=?TAG_FT_PRIMARY,
+ component_data=#'FT_TagFTPrimaryTaggedComponent'{primary = true}},
+ iop_ior:add_component(Obj, TC).
+
+
+%%-----------------------------------------------------------------
+%% Generic functions for accessing the call-back modules (i.e. X_impl.erl).
+%% These functions are invoked by the generated stubs.
+%%-----------------------------------------------------------------
+handle_init(M, {Flags, Env}) ->
+ case M:init(Env) of
+ {ok, State} ->
+ {ok, {#is{flags = Flags}, State}};
+ {ok,State,Timeout} ->
+ {ok, {#is{flags = Flags}, State}, Timeout};
+ Other ->
+ %% E.g. ignore | {stop, Reason}
+ Other
+ end.
+
+
+handle_terminate(M, Reason, {_InternalState, State}) ->
+ catch (M:terminate(Reason, State)).
+
+handle_info(M, Info, {InternalState, State}) ->
+ case catch M:handle_info(Info, State) of
+ {noreply,NewState} ->
+ {noreply, {InternalState, NewState}};
+ {noreply, NewState, Timeout} ->
+ {noreply, {InternalState, NewState}, Timeout};
+ {stop, Reason, NewState} ->
+ {stop, Reason, {InternalState, NewState}};
+ {'EXIT', Why} ->
+ handle_exit(InternalState, State, Why, true,
+ {M, handle_info}, [Info, State])
+ end.
+
+handle_code_change(M, OldVsn, {InternalState, State}, Extra) ->
+ {ok, NewState} = M:code_change(OldVsn, State, Extra),
+ {ok, {InternalState, NewState}}.
+
+
+%% This function handles call Pre- & Post-conditions.
+handle_call(M, F, A, {InternalState, State}, Ctx, This, From,
+ PreData, PostData, Stub) ->
+ CArgs = call_state(A, State, This, From),
+ case catch invoke_precond(PreData, Stub, F, CArgs) of
+ {'EXIT', Why} ->
+ handle_exit(InternalState, State, Why, false, PreData, [Stub, F, CArgs]);
+ {'EXCEPTION', E} ->
+ {reply, {'EXCEPTION', E}, {InternalState, State}};
+ ok ->
+ Result = handle_call2(M, F, CArgs, InternalState, State, Ctx),
+ case catch invoke_postcond(PostData, Stub, F, CArgs, Result) of
+ {'EXIT', Why} ->
+ handle_exit(InternalState, State, Why, false, PostData, A);
+ {'EXCEPTION', E} ->
+ {reply, {'EXCEPTION', E}, {InternalState, State}};
+ ok ->
+ Result
+ end
+ end.
+
+
+invoke_precond(false, _, _, _) ->
+ ok;
+invoke_precond({CondM, CondF}, Stub, F, CArgs) ->
+ CondM:CondF(Stub, F, CArgs).
+
+%% We must remove the Internal State before invoking post-cond.
+invoke_postcond(false, _, _, _, _) ->
+ ok;
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, {reply, Reply, {_, NS}}) ->
+ CondM:CondF(Stub, F, CArgs, {reply, Reply, NS});
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, {reply, Reply, {_, NS}, Timeout}) ->
+ CondM:CondF(Stub, F, CArgs, {reply, Reply, NS, Timeout});
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, {stop, Reason, Reply, {_, NS}}) ->
+ CondM:CondF(Stub, F, CArgs, {stop, Reason, Reply, NS});
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, {stop, Reason, {_, NS}}) ->
+ CondM:CondF(Stub, F, CArgs, {stop, Reason, NS});
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, {noreply,{_, NS}}) ->
+ CondM:CondF(Stub, F, CArgs, {noreply,NS});
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, {noreply,{_, NS}, Timeout}) ->
+ CondM:CondF(Stub, F, CArgs, {noreply, NS, Timeout});
+invoke_postcond({CondM, CondF}, Stub, F, CArgs, Result) ->
+ CondM:CondF(Stub, F, CArgs, Result).
+
+
+handle_call(M, F, A, {InternalState, State}, Ctx, This, From) ->
+ handle_call2(M, F, call_state(A, State, This, From), InternalState, State, Ctx).
+
+handle_call2(M, F, A, InternalState, State, []) ->
+ case catch apply(M, F, A) of
+ {reply, Reply, NewState} ->
+ {reply, add_context(Reply), {InternalState, NewState}};
+ {reply, Reply, NewState, Timeout} ->
+ {reply, add_context(Reply), {InternalState, NewState}, Timeout};
+ {stop, Reason, Reply, NewState} ->
+ {stop, Reason, add_context(Reply), {InternalState, NewState}};
+ {stop, Reason, NewState} ->
+ {stop, Reason, {InternalState, NewState}};
+ {noreply,NewState} ->
+ {noreply,{InternalState, NewState}};
+ {noreply,NewState,Timeout} ->
+ {noreply,{InternalState, NewState},Timeout};
+ {'EXIT', Reason} ->
+ handle_exit(InternalState, State, Reason, false, {M, F}, A);
+ {'EXCEPTION', E} ->
+ {reply, add_context({'EXCEPTION', E}), {InternalState, State}};
+ {Reply, NewState} ->
+ {reply, add_context(Reply), {InternalState, NewState}}
+ end;
+handle_call2(M, F, A, InternalState, State, Ctx) ->
+ %% Set the new Context.
+ put(oe_server_in_context, Ctx),
+ case catch apply(M, F, A) of
+ {reply, Reply, NewState} ->
+ put(oe_server_in_context, undefined),
+ {reply, add_context(Reply), {InternalState, NewState}};
+ {reply, Reply, NewState, Timeout} ->
+ put(oe_server_in_context, undefined),
+ {reply, add_context(Reply), {InternalState, NewState}, Timeout};
+ {stop, Reason, Reply, NewState} ->
+ {stop, Reason, add_context(Reply), {InternalState, NewState}};
+ {stop, Reason, NewState} ->
+ {stop, Reason, {InternalState, NewState}};
+ {noreply,NewState} ->
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, NewState}};
+ {noreply, {InternalState, NewState}, Timeout} ->
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, NewState},Timeout};
+ {'EXIT', Reason} ->
+ handle_exit(InternalState, State, Reason, false, {M, F}, A);
+ {'EXCEPTION', E} ->
+ put(oe_server_in_context, undefined),
+ {reply, add_context({'EXCEPTION', E}), {InternalState, State}};
+ {Reply, NewState} ->
+ put(oe_server_in_context, undefined),
+ {reply, add_context(Reply), {InternalState, NewState}}
+ end.
+
+call_state(A, State, false, false) ->
+ [State|A];
+call_state(A, State, false, From) ->
+ [From, State|A];
+call_state(A, State, This, false) ->
+ [This, State|A];
+call_state(A, State, This, From) ->
+ [This, From, State|A].
+
+cast_state(A, State, false) ->
+ [State|A];
+cast_state(A, State, This) ->
+ [This, State|A].
+
+add_context(Reply) ->
+ %% Reset oe_server_out_context
+ case put(oe_server_out_context, undefined) of
+ undefined ->
+ Reply;
+ _OutCtx ->
+ %% The previous value wasn't 'undefined', which means that
+ %% the server supplied a return context.
+ Reply
+ end.
+
+
+%% This function handles call Pre- & Post-conditions.
+handle_cast(M, F, A, {InternalState, State}, Ctx, This, PreData, PostData, Stub) ->
+ CArgs = cast_state(A, State, This),
+ case catch invoke_precond(PreData, Stub, F, CArgs) of
+ {'EXIT', Why} ->
+ handle_exit(InternalState, State, Why, true, PreData, [Stub, F, CArgs]);
+ {'EXCEPTION', _} ->
+ {noreply, {InternalState, State}};
+ ok ->
+ Result = handle_cast2(M, F, CArgs, InternalState, State, Ctx),
+ case catch invoke_postcond(PostData, Stub, F, CArgs, Result) of
+ {'EXIT', Why} ->
+ handle_exit(InternalState, State, Why, true, PostData, A);
+ {'EXCEPTION', _} ->
+ {noreply, {InternalState, State}};
+ ok ->
+ Result
+ end
+ end.
+
+
+handle_cast(M, F, A, {InternalState, State}, Ctx, This) ->
+ handle_cast2(M, F, cast_state(A, State, This), InternalState, State, Ctx).
+
+handle_cast2(M, F, A, InternalState, State, []) ->
+ case catch apply(M, F, A) of
+ {noreply, NewState} ->
+ {noreply, {InternalState, NewState}};
+ {noreply, NewState, Timeout} ->
+ {noreply, {InternalState, NewState}, Timeout};
+ {stop, Reason, NewState} ->
+ {stop, Reason, {InternalState, NewState}};
+ {'EXCEPTION', _} ->
+ {noreply, {InternalState, State}};
+ {'EXIT', Reason} ->
+ handle_exit(InternalState, State, Reason, true, {M, F}, A);
+ NewState ->
+ {noreply, {InternalState, NewState}}
+ end;
+handle_cast2(M, F, A, InternalState, State, Ctx) ->
+ put(oe_server_in_context, Ctx),
+ case catch apply(M, F, A) of
+ {noreply, NewState} ->
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, NewState}};
+ {noreply, NewState, Timeout} ->
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, NewState}, Timeout};
+ {stop, Reason, NewState} ->
+ {stop, Reason, {InternalState, NewState}};
+ {'EXCEPTION', _} ->
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, State}};
+ {'EXIT', Reason} ->
+ handle_exit(InternalState, State, Reason, true, {M, F}, A);
+ NewState ->
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, NewState}}
+ end.
+
+handle_exit(InternalState, State, {undef, [{M, F, _}|_]} = Reason,
+ OnewayOp, {M, F}, A) ->
+ case catch check_exports(M:module_info(exports), F) of
+ {'EXIT',{undef,_}} ->
+ %% No such module.
+ orber:dbg("~p.beam doesn't exist.~n"
+ "Check IC compile options (e.g. 'impl') and that the~n"
+ "beam-file is load-able.",
+ [M], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_MAYBE});
+ "" ->
+ orber:dbg("~p:~p/~p doesn't exist.~n"
+ "Check spelling, export-attributes etc",
+ [M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 2),
+ completion_status=?COMPLETED_MAYBE});
+ Exports when is_list(Exports) ->
+ orber:dbg("~p:~p/~p doesn't exist.~n"
+ "~p:~p~s do exists.~nCheck export-attributes etc",
+ [M, F, length(A), M, F, Exports], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 3),
+ completion_status=?COMPLETED_MAYBE});
+ _ ->
+ %% Should never happen
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+handle_exit(InternalState, State, {undef, [{M2, F2, A2}|_]} = Reason,
+ OnewayOp, {M, F}, A) ->
+ case catch check_exports(M2:module_info(exports), F2) of
+ {'EXIT',{undef,_}} ->
+ %% No such module.
+ orber:dbg("~p.beam doesn't exist.~n"
+ "~p:~p/~p invoked an operation on the module above.~n"
+ "Check IC compile options and that the beam-file is load-able.",
+ [M2, M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 5),
+ completion_status=?COMPLETED_MAYBE});
+ "" ->
+ orber:dbg("~p:~p/~p doesn't exist.~n"
+ "~p:~p/~p invoked the operation above~n"
+ "Check spelling, export-attributes etc",
+ [M2, F2, length(A2), M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 6),
+ completion_status=?COMPLETED_MAYBE});
+ Exports when is_list(Exports) ->
+ orber:dbg("~p:~p/~p doesn't exist.~n"
+ "~p:~p~s do exist(s).~nCheck export-attributes etc~n"
+ "~p:~p/~p invoked the operation above~n",
+ [M2, F2, length(A2), M2, F2, Exports, M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_MAYBE});
+ _ ->
+ %% Should never happen
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+%% Misc errors. We separate between direct and in-direct errors. Due to different
+%% notation we must separate between different cases.
+handle_exit(InternalState, State, {{case_clause,_}, [{M, F, _}|_]} = Reason,
+ OnewayOp, {M, F}, A) ->
+ orber:dbg("~p:~p/~p contains a 'case_clause' error.",
+ [M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 8),
+ completion_status=?COMPLETED_MAYBE});
+handle_exit(InternalState, State, {Reason, [{M, F, _}|_]}, OnewayOp, {M, F}, A) ->
+ orber:dbg("~p:~p/~p contains a '~p' error.",
+ [M, F, length(A), Reason], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 8),
+ completion_status=?COMPLETED_MAYBE});
+handle_exit(InternalState, State, {function_clause, [{M2, F2, A2}|_]} = Reason,
+ OnewayOp, {M, F}, A) ->
+ orber:dbg("~p:~p/~p contains a 'function_clause' error.~n"
+ "Invoked via the operation:~n"
+ "~p:~p/~p",
+ [M2, F2, length(A2), M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 9),
+ completion_status=?COMPLETED_MAYBE});
+handle_exit(InternalState, State, {{case_clause,_}, [{M2, F2, A2}|_]} = Reason,
+ OnewayOp, {M, F}, A) ->
+ orber:dbg("~p:~p/~p contains a 'case_clause' error.~n"
+ "Invoked via the operation:~n"
+ "~p:~p/~p",
+ [M2, F2, A2, M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 9),
+ completion_status=?COMPLETED_MAYBE});
+handle_exit(InternalState, State, {Reason, [{M2, F2, A2}|_]} = Reason,
+ OnewayOp, {M, F}, A) ->
+ orber:dbg("~p:~p/~p contains a '~p' error.~n"
+ "Invoked via the operation:~n"
+ "~p:~p/~p",
+ [M2, F2, A2, Reason, M, F, length(A)], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 9),
+ completion_status=?COMPLETED_MAYBE});
+handle_exit(InternalState, State, Reason, OnewayOp, {M, F}, A) ->
+ orber:dbg("~p:~p(~p) ->~n"
+ " {EXIT, ~p}~n",
+ [M, F, A, Reason], ?DEBUG_LEVEL),
+ reply_after_exit(InternalState, State, Reason, OnewayOp,
+ #'OBJ_ADAPTER'{minor=(?ORBER_VMCID bor 10),
+ completion_status=?COMPLETED_MAYBE}).
+
+
+reply_after_exit(#is{flags = Flags} = InternalState, State,
+ Reason, OnewayOp, Exc) ->
+ case ?ORB_FLAG_TEST(Flags, ?ORB_SURVIVE_EXIT) of
+ false ->
+ exit(Reason);
+ true when OnewayOp == false ->
+ put(oe_server_in_context, undefined),
+ {reply, {'EXCEPTION', Exc}, {InternalState, State}};
+ true ->
+ %% One-way operation. Cannot return exception.
+ put(oe_server_in_context, undefined),
+ {noreply, {InternalState, State}}
+ end.
+
+
+check_exports(Exports, Op) ->
+ check_exports(Exports, Op, []).
+
+check_exports([], _, Acc) ->
+ Acc;
+check_exports([{Op, Arity}|Rest], Op, Acc) ->
+ check_exports(Rest, Op, Acc ++ "/" ++ integer_to_list(Arity));
+check_exports([_|Rest], Op, Acc) ->
+ check_exports(Rest, Op, Acc).
+
+
+%%-----------------------------------------------------------------
+%% Corba:call - the function for reqests
+%%-----------------------------------------------------------------
+call(Obj, Func, Args, TypesOrMod) ->
+ call_helper(Obj, Func, Args, TypesOrMod, infinity, []).
+
+call(Obj, Func, Args, TypesOrMod, [{context, Ctx}]) ->
+ call_helper(Obj, Func, Args, TypesOrMod, infinity, Ctx);
+call(Obj, Func, Args, TypesOrMod, [{timeout, Timeout}]) ->
+ call_helper(Obj, Func, Args, TypesOrMod, Timeout, []);
+call(Obj, Func, Args, TypesOrMod, Extra) when is_list(Extra) ->
+ ExtraData = extract_extra_data(Extra, #extra{}),
+ call_helper(Obj, Func, Args, TypesOrMod, ExtraData#extra.timeout,
+ ExtraData#extra.context);
+call(Obj, Func, Args, TypesOrMod, Timeout) ->
+ call_helper(Obj, Func, Args, TypesOrMod, Timeout, []).
+
+call_helper(Obj, Func, Args, TypesOrMod, Timeout, InCtx) ->
+ Ctx = get_implicit_context(InCtx),
+ case iop_ior:get_key(Obj) of
+ {'internal', Key, _, Flags, Mod} ->
+ Pid = orber_objectkeys:get_pid(Key),
+ call_internal(Pid, Obj, Func, Args, TypesOrMod,
+ ?ORB_FLAG_TEST(Flags, ?ORB_TYPECHECK),
+ ?ORB_FLAG_TEST(Flags, ?ORB_USE_PI), Mod, Timeout, Ctx);
+ {'internal_registered', Key, _, Flags, Mod} ->
+ call_internal(Key, Obj, Func, Args, TypesOrMod,
+ ?ORB_FLAG_TEST(Flags, ?ORB_TYPECHECK),
+ ?ORB_FLAG_TEST(Flags, ?ORB_USE_PI), Mod, Timeout, Ctx);
+ {'external', Key} when is_atom(TypesOrMod) ->
+ case catch TypesOrMod:oe_tc(Func) of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:call_helper(~p);~n"
+ "The call-back module does not exist or"
+ " incorrect IC-version used.~nReason: ~p",
+ [?LINE, TypesOrMod, What], ?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_NO});
+ undefined ->
+ raise(#'BAD_OPERATION'{minor = (?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ Types ->
+ orber_iiop:request(Key, Func, Args, Types, 'true', Timeout, Obj, Ctx)
+ end;
+ {'external', Key} ->
+ orber_iiop:request(Key, Func, Args, TypesOrMod, 'true', Timeout, Obj, Ctx)
+ end.
+
+get_implicit_context([]) ->
+ case get(oe_server_in_context) of
+ undefined ->
+ [];
+ ImplCtx ->
+ ImplCtx
+ end;
+get_implicit_context(Ctx) ->
+ case get(oe_server_in_context) of
+ undefined ->
+ Ctx;
+ ImplCtx ->
+ %% Both defined. An explicit interface context overrides
+ %% an implicit.
+ case check_for_interface_ctx(Ctx) of
+ false ->
+ ImplCtx;
+ true ->
+ remove_interface_ctx(ImplCtx, Ctx)
+ end
+ end.
+
+check_for_interface_ctx([]) ->
+ false;
+check_for_interface_ctx([#'IOP_ServiceContext'
+ {context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {interface, _I}}|_]) ->
+ true;
+check_for_interface_ctx([_|T]) ->
+ check_for_interface_ctx(T).
+
+remove_interface_ctx([], Acc) ->
+ Acc;
+remove_interface_ctx([#'IOP_ServiceContext'
+ {context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {interface, _I}}|T], Acc) ->
+ remove_interface_ctx(T, Acc);
+remove_interface_ctx([H|T], Acc) ->
+ remove_interface_ctx(T, [H|Acc]).
+
+
+extract_extra_data([], ED) ->
+ ED;
+extract_extra_data([{context, Ctx}|T], ED) ->
+ extract_extra_data(T, ED#extra{context = Ctx});
+extract_extra_data([{timeout, Timeout}|T], ED) ->
+ extract_extra_data(T, ED#extra{timeout = Timeout}).
+
+call_internal(Pid, Obj, Func, Args, Types, Check, PI, Mod, Timeout, Ctx)
+ when is_pid(Pid) andalso node(Pid) == node() ->
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ case catch gen_server:call(Pid, {Obj, Ctx, Func, Args}, Timeout) of
+ {'EXCEPTION', E} ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', E}),
+ typecheck_reply(Check, {'EXCEPTION', E}, Mod, Func),
+ raise(E);
+ {'EXIT',{timeout, _}} ->
+ Exc = #'TIMEOUT'{completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ {'EXIT',R} ->
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p);~ncall exit(~p).",
+ [?LINE, Func, Args, Types, R], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ Res ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, Res),
+ typecheck_reply(Check, Res, Types, Func),
+ Res
+ end;
+call_internal(Pid, Obj, Func, Args, Types, Check, PI,
+ _Mod, Timeout, Ctx) when is_pid(Pid) ->
+ typecheck_request(Check, Args, Types, Func),
+ case catch rpc:call(node(Pid), corba, call_relay,
+ [Pid, {Obj, Ctx, Func, Args}, Timeout]) of
+ {'EXCEPTION', E} ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', E}),
+ typecheck_reply(Check, {'EXCEPTION', E}, Types, Func),
+ raise(E);
+ {badrpc, {'EXIT',R}} ->
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p);~ncall exit(~p).",
+ [?LINE, Func, Args, Types, R], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 3),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ {badrpc,nodedown} ->
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p);~nNode ~p down.",
+ [?LINE, Func, Args, Types, node(Pid)], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 2),
+ completion_status=?COMPLETED_NO},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ {badrpc, Reason} ->
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p);~n"
+ "Unable to invoke operation due to: ~p",
+ [?LINE, Func, Args, Types, Reason], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 5),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ Res ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, Res),
+ typecheck_reply(Check, Res, Types, Func),
+ Res
+ end;
+
+%% This case handles if the reference is created as a Pseudo object.
+%% Just call apply/3.
+call_internal({pseudo, Module}, Obj, Func, Args, Types, Check, PI,
+ _Mod, _Timeout, Ctx) ->
+ OldCtx = put(oe_server_in_context, Ctx),
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ State = binary_to_term(get_subobject_key(Obj)),
+ case catch apply(Module, Func, [Obj, State|Args]) of
+ {noreply, _} ->
+ put(oe_server_in_context, OldCtx),
+ ok;
+ {noreply, _, _} ->
+ put(oe_server_in_context, OldCtx),
+ ok;
+ {reply, Reply, _} ->
+ put(oe_server_in_context, OldCtx),
+ invoke_pi_reply(PI, Obj, Ctx, Func, Reply),
+ typecheck_reply(Check, Reply, Types, Func),
+ Reply;
+ {reply, Reply, _, _} ->
+ put(oe_server_in_context, OldCtx),
+ invoke_pi_reply(PI, Obj, Ctx, Func, Reply),
+ typecheck_reply(Check, Reply, Types, Func),
+ Reply;
+ {stop, _, Reply, _} ->
+ put(oe_server_in_context, OldCtx),
+ invoke_pi_reply(PI, Obj, Ctx, Func, Reply),
+ typecheck_reply(Check, Reply, Types, Func),
+ Reply;
+ {stop, _, _} ->
+ put(oe_server_in_context, OldCtx),
+ ok;
+ {'EXCEPTION', E} ->
+ put(oe_server_in_context, OldCtx),
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', E}),
+ typecheck_reply(Check, {'EXCEPTION', E}, Types, Func),
+ raise(E);
+ {'EXIT', What} ->
+ put(oe_server_in_context, OldCtx),
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p);~n"
+ "Pseudo object exit(~p).",
+ [?LINE, Func, Args, Types, What], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ Unknown ->
+ put(oe_server_in_context, OldCtx),
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p);~n"
+ "Pseudo object failed due to bad return value (~p).",
+ [?LINE, Func, Args, Types, Unknown], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 6),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc)
+ end;
+call_internal({passive, Module}, Obj, Func, Args, Types, Check, PI,
+ Mod, Timeout, Ctx) ->
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ GroupID = binary_to_term(get_subobject_key(Obj)),
+ Transaction =
+ fun() ->
+ ObjectGroup = read_object_group(GroupID),
+ call_primary_protected(ObjectGroup, Module, Obj,
+ Func, Args, GroupID,
+ get_FTRequestCtx(Ctx))
+ end,
+ case mnesia:transaction(Transaction) of
+ {atomic, Reply} ->
+ %% this check should be inside transaction so that
+ %% failing typecheck_reply would result in transaction
+ %% abortion. Or not. call_internal(Registered...) does not
+ %% cancel the state transition even if the result isn't type compliant.
+ %% So, we do likewise.
+ typecheck_reply(Check, Reply, Mod, Func),
+ Reply;
+ {aborted, {not_primary, Primary, _}} ->
+ FTRequestCtx = mk_FTRequestCtx(10000000),
+ case rpc:call(Primary, corba, call_internal,
+ [{passive, Module}, Obj, Func, Args,
+ Types, Check, PI, Mod, Timeout,
+ [FTRequestCtx|Ctx]]) of
+ {badrpc, Reason} ->
+ orber:dbg("[~p] corba:call_passive(~p, ~p, ~p); ~n"
+ " badrpc(~p).",
+ [?LINE, Func, Args, Types, Reason],?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=0,
+ completion_status=?COMPLETED_MAYBE});
+ %% one should keep trying request_duration_policy_value -time.
+ {'EXCEPTION', E} ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', E}),
+ raise(E);
+ Reply ->
+ %% is this typecheck_reply neccessary? The check is made
+ %% on the remote node...
+ invoke_pi_reply(PI, Obj, Ctx, Func, Reply),
+ typecheck_reply(Check, Reply, Mod, Func),
+ Reply
+ %% generate RetentionID's and call Primary node with flag that tells
+ %% the node not to escalate rpc call's to next node if the primary
+ %% has changed again.
+ %% raise({not_primary, Primary});
+ end;
+ {aborted, {throw, {'EXCEPTION', E}}} ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', E}),
+ typecheck_reply(Check, {'EXCEPTION', E}, Mod, Func),
+ raise(E);
+ {aborted, {'EXIT', What}} ->
+ orber:dbg("[~p] corba:call_passive(~p, ~p, ~p); " ++
+ "Passive object exit(~p).",
+ [?LINE, Func, Args, Types, What], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ {aborted, Unknown} ->
+ orber:dbg("[~p] corba:call_passive(~p, ~p, ~p); " ++
+ "Passive object failed due to bad return value (~p).",
+ [?LINE, Func, Args, Types, Unknown], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 6),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc)
+ end;
+call_internal(Registered, Obj, Func, Args, Types, Check, PI,
+ _Mod, Timeout, Ctx) when is_atom(Registered)->
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ case whereis(Registered) of
+ undefined ->
+ Exc = #'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ P ->
+ case catch gen_server:call(P, {Obj, Ctx, Func, Args}, Timeout) of
+ {'EXCEPTION', E} ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', E}),
+ typecheck_reply(Check, {'EXCEPTION', E}, Types, Func),
+ raise(E);
+ {'EXIT',{timeout, _}} ->
+ Exc = #'TIMEOUT'{completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ {'EXIT',R} ->
+ orber:dbg("[~p] corba:call_internal(~p, ~p, ~p).~n"
+ "call exit(~p).",
+ [?LINE, Func, Args, Types, R], ?DEBUG_LEVEL),
+ Exc = #'TRANSIENT'{minor=(?ORBER_VMCID bor 5),
+ completion_status=?COMPLETED_MAYBE},
+ invoke_pi_reply(PI, Obj, Ctx, Func, {'EXCEPTION', Exc}),
+ raise(Exc);
+ Res ->
+ invoke_pi_reply(PI, Obj, Ctx, Func, Res),
+ typecheck_reply(Check, Res, Types, Func),
+ Res
+ end
+ end.
+
+invoke_pi_request(false, _Obj, _Ctx, _Func, _Args) ->
+ ok;
+invoke_pi_request(_, Obj, Ctx, Func, Args) ->
+ case orber:get_cached_interceptors() of
+ {native, PIs} ->
+ orber_pi:out_request(PIs, Obj, Ctx, Func, "localhost", Args);
+ _ ->
+ ok
+ end.
+
+invoke_pi_reply(false, _Obj, _Ctx, _Func, _Res) ->
+ ok;
+invoke_pi_reply(_, Obj, Ctx, Func, Res) ->
+ case orber:get_cached_interceptors() of
+ {native, PIs} ->
+ orber_pi:in_reply(PIs, Obj, Ctx, Func, "localhost", Res);
+ _ ->
+ ok
+ end.
+
+typecheck_request(false, _, _, _) ->
+ ok;
+typecheck_request(true, Args, Mod, Func) when is_atom(Mod) ->
+ case catch Mod:oe_tc(Func) of
+ undefined ->
+ raise(#'BAD_OPERATION'{minor = (?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:typecheck_request(~p, ~p, ~p);~n"
+ "The call-back module does not exist or incorrect"
+ "IC-version used.~nReason: ~p",
+ [?LINE, Mod, Func, Args, What], ?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_NO});
+ Types ->
+ typecheck_request_helper(Types, Args, Mod, Func)
+ end;
+typecheck_request(true, Args, Types, Func) ->
+ typecheck_request_helper(Types, Args, Types, Func).
+
+typecheck_request_helper(Types, Args, Mod, Func) ->
+ case catch cdr_encode:validate_request_body(
+ #giop_env{version = {1,2}, tc = Types, parameters = Args,
+ host = orber:host(), iiop_port = orber:iiop_port(),
+ iiop_ssl_port = orber:iiop_ssl_port(),
+ domain = orber:domain(),
+ partial_security = orber:partial_security(),
+ flags = orber:get_flags()}) of
+ {'EXCEPTION', E} ->
+ {_, TC, _} = Types,
+ error_logger:error_msg("========= Orber Typecheck Request =========~n"
+ "Invoked......: ~p:~p/~p~n"
+ "Typecode.....: ~p~n"
+ "Arguments....: ~p~n"
+ "Result.......: ~p~n"
+ "===========================================~n",
+ [Mod, Func, length(TC), TC, Args, {'EXCEPTION', E}]),
+ raise(E);
+ {'EXIT',R} ->
+ {_, TC, _} = Types,
+ error_logger:error_msg("========= Orber Typecheck Request =========~n"
+ "Invoked......: ~p:~p/~p~n"
+ "Typecode.....: ~p~n"
+ "Arguments....: ~p~n"
+ "Result.......: ~p~n"
+ "===========================================~n",
+ [Mod, Func, length(TC), TC, Args, {'EXIT',R}]),
+ raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ _ ->
+ ok
+ end.
+
+typecheck_reply(true, Args, Mod, Func) when is_atom(Mod) ->
+ case catch Mod:oe_tc(Func) of
+ undefined ->
+ raise(#'BAD_OPERATION'{minor = (?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:typecheck_reply(~p, ~p, ~p);~n"
+ "The call-back module does not exist or incorrect"
+ " IC-version used.~nReason: ~p",
+ [?LINE, Mod, Func, Args, What], ?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_NO});
+ Types ->
+ typecheck_reply_helper(Types, Args, Mod, Func)
+ end;
+typecheck_reply(true, Args, Types, Func) ->
+ typecheck_reply_helper(Types, Args, Types, Func);
+typecheck_reply(_, _, _, _) ->
+ ok.
+
+typecheck_reply_helper(Types, Args, Mod, Func) ->
+ case catch cdr_encode:validate_reply_body(
+ #giop_env{version = {1,2}, tc = Types,
+ host = orber:host(), iiop_port = orber:iiop_port(),
+ iiop_ssl_port = orber:iiop_ssl_port(),
+ domain = orber:domain(),
+ partial_security = orber:partial_security(),
+ flags = orber:get_flags()}, Args) of
+ {'tk_except', ExcType, ExcTC, {'EXCEPTION', E}} ->
+ {_, TC, _} = Types,
+ error_logger:error_msg("========== Orber Typecheck Reply ==========~n"
+ "Invoked........: ~p:~p/~p~n"
+ "Exception Type.: ~p~n"
+ "Typecode.......: ~p~n"
+ "Raised.........: ~p~n"
+ "Result.........: ~p~n"
+ "===========================================~n",
+ [Mod, Func, length(TC), ExcType, ExcTC, Args, {'EXCEPTION', E}]),
+ raise(E);
+ {'EXCEPTION', E} ->
+ {RetType, TC, OutParams} = Types,
+ error_logger:error_msg("========== Orber Typecheck Reply ==========~n"
+ "Invoked......: ~p:~p/~p~n"
+ "Typecode.....: ~p~n"
+ "Reply........: ~p~n"
+ "Result.......: ~p~n"
+ "===========================================~n",
+ [Mod, Func, length(TC), [RetType | OutParams], Args, {'EXCEPTION', E}]),
+ raise(E);
+ {'tk_except', ExcType, ExcTC, {'EXIT',R}} ->
+ {_, TC, _} = Types,
+ error_logger:error_msg("========== Orber Typecheck Reply ==========~n"
+ "Invoked........: ~p:~p/~p~n"
+ "Exception Type.: ~p~n"
+ "Typecode.......: ~p~n"
+ "Raised.........: ~p~n"
+ "Result.........: ~p~n"
+ "===========================================~n",
+ [Mod, Func, length(TC), ExcType, ExcTC, Args, {'EXIT',R}]),
+ raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ {'EXIT',R} ->
+ {RetType, TC, OutParams} = Types,
+ error_logger:error_msg("========== Orber Typecheck Reply ==========~n"
+ "Invoked........: ~p:~p/~p~n"
+ "Typecode.......: ~p~n"
+ "Reply..........: ~p~n"
+ "Result.........: ~p~n"
+ "===========================================~n",
+ [Mod, Func, length(TC), [RetType | OutParams], Args, {'EXIT',R}]),
+ raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ _ ->
+ ok
+ end.
+
+call_relay(Pid, Data, Timeout) ->
+ case whereis(orber_objkeyserver) of
+ undefined ->
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_MAYBE});
+ _ ->
+ case catch gen_server:call(Pid, Data, Timeout) of
+ {'EXCEPTION', E} ->
+ raise(E);
+ {'EXIT',{timeout, _}} ->
+ raise(#'TIMEOUT'{completion_status=?COMPLETED_MAYBE});
+ {'EXIT',R} ->
+ orber:dbg("[~p] corba:call_internal(~p);~n"
+ "call exit(~p).", [?LINE, Data, R], ?DEBUG_LEVEL),
+ exit(R);
+ Res ->
+ Res
+ end
+ end.
+
+%%-----------------------------------------------------------------
+%% Corba:cast - the function for ONEWAY requests
+%%-----------------------------------------------------------------
+cast(Obj, Func, Args, TypesOrMod) ->
+ cast_helper(Obj, Func, Args, TypesOrMod, []).
+
+cast(Obj, Func, Args, TypesOrMod, [{context, Ctx}]) ->
+ cast_helper(Obj, Func, Args, TypesOrMod, Ctx).
+
+cast_helper(Obj, Func, Args, TypesOrMod, InCtx) ->
+ Ctx = get_implicit_context(InCtx),
+ case iop_ior:get_key(Obj) of
+ {'internal', Key, _, Flags, Mod} ->
+ Pid = orber_objectkeys:get_pid(Key),
+ cast_internal(Pid, Obj, Func, Args, TypesOrMod,
+ ?ORB_FLAG_TEST(Flags, ?ORB_TYPECHECK),
+ ?ORB_FLAG_TEST(Flags, ?ORB_USE_PI), Mod, Ctx);
+ {'internal_registered', Key, _, Flags, Mod} ->
+ cast_internal(Key, Obj, Func, Args, TypesOrMod,
+ ?ORB_FLAG_TEST(Flags, ?ORB_TYPECHECK),
+ ?ORB_FLAG_TEST(Flags, ?ORB_USE_PI), Mod, Ctx);
+ {'external', Key} when is_atom(TypesOrMod) ->
+ case catch TypesOrMod:oe_tc(Func) of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:cast_helper(~p);~n"
+ "The call-back module does not exist or incorrect"
+ " IC-version used.~nReason: ~p",
+ [?LINE, TypesOrMod, What], ?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_NO});
+ undefined ->
+ raise(#'BAD_OPERATION'{minor = (?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ Types ->
+ orber_iiop:request(Key, Func, Args, Types, 'false', infinity,
+ Obj, Ctx)
+ end;
+ {'external', Key} ->
+ orber_iiop:request(Key, Func, Args, TypesOrMod, 'false', infinity,
+ Obj, Ctx)
+ end.
+
+cast_internal(Pid, Obj, Func, Args, Types, Check, PI, _Mod, Ctx)
+ when is_pid(Pid) andalso node(Pid) == node() ->
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ catch gen_server:cast(Pid, {Obj, Ctx, Func, Args}),
+ ok;
+cast_internal(Pid, Obj, Func, Args, Types, Check, PI, Mod, Ctx) when is_pid(Pid) ->
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ case catch rpc:call(node(Pid), corba, cast_relay, [Pid, {Obj, Ctx, Func, Args}]) of
+ {'EXCEPTION', E} ->
+ typecheck_reply(Check, {'EXCEPTION', E}, Mod, Func),
+ raise(E);
+ {badrpc, {'EXIT', _R}} ->
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 3),
+ completion_status=?COMPLETED_MAYBE});
+ {badrpc,nodedown} ->
+ orber:dbg("[~p] corba:cast_internal(~p, ~p, ~p);~nNode ~p down.",
+ [?LINE, Func, Args, Types, node(Pid)], ?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 2),
+ completion_status=?COMPLETED_NO});
+ Other ->
+ orber:dbg("[~p] corba:cast_internal(~p, ~p, ~p);~n"
+ "Communication with node: ~p failed with reason: ~p.",
+ [?LINE, Func, Args, Types, node(Pid), Other], ?DEBUG_LEVEL),
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 5),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+
+%% This case handles if the reference is created as a Pseudo object.
+%% Just call apply/3.
+cast_internal({pseudo, Module}, Obj, Func, Args, Types, Check, PI, _Mod, Ctx) ->
+ OldCtx = put(oe_server_in_context, Ctx),
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ State = binary_to_term(get_subobject_key(Obj)),
+ catch apply(Module, Func, [Obj, State|Args]),
+ put(oe_server_in_context, OldCtx),
+ ok;
+cast_internal(Registered, Obj, Func, Args, Types, Check, PI, _Mod, Ctx) ->
+ invoke_pi_request(PI, Obj, Ctx, Func, Args),
+ typecheck_request(Check, Args, Types, Func),
+ case whereis(Registered) of
+ undefined ->
+ raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO});
+ P ->
+ gen_server:cast(P, {Obj, Ctx, Func, Args})
+ end.
+
+cast_relay(Pid, Data) ->
+ case whereis(orber_objkeyserver) of
+ undefined ->
+ raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_NO});
+ _ ->
+ gen_server:cast(Pid, Data)
+ end.
+
+%%-----------------------------------------------------------------
+%% Corba:locate - this function is for the moment just used for tests
+%%-----------------------------------------------------------------
+locate(Obj) ->
+ locate(Obj, infinity, []).
+
+locate(Obj, Timeout) ->
+ locate(Obj, Timeout, []).
+
+locate(Obj, Timeout, Ctx) ->
+ case iop_ior:get_key(Obj) of
+ {'external', Key} ->
+ orber_iiop:locate(Key, Timeout, Obj, Ctx);
+ _ ->
+ orber_objectkeys:check(iop_ior:get_objkey(Obj))
+ end.
+
+%%-----------------------------------------------------------------
+%% Incomming request from iiop
+%%-----------------------------------------------------------------
+%% Operations which do not allow object invokation.
+request_from_iiop(Obj, '_is_a', [Args], _, _, _) ->
+ catch corba_object:is_a(Obj, Args);
+%% First the OMG specified this operation to be '_not_existent' and then
+%% changed it to '_non_existent' without suggesting that both must be supported.
+%% See CORBA2.3.1 page 15-34, Minor revision 2.3.1: October 1999
+request_from_iiop(Obj, '_not_existent', _, _, _, _) ->
+ catch corba_object:non_existent(Obj);
+request_from_iiop(Obj, '_non_existent', _, _, _, _) ->
+ catch corba_object:non_existent(Obj);
+request_from_iiop(_, '_FT_HB', _, _, _, _) ->
+ ok;
+
+%% "Ordinary" operations.
+request_from_iiop({Mod, _, _, _, _, _}, oe_get_interface,
+ _, _, _, _ServiceCtx) when is_atom(Mod) ->
+ case catch Mod:oe_get_interface() of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:request_from_iiop(~p);~n"
+ "The call-back module does not exist or"
+ " incorrect IC-version used.~nReason: ~p",
+ [?LINE, Mod, What], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_NO}};
+ undefined ->
+ {'EXCEPTION', #'BAD_OPERATION'{minor = (?ORBER_VMCID bor 4),
+ completion_status='COMPLETED_NO'}};
+ Interface ->
+ Interface
+ end;
+request_from_iiop({_Mod, pseudo, Module, _UserDef, _OrberDef, _Flags} = ObjRef,
+ Func, Args, Types, ResponseExpected, _ServiceCtx) ->
+ State = binary_to_term(get_subobject_key(ObjRef)),
+ case ResponseExpected of
+ true ->
+ case catch apply(Module, Func, [ObjRef, State|Args]) of
+ {noreply, _} ->
+ ok;
+ {noreply, _, _} ->
+ ok;
+ {reply, Reply, _} ->
+ Reply;
+ {reply, Reply, _, _} ->
+ Reply;
+ {stop, _, Reply, _} ->
+ Reply;
+ {stop, _, _} ->
+ ok;
+ {'EXCEPTION', E} ->
+ {'EXCEPTION', E};
+ {'EXIT', {undef, _}} ->
+ orber:dbg("[~p] corba:request_from_iiop(~p, ~p, ~p);~n"
+ "The call-back module does not exist.",
+ [?LINE, Func, Args, Types], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO}};
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:request_from_iiop(~p, ~p, ~p);~n"
+ "Pseudo object exit(~p).~n"
+ "The call-back module probably contain an error.",
+ [?LINE, Func, Args, Types, What], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE}};
+ Unknown ->
+ orber:dbg("[~p] corba:request_from_iiop(~p, ~p, ~p);~n"
+ "Pseudo object failed(~p);~n"
+ "Confirm that the return value is correct"
+ " (e.g. {reply, Reply, State})",
+ [?LINE, Func, Args, Types, Unknown], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor=(?ORBER_VMCID bor 6),
+ completion_status=?COMPLETED_MAYBE}}
+ end;
+ false ->
+ catch apply(Module, Func, [ObjRef, State|Args]),
+ ok;
+ true_oneway ->
+ catch apply(Module, Func, [ObjRef, State|Args]),
+ ok
+ end;
+% FOR PASSIVE REPLICATION! (Response IS expected --- one way semantics doesn't
+% really mix with intentions to be consistent & fault tolerant.)
+request_from_iiop({_Mod, passive, Module, _UserDef, _OrberDef, _Flags} = ObjRef,
+ Func, Args, Types, true, Ctx) ->
+ GroupID = binary_to_term(get_subobject_key(ObjRef)),
+ FTGroupVersionCtx = get_FTGroupVersionCtx(Ctx),
+ Transaction =
+ fun() ->
+ ObjectGroup = read_object_group(GroupID),
+ check_version_context(ObjectGroup,
+ FTGroupVersionCtx),
+ call_primary_protected(ObjectGroup,
+ Module,
+ ObjRef,
+ Func,
+ Args,
+ GroupID,
+ get_FTRequestCtx(Ctx))
+ end,
+ case mnesia:transaction(Transaction) of
+ {atomic, Reply} ->
+ Reply;
+ {aborted, {too_old_reference, IOGR}} ->
+ {oe_location_forward_perm, IOGR};
+ {aborted, {not_primary, _Primary, IOGR}} ->
+ case FTGroupVersionCtx of
+ [] ->
+ {oe_location_forward_perm, IOGR};
+ _ ->
+ {'EXCEPTION', #'TRANSIENT'{minor = 0,
+ completion_status = ?COMPLETED_NO}}
+ end;
+ {aborted, {throw, {'EXCEPTION', E}}} ->
+ {'EXCEPTION', E};
+ {aborted, {'EXIT', What}} ->
+ orber:dbg("[~p] corba:call_passive(~p, ~p, ~p);~n"
+ "Passive object exit(~p).",
+ [?LINE, Func, Args, Types, What], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor = 0,
+ completion_status=?COMPLETED_MAYBE}};
+ {aborted, Unknown} ->
+ orber:dbg("[~p] corba:call_passive(~p, ~p, ~p);~n"
+ "Passive object failed due to bad return value (~p).",
+ [?LINE, Func, Args, Types, Unknown], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor = 0,
+ completion_status=?COMPLETED_MAYBE}}
+ end;
+request_from_iiop({_Mod, _Type, Key, _UserDef, _OrberDef, _Flags} = ObjRef,
+ Func, Args, Types, true, _ServiceCtx) ->
+ case catch gen_server:call(convert_key_to_pid(Key),
+ {ObjRef, [], Func, Args}, infinity) of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:request_from_iiop(~p, ~p, ~p);~n"
+ "gen_server:call exit: ~p",
+ [?LINE, Func, Args, Types, What], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE}};
+ Result ->
+ Result
+ end;
+request_from_iiop({_Mod, _Type, Key, _UserDef, _OrberDef, _Flags} = ObjRef,
+ Func, Args, Types, _, _ServiceCtx) ->
+ case catch gen_server:cast(convert_key_to_pid(Key),
+ {ObjRef, [], Func, Args}) of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba:request_from_iiop(~p, ~p, ~p);~n"
+ "gen_server:cast exit: ~p",
+ [?LINE, Func, Args, Types, What], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'TRANSIENT'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_MAYBE}};
+ Result ->
+ Result
+ end.
+
+%%------------------------------------------------------------
+%% Internal stuff
+%%------------------------------------------------------------
+
+convert_key_to_pid(Key) when is_binary(Key) ->
+ orber_objectkeys:get_pid(Key);
+convert_key_to_pid(Name) when is_atom(Name) ->
+ Name.
+
+mk_objkey(Mod, Pid, RegName, Persistent) ->
+ mk_objkey(Mod, Pid, RegName, Persistent, 0).
+
+mk_objkey(Mod, Pid, [], _, Flags) when is_pid(Pid) ->
+ Key = make_objkey(),
+ case orber_objectkeys:register(Key, Pid, false) of
+ ok ->
+ {Mod, 'key', Key, term_to_binary(undefined), 0, Flags};
+ R ->
+ orber:dbg("[~p] corba:mk_objkey(~p);~n"
+ "unable to store key(~p).", [?LINE, Mod, R], ?DEBUG_LEVEL),
+ raise(#'INTERNAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO})
+ end;
+mk_objkey(Mod, Pid, {'global', RegName}, Persitent, Flags) when is_pid(Pid) ->
+ Key = term_to_binary(RegName),
+ case orber_objectkeys:register(Key, Pid, Persitent) of
+ ok ->
+ {Mod, 'key', Key, term_to_binary(undefined), 0, Flags};
+ R ->
+ orber:dbg("[~p] corba:mk_objkey(~p, ~p);~n"
+ "unable to store key(~p).",
+ [?LINE, Mod, RegName, R], ?DEBUG_LEVEL),
+ raise(#'INTERNAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO})
+ end;
+mk_objkey(Mod, Pid, {'local', RegName}, Persistent, Flags) when is_pid(Pid) andalso is_atom(RegName) ->
+ register(RegName, Pid),
+ Key = make_objkey(),
+ case orber_objectkeys:register(Key, Pid, Persistent) of
+ ok ->
+ {Mod, 'registered', RegName, term_to_binary(undefined), 0, Flags};
+ R ->
+ orber:dbg("[~p] corba:mk_objkey(~p, ~p);~n"
+ "unable to store key(~p).",
+ [?LINE, Mod, RegName, R], ?DEBUG_LEVEL),
+ raise(#'INTERNAL'{minor=(?ORBER_VMCID bor 2), completion_status=?COMPLETED_NO})
+ end.
+
+
+mk_light_objkey(Mod, RegName) ->
+ {Mod, 'registered', RegName, term_to_binary(undefined), 0, 0}.
+
+mk_pseudo_objkey(Mod, Module, Flags) ->
+ {Mod, 'pseudo', Module, term_to_binary(undefined), 0, Flags}.
+
+mk_passive_objkey(Mod, Module, Flags) ->
+ {Mod, 'passive', Module, term_to_binary(undefined), 0, Flags}.
+
+make_objkey() ->
+ term_to_binary({now(), node()}).
+
+objkey_to_string({_Mod, 'registered', 'orber_init', _UserDef, _OrberDef, _Flags}) ->
+ "INIT";
+objkey_to_string({Mod, Type, Key, UserDef, OrberDef, Flags}) ->
+ orber:domain() ++ [ 7 | binary_to_list(term_to_binary({Mod, Type, Key, UserDef, OrberDef, Flags}))];
+objkey_to_string(External_object_key) ->
+ External_object_key.
+
+string_to_objkey("INIT") ->
+ {orber_initial_references, 'registered', 'orber_init', term_to_binary(undefined), 0, 0};
+string_to_objkey(String) ->
+ case prefix(orber:domain(), String) of
+ [7 | Rest] ->
+ binary_to_term(list_to_binary(Rest));
+ _ ->
+ String
+ end.
+%% This function may only be used when we know it's a local reference (i.e. target
+%% key in a request; IOR's passed as argument or reply doesn't qualify)!
+string_to_objkey_local("INIT") ->
+ {orber_initial_references, 'registered', 'orber_init', term_to_binary(undefined), 0, 0};
+string_to_objkey_local(String) ->
+ case prefix(orber:domain(), String) of
+ [7 | Rest] ->
+ binary_to_term(list_to_binary(Rest));
+ _ ->
+ case resolve_initial_references(String) of
+ ?ORBER_NIL_OBJREF ->
+ orber:dbg("[~p] corba:string_to_objkey_local(~p);~n"
+ "Invalid ObjektKey.", [?LINE, String], ?DEBUG_LEVEL),
+ ?ORBER_NIL_OBJREF;
+ Object ->
+ {location_forward, Object}
+ end
+ end.
+
+prefix([], L2) ->
+ L2;
+prefix([E |L1], [E | L2]) ->
+ prefix(L1, L2);
+prefix(_, _) ->
+ false.
+
+
+evaluate_options([], Options) ->
+ GlobalFlags = orber:get_flags(),
+ Options2 = check_flag(Options, ?ORB_TYPECHECK,
+ ?ORB_ENV_LOCAL_TYPECHECKING, GlobalFlags),
+ Options3 = check_flag(Options2, ?ORB_USE_PI, ?ORB_ENV_USE_PI, GlobalFlags),
+ check_flag(Options3, ?ORB_SURVIVE_EXIT, ?ORB_ENV_SURVIVE_EXIT, GlobalFlags);
+%% Pseudo or not.
+evaluate_options([{pseudo, false}|Rest], Options) ->
+ evaluate_options(Rest, Options);
+evaluate_options([{pseudo, true}|Rest], #options{passive = false} = Options) ->
+ evaluate_options(Rest, Options#options{pseudo = true});
+%% FT stuff
+evaluate_options([{passive, true}|Rest], #options{pseudo = false} = Options) ->
+ evaluate_options(Rest, Options#options{passive = true});
+evaluate_options([{group_id, ID}|Rest], Options) when is_integer(ID) ->
+ evaluate_options(Rest, Options#options{group_id = ID});
+%% Options accepted by gen_server (e.g. dbg).
+evaluate_options([{create_options, COpt}|Rest], Options) when is_list(COpt) ->
+ evaluate_options(Rest, Options#options{create_options = COpt});
+%% When starting object as supervisor child.
+evaluate_options([{sup_child, false}|Rest], Options) ->
+ evaluate_options(Rest, Options);
+evaluate_options([{sup_child, true}|Rest], Options) ->
+ evaluate_options(Rest, Options#options{sup_child = true});
+%% Persistent object-key
+evaluate_options([{persistent, false}|Rest], Options) ->
+ evaluate_options(Rest, Options);
+evaluate_options([{persistent, true}|Rest], Options) ->
+ evaluate_options(Rest, Options#options{persistent = true});
+evaluate_options([{regname, []}|Rest], Options) ->
+ evaluate_options(Rest, Options);
+evaluate_options([{regname, Name}|Rest], Options) ->
+ evaluate_options(Rest, Options#options{regname = Name});
+evaluate_options([{survive_exit, false}|Rest],
+ #options{object_flags_set = FlagsSet} = Options) ->
+ %% This option overrides a global setting.
+ evaluate_options(Rest, Options#options{object_flags_set =
+ (?ORB_SURVIVE_EXIT bor FlagsSet)});
+evaluate_options([{survive_exit, true}|Rest],
+ #options{object_flags = Flags,
+ object_flags_set = FlagsSet} = Options) ->
+ evaluate_options(Rest, Options#options{object_flags =
+ (?ORB_SURVIVE_EXIT bor Flags),
+ object_flags_set =
+ (?ORB_SURVIVE_EXIT bor FlagsSet)});
+evaluate_options([{local_typecheck, false}|Rest],
+ #options{object_flags_set = FlagsSet} = Options) ->
+ %% This option overrides a global setting.
+ evaluate_options(Rest, Options#options{object_flags_set =
+ (?ORB_TYPECHECK bor FlagsSet)});
+evaluate_options([{local_typecheck, true}|Rest],
+ #options{object_flags = Flags,
+ object_flags_set = FlagsSet} = Options) ->
+ evaluate_options(Rest, Options#options{object_flags = (?ORB_TYPECHECK bor Flags),
+ object_flags_set =
+ (?ORB_TYPECHECK bor FlagsSet)});
+evaluate_options([{local_interceptors, false}|Rest],
+ #options{object_flags_set = FlagsSet} = Options) ->
+ %% This option overrides a global setting.
+ evaluate_options(Rest, Options#options{object_flags_set =
+ (?ORB_USE_PI bor FlagsSet)});
+evaluate_options([{local_interceptors, true}|Rest],
+ #options{object_flags = Flags,
+ object_flags_set = FlagsSet} = Options) ->
+ evaluate_options(Rest, Options#options{object_flags = (?ORB_USE_PI bor Flags),
+ object_flags_set =
+ (?ORB_USE_PI bor FlagsSet)});
+%% Temporary option.
+evaluate_options([{no_security, true}|Rest],
+ #options{object_flags = Flags} = Options) ->
+ %% We do not allow this option to be set globally.
+ evaluate_options(Rest, Options#options{object_flags = (?ORB_NO_SECURITY bor Flags)});
+evaluate_options([{no_security, false}|Rest], Options) ->
+ %% We do not allow this option to be set globally.
+ evaluate_options(Rest, Options);
+evaluate_options([{Key, Value}|_], _) ->
+ orber:dbg("[~p] corba:evaluate_options(~p, ~p);~n"
+ "Option not recognized, illegal value or combination.~n"
+ "Allowed settings:~n"
+ "survive_exit.......: boolean()~n"
+ "sup_child..........: boolean()~n"
+ "persistent.........: boolean()~n"
+ "pseudo.............: boolean()~n"
+ "local_typecheck....: boolean()~n"
+ "local_interceptors.: boolean()~n"
+ "regname............: {local, atom()} | {global, term()}",
+ [?LINE, Key, Value], ?DEBUG_LEVEL),
+ raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+check_flag(#options{object_flags = Flags,
+ object_flags_set = FlagsSet} = Options, Flag,
+ FlagConstant, GlobalFlags) ->
+ %% Option activated/deactived by a supplied option.
+ case ?ORB_FLAG_TEST(FlagsSet, Flag) of
+ true ->
+ Options;
+ false ->
+ %% Not the above. Globally defined?
+ case ?ORB_FLAG_TEST(GlobalFlags, FlagConstant) of
+ true ->
+ Options#options{object_flags = (Flag bor Flags)};
+ false ->
+ Options
+ end
+ end.
+
+%%%%%%%%%%%%%%%%% FOR PASSIVE REPLICATION!
+% Note should be called inside transaction. Does not catch exceptions.
+% let's not allow corba:reply from transaction... (no {noreply, ...} messages)
+% should the object be able to stop itself by returning {stop, ...}?
+% how about corba:dispose then? Deleting table representing object group and
+% corresponding entry in ft_replication_manager -table might just do the job?
+% No {stop, ...} messages for now
+% Exceptions falls through. They are expected to be caught by transaction in a
+% form of {aborted, {throw, {'EXCEPTION', ...}}}
+call_passive(Module, Obj, Func, Args, GroupID) ->
+ [Record] = mnesia:read(ft_replicated_object, GroupID, sticky_write),
+ State = Record#ft_replicated_object.state,
+
+ case apply(Module, Func, [Obj, State|Args]) of
+ {reply, Reply, NewState} ->
+ {Reply, NewState};
+ {reply, Reply, NewState, _} ->
+ {Reply, NewState}
+ end,
+ mnesia:write(ft_replicated_object,
+ #ft_replicated_object{group_id = GroupID, state = NewState},
+ sticky_write),
+ Reply.
+
+
+
+% FTRequestCtx protected object call
+% One should protect agains aged reply. If expirations_time is reached and
+% request is retransmitted, one might return BAD_CONTEXT -exception!
+call_RQprotected(Module, Obj, Func, Args, GroupID, RQCtx) ->
+ case mnesia:read(ft_reply_retention, RQCtx, sticky_write) of
+ % fresh request
+ [] ->
+ Reply = call_passive(Module, Obj, Func, Args, GroupID),
+ mnesia:write(ft_reply_retention,
+ #ft_reply_retention{retention_id= RQCtx,reply= Reply},
+ sticky_write),
+ Reply;
+ % retransmitted request
+ #ft_reply_retention{reply = Reply} ->
+ Reply
+ end.
+
+
+
+% call_primary_protected. Protects agains calling non-primary node.
+% normal case, without FTRequest Service Context
+call_primary_protected(#ft_replication_manager{primary = Primary},
+ Module,
+ Obj,
+ Func,
+ Args,
+ GroupID,
+ []) when Primary == node() ->
+ call_passive(Module, Obj, Func, Args, GroupID);
+% normal case, with FTRequest Service Context
+call_primary_protected(#ft_replication_manager{primary = Primary},
+ Module,
+ Obj,
+ Func,
+ Args,
+ GroupID,
+ RetentionID) when Primary == node() ->
+ call_RQprotected(Module, Obj, Func, Args, GroupID, RetentionID);
+% case where primary resides in another node
+call_primary_protected(#ft_replication_manager{primary = Primary,
+ iogr = IOGR},
+ _Module, _Obj, _Func, _Args, _GroupID, _) ->
+ mnesia:abort({not_primary, Primary, IOGR}).
+
+
+
+% no context
+check_version_context(_, []) ->
+ ok;
+% client's IOGR is current.
+check_version_context(#ft_replication_manager{ref_version = CurrentVer},
+ GroupVer) when CurrentVer == GroupVer ->
+ ok;
+% client's IOGR is old.
+check_version_context(#ft_replication_manager{ref_version = CurrentVer,
+ iogr = IOGR},
+ GroupVer) when CurrentVer > GroupVer ->
+ mnesia:abort({too_old_reference, IOGR});
+% client's IOGR is too new!
+check_version_context(#ft_replication_manager{ref_version = CurrentVer},
+ GroupVer) when CurrentVer < GroupVer ->
+ raise(#'INV_OBJREF'{completion_status = ?COMPLETED_NO}).
+
+
+
+read_object_group(GroupID) ->
+ case mnesia:read({ft_replication_manager, GroupID}) of
+ [] ->
+ raise(#'OBJECT_NOT_EXIST'{completion_status = ?COMPLETED_NO});
+ [ObjectGroup] ->
+ ObjectGroup
+ end.
+
+
+
+mk_FTRequestCtx(Expiration_time) ->
+ #'FT_FTRequestServiceContext'{
+ client_id = atom_to_list(node()),
+ retention_id = orber_request_number:get(),
+ expiration_time = Expiration_time}.
+
+
+
+get_FTRequestCtx([#'FT_FTRequestServiceContext'
+ {client_id = Client_ID, retention_id = Retention_ID,
+ expiration_time = Expiration_time}|_Ctxs]) ->
+ {Client_ID, Retention_ID, Expiration_time};
+get_FTRequestCtx([]) ->
+ [];
+get_FTRequestCtx([_Ctx|Ctxs]) ->
+ get_FTRequestCtx(Ctxs).
+
+
+
+get_FTGroupVersionCtx([#'FT_FTGroupVersionServiceContext'
+ {object_group_ref_version = Version}|_Ctxs]) ->
+ Version;
+get_FTGroupVersionCtx([]) ->
+ [];
+get_FTGroupVersionCtx([_Ctx|Ctxs]) ->
+ get_FTGroupVersionCtx(Ctxs).
+
diff --git a/lib/orber/src/corba_boa.erl b/lib/orber/src/corba_boa.erl
new file mode 100644
index 0000000000..52f2aa791c
--- /dev/null
+++ b/lib/orber/src/corba_boa.erl
@@ -0,0 +1,134 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: corba_boa.erl
+%%
+%% Description:
+%% This file contains the CORBA::BOA interface
+%%
+%%-----------------------------------------------------------------
+-module(corba_boa).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([%create/3,
+ dispose/1,
+ get_id/1]).
+% change_implementation/2,
+% set_exception/3,
+% impl_is_ready/1,
+% deactivate_impl/1,
+% obj_is_ready/2,
+% deactivate_obj/1,
+% get_principal/2]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+%create(Id, Interface, Implementation) ->
+% corba:create(Implementation#orb_ImplDef.module,
+% Interface#fullinterfacedescription.id).
+
+dispose(Object) ->
+ case binary_to_term(iop_ior:get_privfield(Object)) of
+ undefined ->
+ case catch iop_ior:get_key(Object) of
+ {'internal', Key, _, _, _} ->
+ case orber_objectkeys:get_pid(Key) of
+ {error, Reason} ->
+ orber:dbg("[~p] corba_boa:dispose(~p); object not found(~p)",
+ [?LINE, Object, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'TRANSIENT'{completion_status=?COMPLETED_NO});
+ Pid ->
+ gen_server:call(Pid, stop)
+ end;
+ {'internal_registered', Key, _, _, _} ->
+ case Key of
+ {pseudo, Module} ->
+ Module:terminate(normal, undefined),
+ ok;
+ _ ->
+ case whereis(Key) of
+ undefined ->
+ corba:raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO});
+ Pid ->
+ gen_server:call(Pid, stop)
+ end
+ end;
+ {'external', _} ->
+ orber:dbg("[~p] corba_boa:dispose(~p); external object.",
+ [?LINE, Object], ?DEBUG_LEVEL),
+ %% Must be fixed !!!!!!!!
+ corba:raise(#'NO_IMPLEMENT'{completion_status=?COMPLETED_NO})
+ end;
+ Other ->
+ case iop_ior:get_key(Object) of
+ {_, {pseudo, Module}, _, _, _} ->
+ Module:terminate(normal, Other),
+ ok;
+ Why ->
+ orber:dbg("[~p] corba_boa:dispose(~p); probably subobject key set(~p)",
+ [?LINE, Object, Why], ?DEBUG_LEVEL),
+ corba:raise(#'NO_PERMISSION'{completion_status=?COMPLETED_NO})
+ end
+ end.
+
+get_id(Object) ->
+ iop_ior:get_objkey(Object).
+
+%change_implementation(Object, ImplementationDef) ->
+% ok.
+
+%get_principal(Object, Env) ->
+% ok.
+
+%set_exception(Major, Id, Param) ->
+% ok.
+
+%impl_is_ready(ImplementationDef) ->
+% ok.
+
+%deactivate_impl(ImplementationDef) ->
+% ok.
+
+%obj_is_ready(Object, ImplementationDef) ->
+% ok.
+
+%deactivate_obj(Object) ->
+% ok.
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
diff --git a/lib/orber/src/corba_nvlist.erl b/lib/orber/src/corba_nvlist.erl
new file mode 100644
index 0000000000..d4bb8bff6a
--- /dev/null
+++ b/lib/orber/src/corba_nvlist.erl
@@ -0,0 +1,97 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1998-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: corba_nvlist.erl
+%% Description:
+%% This file contains the CORBA::NVList handling
+%%
+%%-----------------------------------------------------------------
+-module(corba_nvlist).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% Standard interface CORBA::NVList
+%%-----------------------------------------------------------------
+-export([add_item/6,
+ free/1,
+ free_memory/1,
+ get_count/1]).
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([create_list/1,
+ create_operation_list/1]).
+
+%%------------------------------------------------------------
+%% Implementation of standard interface CORBA::NVList
+%%------------------------------------------------------------
+add_item(List, Id, TC, Value, Len, ArgFlags) ->
+ {ok, List}.
+
+free(List) ->
+ ok.
+
+free_memory(List) ->
+ ok.
+
+get_count(List) ->
+ {ok, 0}.
+
+%%------------------------------------------------------------
+%% Implementation of extra functions which creates NVList:s
+%% theese ae used by the standard functions with the same name
+%% in the CORBA::ORB interface
+%%------------------------------------------------------------
+
+create_list(Count) ->
+ {ok, create_list_2(Count, [])}.
+
+create_list_2(0, Acc) ->
+ Acc;
+create_list_2(N, Acc) ->
+ create_list_2(N-1, [[] | Acc]).
+
+create_operation_list(OpDef) ->
+ OpArgList = OpDef,
+ {ok, create_operation_list_2(OpArgList, [])}.
+
+create_operation_list_2([], Acc) ->
+ Acc;
+create_operation_list_2([OpArg | OpArgList], Acc) ->
+ Rec = parse_oparg_def(OpArg),
+ create_operation_list_2(OpArgList, [Rec | Acc]).
+
+parse_oparg_def(OpArg) ->
+ OpArg.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/orber/src/corba_object.erl b/lib/orber/src/corba_object.erl
new file mode 100644
index 0000000000..49e388b25f
--- /dev/null
+++ b/lib/orber/src/corba_object.erl
@@ -0,0 +1,220 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: corba_object.erl
+%%
+%% Description:
+%% This file contains the CORBA::Object interface
+%%
+%%-----------------------------------------------------------------
+-module(corba_object).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/src/ifr_objects.hrl").
+
+%%-----------------------------------------------------------------
+%% Standard interface CORBA::Object
+%%-----------------------------------------------------------------
+-export([get_interface/1,
+ is_nil/1,
+ is_a/2,
+ is_a/3,
+ is_remote/1,
+ non_existent/1,
+ non_existent/2,
+ not_existent/1,
+ not_existent/2,
+ is_equivalent/2,
+ hash/2,
+ create_request/6]).
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+%%------------------------------------------------------------
+%% Implementation of standard interface
+%%------------------------------------------------------------
+get_interface(Obj) ->
+ case orber_env:light_ifr() of
+ false ->
+ TypeId = iop_ior:get_typeID(Obj),
+ case mnesia:dirty_index_read(ir_InterfaceDef, TypeId, #ir_InterfaceDef.id) of
+ %% If all we get is an empty list there are no such
+ %% object registered in the IFR.
+ [] ->
+ orber:dbg("[~p] corba_object:get_interface(~p); TypeID ~p not found in IFR.",
+ [?LINE, Obj, TypeId], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+ [#ir_InterfaceDef{ir_Internal_ID=Ref}] ->
+ orber_ifr_interfacedef:describe_interface({ir_InterfaceDef, Ref})
+ end;
+ true ->
+ case catch iop_ior:get_key(Obj) of
+ {'external', _Key} ->
+ orber:dbg("[~p] corba_object:get_interface(~p); Invalid object reference.",
+ [?LINE, Obj], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+ {_Local, _Key, _, _, Module} ->
+ case catch Module:oe_get_interface() of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba_object:get_interface(~p);~n"
+ "The call-back module does not exist or incorrect IC-version used.~n"
+ "Reason: ~p", [?LINE, Module, What], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+ InterfaceDesc ->
+ InterfaceDesc
+ end
+ end
+ end.
+
+
+is_nil(Object) when is_record(Object, 'IOP_IOR') ->
+ iop_ior:check_nil(Object);
+is_nil({I,T,K,P,O,F}) ->
+ iop_ior:check_nil({I,T,K,P,O,F});
+is_nil(Obj) ->
+ orber:dbg("[~p] corba_object:is_nil(~p); Invalid object reference.",
+ [?LINE, Obj], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+is_a(Obj, Logical_type_id) ->
+ is_a(Obj, Logical_type_id, []).
+
+is_a(?ORBER_NIL_OBJREF, _, _Ctx) ->
+ false;
+is_a(#'IOP_IOR'{type_id = Logical_type_id}, Logical_type_id, _Ctx) ->
+ true;
+is_a(Obj, Logical_type_id, Ctx) when is_list(Ctx) ->
+ case catch iop_ior:get_key(Obj) of
+ {'external', Key} ->
+ orber_iiop:request(Key, '_is_a', [Logical_type_id],
+ {orber_tc:boolean(),[orber_tc:string(0)],[]},
+ true, infinity, Obj, corba:get_implicit_context(Ctx));
+ {_Local, _Key, _, _, Module} ->
+ case catch Module:oe_is_a(Logical_type_id) of
+ {'EXIT', What} ->
+ orber:dbg("[~p] corba_object:is_a(~p);~n"
+ "The call-back module does not exist or incorrect IC-version used.~n"
+ "Reason: ~p", [?LINE, Module, What], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+ Boolean ->
+ Boolean
+ end;
+ _ ->
+ orber:dbg("[~p] corba_object:is_a(~p, ~p); Invalid object reference.",
+ [?LINE, Obj, Logical_type_id], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end;
+is_a(Obj, Logical_type_id, Ctx) ->
+ orber:dbg("[~p] corba_object:is_a(~p, ~p, ~p);~n"
+ "Failed to supply a context list.",
+ [?LINE, Obj, Logical_type_id, Ctx], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+non_existent(Obj) ->
+ non_existent(Obj, []).
+
+non_existent(?ORBER_NIL_OBJREF, _Ctx) ->
+ true;
+non_existent(Obj, Ctx) ->
+ existent_helper(Obj, '_non_existent', Ctx).
+
+not_existent(Obj) ->
+ not_existent(Obj, []).
+
+not_existent(?ORBER_NIL_OBJREF, _Ctx) ->
+ true;
+not_existent(Obj, Ctx) ->
+ existent_helper(Obj, '_not_existent', Ctx).
+
+
+existent_helper(Obj, Op, Ctx) when is_list(Ctx) ->
+ case catch iop_ior:get_key(Obj) of
+ {'internal', Key, _, _, _} ->
+ case catch orber_objectkeys:get_pid(Key) of
+ {'EXCEPTION', E} when is_record(E,'OBJECT_NOT_EXIST') ->
+ true;
+ {'EXCEPTION', X} ->
+ corba:raise(X);
+ {'EXIT', R} ->
+ orber:dbg("[~p] corba_object:non_existent(~p); exit(~p).",
+ [?LINE, Obj, R], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO});
+ _ ->
+ false
+ end;
+ {'internal_registered', Key, _, _, _} ->
+ case Key of
+ {pseudo, _} ->
+ false;
+ _->
+ case whereis(Key) of
+ undefined ->
+ true;
+ _P ->
+ false
+ end
+ end;
+ {'external', Key} ->
+ orber_iiop:request(Key, Op, [],
+ {orber_tc:boolean(), [],[]}, 'true',
+ infinity, Obj, corba:get_implicit_context(Ctx));
+ true ->
+ false
+ end;
+existent_helper(Obj, Op, Ctx) ->
+ orber:dbg("[~p] corba_object:existent_helper(~p, ~p, ~p);~n"
+ "Failed to supply a context list.",
+ [?LINE, Obj, Op, Ctx], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+is_remote(Obj) ->
+ case catch iop_ior:get_key(Obj) of
+ {'external', _} ->
+ true;
+ _ ->
+ false
+ end.
+
+
+is_equivalent(Obj, Obj) ->
+ true;
+is_equivalent({I,T,K,P,_,_}, {I,T,K,P,_,_}) ->
+ true;
+is_equivalent(_, _) ->
+ false.
+
+hash(Obj, Maximum) ->
+ erlang:phash(iop_ior:get_key(Obj), Maximum).
+
+
+create_request(_Obj, _Ctx, _Op, _ArgList, NamedValueResult, _ReqFlags) ->
+ {ok, NamedValueResult, []}.
diff --git a/lib/orber/src/corba_request.erl b/lib/orber/src/corba_request.erl
new file mode 100644
index 0000000000..c4226739a9
--- /dev/null
+++ b/lib/orber/src/corba_request.erl
@@ -0,0 +1,384 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1998-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: corba_request.erl
+%% Description:
+%% This file contains an corba request server for Orber
+%%
+%%-----------------------------------------------------------------
+-module(corba_request).
+
+-behaviour(gen_server).
+
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/1, stop/0, stop_all/0, create/1,
+ create_schema/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, install/2, handle_call/3, handle_info/2]).
+-export([handle_cast/2, dump/0, get_key_from_pid/1]).
+
+%%-----------------------------------------------------------------
+%% Standard interface CORBA::Request
+%%-----------------------------------------------------------------
+-export([add_arg/6,
+ invoke/2,
+ delete/1,
+ send/2,
+ get_response/2]).
+
+%%-----------------------------------------------------------------
+%% Mnesia table definition
+%%-----------------------------------------------------------------
+-record('corba_request', {reqid, ctx, operation, arg_list, result, req_flags, pid}).
+
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(dirty_query_context, true).
+
+%% This macro returns a read fun suitable for evaluation in a transaction
+-define(read_function(ReqId),
+ fun() ->
+ mnesia:dirty_read(ReqId)
+ end).
+
+%% This macro returns a write fun suitable for evaluation in a transaction
+-define(write_function(R),
+ fun() ->
+ mnesia:dirty_write(R)
+ end).
+
+%% This macro returns a write fun suitable for evaluation in a transaction
+-define(update(R),
+ fun() ->
+ mnesia:dirty_write(R)
+ end).
+
+%% This macro returns a delete fun suitable for evaluation in a transaction
+-define(delete_function(R),
+ fun() ->
+ mnesia:delete(R)
+ end).
+
+-ifdef(dirty_query_context).
+-define(query_check(Q_res), Q_res).
+-else.
+-define(query_check(Q_res), {atomic, Q_res}).
+-endif.
+
+
+-define(CHECK_EXCEPTION(Res), case Res of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ R ->
+ R
+ end).
+
+%%-----------------------------------------------------------------
+%% Debugging function
+%%-----------------------------------------------------------------
+dump() ->
+ case catch mnesia:dirty_first('orber_request') of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ Key ->
+ dump_print(Key),
+ dump_loop(Key)
+ end.
+
+dump_loop(PreviousKey) ->
+ case catch mnesia:dirty_next('orber_request', PreviousKey) of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ '$end_of_table' ->
+ ok;
+ Key ->
+ dump_print(Key),
+ dump_loop(Key)
+ end.
+
+dump_print(Key) ->
+ case catch mnesia:dirty_read({'orber_request', Key}) of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ [X] ->
+ io:format("Req Id: ~p, op: ~p\n",[binary_to_term(X#orber_request.object_key),
+ X#orber_request.pid]);
+ _ ->
+ ok
+ end.
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start(Opts) ->
+ gen_server:start_link({local, orber_requestserver}, orber_request, Opts, []).
+
+stop() ->
+ gen_server:call(orber_requestserver, stop, infinity).
+
+
+stop_all() ->
+ Fun = fun() ->
+ mnesia:match_object({orber_request, '_', '_', '_', '_', '_', '_', '_'})
+ end,
+ case catch mnesia:transaction(Fun) of
+ {atomic, Objects} ->
+ lists:foreach(fun({orber_request, _, _, _, _, _, _, _ }) ->
+ ok %gen_server:call(Pid, stop, infinity)
+ end,
+ Objects);
+ R ->
+ R
+ end.
+
+create() ->
+ ?CHECK_EXCEPTION(gen_server:call(orber_requestserver,
+ create, infinity)).
+
+create(Ctx, OP, Args, Flags) ->
+ ?CHECK_EXCEPTION(gen_server:call(orber_requestserver,
+ {create, Ctx, OP, Args, Flags}, infinity)).
+
+delete(ReqId) ->
+ ?CHECK_EXCEPTION(gen_server:call(orber_requestserver,
+ {delete, ReqId}, infinity)).
+
+%%------------------------------------------------------------
+%% Implementation of standard interface
+%%------------------------------------------------------------
+add_arg(ReqId, ArgumentName, TC, Value, Len, ArgFlags) ->
+ Request = ets:lookup_element(orber_request, ReqId),
+ case Request of
+ [] ->
+ ok;
+ R ->
+ Args = Request#orber_request.arg_list,
+ NewArgs = lists:append(Args, []),
+ ets:insert(orber_request, NewArgs),
+ ok
+ end.
+
+invoke(ReqId, InvokeFlags) ->
+ ok.
+
+
+
+send(ReqId, InvokeFlags) ->
+ ok.
+
+get_response(ReqId, ResponseFlags) ->
+ [{_, Val}] = ets:lookup_element(orber_request, ReqId),
+ Val#'orber_request'.result.
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+init(Env) ->
+ case mnesia:wait_for_tables(['orber_request'], infinity) of
+ ok ->
+ process_flag(trap_exit, true),
+ {ok, []};
+ StopReason ->
+ {stop, StopReason}
+ end.
+
+terminate(From, Reason) ->
+ ok.
+
+
+
+install(Timeout, Options) ->
+ %% check if there already exists a database. If not, create one.
+ %% DB_initialized = perhaps_create_schema(Nodelist),
+ %% check if mnesia is running. If not, start mnesia.
+ DB_started = perhaps_start_mnesia(),
+
+ %% Do we have a complete set of IFR tables? If not, create them.
+ AllTabs = mnesia:system_info(tables),
+
+ DB_Result = case lists:member(orber_request, AllTabs) of
+ true ->
+ case lists:member({local_content, true},
+ Options) of
+ true->
+ mnesia:add_table_copy(orber_request,
+ node(),
+ ram_copies);
+ _ ->
+ mnesia:create_table(orber_request,
+ [{attributes,
+ record_info(fields,
+ orber_objkeys)}
+ |Options])
+ end;
+ _ ->
+ mnesia:create_table(orber_request,
+ [{attributes,
+ record_info(fields,
+ orber_objkeys)}
+ |Options])
+ end,
+
+ Wait = mnesia:wait_for_tables([orber_request], Timeout),
+ %% Check if any error has occured yet. If there are errors, return them.
+ if
+ DB_Result == {atomic, ok},
+ Wait == ok ->
+ ok;
+ true ->
+ {error, {DB_Result, Wait}}
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%
+%% Comment:
+%% In objectkey gen_server all exceptions are tupples and corba:raise
+%% may not be used. It is too time consuming to add catches in every
+%% function before returning. On the client side there is a case which
+%% maps every tupple on the format {'exception', E} to corba:raise(E).
+%%-----------------------------------------------------------------
+handle_call(stop, From, State) ->
+ {stop, normal, [], State};
+handle_call(create, From, State) ->
+ ReqId = term_to_binary({node(), now()}),
+ _F = ?write_function(#'corba_request'{reqid=ReqId}),
+ R = write_result(mnesia:transaction(_F)),
+
+ ReqId
+
+ ?query_check(Qres) = mnesia:dirty_read({orber_request, Objkey}),
+ case Qres of
+ [] ->
+ _F = ?write_function(#orber_requests{object_key=Objkey, pid=Pid}),
+ R = write_result(mnesia:transaction(_F)),
+ if
+ R == ok, pid(Pid) ->
+ link(Pid);
+ true ->
+ true
+ end,
+ {reply, R, State};
+ X ->
+ {reply, {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}},
+ State}
+ end;
+handle_call({delete, ReqId}, From, State) ->
+ ?query_check(Qres) = mnesia:dirty_read({orber_request, ReqId}),
+ case Qres of
+ [] ->
+ true;
+ [X] when pid(X#orber_request.pid) ->
+ unlink(X#orber_request.pid);
+ _ ->
+ true
+ end,
+ _F = ?delete_function({orber_request, ReqId}),
+ R = write_result(mnesia:transaction(_F)),
+ {reply, R, State}.
+
+handle_info({'EXIT', Pid, Reason}, State) when pid(Pid) ->
+ _MF = fun() ->
+ mnesia:match_object({orber_request, '_', '_', '_', '_', '_', '_', Pid})
+ end,
+ ?query_check(Qres) = mnesia:ets(_MF),
+ case Qres of
+ [] ->
+ true;
+ X ->
+ remove_requests(X),
+ unlink(Pid);
+ _ ->
+ true
+ end,
+ {noreply, State}.
+
+%%-----------------------------------------------------------------
+%% Internal Functions
+%%-----------------------------------------------------------------
+get_reqids_from_pid(Pid) ->
+ case mnesia:dirty_match_object({orber_request, '_', '_', '_', '_', '_', '_', Pid}) of
+ Keys ->
+ [Keys]
+ _ ->
+ corba:raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO})
+ end.
+
+remove_requests([]) ->
+ ok;
+remove_requests([H|T]) ->
+ _F = ?delete_function({orber_request, H#orber_request.reqid}),
+ write_result(mnesia:transaction(_F)),
+ remove_requests(T).
+
+%%-----------------------------------------------------------------
+%% Check a read transaction
+query_result(?query_check(Qres)) ->
+ case Qres of
+ [Hres] ->
+ Hres#orber_request.pid;
+ [] ->
+ {'excpetion', #'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO}};
+ Other ->
+ {'excpetion', #'INTERNAL'{completion_status=?COMPLETED_NO}}
+ end.
+
+%%-----------------------------------------------------------------
+%% Check a write transaction
+write_result({atomic,ok}) -> ok;
+write_result(Foo) ->
+ {'excpetion', #'INTERNAL'{completion_status=?COMPLETED_NO}}.
+
+
+create_schema(Nodes) ->
+ case mnesia:system_info(use_dir) of
+ false ->
+ mnesia:create_schema(Nodes);
+ _ ->
+ ok
+ end.
+
+perhaps_start_mnesia() ->
+ case mnesia:system_info(is_running) of
+ no ->
+ mnesia:start();
+ _ ->
+ ok
+ end.
+
+
+%%------------------------------------------------------------
+%% Standard gen_server cast handle
+%%
+handle_cast(_, State) ->
+ {noreply, State}.
+
+
diff --git a/lib/orber/src/fixed.erl b/lib/orber/src/fixed.erl
new file mode 100644
index 0000000000..255c86c22a
--- /dev/null
+++ b/lib/orber/src/fixed.erl
@@ -0,0 +1,305 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%--------------------------------------------------------------------
+%% File : fixed.erl
+%% Purpose :
+%%--------------------------------------------------------------------
+
+-module(fixed).
+
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([create/3, add/2, subtract/2, divide/2, multiply/2, unary_minus/1,
+ get_typecode/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Definitions
+%%-----------------------------------------------------------------
+-define(get_max(__X, __Y), if __X > __Y -> __X; true -> __Y end).
+-define(get_min(__X, __Y), if __X > __Y -> __Y; true -> __X end).
+
+-define(BASE, 100000000000000000000000000000000).
+-define(FIXED_MAX, 9999999999999999999999999999999).
+-define(FIXED_MIN, -9999999999999999999999999999999).
+
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+create(Digits, Scale, Value) when is_integer(Digits) andalso Digits >= 0 andalso Digits < 32 andalso
+ is_integer(Scale) andalso Scale >= 0 andalso Digits >= Scale andalso
+ is_integer(Value) andalso Value =< ?FIXED_MAX andalso
+ Value >= ?FIXED_MIN ->
+ case count_digits(abs(Value)) of
+ Dig when Dig =< Digits ->
+ #fixed{digits = Digits, scale = Scale, value = Value};
+ Overflow ->
+ orber:dbg("[~p] fixed:create(~p, ~p, ~p).~n"
+ "The Value exceeds the Digits limit: ~p, ~p",
+ [?LINE, Digits, Scale, Value, Digits, Overflow], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO})
+ end;
+create(Digits, Scale, Value) ->
+ orber:dbg("[~p] fixed:add(~p, ~p, ~p).~n"
+ "At least one of the supplied arguments is incorrect.~n"
+ "Digits and Scale must be a positive integer with the following~n"
+ "limits:~n"
+ " * 0 =< Digits < 32~n"
+ " * Digits >= Scale~n"
+ " * Value range +/- 9999999999999999999999999999999",
+ [?LINE, Digits, Scale, Value], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+get_typecode(#fixed{digits = Digits, scale = Scale}) ->
+ {tk_fixed, Digits, Scale};
+get_typecode(Other) ->
+ orber:dbg("[~p] fixed:get_typecode(~p).
+The supplied argument is not a Fixed Type.", [?LINE, Other], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+add(#fixed{digits = D1, scale = S1, value = V1},
+ #fixed{digits = D2, scale = S2, value = V2}) ->
+ Scale = ?get_max(S1, S2),
+ Digits = ?get_max((D1-S1), (D2-S2)) + Scale +1,
+ %% We must normalize the values before adding. Why?
+ %% 4.23 and 5.2 are represented as 423 and 52. To be able to get the
+ %% correct result we must add 4230 and 5200 == 9430.
+ {PV1, PV2} = normalize(S1, V1, S2, V2),
+ check_fixed_overflow(#fixed{digits = Digits,
+ scale = Scale,
+ value = (PV1 + PV2)});
+add(F1, F2) ->
+ orber:dbg("[~p] fixed:add(~p, ~p).~n"
+ "At least one of the supplied arguments is not a Fixed Type.",
+ [?LINE, F1, F2], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+subtract(#fixed{digits = D1, scale = S1, value = V1},
+ #fixed{digits = D2, scale = S2, value = V2}) ->
+ Scale = ?get_max(S1, S2),
+ Digits = ?get_max((D1-S1), (D2-S2)) + Scale +1,
+ {PV1, PV2} = normalize(S1, V1, S2, V2),
+ check_fixed_overflow(#fixed{digits = Digits,
+ scale = Scale,
+ value = (PV1 - PV2)});
+subtract(F1, F2) ->
+ orber:dbg("[~p] fixed:subtract(~p, ~p).~n"
+ "At least one of the supplied arguments is not a Fixed Type.",
+ [?LINE, F1, F2], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+divide(#fixed{digits = D1, scale = S1, value = V1},
+ #fixed{digits = _D2, scale = S2, value = V2}) ->
+ {PV1, PV2} = normalize(S1, V1, S2, V2),
+ DigitsMin = (D1-S1+S2),
+ R1 = (PV1 div PV2),
+ R2 = (R1*?BASE + (PV1 rem PV2) * (?BASE div PV2)),
+ {Result2, Sinf} = delete_zeros_value(R2, 0, R1),
+ check_fixed_overflow(#fixed{digits = DigitsMin + Sinf, scale = Sinf,
+ value = Result2});
+divide(F1, F2) ->
+ orber:dbg("[~p] fixed:divide(~p, ~p).~n"
+ "At least one of the supplied arguments is not a Fixed Type.",
+ [?LINE, F1, F2], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+multiply(#fixed{digits = D1, scale = S1, value = V1},
+ #fixed{digits = D2, scale = S2, value = V2}) ->
+ check_fixed_overflow(#fixed{digits = (D1+D2),
+ scale = (S1+S2),
+ value = V1*V2});
+multiply(F1, F2) ->
+ orber:dbg("[~p] fixed:multiply(~p, ~p).~n"
+ "At least one of the supplied arguments is not a Fixed Type.",
+ [?LINE, F1, F2], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+unary_minus(Fixed) when is_record(Fixed, fixed) ->
+ Fixed#fixed{value = -(Fixed#fixed.value)};
+unary_minus(Fixed) ->
+ orber:dbg("[~p] fixed:unary_minus(~p).~n"
+ "The supplied argument is not a Fixed Type.",
+ [?LINE, Fixed], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+%% Pretty?! No, but since we now the upper-limit this is the fastest way
+%% to calculate 10^x
+power(0) -> 1;
+power(1) -> 10;
+power(2) -> 100;
+power(3) -> 1000;
+power(4) -> 10000;
+power(5) -> 100000;
+power(6) -> 1000000;
+power(7) -> 10000000;
+power(8) -> 100000000;
+power(9) -> 1000000000;
+power(10) -> 10000000000;
+power(11) -> 100000000000;
+power(12) -> 1000000000000;
+power(13) -> 10000000000000;
+power(14) -> 100000000000000;
+power(15) -> 1000000000000000;
+power(16) -> 10000000000000000;
+power(17) -> 100000000000000000;
+power(18) -> 1000000000000000000;
+power(19) -> 10000000000000000000;
+power(20) -> 100000000000000000000;
+power(21) -> 1000000000000000000000;
+power(22) -> 10000000000000000000000;
+power(23) -> 100000000000000000000000;
+power(24) -> 1000000000000000000000000;
+power(25) -> 10000000000000000000000000;
+power(26) -> 100000000000000000000000000;
+power(27) -> 1000000000000000000000000000;
+power(28) -> 10000000000000000000000000000;
+power(29) -> 100000000000000000000000000000;
+power(30) -> 1000000000000000000000000000000;
+power(31) -> 10000000000000000000000000000000;
+power(_) -> 10000000000000000000000000000000.
+
+
+
+%% If the result of an operation (+, -, * or /) causes overflow we use this
+%% operation. However, since these calculations are performed during compiletime,
+%% shouldn't the IDL-specification be changed to not cause overflow?! But, since
+%% the OMG standard allows this we must support it.
+check_fixed_overflow(#fixed{digits = Digits, scale = Scale, value = Value}) ->
+ case count_digits(abs(Value)) of
+ overflow ->
+ {N, NewVal} = cut_overflow(0, Value),
+ if
+ N > Scale ->
+ #fixed{digits = 31, scale = 0, value = NewVal};
+ true ->
+ NewScale = Scale - N,
+ {NewVal2, Removed} = delete_zeros(NewVal, NewScale),
+ #fixed{digits = 31, scale = NewScale-Removed, value = NewVal2}
+ end;
+ Count when Count > Digits ->
+ Diff = Count-Digits,
+ if
+ Diff > Scale ->
+ #fixed{digits = Digits, scale = 0,
+ value = (Value div power(Diff))};
+ true ->
+ NewScale = Scale-Diff,
+ {NewVal, Removed} = delete_zeros((Value div power(Diff)), NewScale),
+ #fixed{digits = Digits-Removed,
+ scale = NewScale-Removed,
+ value = NewVal}
+ end;
+ Count ->
+ {NewVal, Removed} = delete_zeros(Value, Scale),
+ #fixed{digits = Count-Removed, scale = Scale-Removed, value = NewVal}
+ end.
+
+%% This function see to that the values are of the same baase.
+normalize(S, V1, S, V2) ->
+ {V1, V2};
+normalize(S1, V1, S2, V2) when S1 > S2 ->
+ {V1, V2*power(S1-S2)};
+normalize(S1, V1, S2, V2) ->
+ {V1*power(S2-S1), V2}.
+
+%% If we have access to the integer part of the fixed type we use this
+%% operation to remove all trailing zeros. If we know the scale, length of
+%% fraction part, we can use delete_zeros as well. But, after a division
+%% it's hard to know the scale and we don't need to calcluate the integer part.
+delete_zeros_value(0, N, _) ->
+ {0, 32-N};
+delete_zeros_value(X, N, M) when X > M, (X rem 10) == 0 ->
+ delete_zeros_value((X div 10), N+1, M);
+delete_zeros_value(X, N, _) ->
+ {X, 32-N}.
+
+%% If we know the exact scale of a fixed type we can use this operation to
+%% remove all trailing zeros.
+delete_zeros(0, _) ->
+ {0,0};
+delete_zeros(X, Max) ->
+ delete_zeros(X, 0, Max).
+delete_zeros(X, Max, Max) ->
+ {X, Max};
+delete_zeros(X, N, Max) when (X rem 10) == 0 ->
+ delete_zeros((X div 10), N+1, Max);
+delete_zeros(X, N, _) ->
+ {X, N}.
+
+cut_overflow(N, X) when X > ?FIXED_MAX ->
+ cut_overflow(N+1, (X div 10));
+cut_overflow(N, X) ->
+ {N, X}.
+
+%% A fast way to check the size of a fixed data type.
+count_digits(X) when X > ?FIXED_MAX -> overflow;
+count_digits(X) when X >= 1000000000000000000000000000000 -> 31;
+count_digits(X) when X >= 100000000000000000000000000000 -> 30;
+count_digits(X) when X >= 10000000000000000000000000000 -> 29;
+count_digits(X) when X >= 1000000000000000000000000000 -> 28;
+count_digits(X) when X >= 100000000000000000000000000 -> 27;
+count_digits(X) when X >= 10000000000000000000000000 -> 26;
+count_digits(X) when X >= 1000000000000000000000000 -> 25;
+count_digits(X) when X >= 100000000000000000000000 -> 24;
+count_digits(X) when X >= 10000000000000000000000 -> 23;
+count_digits(X) when X >= 1000000000000000000000 -> 22;
+count_digits(X) when X >= 100000000000000000000 -> 21;
+count_digits(X) when X >= 10000000000000000000 -> 20;
+count_digits(X) when X >= 1000000000000000000 -> 19;
+count_digits(X) when X >= 100000000000000000 -> 18;
+count_digits(X) when X >= 10000000000000000 -> 17;
+count_digits(X) when X >= 1000000000000000 -> 16;
+count_digits(X) when X >= 100000000000000 -> 15;
+count_digits(X) when X >= 10000000000000 -> 14;
+count_digits(X) when X >= 1000000000000 -> 13;
+count_digits(X) when X >= 100000000000 -> 12;
+count_digits(X) when X >= 10000000000 -> 11;
+count_digits(X) when X >= 1000000000 -> 10;
+count_digits(X) when X >= 100000000 -> 9;
+count_digits(X) when X >= 10000000 -> 8;
+count_digits(X) when X >= 1000000 -> 7;
+count_digits(X) when X >= 100000 -> 6;
+count_digits(X) when X >= 10000 -> 5;
+count_digits(X) when X >= 1000 -> 4;
+count_digits(X) when X >= 100 -> 3;
+count_digits(X) when X >= 10 -> 2;
+count_digits(_X) -> 1.
+
+%%-----------------------------------------------------------------
+%%------------- END OF MODULE -------------------------------------
+%%-----------------------------------------------------------------
diff --git a/lib/orber/src/ifr_objects.hrl b/lib/orber/src/ifr_objects.hrl
new file mode 100644
index 0000000000..0d7c30a86c
--- /dev/null
+++ b/lib/orber/src/ifr_objects.hrl
@@ -0,0 +1,421 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%%----------------------------------------------------------------------
+%%% File : ir_objects.hrl
+%%% Purpose : Record definitions for the IR DB
+%%%----------------------------------------------------------------------
+
+%%%----------------------------------------------------------------------
+%%% *********************************************************************
+%%% * *
+%%% * PLEASE NOTE *
+%%% * *
+%%% * If a record is removed or added in this file, the corresponding *
+%%% * database initialization code _MUST_ be updated accordingly. *
+%%% * *
+%%% * The initialization code is defined in a macro in this file. *
+%%% * *
+%%% * Also remember to update select/2 in orber_ifr.erl when adding *
+%%% * or deleting a record in this file. *
+%%% * *
+%%% *********************************************************************
+%%%----------------------------------------------------------------------
+
+%% Interface objects
+
+%% There are eight interface objects in an interface repository:
+%% Repository, ModuleDef, InterfaceDef, AttributeDef, OperationDef,
+%% TypedefDef, ConstantDef and ExceptionDef (CORBA V2.0, page 6-5/6).
+
+% The other objects defined here are used to build the above objects
+% (CORBA V2.0, page 6-7).
+
+% Object references are stored as mnesia object IDs, i.e. a tuple with
+% the table name and the ir_Internal_ID.
+
+% Inheritance strategy. We incorporate the inherited object into the
+% inheriting object. The record element 'inherited_objects' is a list
+% of objects that "this" object inherits from (i.e. full object
+% records and not object references).
+
+% The record element 'ir_Internal_ID' is a tag that uniquely
+% identifies a record. See the function orber_ifr:unique().
+
+ % IRObject, page 6-9
+-record(ir_IRObject, {ir_Internal_ID,def_kind}).
+
+ % Contained, page 6-9
+-record(ir_Contained, {ir_Internal_ID, %[IRObject]
+ def_kind, %from IRObject
+ id,
+ name,
+ version,
+ defined_in,
+ absolute_name,
+ containing_repository}).
+
+ % Container, page 6-10
+-record(ir_Container, {ir_Internal_ID, %[IRObject]
+ def_kind, %from IRObject
+ contents}).
+
+ % IDLType, page 6-15
+-record(ir_IDLType, {ir_Internal_ID, %[IRObject]
+ def_kind, %from IRObject
+ type}).
+
+ % Repository, page 6-16
+-record(ir_Repository, {ir_Internal_ID, %[Container]
+ def_kind, %from IRObject
+ contents, %from Container
+ primitivedefs}).
+
+ % ModuleDef, page 6-17
+-record(ir_ModuleDef, {ir_Internal_ID, %[Container,Contained]
+ def_kind, %from IRObject
+ contents, %from Container
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository %from Contained
+ }).
+
+ % ConstantDef, page 6-17
+-record(ir_ConstantDef, {ir_Internal_ID, %[Contained]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type,
+ type_def,
+ value}).
+
+ % TypedefDef, page 6-18
+-record(ir_TypedefDef, {ir_Internal_ID, %[Contained,IDLType]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type %from IDLType
+ }).
+
+ % StructDef, page 6-19
+-record(ir_StructDef, {ir_Internal_ID, %[TypedefDef]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type, %from IDLType
+ members}).
+
+ % UnionDef, page 6-19
+-record(ir_UnionDef, {ir_Internal_ID, %[TypedefDef]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type, %from IDLType
+ discriminator_type,
+ discriminator_type_def,
+ members}).
+
+ % EnumDef, page 6-20
+-record(ir_EnumDef, {ir_Internal_ID, %[TypedefDef]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type, %from IDLType
+ members}).
+
+ % AliasDef, page 6-21
+-record(ir_AliasDef, {ir_Internal_ID, %[TypedefDef]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type, %from IDLType
+ original_type_def}).
+
+ % PrimitiveDef, page 6-21
+-record(ir_PrimitiveDef, {ir_Internal_ID, %[IDLType]
+ def_kind, %from IRObject
+ type, %from IDLType
+ kind}).
+
+ % StringDef, page 6-22
+-record(ir_StringDef, {ir_Internal_ID, %[IDLType]
+ def_kind, %from IRObject
+ type, %from IDLType
+ bound}).
+
+-record(ir_WstringDef, {ir_Internal_ID, %[IDLType]
+ def_kind, %from IRObject
+ type, %from IDLType
+ bound}).
+
+ % SequenceDef, page 6-22
+-record(ir_SequenceDef, {ir_Internal_ID, %[IDLType]
+ def_kind, %from IRObject
+ type, %from IDLType
+ bound,
+ element_type,
+ element_type_def}).
+
+ % ArrayDef, page 6-23
+-record(ir_ArrayDef, {ir_Internal_ID, %[IDLType]
+ def_kind, %from IRObject
+ type, %from IDLType
+ length,
+ element_type,
+ element_type_def}).
+
+ % ExceptionDef, page 6-23
+-record(ir_ExceptionDef, {ir_Internal_ID, %[Contained]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type,
+ members}).
+
+ % AttributeDef, page 6-24
+-record(ir_AttributeDef, {ir_Internal_ID, %[Contained]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type,
+ type_def,
+ mode}).
+
+ % OperationDef, page 6-25
+-record(ir_OperationDef, {ir_Internal_ID, %[Contained]
+ def_kind, %from IRObject
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ result,
+ result_def,
+ params,
+ mode,
+ contexts,
+ exceptions}).
+
+ % InterfaceDef, page 6-27
+-record(ir_InterfaceDef, {ir_Internal_ID, %[Container,Contained,IDLType]
+ def_kind, %from IRObject
+ contents, %from Container
+ id, %from Contained
+ name, %from Contained
+ version, %from Contained
+ defined_in, %from Contained
+ absolute_name, %from Contained
+ containing_repository, %from Contained
+ type, %from IDLType
+ base_interfaces}).
+
+ % TypeCode, page 6-33
+
+-record(ir_FixedDef, {ir_Internal_ID, %[IDLType]
+ def_kind, %from IRObject
+ type, %from IDLType
+ digits,
+ scale}).
+
+
+% TypeCodes cannot be defined as records, since each type code has a
+% quite unique structure depending on the type. The old TypeCode
+% record definition is left here as a comment in case we want to
+% change back to the old style.
+
+%% ir_TypeCode does not have a field ir_Internal_ID. TypeCodes are
+%% never explicitly written to the database as separate DB-records.
+%% TypeCodes are stored as full records whenever they are used in an
+%% IFR-object.
+%%-record(ir_TypeCode, {kind,
+%% parameter_list}).
+
+ % ORB, page 6-39
+-record(ir_ORB, {ir_Internal_ID, % *** Do we need any attributes
+ dummy}). % for this table? ORB is a pseudo-
+ % object so perhaps the table is
+ % unnecessary?
+
+-record(orber_light_ifr, {id, %% IFR-id
+ module,
+ type,
+ base_id}).
+
+-define(IFR_ModuleDef, 0).
+-define(IFR_ConstantDef, 1).
+-define(IFR_StructDef, 2).
+-define(IFR_UnionDef, 3).
+-define(IFR_EnumDef, 4).
+-define(IFR_AliasDef, 5).
+-define(IFR_InterfaceDef, 6).
+-define(IFR_ExceptionDef, 7).
+
+
+%%%----------------------------------------------------------------------
+%%% 'ifr_object_list' is used by other modules. Do NOT remove or rename
+%%% this list!
+%%% An addition or deletion of a record above must be duplicated here in
+%%% this list and in the macro 'ifr_record_tuple_list' below.
+-define(ifr_object_list, [ir_ModuleDef,
+ ir_Contained,
+ ir_AttributeDef,
+ ir_Repository,
+ ir_OperationDef,
+ ir_InterfaceDef,
+ ir_TypedefDef,
+ ir_Container,
+ ir_EnumDef,
+ ir_UnionDef,
+ ir_StringDef,
+ ir_WstringDef,
+ ir_ORB,
+ ir_IDLType,
+ ir_ExceptionDef,
+ ir_IRObject,
+ ir_PrimitiveDef,
+ ir_ArrayDef,
+ ir_AliasDef,
+ ir_ConstantDef,
+ ir_StructDef,
+ ir_SequenceDef,
+ ir_FixedDef]).
+
+-define(ifr_light_object_list, [orber_light_ifr]).
+
+-define(cr_fun_tuple(Table, Options),
+ {Table,
+ fun() ->
+ case mnesia:create_table(Table,[{attributes,
+ record_info(fields,
+ Table)}]++Options)of
+ {atomic,ok} ->
+ ok;
+ R ->
+ R
+ end
+ end}
+ ).
+
+-define(cr_fun_tuple_local(Table, IFR_storage_type),
+ {Table,
+ fun() ->
+ case mnesia:add_table_copy(Table,node(), IFR_storage_type)of
+ {atomic,ok} ->
+ ok;
+ R ->
+ R
+ end
+ end}
+ ).
+
+-define(ifr_record_tuple_list(Options),
+ [?cr_fun_tuple(ir_IRObject, Options),
+ ?cr_fun_tuple(ir_Contained, [{index, [#ir_Contained.id]}|Options]),
+ ?cr_fun_tuple(ir_Container, Options),
+ ?cr_fun_tuple(ir_IDLType, Options),
+ ?cr_fun_tuple(ir_Repository, Options),
+ ?cr_fun_tuple(ir_ModuleDef, [{index, [#ir_ModuleDef.id]}|Options]),
+ ?cr_fun_tuple(ir_ConstantDef, [{index, [#ir_ConstantDef.id]}|Options]),
+ ?cr_fun_tuple(ir_TypedefDef, [{index, [#ir_TypedefDef.id]}|Options]),
+ ?cr_fun_tuple(ir_StructDef, [{index, [#ir_StructDef.id]}|Options]),
+ ?cr_fun_tuple(ir_UnionDef, [{index, [#ir_UnionDef.id]}|Options]),
+ ?cr_fun_tuple(ir_EnumDef, [{index, [#ir_EnumDef.id]}|Options]),
+ ?cr_fun_tuple(ir_AliasDef, [{index, [#ir_AliasDef.id]}|Options]),
+ ?cr_fun_tuple(ir_PrimitiveDef, Options),
+ ?cr_fun_tuple(ir_StringDef, Options),
+ ?cr_fun_tuple(ir_WstringDef, Options),
+ ?cr_fun_tuple(ir_SequenceDef, Options),
+ ?cr_fun_tuple(ir_ArrayDef, Options),
+ ?cr_fun_tuple(ir_ExceptionDef, [{index, [#ir_ExceptionDef.id]}|Options]),
+ ?cr_fun_tuple(ir_AttributeDef, [{index, [#ir_AttributeDef.id]}|Options]),
+ ?cr_fun_tuple(ir_OperationDef, [{index, [#ir_OperationDef.id]}|Options]),
+ ?cr_fun_tuple(ir_InterfaceDef, [{index, [#ir_InterfaceDef.id]}| Options]),
+% ?cr_fun_tuple(ir_TypeCode, Options),
+ ?cr_fun_tuple(ir_ORB, Options),
+ ?cr_fun_tuple(ir_FixedDef, Options)]).
+
+-define(ifr_light_record_tuple_list(Options),
+ [?cr_fun_tuple(orber_light_ifr, Options)]).
+
+
+-define(ifr_record_tuple_list_local(IFR_storage_type),
+ [?cr_fun_tuple_local(ir_IRObject, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_Contained, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_Container, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_IDLType, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_Repository, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_ModuleDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_ConstantDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_TypedefDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_StructDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_UnionDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_EnumDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_AliasDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_PrimitiveDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_StringDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_WstringDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_SequenceDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_ArrayDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_ExceptionDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_AttributeDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_OperationDef, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_InterfaceDef, IFR_storage_type),
+% ?cr_fun_tuple_local(ir_TypeCode, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_ORB, IFR_storage_type),
+ ?cr_fun_tuple_local(ir_FixedDef, IFR_storage_type)]).
+
+-define(ifr_light_record_tuple_list_local(IFR_storage_type),
+ [?cr_fun_tuple_local(orber_light_ifr, IFR_storage_type)]).
diff --git a/lib/orber/src/iop_ior.erl b/lib/orber/src/iop_ior.erl
new file mode 100644
index 0000000000..5bfc31e0e4
--- /dev/null
+++ b/lib/orber/src/iop_ior.erl
@@ -0,0 +1,1716 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: iop_ior.erl
+%% Description:
+%% This file contains the IOP::IOR handling
+%%
+%%-----------------------------------------------------------------
+-module(iop_ior).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([code/4, decode/4, string_decode/1,
+ string_code/1, string_code/2, string_code/3, string_code/4,
+ get_key/1, get_key/2, get_typeID/1, create/9,
+ get_objkey/1, check_nil/1, get_privfield/1, set_privfield/2,
+ get_orbfield/1, set_orbfield/2,
+ get_flagfield/1, set_flagfield/2,
+ create_external/5, create_external/6, print/1, print/2,
+ get_alt_addr/1, add_component/2, get_peerdata/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 6).
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: create/5/6
+%%-----------------------------------------------------------------
+%% There are a few restrictions if a certain IIOP-version may contain certain components
+%% and contexts The ones we currently, and the ones we perhaps will, support is:
+%%
+%% Feature 1.0 1.1 1.2
+%% TransactionService Service Context yes yes yes
+%% CodeSets Service Context yes yes
+%% Object by Value Service Context yes
+%% Bi-Directional IIOP Service Context yes
+%% IOR components in IIOP profile yes yes
+%% TAG_ORB_TYPE yes yes
+%% TAG_CODE_SETS yes yes
+%% TAG_ALTERNATE_IIOP_ADDRESS yes
+%% TAG_SSL_SEC_TRANS yes yes
+%% Extended IDL data types yes yes
+%% Bi-Directional GIOP Features yes
+%% Value types and Abstract Interfaces yes
+%%
+%% CSIv2:
+%% A target that supports unprotected IIOP invocations shall specify in the
+%% corresponding TAG_INTERNET_IOP profile a nonzero port number at which the
+%% target will accept unprotected invocations.9 A target that supports only
+%% protected IIOP invocations shall specify a port number of 0 (zero) in the
+%% corresponding TAG_INTERNET_IOP profile.
+%%-----------------------------------------------------------------
+create({1, 0}, TypeID, Hosts, IIOPPort, _, Objkey, _, _, _) ->
+ Template = #'IIOP_ProfileBody_1_0'{iiop_version =
+ #'IIOP_Version'{major=1, minor=0},
+ port = IIOPPort,
+ object_key = Objkey},
+ #'IOP_IOR'{type_id=TypeID,
+ profiles=duplicate_1_0_profiles(Hosts, Template, [])};
+create({1, Minor}, TypeID, Hosts, IIOPPort, -1, Objkey, MC, _, _) ->
+ Template = #'IIOP_ProfileBody_1_1'{iiop_version =
+ #'IIOP_Version'{major=1, minor=Minor},
+ port = IIOPPort,
+ object_key = Objkey,
+ components = MC},
+ #'IOP_IOR'{type_id=TypeID,
+ profiles=duplicate_1_1_profiles(Hosts, Template, [])};
+
+create({1, Minor}, TypeID, Hosts, IIOPPort, SSLPort, Objkey, MC, Flags, EnvFlags) ->
+ V=#'IIOP_Version'{major=1, minor=Minor},
+ UseCSIv2 = ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_USE_CSIV2),
+ Template =
+ case ?ORB_FLAG_TEST(Flags, ?ORB_NO_SECURITY) of
+ true ->
+ #'IIOP_ProfileBody_1_1'{iiop_version = V,
+ port = IIOPPort,
+ object_key = Objkey,
+ components = MC};
+ false when UseCSIv2 == false ->
+ #'IIOP_ProfileBody_1_1'{iiop_version=V,
+ port=IIOPPort,
+ object_key=Objkey,
+ components= [#'IOP_TaggedComponent'
+ {tag=?TAG_SSL_SEC_TRANS,
+ component_data=#'SSLIOP_SSL'{target_supports = 2,
+ target_requires = 2,
+ port = SSLPort}}|MC]};
+ false when UseCSIv2 == true ->
+ #'IIOP_ProfileBody_1_1'
+ {iiop_version=V,
+ port=0,
+ object_key=Objkey,
+ components= [#'IOP_TaggedComponent'
+ {tag = ?TAG_CSI_SEC_MECH_LIST,
+ component_data =
+ #'CSIIOP_CompoundSecMechList'
+ {stateful = false,
+ mechanism_list =
+ [#'CSIIOP_CompoundSecMech'
+ {target_requires = 6,
+ transport_mech =
+ #'IOP_TaggedComponent'
+ {tag=?TAG_TLS_SEC_TRANS,
+ component_data=#'CSIIOP_TLS_SEC_TRANS'
+ {target_supports = 7,
+ target_requires = 8,
+ addresses =
+ [#'CSIIOP_TransportAddress'{host_name = "Host",
+ port = SSLPort}]}},
+ as_context_mech =
+ #'CSIIOP_AS_ContextSec'
+ {target_supports = 9, target_requires = 10,
+ client_authentication_mech = [1, 255],
+ target_name = [2,255]},
+ sas_context_mech =
+ #'CSIIOP_SAS_ContextSec'
+ {target_supports = 11, target_requires = 12,
+ privilege_authorities =
+ [#'CSIIOP_ServiceConfiguration'
+ {syntax = ?ULONGMAX,
+ name = [3,255]}],
+ supported_naming_mechanisms = [[4,255],[5,255]],
+ supported_identity_types = ?ULONGMAX}}]}}|MC]}
+ end,
+ #'IOP_IOR'{type_id=TypeID,
+ profiles=duplicate_1_1_profiles(Hosts, Template, [])};
+create(Version, TypeID, Host, IIOPPort, SSLPort, Objkey, MC, _, _) ->
+ orber:dbg("[~p] iop_ior:create(~p, ~p, ~p, ~p, ~p, ~p, ~p);~n"
+ "Unsupported IIOP-version.",
+ [?LINE, Version, TypeID, Host, IIOPPort, SSLPort, Objkey, MC],
+ ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+
+
+
+duplicate_1_1_profiles([], _, Profiles) ->
+ Profiles;
+duplicate_1_1_profiles([H|T], Template, Profiles) ->
+ duplicate_1_1_profiles(T, Template,
+ [#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data =
+ Template#'IIOP_ProfileBody_1_1'{host = H}}|Profiles]).
+
+duplicate_1_0_profiles([], _, Profiles) ->
+ Profiles;
+duplicate_1_0_profiles([H|T], Template, Profiles) ->
+ duplicate_1_0_profiles(T, Template,
+ [#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data =
+ Template#'IIOP_ProfileBody_1_0'{host = H}}|Profiles]).
+
+
+%%-----------------------------------------------------------------
+%% Func: create_external/5/6
+%%-----------------------------------------------------------------
+create_external(Version, TypeID, Host, IIOP_port, Objkey) ->
+ create_external(Version, TypeID, Host, IIOP_port, Objkey, []).
+create_external({1, 0}, TypeID, Host, IIOP_port, Objkey, _MC) ->
+ V=#'IIOP_Version'{major=1,
+ minor=0},
+ PB=#'IIOP_ProfileBody_1_0'{iiop_version=V,
+ host=Host,
+ port=IIOP_port,
+ object_key=Objkey},
+ #'IOP_IOR'{type_id=TypeID, profiles=[#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=PB}]};
+create_external({1, 1}, TypeID, Host, IIOP_port, Objkey, Components) ->
+ V=#'IIOP_Version'{major=1,
+ minor=1},
+ PB=#'IIOP_ProfileBody_1_1'{iiop_version=V,
+ host=Host,
+ port=IIOP_port,
+ object_key=Objkey,
+ components=Components},
+ #'IOP_IOR'{type_id=TypeID,
+ profiles=[#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=PB}]};
+create_external({1, 2}, TypeID, Host, IIOP_port, Objkey, Components) ->
+ V=#'IIOP_Version'{major=1,
+ minor=2},
+ PB=#'IIOP_ProfileBody_1_1'{iiop_version=V,
+ host=Host,
+ port=IIOP_port,
+ object_key=Objkey,
+ components=Components},
+ #'IOP_IOR'{type_id=TypeID,
+ profiles=[#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=PB}]};
+create_external(Version, TypeID, Host, IIOP_port, Objkey, MC) ->
+ orber:dbg("[~p] iop_ior:create_external(~p, ~p, ~p, ~p, ~p, ~p);~n"
+ "Unsupported IIOP-version.",
+ [?LINE, Version, TypeID, Host, IIOP_port, Objkey, MC], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: get_peerdata/1
+%%-----------------------------------------------------------------
+%% Probably an external IOR.
+get_peerdata(#'IOP_IOR'{} = IOR) ->
+ get_peerdata(get_key(IOR), IOR, [], []);
+%% Local object reference.
+get_peerdata(_) ->
+ [].
+
+%% "Plain" TCP/IP.
+get_peerdata({'external', {Host, Port, _InitObjkey, Index, TaggedProfile,
+ #host_data{protocol = normal,
+ csiv2_mech = undefined}}},
+ IOR, Acc, Indexes) ->
+ Alts = get_alt_addr(TaggedProfile),
+ get_peerdata(get_key(IOR, [Index|Indexes]), IOR, [{Host, Port}|Alts] ++ Acc,
+ [Index|Indexes]);
+%% "Plain" SSL
+get_peerdata({'external', {Host, _Port, _InitObjkey, Index, TaggedProfile,
+ #host_data{protocol = ssl,
+ ssl_data = #'SSLIOP_SSL'{port = Port},
+ csiv2_mech = undefined}}},
+ IOR, Acc, Indexes) ->
+ Alts = get_alt_addr(TaggedProfile),
+ get_peerdata(get_key(IOR, [Index|Indexes]), IOR, [{Host, Port}|Alts] ++ Acc,
+ [Index|Indexes]);
+%% TEMPORARY FIX TO SKIP CSIv2 DATA.
+get_peerdata({'external', {Host, _Port, _InitObjkey, Index, TaggedProfile,
+ #host_data{protocol = ssl,
+ ssl_data = #'SSLIOP_SSL'{port = Port}}}},
+ IOR, Acc, Indexes) ->
+ Alts = get_alt_addr(TaggedProfile),
+ get_peerdata(get_key(IOR, [Index|Indexes]), IOR, [{Host, Port}|Alts] ++ Acc,
+ [Index|Indexes]);
+%% CSIv2 over SSL (TAG_TLS_SEC_TRANS) using the SAS protocol. Note port must equal 0.
+get_peerdata({'external',
+ {_Host, 0, _InitObjkey, Index, TaggedProfile,
+ #host_data{protocol = ssl,
+ csiv2_mech =
+ #'CSIIOP_CompoundSecMech'{target_requires = _TR} = _Mech,
+ csiv2_addresses = Addresses}}},
+ IOR, Acc, Indexes) ->
+ Alts = get_alt_addr(TaggedProfile),
+ get_peerdata(get_key(IOR, [Index|Indexes]), IOR, Addresses ++ Alts ++ Acc,
+ [Index|Indexes]);
+%% CSIv2 over SSL (TAG_NULL_TAG) using the SAS protocol.
+get_peerdata({'external',
+ {Host, _Port, _InitObjkey, Index, TaggedProfile,
+ #host_data{protocol = ssl,
+ ssl_data = #'SSLIOP_SSL'{port = Port},
+ csiv2_mech = Mech}}},
+ IOR, Acc, Indexes) when is_record(Mech, 'CSIIOP_CompoundSecMech') ->
+ Alts = get_alt_addr(TaggedProfile),
+ get_peerdata(get_key(IOR, [Index|Indexes]), IOR, [{Host, Port}|Alts] ++ Acc,
+ [Index|Indexes]);
+%% CSIv2 over TCP (TAG_NULL_TAG) using the SAS protocol.
+get_peerdata({'external',
+ {Host, Port, _InitObjkey, Index, TaggedProfile,
+ #host_data{protocol = normal,
+ csiv2_mech = Mech}}},
+ IOR, Acc, Indexes) when is_record(Mech, 'CSIIOP_CompoundSecMech') ->
+ Alts = get_alt_addr(TaggedProfile),
+ get_peerdata(get_key(IOR, [Index|Indexes]), IOR, [{Host, Port}|Alts] ++ Acc,
+ [Index|Indexes]);
+get_peerdata(undefined, _IOR, Acc, _Indexes) ->
+ Acc;
+%% Local object reference.
+get_peerdata(_, _, _, _) ->
+ [].
+
+%%-----------------------------------------------------------------
+%% Func: get_key/1
+%%-----------------------------------------------------------------
+get_key(#'IOP_IOR'{profiles=P}) ->
+ get_key_1(P, false, 0, undefined, #host_data{});
+get_key({Module, Type, Key, _UserDef, OrberDef, Flags}) ->
+ if
+ is_binary(Key) ->
+ {'internal', Key, OrberDef, Flags, Module};
+ Type == pseudo ->
+ {'internal_registered', {pseudo, Key}, OrberDef, Flags, Module};
+ is_atom(Key) ->
+ {'internal_registered', Key, OrberDef, Flags, Module}
+ end;
+get_key(What) ->
+ orber:dbg("[~p] iop_ior:get_key(~p); Invalid IOR",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+
+get_key(#'IOP_IOR'{profiles=P}, Exclude) ->
+ get_key_1(P, true, 0, Exclude, #host_data{});
+get_key(What, _Exclude) ->
+ orber:dbg("[~p] iop_ior:get_key(~p); Invalid IOR",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+
+get_key_1([], false, _, _, _) ->
+ orber:dbg("[~p] iop_ior:get_key_1([]); bad object reference, profile not found.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+get_key_1([], true, _, _, _) ->
+ undefined;
+%%--------- Local IIOP-1.0 Profile ---------
+get_key_1([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_0'
+ {object_key={Module, Type, Key, _UserDef, OrberDef, Flags}}}|_],
+ _Retry, _Counter, _Exclude, _HD) ->
+ if
+ is_binary(Key) ->
+ {'internal', Key, OrberDef, Flags, Module};
+ Type == pseudo ->
+ {'internal_registered', {pseudo, Key}, OrberDef, Flags, Module};
+ is_atom(Key) ->
+ {'internal_registered', Key, OrberDef, Flags, Module}
+ end;
+%%--------- Local IIOP-1.1 & IIOP-1.2 Profiles ---------
+get_key_1([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_1'
+ {object_key={Module, Type, Key, _UserDef, OrberDef, Flags}}}|_],
+ _Retry, _Counter, _Exclude, _HD) ->
+ if
+ is_binary(Key) ->
+ {'internal', Key, OrberDef, Flags, Module};
+ Type == pseudo ->
+ {'internal_registered', {pseudo, Key}, OrberDef, Flags, Module};
+ Type == passive ->
+ %% CHECK FOR PRIMARY COMPONENT & GROUPID! Better yet, do not.
+ %% This is internal key and is supposed to be well formed.
+ %% Also, internal keys are not searched for primary member or
+ %% groupid in the component-section of IOR. ObjectKey will tell
+ %% GroupID and database read transaction will tell primary member.
+ {'internal_registered', {passive, Key}, OrberDef, Flags, Module};
+ is_atom(Key) ->
+ {'internal_registered', Key, OrberDef, Flags, Module}
+ end;
+%%--------- External IIOP-1.0 Profile ---------
+get_key_1([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_0'
+ {host = Host, port = Port, object_key= ObjectKey}} = TP|P],
+ _Retry, Counter, Exclude, HD) when Exclude == undefined ->
+ %% This case is "necessary" if an ORB adds several IIOP-profiles since,
+ %% for example, wchar isn't supported for 1.0.
+ case get_key_1(P, true, Counter+1, Exclude, HD) of
+ undefined ->
+ %% We now it's IIOP-1.0 and it doesn't contain any
+ %% components. Hence, no need to check for it.
+ {'external', {Host, Port, ObjectKey, Counter, TP,
+ HD#host_data{version = {1,0}}}};
+ LaterVersion ->
+ LaterVersion
+ end;
+get_key_1([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_0'
+ {host = Host, port = Port, object_key= ObjectKey}} = TP|P],
+ Retry, Counter, Exclude, HD) ->
+ case lists:member(Counter, Exclude) of
+ true ->
+ get_key_1(P, Retry, Counter+1, Exclude, HD);
+ false ->
+ %% This case is "necessary" if an ORB adds several IIOP-profiles since,
+ %% for example, wchar isn't supported for 1.0.
+ case get_key_1(P, true, Counter+1, Exclude, HD) of
+ undefined ->
+ {'external', {Host, Port, ObjectKey, Counter, TP,
+ HD#host_data{version = {1,0}}}};
+ LaterVersion ->
+ LaterVersion
+ end
+ end;
+%%--------- External IIOP-1.1 & IIOP-1.2 Profiles ---------
+get_key_1([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_1'
+ {iiop_version = #'IIOP_Version'{major=Major, minor=Minor},
+ host = Host, port = Port, object_key= ObjectKey,
+ components = Components}} = TP|P],
+ Retry, Counter, Exclude, HD) when Exclude == undefined ->
+ case check_components(Components, Port, HD#host_data{version = {Major,Minor}}) of
+ #host_data{csiv2_mech = undefined} when Port == 0 ->
+ get_key_1(P, Retry, Counter+1, Exclude, HD);
+ NewHD ->
+ {'external', {Host, Port, ObjectKey, Counter, TP, NewHD}}
+ end;
+get_key_1([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_1'
+ {iiop_version = #'IIOP_Version'{major=Major, minor=Minor},
+ host = Host, port = Port, object_key= ObjectKey,
+ components = Components}} = TP|P],
+ Retry, Counter, Exclude, HD) ->
+ case lists:member(Counter, Exclude) of
+ true ->
+ get_key_1(P, Retry, Counter+1, Exclude, HD);
+ false ->
+ case check_components(Components, Port,
+ HD#host_data{version = {Major,Minor}}) of
+ #host_data{csiv2_mech = undefined} when Port == 0 ->
+ get_key_1(P, Retry, Counter+1, Exclude, HD);
+ NewHD ->
+ {'external', {Host, Port, ObjectKey, Counter, TP, NewHD}}
+ end
+ end;
+get_key_1([_ | P], Retry, Counter, Exclude, HD) ->
+ get_key_1(P, Retry, Counter+1, Exclude, HD).
+
+check_components([], _, HostData) ->
+ HostData;
+check_components([#'IOP_TaggedComponent'{tag=?TAG_SSL_SEC_TRANS,
+ component_data=SSLStruct}|Rest],
+ Port, HostData) when is_record(SSLStruct, 'SSLIOP_SSL') ->
+ check_components(Rest, Port, HostData#host_data{protocol = ssl,
+ ssl_data = SSLStruct});
+%% CSIv2 Components
+check_components([#'IOP_TaggedComponent'{tag=?TAG_CSI_SEC_MECH_LIST,
+ component_data=Data}|Rest],
+ Port, HostData) when is_record(Data, 'CSIIOP_CompoundSecMechList') ->
+ case check_sec_mech(Data#'CSIIOP_CompoundSecMechList'.mechanism_list, Port) of
+ undefined ->
+ check_components(Rest, Port, HostData);
+ {ok, Protocol, Mech, Addresses} ->
+ check_components(Rest, Port,
+ HostData#host_data
+ {protocol = Protocol,
+ csiv2_mech = Mech,
+ csiv2_statefull = Data#'CSIIOP_CompoundSecMechList'.stateful,
+ csiv2_addresses = Addresses});
+ {ok, Mech} ->
+ check_components(Rest, Port,
+ HostData#host_data
+ {csiv2_mech = Mech,
+ csiv2_statefull = Data#'CSIIOP_CompoundSecMechList'.stateful})
+ end;
+%% FT Components
+check_components([#'IOP_TaggedComponent'
+ {tag=?TAG_FT_HEARTBEAT_ENABLED,
+ component_data=
+ #'FT_TagFTHeartbeatEnabledTaggedComponent'
+ {heartbeat_enabled = Boolean}}|Rest],
+ Port, HostData) ->
+ check_components(Rest, Port, HostData#host_data{ft_heartbeat = Boolean});
+check_components([#'IOP_TaggedComponent'
+ {tag=?TAG_FT_PRIMARY,
+ component_data=
+ #'FT_TagFTPrimaryTaggedComponent'{primary = Boolean}}|Rest],
+ Port, HostData) ->
+ check_components(Rest, Port, HostData#host_data{ft_primary = Boolean});
+check_components([#'IOP_TaggedComponent'
+ {tag=?TAG_FT_GROUP,
+ component_data=#'FT_TagFTGroupTaggedComponent'
+ {version = #'GIOP_Version'{major = 1, minor = 0},
+ ft_domain_id = FTDomain,
+ object_group_id = GroupID,
+ object_group_ref_version = GroupVer}}|Rest],
+ Port, HostData) ->
+ check_components(Rest, Port, HostData#host_data{ft_domain = FTDomain,
+ ft_group = GroupID,
+ ft_ref_version = GroupVer});
+%% CodeSets Component
+check_components([#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=#'CONV_FRAME_CodeSetComponentInfo'
+ {'ForCharData' = Char,
+ 'ForWcharData' = Wchar}}|Rest],
+ Port, HostData) ->
+ CharData = check_char_codeset(Char),
+ WcharData = check_wchar_codeset(Wchar),
+ check_components(Rest, Port, HostData#host_data{charset = CharData,
+ wcharset = WcharData});
+%% Not used
+check_components([_ | Rest], Port, HostData) ->
+ check_components(Rest, Port, HostData).
+
+check_sec_mech([], _) ->
+ undefined;
+%% Not supported yet.
+%check_sec_mech([#'CSIIOP_CompoundSecMech'
+% {target_requires = TR,
+% transport_mech=
+% #'IOP_TaggedComponent'{tag=?TAG_SECIOP_SEC_TRANS}} = Mech|_],
+% Port) ->
+% {ok, seciop, Mech};
+check_sec_mech([#'CSIIOP_CompoundSecMech'
+ {target_requires = TR,
+ transport_mech=
+ #'IOP_TaggedComponent'{tag = ?TAG_TLS_SEC_TRANS,
+ component_data = CD}} = Mech|_], _Port)
+ when TR =< ?CSIv2_MAX_TARGET_REQUIRES ->
+ {ok, ssl, Mech, extract_host_port(CD#'CSIIOP_TLS_SEC_TRANS'.addresses, [])};
+%% The TAG_NULL_TAG component shall be used in the 'transport_mech' field to
+%% indicate that a mechanism does not implement security functionality at the
+%% transport layer.
+%% If the port field in TAG_INTERNET_IOP equals 0 we must find a TAG_TLS_SEC_TRANS
+%% or TAG_SECIOP_SEC_TRANS mechanism.
+check_sec_mech([#'CSIIOP_CompoundSecMech'
+ {transport_mech=
+ #'IOP_TaggedComponent'{tag = ?TAG_NULL_TAG}}|Rest], 0) ->
+ check_sec_mech(Rest, 0);
+check_sec_mech([#'CSIIOP_CompoundSecMech'
+ {target_requires = TR,
+ transport_mech=
+ #'IOP_TaggedComponent'{tag = ?TAG_NULL_TAG}} = Mech|_], _Port)
+ when TR =< ?CSIv2_MAX_TARGET_REQUIRES ->
+ {ok, Mech};
+%% Unrecognized or the peer requires more than we support.
+check_sec_mech([_ | Rest], Port) ->
+ check_sec_mech(Rest, Port).
+
+extract_host_port([], Acc) ->
+ Acc;
+extract_host_port([#'CSIIOP_TransportAddress'{host_name = Host,
+ port = Port}|Rest], Acc) ->
+ extract_host_port(Rest, [{Host, Port}|Acc]).
+
+
+check_char_codeset(#'CONV_FRAME_CodeSetComponent'{native_code_set=?ISO8859_1_ID}) ->
+ ?ISO8859_1_ID;
+check_char_codeset(#'CONV_FRAME_CodeSetComponent'{native_code_set=?ISO646_IRV_ID}) ->
+ ?ISO646_IRV_ID;
+check_char_codeset(#'CONV_FRAME_CodeSetComponent'{conversion_code_sets=Converters}) ->
+ %% Since the list of Converters usually is very short (0 or 1 element) we
+ %% can use lists:member.
+ case lists:member(?ISO8859_1_ID, Converters) of
+ true ->
+ ?ISO8859_1_ID;
+ false ->
+ %% Since we are 100% sure strings will be (e.g. IFR-ids) used we
+ %% can raise an exception at this point.
+ orber:dbg("[~p] iop_ior:check_char_codeset(~p);~n"
+ "Orber cannot communicate with this ORB.~n"
+ "It doesn't support a Char CodeSet known to Orber.",
+ [?LINE, Converters], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status = ?COMPLETED_NO})
+ end.
+
+check_wchar_codeset(#'CONV_FRAME_CodeSetComponent'{native_code_set=?UTF_16_ID}) ->
+ ?UTF_16_ID;
+check_wchar_codeset(#'CONV_FRAME_CodeSetComponent'{native_code_set=?UCS_2_ID}) ->
+ ?UCS_2_ID;
+check_wchar_codeset(#'CONV_FRAME_CodeSetComponent'{conversion_code_sets=Converters}) ->
+ case lists:member(?UTF_16_ID, Converters) of
+ true ->
+ ?UTF_16_ID;
+ false ->
+ %% We should not raise an exception here since we do not know if
+ %% wchar/wstring is used.
+ ?UTF_16_ID
+% ?UNSUPPORTED_WCHAR
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: add_component/2
+%%-----------------------------------------------------------------
+add_component(Objref, Component) when is_record(Objref, 'IOP_IOR') ->
+ add_component_ior(Objref, Component);
+add_component(Objref, Component) ->
+ add_component_local(Objref, Component, orber:giop_version()).
+
+add_component_local(_, Component, {1,0}) ->
+ orber:dbg("[~p] iop_ior:add_component(~p);~n"
+ "IIOP-1.0 objects cannot contain any components.",
+ [?LINE, Component], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO});
+add_component_local(_, #'IOP_TaggedComponent'{tag = ?TAG_ALTERNATE_IIOP_ADDRESS}
+ = Component, {1,1}) ->
+ orber:dbg("[~p] iop_ior:add_component(~p);~n"
+ "IIOP-1.1 objects may not contain ALTERNATE_IIOP_ADDRESS components.",
+ [?LINE, Component], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO});
+add_component_local({Mod, Type, Key, UserDef, OrberDef, Flags}, Component, Version) ->
+ EnvFlags = orber:get_flags(),
+ MC = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_EXCLUDE_CODESET_COMPONENT) of
+ true ->
+ [Component];
+ false ->
+ [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=?DEFAULT_CODESETS},
+ Component]
+ end,
+ case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ create(Version, Mod:typeID(), orber:host(), orber:iiop_port(),
+ orber:iiop_ssl_port(),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags);
+ true ->
+ create(Version, Mod:typeID(), orber:nat_host(),
+ orber:nat_iiop_port(), orber:nat_iiop_ssl_port(),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags)
+
+ end.
+
+add_component_ior(#'IOP_IOR'{profiles=P} = IOR, Component) ->
+ case add_component_ior_helper(P, Component, false, []) of
+ {false, _} ->
+ orber:dbg("[~p] iop_ior:add_component_ior(~p);~n"
+ "The IOR do not contain a valid IIOP-version for the supplied component.",
+ [?LINE, Component], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status = ?COMPLETED_NO});
+ {_, NewProfiles} ->
+ IOR#'IOP_IOR'{profiles=NewProfiles}
+ end.
+
+add_component_ior_helper([], _Component, Status, Acc) ->
+ {Status, Acc};
+add_component_ior_helper([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_1'
+ {iiop_version= #'IIOP_Version'{minor=1}}}|T],
+ #'IOP_TaggedComponent'{tag = ?TAG_ALTERNATE_IIOP_ADDRESS}
+ = Component, Status, Acc) ->
+ %% 'ALTERNATE_IIOP_ADDRESS' may only be added to IIOP-1.2 IOR's.
+ add_component_ior_helper(T, Component, Status, Acc);
+add_component_ior_helper([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_1'
+ {object_key=Objkey,
+ components=Components} = PB} = H|T],
+ Component, _Status, Acc) when is_tuple(Objkey) ->
+ %% The objectkey must be a tuple if it's a local object. We cannot(!!) add components
+ %% to an external IOR.
+ add_component_ior_helper(T, Component, true,
+ [H#'IOP_TaggedProfile'
+ {profile_data=PB#'IIOP_ProfileBody_1_1'
+ {components = [Component|Components]}}|Acc]);
+add_component_ior_helper([_|T], Component, Status, Acc) ->
+ add_component_ior_helper(T, Component, Status, Acc).
+
+%%-----------------------------------------------------------------
+%% Func: get_alt_addr/1
+%%-----------------------------------------------------------------
+%% TAG_ALTERNATE_IIOP_ADDRESS may only occur in IIOP-1.2 IOR's.
+get_alt_addr(#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data=#'IIOP_ProfileBody_1_1'{iiop_version=
+ #'IIOP_Version'{minor=2},
+ components=Components}}) ->
+ get_alt_addr_helper(Components, []);
+get_alt_addr(_) ->
+ [].
+
+get_alt_addr_helper([], Acc) -> Acc;
+get_alt_addr_helper([#'IOP_TaggedComponent'{tag=?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data=#'ALTERNATE_IIOP_ADDRESS'
+ {'HostID'=Host, 'Port'=Port}}|T], Acc) ->
+ get_alt_addr_helper(T, [{Host, Port}|Acc]);
+get_alt_addr_helper([_|T], Acc) ->
+ get_alt_addr_helper(T, Acc).
+
+%%-----------------------------------------------------------------
+%% Func: get_typeID/1
+%%-----------------------------------------------------------------
+get_typeID(#'IOP_IOR'{type_id=TypeID}) ->
+ TypeID;
+get_typeID({Mod, _Type, _Key, _UserDef, _OrberDef, _Flags}) ->
+ Mod:typeID().
+
+%%-----------------------------------------------------------------
+%% Func: get_objkey/1
+%%-----------------------------------------------------------------
+get_objkey(#'IOP_IOR'{profiles=P}) ->
+ get_objkey_1(P);
+get_objkey({Id, Type, Key, UserDef, OrberDef, Flags}) ->
+ {Id, Type, Key, UserDef, OrberDef, Flags}.
+
+get_objkey_1([]) ->
+ orber:dbg("[~p] iop_ior:get_objkey_1([]); bad object key, profile not found.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+get_objkey_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB} |_]) ->
+ [_, _, _, _, ObjectKey | _] = tuple_to_list(PB),
+ ObjectKey;
+get_objkey_1([_ | P]) ->
+ get_objkey_1(P).
+
+%%-----------------------------------------------------------------
+%% Func: get_privfield/1
+%%-----------------------------------------------------------------
+get_privfield(#'IOP_IOR'{profiles=P}) ->
+ get_privfield_1(P);
+get_privfield({_Id, _Type, _Key, UserDef, _OrberDef, _Flags}) ->
+ UserDef.
+
+get_privfield_1([]) ->
+ orber:dbg("[~p] iop_ior:get_privfield_1([]); bad object key, profile not found.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+get_privfield_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB}|_]) ->
+ [_, _, _, _, ObjectKey | _] = tuple_to_list(PB),
+ case ObjectKey of
+ {_Id, _Type, _Key, UserDef, _OrberDef, _Flags} ->
+ UserDef;
+ _ ->
+ orber:dbg("[~p] iop_ior:get_privfield_1(~p); bad object key.",
+ [?LINE, ObjectKey], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end;
+get_privfield_1([_| P]) ->
+ get_privfield_1(P).
+
+%%-----------------------------------------------------------------
+%% Func: set_privfield/2
+%%-----------------------------------------------------------------
+set_privfield(#'IOP_IOR'{type_id=Id, profiles=P}, UserData) ->
+ #'IOP_IOR'{type_id=Id, profiles=set_privfield_1(P, UserData)};
+set_privfield({Id, Type, Key, _, OrberDef, Flags}, UserData) ->
+ {Id, Type, Key, UserData, OrberDef, Flags}.
+
+set_privfield_1([], _) ->
+ orber:dbg("[~p] iop_ior:set_privfield_1([]); bad object key, profile not found or external object.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+set_privfield_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB}|P], UserData) ->
+ [RecName, Version, Host, IIOP_port, ObjectKey | Rest] = tuple_to_list(PB),
+ case ObjectKey of
+ {Id, Type, Key, _, OrberDef, Flags} ->
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=list_to_tuple([RecName,
+ Version, Host,
+ IIOP_port,
+ {Id, Type, Key, UserData, OrberDef, Flags}|
+ Rest])} |
+ set_privfield_1(P, UserData)];
+ _ ->
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB} | set_privfield_1(P, UserData)]
+ end;
+set_privfield_1([PB| P], UserData) ->
+ [PB | set_privfield_1(P, UserData)].
+
+%%-----------------------------------------------------------------
+%% Func: get_orbfield/1
+%%-----------------------------------------------------------------
+get_orbfield(#'IOP_IOR'{profiles=P}) ->
+ get_orbfield_1(P);
+get_orbfield({_Id, _Type, _Key, _UserDef, OrberDef, _Flags}) ->
+ OrberDef.
+
+get_orbfield_1([]) ->
+ orber:dbg("[~p] iop_ior:get_orbfield_1([]);~n"
+ "bad object key, profile not found.", [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+get_orbfield_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB}|_]) ->
+ [_, _, _, _, ObjectKey | _] = tuple_to_list(PB),
+ case ObjectKey of
+ {_Id, _Type, _Key, _UserDef, OrberDef, _Flags} ->
+ OrberDef;
+ _ ->
+ orber:dbg("[~p] iop_ior:get_orbfield_1(~p);~n"
+ "bad object key.", [?LINE, ObjectKey], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end;
+get_orbfield_1([_| P]) ->
+ get_orbfield_1(P).
+
+%%-----------------------------------------------------------------
+%% Func: set_orbfield/2
+%%-----------------------------------------------------------------
+set_orbfield(#'IOP_IOR'{type_id=Id, profiles=P}, OrberDef) ->
+ #'IOP_IOR'{type_id=Id, profiles=set_orbfield_1(P, OrberDef)};
+set_orbfield({Id, Type, Key, Priv, _, Flags}, OrberDef) ->
+ {Id, Type, Key, Priv, OrberDef, Flags}.
+
+set_orbfield_1([], _) ->
+ orber:dbg("[~p] iop_ior:set_orbfield_1([]);~n"
+ "bad object key, profile not found or external object.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+set_orbfield_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB}| P], OrberDef) ->
+ [RecName, Version, Host, IIOP_port, ObjectKey | Rest] = tuple_to_list(PB),
+ case ObjectKey of
+ {Id, Type, Key, Priv, _, Flags} ->
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=list_to_tuple([RecName,
+ Version, Host,
+ IIOP_port,
+ {Id, Type, Key, Priv, OrberDef, Flags}|
+ Rest])} |
+ set_orbfield_1(P, OrberDef)];
+ _ ->
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB} | set_orbfield_1(P, OrberDef)]
+ end;
+set_orbfield_1([PB| P], OrberDef) ->
+ [PB | set_orbfield_1(P, OrberDef)].
+
+%%-----------------------------------------------------------------
+%% Func: get_flagfield/1
+%%-----------------------------------------------------------------
+get_flagfield(#'IOP_IOR'{profiles=P}) ->
+ get_flagfield_1(P);
+get_flagfield({_Id, _Type, _Key, _UserDef, _OrberDef, Flags}) ->
+ Flags.
+
+get_flagfield_1([]) ->
+ orber:dbg("[~p] iop_ior:get_flagfield_1([]); bad object key, profile not found.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+get_flagfield_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB}|_]) ->
+ [_, _, _, _, ObjectKey | _] = tuple_to_list(PB),
+ case ObjectKey of
+ {_Id, _Type, _Key, _UserDef, _OrberDef, Flags} ->
+ Flags;
+ _ ->
+ orber:dbg("[~p] iop_ior:get_flagfield_1(~p); bad object key.",
+ [?LINE, ObjectKey], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end;
+get_flagfield_1([_| P]) ->
+ get_flagfield_1(P).
+
+%%-----------------------------------------------------------------
+%% Func: set_flagfield/2
+%%-----------------------------------------------------------------
+set_flagfield(#'IOP_IOR'{type_id=Id, profiles=P}, Flags) ->
+ #'IOP_IOR'{type_id=Id, profiles=set_flagfield_1(P, Flags)};
+set_flagfield({Id, Type, Key, Priv, OrberDef, _}, Flags) ->
+ {Id, Type, Key, Priv, OrberDef, Flags}.
+
+set_flagfield_1([], _) ->
+ orber:dbg("[~p] iop_ior:set_flagfield_1([]); bad object key, profile not found or external object.",
+ [?LINE], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO});
+set_flagfield_1([#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB}| P], Flags) ->
+ [RecName, Version, Host, IIOP_port, ObjectKey | Rest] = tuple_to_list(PB),
+ case ObjectKey of
+ {Id, Type, Key, Priv, OrberDef, _} ->
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP,
+ profile_data=list_to_tuple([RecName,
+ Version, Host,
+ IIOP_port,
+ {Id, Type, Key, Priv, OrberDef, Flags}|
+ Rest])} |
+ set_flagfield_1(P, Flags)];
+ _ ->
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=PB} | set_flagfield_1(P, Flags)]
+ end;
+set_flagfield_1([PB| P], Flags) ->
+ [PB | set_flagfield_1(P, Flags)].
+
+%%-----------------------------------------------------------------
+%% Func: check_nil/1
+%%-----------------------------------------------------------------
+check_nil(#'IOP_IOR'{type_id="", profiles=[]}) ->
+ true;
+check_nil({Id, _, _, _, _, _}) when is_atom(Id) ->
+ false;
+check_nil({Id, _, _, _, _, _}) ->
+ case binary_to_list(Id) of
+ "" ->
+ true;
+ _ ->
+ false
+ end;
+check_nil(_) ->
+ false.
+
+
+
+%%----------------------------------------------------------------------
+%% Function : print
+%% Arguments : An object represented as one of the following:
+%% - local (tuple)
+%% - IOR
+%% - stringified IOR
+%% - corbaloc- or corbaname-schema
+%% IoDevice - the same as the io-module defines.
+%% Returns :
+%% Description: Prints the object's components.
+%%----------------------------------------------------------------------
+print(Object) ->
+ print(undefined, Object).
+print(IoDevice, #'IOP_IOR'{type_id="", profiles=[]}) ->
+ print_it(IoDevice,
+ "================== IOR ====================~n"
+ "NIL Object Reference.~n"
+ "================== END ====================~n");
+print(IoDevice, IORStr) when is_list(IORStr) ->
+ IOR = corba:string_to_object(IORStr),
+ print_helper(IoDevice, IOR);
+print(IoDevice, IOR) when is_record(IOR, 'IOP_IOR') ->
+ print_helper(IoDevice, IOR);
+print(IoDevice, {Mod, Type, Key, UserDef, OrberDef, Flags}) ->
+ EnvFlags = orber:get_flags(),
+ MC = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_EXCLUDE_CODESET_COMPONENT) of
+ true ->
+ [];
+ false ->
+ [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=?DEFAULT_CODESETS}]
+ end,
+ IOR = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ create(orber:giop_version(), Mod:typeID(), orber:host(),
+ orber:iiop_port(), orber:iiop_ssl_port(),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags);
+ true ->
+ create(orber:giop_version(), Mod:typeID(), orber:nat_host(),
+ orber:nat_iiop_port(), orber:nat_iiop_ssl_port(),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags)
+
+ end,
+ print_helper(IoDevice, IOR);
+print(_, _) ->
+ exit("Bad parameter").
+
+print_helper(IoDevice, #'IOP_IOR'{type_id=TypeID, profiles=Profs}) ->
+ Data = io_lib:format("================== IOR ====================~n"
+ "------------------ IFR ID -----------------~n~s~n",
+ [TypeID]),
+ NewData = print_profiles(Profs, []),
+ print_it(IoDevice, lists:flatten([Data|NewData])).
+
+print_profiles([], Acc) ->
+ lists:flatten([Acc | io_lib:format("================== END ====================~n", [])]);
+print_profiles([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data = #'IIOP_ProfileBody_1_0'{iiop_version=
+ #'IIOP_Version'{major=Major,
+ minor=Minor},
+ host=Host, port=Port,
+ object_key=Objkey}}|T], Acc) ->
+ Profile = io_lib:format("~n------------------ IIOP Profile -----------~n"
+ "Version.............: ~p.~p~n"
+ "Host................: ~s~n"
+ "Port................: ~p~n",
+ [Major, Minor, Host, Port]),
+ ObjKeyStr = print_objkey(Objkey),
+ print_profiles(T, [Profile, ObjKeyStr | Acc]);
+print_profiles([#'IOP_TaggedProfile'
+ {tag=?TAG_INTERNET_IOP,
+ profile_data = #'IIOP_ProfileBody_1_1'{iiop_version=
+ #'IIOP_Version'{major=Major,
+ minor=Minor},
+ host=Host,
+ port=Port,
+ object_key=Objkey,
+ components=Components}}|T], Acc) ->
+ Profile = io_lib:format("~n------------------ IIOP Profile -----------~n"
+ "Version.............: ~p.~p~n"
+ "Host................: ~s~n"
+ "Port................: ~p~n",
+ [Major, Minor, Host, Port]),
+ ComponentsStr = print_components(Components, []),
+ ObjKeyStr = print_objkey(Objkey),
+ print_profiles(T, [Profile, ObjKeyStr, ComponentsStr |Acc]);
+print_profiles([#'IOP_TaggedProfile'{tag=?TAG_MULTIPLE_COMPONENTS,
+ profile_data = Components}|T], Acc) ->
+ MComp = io_lib:format("~n------------------ Multiple Components ----~n", []),
+ ComponentsStr = print_components(Components, []),
+ print_profiles(T, [MComp, ComponentsStr | Acc]);
+print_profiles([#'IOP_TaggedProfile'{tag=?TAG_SCCP_IOP,
+ profile_data = _Data}|T], Acc) ->
+ SCCP = io_lib:format("~n------------------ SCCP IOP ---------------~n", []),
+ print_profiles(T, [SCCP | Acc]);
+print_profiles([#'IOP_TaggedProfile'{tag=Tag,
+ profile_data = Data}|T], Acc) ->
+ TAG = io_lib:format("~n------------------ TAG ~p -----------------~n"
+ "Data................: ~p~n", [Tag, Data]),
+ print_profiles(T, [TAG|Acc]).
+
+print_components([], Data) -> lists:flatten(lists:reverse(Data));
+print_components([#'IOP_TaggedComponent'{tag=?TAG_ORB_TYPE,
+ component_data=ORB}|T], Data) ->
+ OType = io_lib:format(" TAG_ORB_TYPE~n"
+ "ORB Type............: ~p~n", [ORB]),
+ print_components(T, [OType | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=
+ #'CONV_FRAME_CodeSetComponentInfo'
+ {'ForCharData' = Char,
+ 'ForWcharData' = Wchar}}|T], Data) ->
+ CharSet = io_lib:format(" TAG_CODE_SETS~n"
+ "Native Char.........: ~p~n"
+ "Char Conversion.....: ~p~n"
+ "Native Wchar........: ~p~n"
+ "Wchar Conversion....: ~p~n",
+ [Char#'CONV_FRAME_CodeSetComponent'.native_code_set,
+ Char#'CONV_FRAME_CodeSetComponent'.conversion_code_sets,
+ Wchar#'CONV_FRAME_CodeSetComponent'.native_code_set,
+ Wchar#'CONV_FRAME_CodeSetComponent'.conversion_code_sets]),
+ print_components(T, [CharSet | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data=#'ALTERNATE_IIOP_ADDRESS'
+ {'HostID'=Host, 'Port'=Port}}|T], Data) ->
+ AltAddr = io_lib:format(" TAG_ALTERNATE_IIOP_ADDRESS~n"
+ "Alternate Address...: ~s:~p~n", [Host, Port]),
+ print_components(T, [AltAddr | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_SSL_SEC_TRANS,
+ component_data=#'SSLIOP_SSL'
+ {target_supports=Supports,
+ target_requires=Requires,
+ port=Port}}|T], Data) ->
+ SSL = io_lib:format(" TAG_SSL_SEC_TRANS~n"
+ "SSL Port............: ~p~n"
+ "SSL Requires........: ~p~n"
+ "SSL Supports........: ~p~n", [Port, Requires, Supports]),
+ print_components(T, [SSL | Data]);
+%% Fault Tolerant Components
+print_components([#'IOP_TaggedComponent'{tag=?TAG_FT_GROUP,
+ component_data=#'FT_TagFTGroupTaggedComponent'
+ {version = Version,
+ ft_domain_id = DomainId,
+ object_group_id = ObjectGroupId,
+ object_group_ref_version = ObjGrRefVer}}|T], Data) ->
+ Comp = io_lib:format(" TAG_FT_GROUP~n"
+ "Version.............: ~p~n"
+ "Domain Id...........: ~p~n"
+ "Obj Group Id........: ~p~n"
+ "Obj Group Ref Ver...: ~p~n",
+ [Version, DomainId, ObjectGroupId, ObjGrRefVer]),
+ print_components(T, [Comp | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_FT_PRIMARY,
+ component_data=#'FT_TagFTPrimaryTaggedComponent'
+ {primary = Primary}}|T], Data) ->
+ Comp = io_lib:format(" TAG_FT_PRIMARY~n"
+ "Primary.............: ~p~n", [Primary]),
+ print_components(T, [Comp | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_FT_HEARTBEAT_ENABLED,
+ component_data=#'FT_TagFTHeartbeatEnabledTaggedComponent'
+ {heartbeat_enabled = HBE}}|T], Data) ->
+ Comp = io_lib:format(" TAG_FT_HEARTBEAT_ENABLED~n"
+ "Heart Beat Enabled..: ~p~n", [HBE]),
+ print_components(T, [Comp | Data]);
+%% Security - CSIIOP
+print_components([#'IOP_TaggedComponent'{tag=?TAG_CSI_SEC_MECH_LIST,
+ component_data=#'CSIIOP_CompoundSecMechList'
+ {stateful=Stateful,
+ mechanism_list = MechList}}|T], Data) ->
+ Comp = io_lib:format(" TAG_CSI_SEC_MECH_LIST~n"
+ "Stateful............: ~p~n"
+ "Mechanisms..........: ~p~n", [Stateful, MechList]),
+ print_components(T, [Comp | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_TLS_SEC_TRANS,
+ component_data=#'CSIIOP_TLS_SEC_TRANS'
+ {target_supports = TargetS,
+ target_requires = TargetR,
+ addresses = Addresses}}|T], Data) ->
+ Comp = io_lib:format(" TAG_TLS_SEC_TRANS~n"
+ "Target Supports.....: ~p~n"
+ "Target Requires.....: ~p~n"
+ "Addresses...........: ~p~n",
+ [TargetS, TargetR, Addresses]),
+ print_components(T, [Comp | Data]);
+print_components([#'IOP_TaggedComponent'{tag=?TAG_SECIOP_SEC_TRANS,
+ component_data=#'CSIIOP_SECIOP_SEC_TRANS'
+ {target_supports = TargetS,
+ target_requires = TargetR,
+ mech_oid = MechOID,
+ target_name = TargetName,
+ addresses = Addresses}}|T], Data) ->
+ Comp = io_lib:format(" TAG_SECIOP_SEC_TRANS~n"
+ "Target Supports.....: ~p~n"
+ "Target Requires.....: ~p~n"
+ "Mechanism OID.......: ~p~n"
+ "Target Name.........: ~p~n"
+ "Addresses...........: ~p~n",
+ [TargetS, TargetR, MechOID, TargetName, Addresses]),
+ print_components(T, [Comp | Data]);
+%% Unused components.
+print_components([#'IOP_TaggedComponent'{tag=TAG,
+ component_data=CData}|T], Data) ->
+ Unused = io_lib:format("Unused Component....: ~s~n", [match_tag(TAG)]),
+ Octets = print_octets(CData, [], 1, []),
+ print_components(T, [lists:flatten([Unused | Octets])| Data]).
+
+
+print_objkey(Objkey) when is_tuple(Objkey) ->
+ io_lib:format("Local Object........:~n~p~n", [Objkey]);
+print_objkey(Objkey) ->
+ Hdr = io_lib:format("External Object.....: ~n", []),
+ Octets = print_octets(Objkey, [], 1, []),
+ lists:flatten([Hdr | Octets]).
+
+print_octets([], [], _, Data) ->
+ lists:reverse(Data);
+print_octets([], Acc, C, Data) ->
+ Filling = lists:duplicate((4*(9-C)), 32),
+ FData = io_lib:format("~s", [Filling]),
+ Rest = io_lib:format(" ~p~n", [lists:reverse(Acc)]),
+ [lists:reverse(Data), FData | Rest];
+print_octets([H|T], Acc, 8, Data) when H > 31 , H < 127 ->
+ D1 = io_lib:format("~4w", [H]),
+ D2 = io_lib:format(" ~p~n", [lists:reverse([H|Acc])]),
+ print_octets(T, [], 1, [D2, D1 | Data]);
+print_octets([H|T], Acc, 1, Data) when H > 31 , H < 127 ->
+ D1 = io_lib:format("~3w", [H]),
+ print_octets(T, [H|Acc], 2, [D1 | Data]);
+print_octets([H|T], Acc, C, Data) when H > 31 , H < 127 ->
+ D1 = io_lib:format("~4w", [H]),
+ print_octets(T, [H|Acc], C+1, [D1 | Data]);
+print_octets([H|T], Acc, 8, Data) ->
+ D1 = io_lib:format("~4w", [H]),
+ D2 = io_lib:format(" ~p~n", [lists:reverse([$.|Acc])]),
+ print_octets(T, [], 1, [D2, D1 | Data]);
+print_octets([H|T], Acc, 1, Data) ->
+ D1 = io_lib:format("~3w", [H]),
+ print_octets(T, [$.|Acc], 2, [D1|Data]);
+print_octets([H|T], Acc, C, Data) ->
+ D1 = io_lib:format("~4w", [H]),
+ print_octets(T, [$.|Acc], C+1, [D1|Data]).
+
+print_it(undefined, Data) ->
+ io:format(Data);
+print_it(error_report, Data) ->
+ error_logger:error_report(Data);
+print_it(info_msg, Data) ->
+ error_logger:info_msg(Data);
+print_it(string, Data) ->
+ lists:flatten(Data);
+print_it({error_report, Msg}, Data) ->
+ error_logger:error_report(io_lib:format("================== Reason =================~n~s~n~s",
+ [Msg, Data]));
+print_it({info_msg, Msg}, Data) ->
+ error_logger:info_msg(io_lib:format("================== Comment ================~n~s~n~s",
+ [Msg, Data]));
+print_it(IoDevice, Data) ->
+ io:format(IoDevice, Data, []).
+
+match_tag(?TAG_ORB_TYPE) -> ?TAG_ORB_TYPE_STR;
+match_tag(?TAG_CODE_SETS) -> ?TAG_CODE_SETS_STR;
+match_tag(?TAG_POLICIES) -> ?TAG_POLICIES_STR;
+match_tag(?TAG_ALTERNATE_IIOP_ADDRESS) -> ?TAG_ALTERNATE_IIOP_ADDRESS_STR;
+match_tag(?TAG_COMPLETE_OBJECT_KEY) -> ?TAG_COMPLETE_OBJECT_KEY_STR;
+match_tag(?TAG_ENDPOINT_ID_POSITION) -> ?TAG_ENDPOINT_ID_POSITION_STR;
+match_tag(?TAG_LOCATION_POLICY) -> ?TAG_LOCATION_POLICY_STR;
+match_tag(?TAG_ASSOCIATION_OPTIONS) -> ?TAG_ASSOCIATION_OPTIONS_STR;
+match_tag(?TAG_SEC_NAME) -> ?TAG_SEC_NAME_STR;
+match_tag(?TAG_SPKM_1_SEC_MECH) -> ?TAG_SPKM_1_SEC_MECH_STR;
+match_tag(?TAG_SPKM_2_SEC_MECH) -> ?TAG_SPKM_2_SEC_MECH_STR;
+match_tag(?TAG_KerberosV5_SEC_MECH) -> ?TAG_KerberosV5_SEC_MECH_STR;
+match_tag(?TAG_CSI_ECMA_Secret_SEC_MECH) -> ?TAG_CSI_ECMA_Secret_SEC_MECH_STR;
+match_tag(?TAG_CSI_ECMA_Hybrid_SEC_MECH) -> ?TAG_CSI_ECMA_Hybrid_SEC_MECH_STR;
+match_tag(?TAG_SSL_SEC_TRANS) -> ?TAG_SSL_SEC_TRANS_STR;
+match_tag(?TAG_CSI_ECMA_Public_SEC_MECH) -> ?TAG_CSI_ECMA_Public_SEC_MECH_STR;
+match_tag(?TAG_GENERIC_SEC_MECH) -> ?TAG_GENERIC_SEC_MECH_STR;
+match_tag(?TAG_FIREWALL_TRANS) -> ?TAG_FIREWALL_TRANS_STR;
+match_tag(?TAG_SCCP_CONTACT_INFO) -> ?TAG_SCCP_CONTACT_INFO_STR;
+match_tag(?TAG_JAVA_CODEBASE) -> ?TAG_JAVA_CODEBASE_STR;
+match_tag(?TAG_TRANSACTION_POLICY) -> ?TAG_TRANSACTION_POLICY_STR;
+match_tag(?TAG_FT_GROUP) -> ?TAG_FT_GROUP_STR;
+match_tag(?TAG_FT_PRIMARY) -> ?TAG_FT_PRIMARY_STR;
+match_tag(?TAG_FT_HEARTBEAT_ENABLED) -> ?TAG_FT_HEARTBEAT_ENABLED_STR;
+match_tag(?TAG_MESSAGE_ROUTERS) -> ?TAG_MESSAGE_ROUTERS_STR;
+match_tag(?TAG_OTS_POLICY) -> ?TAG_OTS_POLICY_STR;
+match_tag(?TAG_INV_POLICY) -> ?TAG_INV_POLICY_STR;
+match_tag(?TAG_CSI_SEC_MECH_LIST) -> ?TAG_CSI_SEC_MECH_LIST_STR;
+match_tag(?TAG_NULL_TAG) -> ?TAG_NULL_TAG_STR;
+match_tag(?TAG_SECIOP_SEC_TRANS) -> ?TAG_SECIOP_SEC_TRANS_STR;
+match_tag(?TAG_TLS_SEC_TRANS) -> ?TAG_TLS_SEC_TRANS_STR;
+match_tag(?TAG_DCE_STRING_BINDING) -> ?TAG_DCE_STRING_BINDING_STR;
+match_tag(?TAG_DCE_BINDING_NAME) -> ?TAG_DCE_BINDING_NAME_STR;
+match_tag(?TAG_DCE_NO_PIPES) -> ?TAG_DCE_NO_PIPES_STR;
+match_tag(?TAG_DCE_SEC_MECH) -> ?TAG_DCE_SEC_MECH_STR;
+match_tag(?TAG_INET_SEC_TRANS) -> ?TAG_INET_SEC_TRANS_STR;
+match_tag(Tag) -> integer_to_list(Tag).
+
+%%-----------------------------------------------------------------
+%% Func: string_code/1
+%%-----------------------------------------------------------------
+string_code(IOR) ->
+ Flags = orber:get_flags(),
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ string_code(IOR, Flags, orber:host(),
+ orber:iiop_port(), orber:iiop_ssl_port());
+ true ->
+ string_code(IOR, Flags, orber:nat_host(),
+ orber:nat_iiop_port(), orber:nat_iiop_ssl_port())
+ end.
+
+string_code(IOR, Host) ->
+ Flags = orber:get_flags(),
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ string_code(IOR, Flags, Host,
+ orber:iiop_port(), orber:iiop_ssl_port());
+ true ->
+ string_code(IOR, Flags, Host,
+ orber:nat_iiop_port(), orber:nat_iiop_ssl_port())
+ end.
+
+string_code(IOR, Host, Port) ->
+ Flags = orber:get_flags(),
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ string_code(IOR, Flags, Host, Port, orber:iiop_ssl_port());
+ true ->
+ string_code(IOR, Flags, Host, Port, orber:nat_iiop_ssl_port())
+ end.
+
+string_code(IOR, Host, Port, SSLPort) ->
+ string_code(IOR, orber:get_flags(), Host, Port, SSLPort).
+
+string_code(IOR, Flags, IP, Port, SSLPort) ->
+ Env = #giop_env{version = orber:giop_version(),
+ flags = Flags, host = IP, iiop_port = Port,
+ iiop_ssl_port = SSLPort, domain = orber:domain(),
+ partial_security = orber:partial_security()},
+ {IorByteSeq0, Length0} = cdr_encode:enc_type('tk_octet', Env, 0, [], 0),
+ {IorByteSeq, _} = code(Env, IOR, IorByteSeq0, Length0),
+ IorByteSeq1 = binary_to_list(list_to_binary(lists:reverse(IorByteSeq))),
+ IorHexSeq = bytestring_to_hexstring(IorByteSeq1),
+ [$I,$O,$R,$: | IorHexSeq].
+
+%%-----------------------------------------------------------------
+%% Func: code/3
+%%-----------------------------------------------------------------
+code(#giop_env{version = Version} = Env, #'IOP_IOR'{type_id=TypeId, profiles=Profiles}, Bytes, Len) ->
+ ProfileSeq =code_profile_datas(Version, Profiles),
+ %% Byte order
+ cdr_encode:enc_type(?IOR_TYPEDEF,
+ Env,
+ #'IOP_IOR'{type_id=TypeId, profiles=ProfileSeq},
+ Bytes, Len);
+%% No Local Interface supplied. Use configuration parameters.
+code(#giop_env{version = Version, host = 0, flags = EnvFlags} = Env,
+ {Mod, Type, Key, UserDef, OrberDef, Flags}, Bytes, Len) ->
+ MC = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_EXCLUDE_CODESET_COMPONENT) of
+ true ->
+ [];
+ false ->
+ [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=?DEFAULT_CODESETS}]
+ end,
+ IOR = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ create(Version, Mod:typeID(), orber_env:host(),
+ orber_env:iiop_port(), orber_env:iiop_ssl_port(),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags);
+ true ->
+ create(Version, Mod:typeID(), orber_env:nat_host(),
+ orber_env:nat_iiop_port(), orber_env:nat_iiop_ssl_port(),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags)
+
+ end,
+ code(Env, IOR, Bytes, Len);
+code(#giop_env{version = Version, host = Host, iiop_port = IIOPort,
+ iiop_ssl_port = SSLPort, flags = EnvFlags} = Env,
+ {Mod, Type, Key, UserDef, OrberDef, Flags}, Bytes, Len) ->
+ MC = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_EXCLUDE_CODESET_COMPONENT) of
+ true ->
+ [];
+ false ->
+ [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=?DEFAULT_CODESETS}]
+ end,
+ IOR = case ?ORB_FLAG_TEST(EnvFlags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ create(Version, Mod:typeID(), Host, check_port(IIOPort, normal),
+ check_port(SSLPort, ssl),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags);
+ true ->
+ create(Version, Mod:typeID(), orber_env:nat_host(Host),
+ orber_env:nat_iiop_port(check_port(IIOPort, normal)),
+ orber_env:nat_iiop_ssl_port(check_port(SSLPort, ssl)),
+ {Mod, Type, Key, UserDef, OrberDef, Flags},
+ MC, Flags, EnvFlags)
+ end,
+ code(Env, IOR, Bytes, Len).
+
+check_port(Port, _Type) when is_integer(Port) ->
+ Port;
+check_port(_, normal) ->
+ orber:iiop_port();
+check_port(_, ssl) ->
+ orber:iiop_ssl_port().
+
+code_profile_datas(_, []) ->
+ [];
+code_profile_datas(Version, [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=P} | Profiles]) ->
+ NewBytes = list_to_binary(code_profile_data(Version, P)),
+ [#'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=NewBytes} |
+ code_profile_datas(Version, Profiles)];
+%% Multiple Components
+code_profile_datas(Version, [#'IOP_TaggedProfile'{tag=?TAG_MULTIPLE_COMPONENTS,
+ profile_data=P} | Profiles]) ->
+ Comps= code_comp(Version, P, []),
+ {Bytes, Length} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Length1} = cdr_encode:enc_type(?IOP_TAGGEDCOMPONENT_SEQ, Version, Comps, Bytes, Length),
+ Profs = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ [#'IOP_TaggedProfile'{tag=?TAG_MULTIPLE_COMPONENTS,
+ profile_data=Profs}| code_profile_datas(Version, Profiles)];
+code_profile_datas(Version, [#'IOP_TaggedProfile'{tag=N, profile_data=P} | Profiles]) ->
+ [#'IOP_TaggedProfile'{tag=N, profile_data=P} | code_profile_datas(Version, Profiles)];
+code_profile_datas(_, Data) ->
+ orber:dbg("[~p] iop_ior:code_profile_datas(~p); unsupported TaggedProfile.",
+ [?LINE, Data], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+code_profile_data(Version, ProfileData) ->
+ [RecTag, V, H, P, O |Rest] = tuple_to_list(ProfileData),
+ {Bytes, Length} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, Length1} = cdr_encode:enc_type(?IIOP_VERSION, Version, V, Bytes, Length),
+ {Bytes2, Length2} = cdr_encode:enc_type({'tk_string', 0}, Version,
+ H, Bytes1, Length1),
+ {Bytes3, Length3} = cdr_encode:enc_type('tk_ushort', Version, P, Bytes2, Length2),
+ {Bytes4, Length4} = cdr_encode:enc_type({'tk_sequence', 'tk_octet', 0}, Version,
+ corba:objkey_to_string(O), Bytes3, Length3),
+ {Bytes5, _Length5} = code_profile_data_1(Version, RecTag, Rest, Bytes4, Length4),
+ Bytes6 = lists:reverse(Bytes5),
+ lists:flatten(Bytes6).
+
+code_profile_data_1(_Version, 'IIOP_ProfileBody_1_0', [], Bytes, Length) ->
+ {Bytes, Length};
+code_profile_data_1(Version, 'IIOP_ProfileBody_1_1', [TaggedComponentSeq], Bytes, Length) ->
+ Comps = code_comp(Version, TaggedComponentSeq, []),
+ cdr_encode:enc_type(?IOP_TAGGEDCOMPONENT_SEQ, Version, Comps, Bytes, Length);
+code_profile_data_1(_,V,S,_,_) ->
+ orber:dbg("[~p] iop_ior:code_profile_datas(~p, ~p); probably unsupported IIOP-version",
+ [?LINE, V, S], ?DEBUG_LEVEL),
+ corba:raise(#'NO_IMPLEMENT'{completion_status=?COMPLETED_NO}).
+
+code_comp(_Version, [], CompData) ->
+ CompData;
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=CodeSet}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?CONV_FRAME_CODESETCOMPONENTINFO, Version,
+ CodeSet, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_ORB_TYPE,
+ component_data=ORBType}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?ORB_TYPE, Version,
+ ORBType, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_ORB_TYPE,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data=AltAddr}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?ALTERNATE_IIOP_ADDRESS, Version,
+ AltAddr, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_SSL_SEC_TRANS,
+ component_data=SSLStruct}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?SSLIOP_SSL, Version,
+ SSLStruct, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_SSL_SEC_TRANS,
+ component_data=Bytes}|CompData]);
+%% Fault Tolerant Components
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_FT_GROUP,
+ component_data=Data}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?FT_TagFTGroupTaggedComponent, Version,
+ Data, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_FT_GROUP,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_FT_PRIMARY,
+ component_data=Data}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?FT_TagFTPrimaryTaggedComponent, Version,
+ Data, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_FT_PRIMARY,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_FT_HEARTBEAT_ENABLED,
+ component_data=Data}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?FT_TagFTHeartbeatEnabledTaggedComponent, Version,
+ Data, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_FT_HEARTBEAT_ENABLED,
+ component_data=Bytes}|CompData]);
+%% Security - CSIIOP
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_CSI_SEC_MECH_LIST,
+ component_data=Data}|Comps], CompData) ->
+ NewData = Data#'CSIIOP_CompoundSecMechList'
+ {mechanism_list = code_sec_mech(Version,
+ Data#'CSIIOP_CompoundSecMechList'.mechanism_list,
+ [])},
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?CSIIOP_CompoundSecMechList, Version,
+ NewData, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_CSI_SEC_MECH_LIST,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_TLS_SEC_TRANS,
+ component_data=Data}|Comps],
+ CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?CSIIOP_TLS_SEC_TRANS, Version,
+ Data, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_TLS_SEC_TRANS,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_SECIOP_SEC_TRANS,
+ component_data=Data}|Comps], CompData) ->
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type(?CSIIOP_SECIOP_SEC_TRANS, Version,
+ Data, Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_SECIOP_SEC_TRANS,
+ component_data=Bytes}|CompData]);
+code_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_NULL_TAG}|Comps], CompData) ->
+ %% The body of the TAG_NULL_TAG component is a sequence of octets of
+ %% length 0.
+ {Bytes0, Len0} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes1, _Len1} = cdr_encode:enc_type({'tk_sequence', 'tk_octet', 0}, Version,
+ [], Bytes0, Len0),
+ Bytes = binary_to_list(list_to_binary(lists:reverse(Bytes1))),
+ code_comp(Version, Comps, [#'IOP_TaggedComponent'{tag=?TAG_NULL_TAG,
+ component_data=Bytes}|CompData]);
+%% Unsupported/not used component.
+code_comp(Version, [C|Comps], CompData) ->
+ code_comp(Version, Comps, [C|CompData]).
+
+
+code_sec_mech(_, [], Acc) ->
+ %% We must preserver the order!!
+ lists:reverse(Acc);
+code_sec_mech(Version, [#'CSIIOP_CompoundSecMech'{transport_mech = TagComp} = CSM|T],
+ Acc) ->
+ [EncTagComp] = code_comp(Version, [TagComp], []),
+ code_sec_mech(Version, T, [CSM#'CSIIOP_CompoundSecMech'
+ {transport_mech = EncTagComp}|Acc]).
+
+
+%%-----------------------------------------------------------------
+%% Func: string_decode/1
+%%-----------------------------------------------------------------
+string_decode([$I,$O,$R,$: | IorHexSeq]) ->
+ Version = orber:giop_version(),
+ IorByteSeq = list_to_binary(hexstring_to_bytestring(IorHexSeq)),
+ {ByteOrder, IorRest} = cdr_decode:dec_byte_order(IorByteSeq),
+ decode(Version, IorRest, 1, ByteOrder);
+string_decode([$i,$o,$r,$: | IorHexSeq]) ->
+ Version = orber:giop_version(),
+ IorByteSeq = list_to_binary(hexstring_to_bytestring(IorHexSeq)),
+ {ByteOrder, IorRest} = cdr_decode:dec_byte_order(IorByteSeq),
+ decode(Version, IorRest, 1, ByteOrder);
+string_decode(What) ->
+ orber:dbg("[~p] iop_ior:string_decode(~p); Should be IOR:.. or ior:..",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Func: decode/3
+%%-----------------------------------------------------------------
+decode(Version, IorByteSeq, Len, ByteOrder) ->
+ {#'IOP_IOR'{type_id=TypeId, profiles=Profiles}, Rest, Length} =
+ cdr_decode:dec_type(?IOR_TYPEDEF, Version, IorByteSeq, Len, ByteOrder),
+ L = decode_profiles(Version, Profiles),
+ {#'IOP_IOR'{type_id=TypeId, profiles=L}, Rest, Length}.
+
+decode_profiles(_, []) ->
+ [];
+decode_profiles(Version, [P | Profiles]) ->
+ Struct = decode_profile(Version, P),
+ L = decode_profiles(Version, Profiles),
+ [Struct | L].
+
+decode_profile(Version, #'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=ProfileData}) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(list_to_binary(ProfileData)),
+ Length = 1,
+ {V, Rest1, Length1} = cdr_decode:dec_type(?IIOP_VERSION, Version, Rest, Length,
+ ByteOrder),
+ {H, Rest2, Length2} = cdr_decode:dec_type({'tk_string', 0}, Version, Rest1, Length1,
+ ByteOrder),
+ {P, Rest3, Length3} = cdr_decode:dec_type('tk_ushort', Version, Rest2, Length2,
+ ByteOrder),
+ {ObjKey, Rest4, Length4} = cdr_decode:dec_type({'tk_sequence', 'tk_octet', 0},
+ Version, Rest3, Length3,
+ ByteOrder),
+ Struct = decode_profile_1(V, H, P, ObjKey, Version, Rest4, Length4, ByteOrder),
+ #'IOP_TaggedProfile'{tag=?TAG_INTERNET_IOP, profile_data=Struct};
+%% Multiple Components
+decode_profile(Version, #'IOP_TaggedProfile'{tag=?TAG_MULTIPLE_COMPONENTS,
+ profile_data=ProfileData}) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(list_to_binary(ProfileData)),
+ {Components, <<>>, _Length1} =cdr_decode:dec_type(?IOP_TAGGEDCOMPONENT_SEQ, Version, Rest, 1, ByteOrder),
+ CompData = decode_comp(Version, Components, []),
+ #'IOP_TaggedProfile'{tag=?TAG_MULTIPLE_COMPONENTS, profile_data=CompData};
+decode_profile(_, #'IOP_TaggedProfile'{tag=N, profile_data=ProfileData}) ->
+ #'IOP_TaggedProfile'{tag=N, profile_data=ProfileData};
+decode_profile(_, Data) ->
+ orber:dbg("[~p] iop_ior:decode_profile(~p); unsupported TaggedProfile.",
+ [?LINE, Data], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+decode_profile_1(#'IIOP_Version'{major=1, minor=0}, H, P, ObjKey, _Version, _Rest, _Length, _ByteOrder) ->
+ #'IIOP_ProfileBody_1_0'{iiop_version=#'IIOP_Version'{major=1,
+ minor=0},
+ host=H, port=P,
+ object_key=corba:string_to_objkey(ObjKey)};
+decode_profile_1(#'IIOP_Version'{major=1, minor=1}, H, P, ObjKey, Version, Rest, Length, ByteOrder) ->
+ {Components, <<>>, _Length1} =cdr_decode:dec_type(?IOP_TAGGEDCOMPONENT_SEQ, Version, Rest, Length, ByteOrder),
+ CompData = decode_comp(Version, Components, []),
+ #'IIOP_ProfileBody_1_1'{iiop_version=#'IIOP_Version'{major=1,
+ minor=1},
+ host=H, port=P,
+ object_key=corba:string_to_objkey(ObjKey),
+ components=CompData};
+decode_profile_1(#'IIOP_Version'{major=1, minor=2}, H, P, ObjKey, Version, Rest, Length, ByteOrder) ->
+ {Components, <<>>, _Length1} =cdr_decode:dec_type(?IOP_TAGGEDCOMPONENT_SEQ, Version, Rest, Length, ByteOrder),
+ CompData = decode_comp(Version, Components, []),
+ #'IIOP_ProfileBody_1_1'{iiop_version=#'IIOP_Version'{major=1,
+ minor=2},
+ host=H, port=P,
+ object_key=corba:string_to_objkey(ObjKey),
+ components=CompData};
+decode_profile_1(V, _, _, _, _, _, _,_) ->
+ orber:dbg("[~p] iop_ior:decode_profile_1(~p); probably unsupported IIOP-version.",
+ [?LINE, V], ?DEBUG_LEVEL),
+ corba:raise(#'NO_IMPLEMENT'{completion_status=?COMPLETED_NO}).
+
+decode_comp(_Version, [], Components) ->
+ Components;
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=Bytes}|Comps],
+ Components) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(list_to_binary(Bytes)),
+ {CodeSet, _, _} = cdr_decode:dec_type(?CONV_FRAME_CODESETCOMPONENTINFO,
+ Version, Rest, 1, ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_CODE_SETS,
+ component_data=CodeSet}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_ORB_TYPE,
+ component_data=Bytes}|Comps],
+ Components) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(list_to_binary(Bytes)),
+ {ORBType, _, _} = cdr_decode:dec_type(?ORB_TYPE,
+ Version, Rest, 1, ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_ORB_TYPE,
+ component_data=ORBType}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data=Bytes}|Comps],
+ Components) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(list_to_binary(Bytes)),
+ {AltIIOP, _, _} = cdr_decode:dec_type(?ALTERNATE_IIOP_ADDRESS,
+ Version, Rest, 1, ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_ALTERNATE_IIOP_ADDRESS,
+ component_data=AltIIOP}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_SSL_SEC_TRANS,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {SSLStruct, _Rest1, _Length1} = cdr_decode:dec_type(?SSLIOP_SSL, Version, R, 1,
+ ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_SSL_SEC_TRANS,
+ component_data=SSLStruct}|Components]);
+%% Fault Tolerant Components
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_FT_GROUP,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {DecodedData, _Rest1, _Length1} = cdr_decode:dec_type(?FT_TagFTGroupTaggedComponent, Version, R, 1,
+ ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_FT_GROUP,
+ component_data=DecodedData}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_FT_PRIMARY,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {DecodedData, _Rest1, _Length1} = cdr_decode:dec_type(?FT_TagFTPrimaryTaggedComponent, Version, R, 1,
+ ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_FT_PRIMARY,
+ component_data=DecodedData}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_FT_HEARTBEAT_ENABLED,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {DecodedData, _Rest1, _Length1} = cdr_decode:dec_type(?FT_TagFTHeartbeatEnabledTaggedComponent, Version, R, 1,
+ ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_FT_HEARTBEAT_ENABLED,
+ component_data=DecodedData}|Components]);
+%% Security - CSIIOP
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_CSI_SEC_MECH_LIST,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {DecodedData, _Rest1, _Length1} = cdr_decode:dec_type(?CSIIOP_CompoundSecMechList, Version, R, 1,
+ ByteOrder),
+ NewDecodedData = DecodedData#'CSIIOP_CompoundSecMechList'
+ {mechanism_list = decode_sec_mech(Version,
+ DecodedData#'CSIIOP_CompoundSecMechList'.mechanism_list,
+ [])},
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_CSI_SEC_MECH_LIST,
+ component_data=NewDecodedData}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_TLS_SEC_TRANS,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {DecodedData, _Rest1, _Length1} = cdr_decode:dec_type(?CSIIOP_TLS_SEC_TRANS, Version, R, 1,
+ ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_TLS_SEC_TRANS,
+ component_data=DecodedData}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_SECIOP_SEC_TRANS,
+ component_data=Data}|Comps], Components) ->
+ {ByteOrder, R} = cdr_decode:dec_byte_order(list_to_binary(Data)),
+ {DecodedData, _Rest1, _Length1} = cdr_decode:dec_type(?CSIIOP_SECIOP_SEC_TRANS, Version, R, 1,
+ ByteOrder),
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_SECIOP_SEC_TRANS,
+ component_data=DecodedData}|Components]);
+decode_comp(Version, [#'IOP_TaggedComponent'{tag=?TAG_NULL_TAG,
+ component_data=_Data}|Comps], Components) ->
+ %% The body of the TAG_NULL_TAG component is a sequence of octets of
+ %% length 0.
+ decode_comp(Version, Comps,
+ [#'IOP_TaggedComponent'{tag=?TAG_NULL_TAG,
+ component_data=[]}|Components]);
+
+decode_comp(Version, [C|Comps], Components) ->
+ %% Not used but we cannot discard it.
+ decode_comp(Version, Comps, [C|Components]).
+
+
+decode_sec_mech(_Version, [], Acc) ->
+ %% We must preserver the order!!
+ lists:reverse(Acc);
+decode_sec_mech(Version, [#'CSIIOP_CompoundSecMech'{transport_mech = TagComp} = CSM|T],
+ Acc) ->
+ [DecTagComp] = decode_comp(Version, [TagComp], []),
+ decode_sec_mech(Version, T, [CSM#'CSIIOP_CompoundSecMech'
+ {transport_mech = DecTagComp}|Acc]).
+
+
+%%-----------------------------------------------------------------
+%% Func: hexstring_to_bytestring/1
+%%-----------------------------------------------------------------
+hexstring_to_bytestring(HexString) ->
+ ByteString = hexstring_to_bytestring(HexString, []),
+ lists:reverse(ByteString).
+
+hexstring_to_bytestring([], Acc) ->
+ Acc;
+hexstring_to_bytestring([H1, H2 |Rest], Acc) ->
+ I1 = hex_to_int(H1),
+ I2 = hex_to_int(H2),
+ I = I1 * 16 + I2,
+ Acc2 = cdrlib:enc_octet(I, Acc),
+ hexstring_to_bytestring(Rest, Acc2).
+
+
+hex_to_int(H) when H >= $a ->
+ 10 + H - $a;
+hex_to_int(H) when H >= $A ->
+ 10 + H -$A;
+hex_to_int(H) ->
+ H - $0.
+%%-----------------------------------------------------------------
+%% Func: bytestring_to_hexstring/1
+%% Args: A byte string
+%% Returns: A list of hexadecimal digits (onebyte will be represented as
+%% two hexadecimal digits).
+%%-----------------------------------------------------------------
+bytestring_to_hexstring(ByteString) ->
+ HexString = bytestring_to_hexstring(ByteString, []),
+ lists:reverse(HexString).
+
+bytestring_to_hexstring([], Acc) ->
+ Acc;
+bytestring_to_hexstring([B |Rest], Acc) ->
+ [C1, C2] = int_to_hex(B),
+ bytestring_to_hexstring(Rest,[C2, C1| Acc]).
+
+int_to_hex(B) when B < 256, B >= 0 ->
+ N1 = B div 16,
+ N2 = B rem 16,
+ [code_character(N1),
+ code_character(N2)].
+
+code_character(N) when N < 10 ->
+ $0 + N;
+code_character(N) ->
+ $a + (N - 10).
+
diff --git a/lib/orber/src/orber.app.src b/lib/orber/src/orber.app.src
new file mode 100644
index 0000000000..fe911d65a4
--- /dev/null
+++ b/lib/orber/src/orber.app.src
@@ -0,0 +1,109 @@
+{application, orber,
+ [{description, "The Erlang ORB application"},
+ {vsn, "%VSN%"},
+ {modules,
+ [
+ 'CosNaming_Binding',
+ 'CosNaming_BindingIterator',
+ 'CosNaming_BindingList',
+ 'CosNaming_BindingIterator_impl',
+ 'CosNaming_Name',
+ 'CosNaming_NameComponent',
+ 'CosNaming_NamingContext',
+ 'CosNaming_NamingContext_AlreadyBound',
+ 'CosNaming_NamingContext_CannotProceed',
+ 'CosNaming_NamingContext_InvalidName',
+ 'CosNaming_NamingContext_NotEmpty',
+ 'CosNaming_NamingContext_NotFound',
+ 'CosNaming_NamingContextExt',
+ 'CosNaming_NamingContextExt_impl',
+ 'CosNaming_NamingContextExt_InvalidAddress',
+ 'OrberApp_IFR',
+ 'OrberApp_IFR_impl',
+ 'oe_OrberIFR',
+ 'any',
+ 'cdr_decode',
+ 'cdr_encode',
+ 'cdrlib',
+ 'corba',
+ 'corba_boa',
+ 'corba_object',
+ 'erlang_pid',
+ 'erlang_port',
+ 'erlang_ref',
+ 'erlang_binary',
+ 'iop_ior',
+ 'lname',
+ 'lname_component',
+ 'oe_CORBA',
+ 'oe_cos_naming',
+ 'oe_cos_naming_ext',
+ 'oe_erlang',
+ 'orber',
+ 'orber_cosnaming_utils',
+ 'orber_ifr',
+ 'orber_ifr_aliasdef',
+ 'orber_ifr_arraydef',
+ 'orber_ifr_attributedef',
+ 'orber_ifr_constantdef',
+ 'orber_ifr_contained',
+ 'orber_ifr_container',
+ 'orber_ifr_enumdef',
+ 'orber_ifr_exceptiondef',
+ 'orber_ifr_idltype',
+ 'orber_ifr_interfacedef',
+ 'orber_ifr_irobject',
+ 'orber_ifr_moduledef',
+ 'orber_ifr_operationdef',
+ 'orber_ifr_orb',
+ 'orber_ifr_primitivedef',
+ 'orber_ifr_repository',
+ 'orber_ifr_sequencedef',
+ 'orber_ifr_stringdef',
+ 'orber_ifr_wstringdef',
+ 'orber_ifr_structdef',
+ 'orber_ifr_typecode',
+ 'orber_ifr_typedef',
+ 'orber_ifr_uniondef',
+ 'orber_ifr_fixeddef',
+ 'orber_ifr_utils',
+ 'orber_iiop',
+ 'orber_iiop_inproxy',
+ 'orber_iiop_inrequest',
+ 'orber_iiop_insup',
+ 'orber_iiop_net',
+ 'orber_iiop_net_accept',
+ 'orber_iiop_outproxy',
+ 'orber_iiop_outsup',
+ 'orber_iiop_pm',
+ 'orber_iiop_socketsup',
+ 'orber_initial_references',
+ 'orber_pi',
+ 'orber_objectkeys',
+ 'orber_request_number',
+ 'orber_socket',
+ 'orber_tc',
+ 'orber_typedefs',
+ 'orber_web',
+ 'orber_web_server',
+ 'orber_iiop_tracer',
+ 'orber_iiop_tracer_silent',
+ 'orber_iiop_tracer_stealth',
+ 'fixed',
+ 'orber_exceptions',
+ 'orber_diagnostics',
+ 'orber_acl',
+ 'orber_tb',
+ 'orber_env'
+ ]
+ },
+ {registered, [orber_sup, orber_iiop_sup, orber_iiop_net, orber_iiop_outsup,
+ orber_iiop_insup, orber_init, orber_reqno,
+ orber_objkeyserver, orber_iiop_socketsup,
+ orber_iiop_pm, orber_env]},
+ {applications, [stdlib, kernel]},
+ {env, []},
+ {mod, {orber, []}}
+]}.
+
+
diff --git a/lib/orber/src/orber.appup.src b/lib/orber/src/orber.appup.src
new file mode 100644
index 0000000000..6c3b2833b7
--- /dev/null
+++ b/lib/orber/src/orber.appup.src
@@ -0,0 +1,7 @@
+{"%VSN%",
+ [
+ ],
+ [
+ ]
+}.
+
diff --git a/lib/orber/src/orber.erl b/lib/orber/src/orber.erl
new file mode 100644
index 0000000000..e9c6822551
--- /dev/null
+++ b/lib/orber/src/orber.erl
@@ -0,0 +1,1216 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber.erl
+%%
+%% Description:
+%% This file contains the Orber application interface
+%%
+%%-----------------------------------------------------------------
+-module(orber).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/src/ifr_objects.hrl").
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/0, start/1, stop/0, install/1, install/2, orber_nodes/0, iiop_port/0,
+ domain/0, iiop_ssl_port/0, iiop_out_ports/0,
+ ssl_server_certfile/0, ssl_client_certfile/0, set_ssl_client_certfile/1,
+ ssl_server_verify/0, ssl_client_verify/0, set_ssl_client_verify/1,
+ ssl_server_depth/0, ssl_client_depth/0, set_ssl_client_depth/1,
+ ssl_server_cacertfile/0,ssl_client_cacertfile/0, set_ssl_client_cacertfile/1,
+ ssl_client_keyfile/0, ssl_client_password/0, ssl_server_keyfile/0, ssl_server_password/0,
+ ssl_client_ciphers/0, ssl_server_ciphers/0, ssl_client_cachetimeout/0, ssl_server_cachetimeout/0,
+ uninstall/0, giop_version/0, info/0, info/1, is_running/0, add_node/2,
+ remove_node/1, iiop_timeout/0, iiop_connection_timeout/0,
+ iiop_setup_connection_timeout/0, objectkeys_gc_time/0,
+ is_lightweight/0, get_lightweight_nodes/0,
+ start_lightweight/0, start_lightweight/1,
+ get_ORBDefaultInitRef/0, get_ORBInitRef/0,
+ get_interceptors/0, get_local_interceptors/0,
+ get_cached_interceptors/0, set_interceptors/1,
+ jump_start/0, jump_start/1, jump_stop/0,
+ iiop_connections/0, iiop_connections/1, iiop_connections_pending/0,
+ typechecking/0,
+ exclude_codeset_ctx/0, exclude_codeset_component/0, bidir_context/0, use_FT/0,
+ use_CSIv2/0, get_flags/0, secure/0, multi_jump_start/1, multi_jump_start/2,
+ multi_jump_start/3, get_tables/0, iiop_in_connection_timeout/0,
+ partial_security/0, nat_iiop_ssl_port/0, nat_iiop_port/0, ip_version/0,
+ light_ifr/0, iiop_max_in_requests/0, iiop_max_in_connections/0,
+ iiop_max_fragments/0, iiop_backlog/0, iiop_ssl_backlog/0,
+ find_sockname_by_peername/2, find_peername_by_sockname/2, iiop_acl/0,
+ add_listen_interface/2, add_listen_interface/3, remove_listen_interface/1,
+ reconfigure_out_connections/1,
+ reconfigure_out_connection/3, reconfigure_out_connection/4,
+ reconfigure_in_connections/1, reconfigure_in_connection/2,
+ activate_audit_trail/0, activate_audit_trail/1, deactivate_audit_trail/0,
+ iiop_ssl_ip_address_local/0, ip_address_local/0,
+ close_connection/1, close_connection/2, is_system_exception/1,
+ exception_info/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([nat_host/0, host/0, ip_address_variable_defined/0, start/2, init/1,
+ get_debug_level/0, debug_level_print/3, dbg/3, error/3,
+ configure/2, configure_override/2, multi_configure/1,
+ mjs/1, mjs/2, js/0, js/1]).
+
+%%-----------------------------------------------------------------
+%% Internal definitions
+%%-----------------------------------------------------------------
+%% Defines possible configuration parameters a user can add when,
+%% for example, installing Orber.
+-record(options, {ifr_storage_type = disc_copies,
+ install_timeout = infinity,
+ local_content = false,
+ nameservice_storage_type = ram_copies,
+ initialreferences_storage_type = ram_copies,
+ type = temporary,
+ load_order = 0}).
+
+-define(ORBER_TABS, [orber_CosNaming, orber_objkeys, orber_references]).
+
+-define(DEBUG_LEVEL, 5).
+
+-define(FORMAT(_F, _A), lists:flatten(io_lib:format(_F, _A))).
+-define(EFORMAT(_F, _A), exit(lists:flatten(io_lib:format(_F, _A)))).
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+
+jump_stop() ->
+ stop(),
+ uninstall(),
+ mnesia:stop().
+
+js() ->
+ application:load(orber),
+ jump_start([{iiop_port, iiop_port()},
+ {interceptors, {native, [orber_iiop_tracer_silent]}},
+ {orber_debug_level, 10},
+ {flags, (?ORB_ENV_LOCAL_TYPECHECKING bor get_flags())}]).
+
+js(Port) when is_integer(Port) ->
+ application:load(orber),
+ jump_start([{iiop_port, Port},
+ {interceptors, {native, [orber_iiop_tracer_silent]}},
+ {orber_debug_level, 10},
+ {flags, (?ORB_ENV_LOCAL_TYPECHECKING bor get_flags())}]).
+
+jump_start() ->
+ application:load(orber),
+ jump_start([{iiop_port, iiop_port()}]).
+
+
+jump_start(Port) when is_integer(Port) ->
+ application:load(orber),
+ jump_start([{iiop_port, Port}]);
+jump_start(Options) when is_list(Options) ->
+ application:load(orber),
+ mnesia:start(),
+ Port = case lists:keysearch(iiop_port, 1, Options) of
+ {value, {iiop_port, Value}} ->
+ Value;
+ _ ->
+ iiop_port()
+ end,
+ corba:orb_init([{iiop_port, Port}|Options]),
+ install([node()], [{ifr_storage_type, ram_copies}]),
+ start(),
+ %% We need to use this operation if Port == 0 to see what the OS
+ %% assigned.
+ NewPort = orber_env:iiop_port(),
+ Domain = orber_env:ip_address() ++ [$:|integer_to_list(NewPort)],
+ orber_env:configure_override(domain, Domain),
+ info();
+jump_start(Options) ->
+ exit({error, Options}).
+
+
+mjs(Nodes) ->
+ application:load(orber),
+ multi_js_helper(Nodes, iiop_port(),
+ [{interceptors, {native, [orber_iiop_tracer_silent]}},
+ {orber_debug_level, 10},
+ {flags, (?ORB_ENV_LOCAL_TYPECHECKING bor get_flags())}]).
+
+mjs(Nodes, Port) ->
+ application:load(orber),
+ multi_js_helper(Nodes, Port,
+ [{interceptors, {native, [orber_iiop_tracer_silent]}},
+ {orber_debug_level, 10},
+ {flags, (?ORB_ENV_LOCAL_TYPECHECKING bor get_flags())}]).
+
+
+multi_jump_start(Nodes) ->
+ application:load(orber),
+ multi_js_helper(Nodes, iiop_port(), []).
+
+multi_jump_start(Nodes, Port) ->
+ multi_js_helper(Nodes, Port, []).
+
+multi_jump_start(Nodes, Port, Options) ->
+ multi_js_helper(Nodes, Port, Options).
+
+multi_js_helper(Nodes, Port, InitOptions) when is_list(Nodes) andalso
+ is_integer(Port) andalso
+ is_list(InitOptions) ->
+ %% We MUST delete the option iiop_port.
+ Options = lists:keydelete(iiop_port, 1, InitOptions),
+ case node() of
+ nonode@nohost ->
+ {error, "The distribution is not started"};
+ _ ->
+ mnesia:start(),
+ corba:orb_init([{iiop_port, Port}|Options]),
+ install([node()], [{ifr_storage_type, ram_copies}]),
+ start(),
+ NewPort = orber_env:iiop_port(),
+ Domain = orber_env:ip_address() ++ [$:|integer_to_list(NewPort)],
+ orber_env:configure_override(domain, Domain),
+ case jump_start_slaves(Nodes, NewPort,
+ [{domain, Domain}|Options], [], []) of
+ {ok, NodeData} ->
+ info(),
+ {ok, [{node(), NewPort}|NodeData]};
+ Other ->
+ Other
+ end
+ end.
+
+jump_start_slaves([], _, _, [], NodeData) ->
+ rpc:multicall([node() | nodes()], global, sync, []),
+ {ok, NodeData};
+jump_start_slaves([], _, _, Errors, _) ->
+ {error, Errors};
+jump_start_slaves([{Host, N}|T], Port, Options, Errors, NodeData) ->
+ case create_nodes(Host, N, Port, Options, Errors, NodeData) of
+ {ok, NewNodeData} ->
+ jump_start_slaves(T, Port, Options, Errors, NewNodeData);
+ {error, NewErrors} ->
+ jump_start_slaves(T, Port, Options, NewErrors, NodeData)
+ end;
+jump_start_slaves([Host|T], Port, Options, Errors, NodeData) ->
+ case catch create_node(Host, Port+1, Options) of
+ {ok, NewNode} ->
+ jump_start_slaves(T, Port, Options, Errors, [{NewNode, Port+1}|NodeData]);
+ {error, Reason} ->
+ jump_start_slaves(T, Port, Options, [{Host, Port, Reason}|Errors],
+ NodeData);
+ Other ->
+ jump_start_slaves(T, Port, Options, [{Host, Port, Other}|Errors],
+ NodeData)
+ end.
+
+create_nodes(_, 0, _, _, [], NodeData) ->
+ {ok, NodeData};
+create_nodes(_, 0, _, _, Errors, _) ->
+ {error, Errors};
+create_nodes(Host, N, Port, Options, Errors, NodeData) ->
+ case catch create_node(Host, Port+N, Options) of
+ {ok, NewNode} ->
+ create_nodes(Host, N-1, Port, Options, Errors,
+ [{NewNode, Port+N}|NodeData]);
+ {error, Reason} ->
+ create_nodes(Host, N-1, Port, Options,
+ [{Host, Port+N, Reason}|Errors], NodeData);
+ Other ->
+ create_nodes(Host, N-1, Port, Options,
+ [{Host, Port+N, Other}|Errors], NodeData)
+ end.
+
+
+create_node(Host, Port, Options) ->
+ case slave:start_link(Host, Port) of
+ {ok, NewNode} ->
+ case net_adm:ping(NewNode) of
+ pong ->
+ ok = rpc:call(NewNode, mnesia, start, []),
+ {ok,_} = rpc:call(NewNode, mnesia, change_config, [extra_db_nodes, [node()]]),
+ ok = rpc:call(NewNode, corba, orb_init, [[{iiop_port, Port}|Options]]),
+ ok = rpc:call(NewNode, orber, add_node, [NewNode, ram_copies]),
+ {ok, NewNode};
+ _ ->
+ {error, "net_adm:ping(Node) failed"}
+ end;
+ {error, Reason} ->
+ {error, Reason}
+ end.
+
+
+start() ->
+ start(temporary).
+
+start(Type) when Type == permanent; Type == temporary ->
+ application:start(mnesia),
+ TableTest = test_tables(),
+ case lists:member(not_member, TableTest) of
+ true ->
+ exit({error,"Orber Mnesia Table(s) missing. Orber not properly installed."});
+ _->
+ try_starting(Type)
+ end.
+
+start_lightweight() ->
+ application:start(orber).
+
+start_lightweight(Nodes) when is_list(Nodes) ->
+ configure(lightweight, Nodes),
+ application:set_env(orber, lightweight, Nodes),
+ application:start(orber);
+start_lightweight(_) ->
+ exit({error,"Argument not correct; must be a list of nodes."}).
+
+stop() ->
+ application:stop(orber).
+
+
+get_tables() ->
+ case light_ifr() of
+ false ->
+ ?ifr_object_list++?ORBER_TABS;
+ true ->
+ ?ifr_light_object_list ++?ORBER_TABS
+ end.
+
+iiop_port() ->
+ orber_env:iiop_port().
+
+nat_iiop_port() ->
+ orber_env:nat_iiop_port().
+
+iiop_out_ports() ->
+ orber_env:iiop_out_ports().
+
+orber_nodes() ->
+ case catch mnesia:table_info(orber_objkeys,ram_copies) of
+ Nodes when is_list(Nodes) ->
+ Nodes;
+ _ ->
+ [node()]
+ end.
+
+domain() ->
+ orber_env:domain().
+
+
+ip_address_variable_defined() ->
+ orber_env:ip_address_variable_defined().
+
+
+nat_host() ->
+ orber_env:nat_host().
+
+host() ->
+ orber_env:host().
+
+giop_version() ->
+ orber_env:giop_version().
+
+iiop_timeout() ->
+ orber_env:iiop_timeout().
+
+iiop_connection_timeout() ->
+ orber_env:iiop_connection_timeout().
+
+iiop_setup_connection_timeout() ->
+ orber_env:iiop_setup_connection_timeout().
+
+iiop_in_connection_timeout() ->
+ orber_env:iiop_in_connection_timeout().
+
+find_peername_by_sockname(Host, Port) ->
+ orber_iiop_net:sockname2peername(Host, Port) ++
+ orber_iiop_pm:sockname2peername(Host, Port).
+
+find_sockname_by_peername(Host, Port) ->
+ orber_iiop_net:peername2sockname(Host, Port) ++
+ orber_iiop_pm:peername2sockname(Host, Port).
+
+%%----------------------------------------------------------------------
+%% Function : iiop_connections
+%% Arguments : Direction - in | out | inout
+%% Returns : Connections - [{Host, Port}] | [{Host, Port, Interface}]
+%% Host - string
+%% Port - integer
+%% Interface - string
+%% Raises :
+%% Description: List existing in- and/or out-bound connections.
+%%----------------------------------------------------------------------
+iiop_connections() ->
+ iiop_connections(inout).
+
+iiop_connections(inout) ->
+ orber_iiop_pm:list_existing_connections() ++ orber_iiop_net:connections();
+iiop_connections(in) ->
+ orber_iiop_net:connections();
+iiop_connections(out) ->
+ orber_iiop_pm:list_existing_connections().
+
+%%----------------------------------------------------------------------
+%% Function : close_connection
+%% Arguments : ObjRef - #'IOP_IOR'{} | [{Host, Port}] |
+%% Interface - string (optional)
+%% Host - string
+%% Port - integer
+%% Returns : ok | {'EXCEPTION', #'BAD_PARAM'{}}
+%% Raises :
+%% Description: Close outgoing connections.
+%%----------------------------------------------------------------------
+close_connection(ObjRef) ->
+ close_connection(ObjRef, 0).
+
+close_connection(ObjRef, Interface) when is_record(ObjRef, 'IOP_IOR') ->
+ case iop_ior:get_peerdata(ObjRef) of
+ [] ->
+ ok;
+ PeerData ->
+ orber_iiop_pm:close_connection(PeerData, Interface)
+ end;
+close_connection(PeerData, Interface) when is_list(PeerData) ->
+ orber_iiop_pm:close_connection(PeerData, Interface);
+close_connection(What, Interface) ->
+ orber:dbg("[~p] orber:close_connection(~p, ~p);~n"
+ "Incorrect type of arguments.",
+ [?LINE, What, Interface], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%----------------------------------------------------------------------
+%% Function : iiop_connections_pending
+%% Arguments : -
+%% Returns : Connections - [{Host, Port}]
+%% Host - string
+%% Port - integer
+%% Raises :
+%% Description: List outbound connections that are being setup. Usefull
+%% when suspecting firewall problems.
+%%----------------------------------------------------------------------
+iiop_connections_pending() ->
+ orber_iiop_pm:list_setup_connections().
+
+
+iiop_max_fragments() ->
+ orber_env:iiop_max_fragments().
+
+iiop_max_in_requests() ->
+ orber_env:iiop_max_in_requests().
+
+iiop_max_in_connections() ->
+ orber_env:iiop_max_in_connections().
+
+iiop_backlog() ->
+ orber_env:iiop_backlog().
+
+iiop_acl() ->
+ orber_env:iiop_acl().
+
+ip_address_local() ->
+ orber_env:ip_address_local().
+
+get_flags() ->
+ orber_env:get_flags().
+
+typechecking() ->
+ orber_env:typechecking().
+
+exclude_codeset_ctx() ->
+ orber_env:exclude_codeset_ctx().
+
+exclude_codeset_component() ->
+ orber_env:exclude_codeset_component().
+
+partial_security() ->
+ orber_env:partial_security().
+
+use_CSIv2() ->
+ orber_env:use_CSIv2().
+
+use_FT() ->
+ orber_env:use_FT().
+
+ip_version() ->
+ orber_env:ip_version().
+
+light_ifr() ->
+ orber_env:light_ifr().
+
+bidir_context() ->
+ orber_env:bidir_context().
+
+objectkeys_gc_time() ->
+ orber_env:objectkeys_gc_time().
+
+
+%%-----------------------------------------------------------------
+%% CosNaming::NamingContextExt operations
+%%-----------------------------------------------------------------
+get_ORBInitRef() ->
+ orber_env:get_ORBInitRef().
+
+get_ORBDefaultInitRef() ->
+ orber_env:get_ORBDefaultInitRef().
+
+
+%%-----------------------------------------------------------------
+%% Interceptor opertaions (see orber_pi.erl)
+%%-----------------------------------------------------------------
+get_interceptors() ->
+ orber_env:get_interceptors().
+
+get_local_interceptors() ->
+ orber_env:get_local_interceptors().
+
+get_cached_interceptors() ->
+ orber_env:get_cached_interceptors().
+
+set_interceptors(Val) ->
+ orber_env:set_interceptors(Val).
+
+
+%%-----------------------------------------------------------------
+%% Light weight Orber operations
+%%-----------------------------------------------------------------
+is_lightweight() ->
+ orber_env:is_lightweight().
+
+get_lightweight_nodes() ->
+ orber_env:get_lightweight_nodes().
+
+%%-----------------------------------------------------------------
+%% Security access operations (SSL)
+%%-----------------------------------------------------------------
+secure() ->
+ orber_env:secure().
+
+iiop_ssl_backlog() ->
+ orber_env:iiop_ssl_backlog().
+
+iiop_ssl_ip_address_local() ->
+ orber_env:iiop_ssl_ip_address_local().
+
+iiop_ssl_port() ->
+ orber_env:iiop_ssl_port().
+
+nat_iiop_ssl_port() ->
+ orber_env:nat_iiop_ssl_port().
+
+ssl_server_certfile() ->
+ orber_env:ssl_server_certfile().
+
+ssl_client_certfile() ->
+ orber_env:ssl_client_certfile().
+
+set_ssl_client_certfile(Value) ->
+ orber_env:set_ssl_client_certfile(Value).
+
+ssl_server_verify() ->
+ orber_env:ssl_server_verify().
+
+ssl_client_verify() ->
+ orber_env:ssl_client_verify().
+
+set_ssl_client_verify(Value) ->
+ orber_env:set_ssl_client_verify(Value).
+
+ssl_server_depth() ->
+ orber_env:ssl_server_depth().
+
+ssl_client_depth() ->
+ orber_env:ssl_client_depth().
+
+set_ssl_client_depth(Value) ->
+ orber_env:set_ssl_client_depth(Value).
+
+ssl_server_cacertfile() ->
+ orber_env:ssl_server_cacertfile().
+
+ssl_client_cacertfile() ->
+ orber_env:ssl_client_cacertfile().
+
+set_ssl_client_cacertfile(Value) ->
+ orber_env:set_ssl_client_cacertfile(Value).
+
+ssl_client_password() ->
+ orber_env:ssl_client_password().
+
+ssl_server_password() ->
+ orber_env:ssl_server_password().
+
+ssl_client_keyfile() ->
+ orber_env:ssl_client_keyfile().
+
+ssl_server_keyfile() ->
+ orber_env:ssl_server_keyfile().
+
+ssl_client_ciphers() ->
+ orber_env:ssl_client_ciphers().
+
+ssl_server_ciphers() ->
+ orber_env:ssl_server_ciphers().
+
+ssl_client_cachetimeout() ->
+ orber_env:ssl_client_cachetimeout().
+
+ssl_server_cachetimeout() ->
+ orber_env:ssl_server_cachetimeout().
+
+%%----------------------------------------------------------------------
+%% Function : activate_audit_trail
+%% Arguments : Verbosity - stealth | normal | verbose
+%% Returns : -
+%% Raises :
+%% Description: Activate the appropriate interceptor for the requested direction(s).
+%%----------------------------------------------------------------------
+activate_audit_trail() ->
+ activate_audit_trail(normal).
+
+activate_audit_trail(stealth) ->
+ do_activate(orber_iiop_tracer_stealth);
+activate_audit_trail(verbose) ->
+ do_activate(orber_iiop_tracer);
+activate_audit_trail(_) ->
+ do_activate(orber_iiop_tracer_silent).
+
+do_activate(Interceptor) ->
+ Options =
+ case orber_env:get_interceptors() of
+ {native, PIs} ->
+ [{interceptors,
+ {native, [Interceptor|remove_built_in_interceptors(PIs, [])]}}];
+ _ ->
+ [{interceptors, {native, [Interceptor]}}]
+ end,
+ reconfigure_in_connections(Options),
+ reconfigure_out_connections(Options).
+
+remove_built_in_interceptors([orber_iiop_tracer_stealth|T], Acc) ->
+ remove_built_in_interceptors(T, Acc);
+remove_built_in_interceptors([orber_iiop_tracer|T], Acc) ->
+ remove_built_in_interceptors(T, Acc);
+remove_built_in_interceptors([orber_iiop_tracer_silent|T], Acc) ->
+ remove_built_in_interceptors(T, Acc);
+remove_built_in_interceptors([H|T], Acc) ->
+ remove_built_in_interceptors(T, [H|Acc]);
+remove_built_in_interceptors([], Acc) ->
+ %% We must use the same order as defined by the interceptors parameter
+ lists:reverse(Acc).
+
+%%----------------------------------------------------------------------
+%% Function : deactivate_audit_trail
+%% Arguments : -
+%% Returns : -
+%% Raises :
+%% Description: Dectivate interceptors for the requested direction(s).
+%%----------------------------------------------------------------------
+deactivate_audit_trail() ->
+ Options
+ = case orber_env:get_interceptors() of
+ {native, PIs} ->
+ [{interceptors, {native, PIs}}];
+ _ ->
+ [{interceptors, false}]
+ end,
+ reconfigure_in_connections(Options),
+ reconfigure_out_connections(Options).
+
+%%----------------------------------------------------------------------
+%% Function : add_listen_interface
+%% Arguments : IP - string
+%% Type - normal | ssl
+%% Port - integer > 0
+%% Options - [{Key, Value}]
+%% Key - atom() valid configuration parameter
+%% Value - a valid value for the given Key
+%% Returns : #Ref
+%% Raises :
+%% Description: Add a new listen process, which will accept new incoming
+%% connections.
+%%----------------------------------------------------------------------
+add_listen_interface(IP, normal) ->
+ orber_iiop_net:add(IP, normal, [{iiop_port, orber_env:iiop_port()}]);
+add_listen_interface(IP, ssl) ->
+ orber_iiop_net:add(IP, ssl, [{iiop_ssl_port, orber_env:iiop_ssl_port()}]).
+
+add_listen_interface(IP, normal, Port) when is_integer(Port) andalso Port > 0 ->
+ orber_iiop_net:add(IP, normal, [{iiop_port, Port}]);
+add_listen_interface(IP, ssl, Port) when is_integer(Port) andalso Port > 0 ->
+ orber_iiop_net:add(IP, ssl, [{iiop_ssl_port, Port}]);
+add_listen_interface(IP, Type, Options) when is_list(Options) ->
+ orber_iiop_net:add(IP, Type, Options);
+add_listen_interface(IP, Type, Port) when is_integer(Port) ->
+ orber:dbg("[~p] orber:add_listen_interface(~p, ~p, ~p);~n"
+ "The port number must be greater than 0.",
+ [?LINE, IP, Type, Port], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO});
+add_listen_interface(IP, Type, Extra) ->
+ orber:dbg("[~p] orber:add_listen_interface(~p, ~p, ~p);~n"
+ "Incorrect argument(s).",
+ [?LINE, IP, Type, Extra], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%----------------------------------------------------------------------
+%% Function : remove_listen_interface
+%% Arguments : Ref - #Ref
+%% Returns : #Ref
+%% Raises :
+%% Description: Terminate the listen process and all related inproxies
+%% associated with the supplied reference.
+%%----------------------------------------------------------------------
+remove_listen_interface(Ref) ->
+ orber_iiop_net:remove(Ref).
+
+%%----------------------------------------------------------------------
+%% Function : reconfigure_out_connections
+%% Arguments : Options - see corba:orb_init
+%% Returns : ok | {error, Reason}
+%% Raises :
+%% Description: Reconfigure the behavior of all outgoing IIOP connections.
+%%----------------------------------------------------------------------
+reconfigure_out_connections(Options) ->
+ orber_iiop_pm:reconfigure(Options).
+
+%%----------------------------------------------------------------------
+%% Function : reconfigure_out_connections
+%% Arguments : Options - see corba:orb_init
+%% Host - string()
+%% Port - integer()
+%% Interface - string
+%% Returns : ok | {error, Reason}
+%% Raises :
+%% Description: Reconfigure the behavior of all outgoing connections.
+%%----------------------------------------------------------------------
+reconfigure_out_connection(Options, Host, Port) ->
+ orber_iiop_pm:reconfigure(Options, Host, Port).
+reconfigure_out_connection(Options, Host, Port, Interface) ->
+ orber_iiop_pm:reconfigure(Options, Host, Port, Interface).
+
+%%----------------------------------------------------------------------
+%% Function : reconfigure_in_connections
+%% Arguments : Options - see corba:orb_init
+%% Returns : ok | {error, Reason}
+%% Raises :
+%% Description: Reconfigure the behavior of all incoming IIOP connections.
+%%----------------------------------------------------------------------
+reconfigure_in_connections(Options) ->
+ orber_iiop_net:reconfigure(Options).
+
+%%----------------------------------------------------------------------
+%% Function : reconfigure_in_connections
+%% Arguments : Options - see corba:orb_init
+%% Ref - The #Ref returned by add_listen_interface/2/3
+%% Returns : ok | {error, Reason}
+%% Raises :
+%% Description: Reconfigure the behavior of all incoming IIOP connections.
+%%----------------------------------------------------------------------
+reconfigure_in_connection(Options, Ref) ->
+ orber_iiop_net:reconfigure(Options, Ref).
+
+
+%%-----------------------------------------------------------------
+%% Configuration settings
+%%-----------------------------------------------------------------
+info() ->
+ orber_env:info().
+
+info(IoDevice) ->
+ orber_env:info(IoDevice).
+
+%%-----------------------------------------------------------------
+%% EXCEPTION mapping
+%%-----------------------------------------------------------------
+exception_info(Exc) ->
+ orber_exceptions:dissect(Exc).
+
+is_system_exception(Exc) ->
+ orber_exceptions:is_system_exception(Exc).
+
+%%-----------------------------------------------------------------
+%% Installation interface functions
+%%-----------------------------------------------------------------
+install(Nodes) ->
+ install(Nodes, []).
+
+install([], Options) ->
+ install([node()], Options);
+install(Nodes, Options) when is_list(Nodes) andalso is_list(Options)->
+ case orber_tb:is_running() of
+ false ->
+ application:load(orber),
+ case mnesia:system_info(is_running) of
+ no ->
+ application:start(mnesia),
+ Outcome = install_orber(Nodes, Options),
+ application:stop(mnesia),
+ Outcome;
+ yes ->
+ install_orber(Nodes, Options)
+ end;
+ _ ->
+ exit({error, "Orber is already running on this node."})
+ end.
+
+
+
+install_orber(Nodes, Options) ->
+ #options{ifr_storage_type = IFRType, install_timeout = Timeout,
+ local_content = LocalContent, nameservice_storage_type = NSType,
+ initialreferences_storage_type = InitType,
+ load_order = LoadOrder}
+ = check_options(Options, #options{}),
+ MnesiaOptions = [{local_content, LocalContent},
+ {load_order, LoadOrder}],
+ TableTest = test_tables(),
+ case lists:member(is_member, TableTest) of
+ true ->
+ case LocalContent of
+ true ->
+ orber_ifr:initialize(Timeout, {localCopy,IFRType},
+ light_ifr());
+ _->
+ exit("Orber Mnesia Table(s) already exist. Cannot install Orber.")
+ end;
+ _ ->
+ orber_ifr:initialize(Timeout, [{IFRType, Nodes} |MnesiaOptions],
+ light_ifr())
+ end,
+ orber_objectkeys:install(Timeout, [{ram_copies, Nodes} |MnesiaOptions]),
+ 'CosNaming_NamingContextExt_impl':install(Timeout, [{NSType, Nodes} |MnesiaOptions]),
+ orber_initial_references:install(Timeout, [{InitType, Nodes} |MnesiaOptions]),
+ oe_cos_naming:oe_register(),
+ oe_cos_naming_ext:oe_register(),
+ oe_erlang:oe_register(),
+ oe_OrberIFR:oe_register(),
+ oe_CORBA:oe_register(),
+ case NSType of
+ ram_copies ->
+ case mnesia:dump_tables(['orber_CosNaming']) of
+ {atomic, ok} ->
+ ok;
+ {aborted, {has_no_disc,_}} ->
+ ok;
+ {aborted, Reason} ->
+ ?EFORMAT("Unable to dump mnesia tables: ~p", [Reason])
+ end;
+ _ ->
+ ok
+ end.
+
+check_options([], Options) ->
+ Options;
+check_options([{ifr_storage_type, Type}|T], Options)
+ when Type == disc_copies; Type == ram_copies ->
+ check_options(T, Options#options{ifr_storage_type = Type});
+check_options([{nameservice_storage_type, Type}|T], Options)
+ when Type == disc_copies; Type == ram_copies ->
+ check_options(T, Options#options{nameservice_storage_type = Type});
+check_options([{initialreferences_storage_type, Type}|T], Options)
+ when Type == disc_copies; Type == ram_copies ->
+ check_options(T, Options#options{initialreferences_storage_type = Type});
+check_options([{install_timeout, Timeout}|T], Options)
+ when Timeout == infinity orelse is_integer(Timeout) ->
+ check_options(T, Options#options{install_timeout = Timeout});
+check_options([{local_content, Bool}|T], Options)
+ when Bool == true; Bool == false ->
+ check_options(T, Options#options{local_content = Bool});
+check_options([{type, Type}|T], Options)
+ when Type == temporary; Type == permanent ->
+ check_options(T, Options#options{type = Type});
+check_options([{load_order, LoadOrder}|T], Options)
+ when is_integer(LoadOrder) ->
+ check_options(T, Options#options{load_order = LoadOrder});
+check_options([H|_], _) ->
+ ?EFORMAT("Option unknown or incorrect value: ~w", [H]).
+
+
+
+try_starting(Type) ->
+ case application:start(orber, Type) of
+ ok ->
+ case partial_security() of
+ true ->
+ error_logger:warning_msg(
+ "=================== Orber =================~n"
+ "*******************************************~n"
+ "**** WARNING - WARNING - WARNING **********~n"
+ "**** WARNING - WARNING - WARNING **********~n"
+ "**** WARNING - WARNING - WARNING **********~n"
+ "**** WARNING - WARNING - WARNING **********~n"
+ "*******************************************~n"
+ " ORBER STARTED WITH AN INSECURE OPTION:~n"
+ " ~n"
+ " {flags, ~p}~n"
+ " ~n"
+ " THIS OPTION MAY ONLY BE USED DURING TESTS~n"
+ " ~n"
+ "===========================================~n",
+ [?ORB_ENV_PARTIAL_SECURITY]),
+ ok;
+ false ->
+ ok
+ end;
+ {error,{already_started,orber}} ->
+ {error,{already_started,orber}};
+ Reason ->
+ dbg("[~p] orber:try_starting(~p) failed: ~n~p",
+ [?LINE, Type, Reason], ?DEBUG_LEVEL),
+ {error, "Unable to start Orber. Is the listen port vacant?"}
+ end.
+
+test_tables() ->
+ AllTabs = mnesia:system_info(tables),
+ lists:map(fun(Tab) ->
+ case lists:member(Tab,AllTabs) of
+ false ->
+ not_member;
+ _ ->
+ is_member
+ end
+ end,
+ get_tables()).
+
+%%-----------------------------------------------------------------
+%% UnInstallation interface functions
+%%-----------------------------------------------------------------
+uninstall() ->
+ orber_objectkeys:stop_all(),
+ application:stop(orber),
+ delete_orber_tables(get_tables()).
+
+delete_orber_tables([]) -> ok;
+delete_orber_tables([Tab1|Rest]) ->
+ mnesia:delete_table(Tab1),
+ delete_orber_tables(Rest).
+
+%%-----------------------------------------------------------------
+%% Add and remove node interface functions
+%%-----------------------------------------------------------------
+add_node(Node, StorageType) when is_atom(Node) andalso is_atom(StorageType) ->
+ add_node(Node, [{ifr_storage_type, StorageType}]);
+add_node(Node, OptionList) when is_atom(Node) andalso is_list(OptionList) ->
+ case rpc:call(Node, mnesia, system_info, [is_running]) of
+ {badrpc, Reason} ->
+ ?EFORMAT("Node ~p do not respond. add_node/2 failed: ~p",
+ [Node, Reason]);
+ yes ->
+ case rpc:call(Node, orber, is_running, []) of
+ false ->
+ %% We need to "load" orber to make sure that
+ %% application environment variables is loaded.
+ rpc:call(Node, application, load, [orber]),
+ Options = check_options(OptionList, #options{}),
+ case rpc:call(Node, orber, light_ifr, []) of
+ false ->
+ copy_tables(?ifr_object_list, Node, Options);
+ true ->
+ copy_tables(?ifr_light_object_list, Node, Options)
+ end;
+ true ->
+ ?EFORMAT("Orber is already running on ~p. add_node failed.",
+ [Node]);
+ Reason ->
+ ?EFORMAT("Unable to reach node ~p. add_node/1 failed: ~p",
+ [Node, Reason])
+ end;
+ no ->
+ ?EFORMAT("Mnesia not running on node ~p. add_node/2 failed.",
+ [Node]);
+ starting ->
+ ?EFORMAT("Mnesia not fully started on node ~p. add_node/2 failed.",
+ [Node]);
+ stopping ->
+ ?EFORMAT("Mnesia stopping on node ~p. add_node/2 failed.", [Node])
+ end.
+
+%% We have to copy the tables in two steps, i.e., orber tables should be ram_copies
+%% while the user may choose to install the rest as disc_copies.
+copy_tables([], Node, Options) ->
+ copy_orber_tables(?ORBER_TABS, Node, Options);
+copy_tables([T1|Trest], Node, Options) ->
+ case mnesia:add_table_copy(T1, Node, Options#options.ifr_storage_type) of
+ {atomic, ok} ->
+ copy_tables(Trest, Node, Options);
+ {aborted, Reason} ->
+ ?EFORMAT("orber:add_node/2 failed: ~p. Unable to copy IFR table(s): ~p",
+ [mnesia:error_description(Reason), [T1|Trest]])
+ end.
+
+copy_orber_tables([], Node, Options) ->
+ case rpc:call(Node, application, start, [orber, Options#options.type]) of
+ ok ->
+ ok;
+ Reason ->
+ ?EFORMAT("All tables installed but failed to start orber on node ~p: ~p",
+ [Node, Reason])
+ end;
+copy_orber_tables([orber_CosNaming|TTail], Node, Options) ->
+ case mnesia:add_table_copy(orber_CosNaming, Node,
+ Options#options.nameservice_storage_type) of
+ {atomic, ok} ->
+ copy_orber_tables(TTail, Node, Options);
+ {aborted, Reason} ->
+ ?EFORMAT("orber:add_node/2 failed: ~p. Unable to copy system table(s): ~p",
+ [mnesia:error_description(Reason), [orber_CosNaming|TTail]])
+ end;
+copy_orber_tables([orber_references|TTail], Node, Options) ->
+ case mnesia:add_table_copy(orber_references, Node,
+ Options#options.initialreferences_storage_type) of
+ {atomic, ok} ->
+ copy_orber_tables(TTail, Node, Options);
+ {aborted, Reason} ->
+ ?EFORMAT("orber:add_node/2 failed: ~p. Unable to copy system table(s): ~p",
+ [mnesia:error_description(Reason), [orber_references|TTail]])
+ end;
+copy_orber_tables([THead|TTail], Node, Options) ->
+ case mnesia:add_table_copy(THead, Node, ram_copies) of
+ {atomic, ok} ->
+ copy_orber_tables(TTail, Node, Options);
+ {aborted, Reason} ->
+ ?EFORMAT("orber:add_node/2 failed: ~p. Unable to copy system table(s): ~p",
+ [mnesia:error_description(Reason), [THead|TTail]])
+ end.
+
+remove_node(Node) when is_atom(Node) ->
+ case rpc:call(Node, mnesia, system_info, [is_running]) of
+ yes ->
+ case rpc:call(Node, orber, is_running, []) of
+ true ->
+ rpc:call(Node, orber, stop, []),
+ remove_tables(get_tables(), Node);
+ false ->
+ remove_tables(get_tables(), Node);
+ Reason ->
+ ?EFORMAT("Unable to reach node: ~p. remove_node/1 failed: ~p",
+ [Node, Reason])
+ end;
+ no ->
+ case rpc:call(Node, mnesia, start, []) of
+ ok ->
+ remove_tables(get_tables(), Node),
+ rpc:call(Node, mnesia, stop, []);
+ Reason ->
+ ?EFORMAT("Unable to reach node: ~p. remove_node/1 failed: ~p",
+ [Node, Reason])
+ end;
+ Reason ->
+ ?EFORMAT("Problem with ~p. remove_node/1 failed: ~p", [Node, Reason])
+ end.
+
+
+remove_tables(Tables, Node) ->
+ remove_tables(Tables, Node, []).
+
+remove_tables([], _, []) -> ok;
+remove_tables([], Node, Failed) ->
+ ?EFORMAT("orber:remove_node(~p) failed. Unable to remove table(s): ~p",
+ [Node, Failed]);
+remove_tables([T1|Trest], Node, Failed) ->
+ case mnesia:del_table_copy(T1, Node) of
+ {atomic, ok} ->
+ remove_tables(Trest, Node, Failed);
+ {aborted, Reason} ->
+ remove_tables(Trest, Node, [{T1, Reason}|Failed])
+ end.
+
+
+
+%%-----------------------------------------------------------------
+%% Internal interface functions
+%%-----------------------------------------------------------------
+%%----------------------------------------------------------------------
+%% Function : is_running
+%% Arguments :
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+is_running() ->
+ orber_tb:is_running().
+
+%%----------------------------------------------------------------------
+%% Function : check_giop
+%% Arguments :
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+check_giop_version() ->
+ case giop_version() of
+ {1,0} ->
+ ok;
+ {1,1} ->
+ ok;
+ {1,2} ->
+ ok;
+ X ->
+ X
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : dbg
+%% Arguments :
+%% Returns :
+%% Raises :
+%% Description: Note, dbg replaces debug_level_print.
+%%
+%% The following levels are used (0-10):
+%% 10: cdrlib.erl
+%% 9: cdr_encode.erl cdr_decode.erl orber_ifr.erl orber_pi.erl
+%% 8: orber_iiop_outrequest.erl orber_iiop_inrequest.erl
+%% 7: orber_iiop_outproxy.erl orber_iiop_inproxy.erl
+%% 6: iop_ior.erl, orber_objectkeys.erl, Orber_IFR_impl.erl orber_socket.erl
+%% 5: corba.erl, corba_boa.erl, corba_object.erl
+%% 4: Reserved for Cos-services!
+%% 3: Reserved for Cos-services!
+%% 2: Reserved for client applications!
+%% 1: Reserved for client applications!
+%% 0: No logging!
+%%
+%% A higher value will result in a finer granularity.
+%%----------------------------------------------------------------------
+get_debug_level() ->
+ orber_env:get_debug_level().
+
+debug_level_print(Format, Data, RequestedLevel) ->
+ dbg(Format, Data, RequestedLevel).
+
+dbg(Format, Data, RequestedLevel) ->
+ case orber_env:get_debug_level() of
+ 0 ->
+ ok;
+ Level when is_integer(Level) andalso Level >= RequestedLevel ->
+ if
+ RequestedLevel > 4 ->
+ %% Use catch if incorrect format used somewhere.
+ catch error_logger:error_msg("=================== Orber =================~n"++
+ Format++
+ "~n===========================================~n",
+ Data);
+ RequestedLevel > 2 ->
+ %% Use catch if incorrect format used somewhere.
+ catch error_logger:error_msg("=========== Orber COS Application =========~n"++
+ Format++
+ "~n===========================================~n",
+ Data);
+ true ->
+ %% Use catch if incorrect format used somewhere.
+ catch error_logger:error_msg("========== Orber Client Application =======~n"++
+ Format++
+ "~n===========================================~n",
+ Data)
+ end,
+ ok;
+ _ ->
+ ok
+ end.
+
+error(Format, Data, RequestedLevel) ->
+ if
+ RequestedLevel > 4 ->
+ %% Use catch if incorrect format used somewhere.
+ catch error_logger:error_msg("=================== Orber =================~n"++
+ Format++
+ "~n===========================================~n",
+ Data);
+ RequestedLevel > 2 ->
+ %% Use catch if incorrect format used somewhere.
+ catch error_logger:error_msg("=========== Orber COS Application =========~n"++
+ Format++
+ "~n===========================================~n",
+ Data);
+ true ->
+ %% Use catch if incorrect format used somewhere.
+ catch error_logger:error_msg("========== Orber Client Application =======~n"++
+ Format++
+ "~n===========================================~n",
+ Data)
+ end,
+ ok.
+
+configure(Key, Value) ->
+ orber_env:configure(Key, Value, check).
+
+configure_override(Key, Value) ->
+ orber_env:configure(Key, Value, loaded).
+
+multi_configure(KeyValueList) ->
+ orber_env:multi_configure(KeyValueList).
+
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+start(_, _) ->
+ supervisor:start_link({local, orber_sup}, orber, orb_init).
+
+init(orb_init) ->
+ case check_giop_version() of
+ ok ->
+ case is_lightweight() of
+ true ->
+ SupFlags = {one_for_one, 5, 1000},
+ ChildSpec = [
+ {orber_iiop_sup, {orber_iiop, start_sup, [[]]},
+ permanent,
+ 10000, supervisor, [orber_iiop]},
+ {orber_reqno, {orber_request_number, start,
+ [[]]},
+ permanent,
+ 10000, worker, [orber_request_number]}
+ ],
+ {ok, {SupFlags, ChildSpec}};
+ false ->
+ case orber_tb:wait_for_tables(get_tables()) of
+ ok ->
+ orber_objectkeys:remove_old_keys(),
+ SupFlags = {one_for_one, 5, 1000},
+ ChildSpec = [
+ {orber_iiop_sup, {orber_iiop, start_sup, [[]]},
+ permanent,
+ 10000, supervisor, [orber_iiop]},
+ {orber_init, {orber_initial_references, start,
+ [[]]},
+ permanent,
+ 10000, worker, [orber_initial_references]},
+ {orber_reqno, {orber_request_number, start,
+ [[]]},
+ permanent,
+ 10000, worker, [orber_request_number]},
+ {orber_objkeyserver, {orber_objectkeys, start,
+ [[orber_nodes(), 0]]},
+ permanent,
+ 10000, worker, [orber_objectkeys]},
+ {orber_env, {orber_env, start, [[]]},
+ permanent, 10000, worker, [orber_env]}
+ ],
+ {ok, {SupFlags, ChildSpec}};
+ StopReason ->
+ {stop, StopReason}
+ end
+ end;
+ X ->
+ {stop, ?FORMAT("GIOP ~p not an implemeted version", [X])}
+ end.
+
diff --git a/lib/orber/src/orber_acl.erl b/lib/orber/src/orber_acl.erl
new file mode 100644
index 0000000000..5c696a9b2a
--- /dev/null
+++ b/lib/orber/src/orber_acl.erl
@@ -0,0 +1,396 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_acl.erl
+%%
+%% Description:
+%% Handling ACL's (Access Control Lists).
+%%
+%% Creation date: 040723
+%%
+%%-----------------------------------------------------------------
+-module(orber_acl).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([init_acl/1, init_acl/2, clear_acl/0,
+ match/2, match/3, verify/3, range/1, range/2]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-define(ACL_DB, orber_acl_db).
+
+-define(DEBUG_LEVEL, 5).
+-define(CONTINUE, -1).
+-define(STOP, -2).
+
+-define(FORMAT(_F, _A), {error, lists:flatten(io_lib:format(_F, _A))}).
+-define(EFORMAT(_F, _A), exit(lists:flatten(io_lib:format(_F, _A)))).
+
+%%-----------------------------------------------------------------
+%% Record Definitions
+%%-----------------------------------------------------------------
+-record(acl, {key, bits = ?CONTINUE, mask, interfaces = [],
+ ports = 0, flags = 0}).
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% function : verify/1
+%% Arguments: IP - string()
+%% Filter - string() see init_acl
+%% Family - inet | inet6
+%% Returns : boolean()
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+verify(IP, Filter, Family) ->
+ DB = ets:new(orber_temporary_acl_table_created_by_user,
+ [set, public, {keypos, 2}]),
+ Result =
+ case catch verify_helper(IP, Filter, Family, DB) of
+ true ->
+ true;
+ {ok, Low, High} ->
+ {false, Low, High};
+ What ->
+ {error, ?FORMAT("Uknown Error: ~p\n", [What])}
+ end,
+ ets:delete(DB),
+ Result.
+
+verify_helper(IP, Filter, Family, DB) ->
+ init_acl([{tcp_in, Filter}], Family, DB),
+ {ok, IPTuple} = inet:getaddr(IP, Family),
+ case match_helper(tuple_to_list(IPTuple), tcp_in, DB, false, tcp_in) of
+ true ->
+ true;
+ false ->
+ range(Filter, Family)
+ end.
+
+%%-----------------------------------------------------------------
+%% function : range/1/2
+%% Arguments: Filter - string(). See init_acl
+%% Family - inet | inet6
+%% Returns : {ok, From, To}
+%% From - To - string()
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+range(Filter) ->
+ range(Filter, inet).
+
+range(Filter, inet) ->
+ range_safe(Filter, inet, ".", 16#FF, "255", 8, "~p.", "~p", 3);
+range(Filter, Family) ->
+ range_safe(Filter, Family, ":", 16#FFFF, "FFFF", 16, "~.16B:", "~.16B", 7).
+
+range_safe(Filter, Family, Separator, Max, MaxStr, N, F1, F2, X) ->
+ case catch range_helper(Filter, Family, Separator, Max, MaxStr, N, F1, F2, X) of
+ {ok, Low, High} ->
+ {ok, Low, High};
+ {'EXIT',{format,Why}} ->
+ {error, ?FORMAT("Unable to format string: ~p\n", [Why])};
+ {'EXIT', E} ->
+ {error, ?FORMAT("Exit: ~p\n", [E])};
+ What ->
+ {error, ?FORMAT("Unknown Error: ~p\n", [What])}
+ end.
+
+range_helper(Filter, Family, Separator, Max, MaxStr, N, F1, F2, X) ->
+ {MaskStr, Bits, _Ports} = tokenize(Filter, Family),
+ {ok, MaskTuple} = inet:getaddr(MaskStr, Family),
+ NoOfFull = Bits div N,
+ Mask = get_mask(N, (Bits rem N)),
+ case split(NoOfFull, tuple_to_list(MaskTuple)) of
+ {Full, [Partial|_DontCare]} ->
+ Beginning = pp(Full, [], F1),
+ MiddleLow = io_lib:format(F2, [(Mask band Partial) + ((Mask bxor Max) band 0)]),
+ MiddleHigh = io_lib:format(F2, [(Mask band Partial) + ((Mask bxor Max) band Max)]),
+ EndLow = lists:duplicate((X-NoOfFull), Separator ++ "0"),
+ EndHigh = lists:duplicate((X-NoOfFull), Separator ++ MaxStr),
+ Low = lists:flatten([Beginning, MiddleLow, EndLow]),
+ High = lists:flatten([Beginning, MiddleHigh, EndHigh]),
+ {ok, Low, High};
+ {Full, []} ->
+ Address = lists:flatten(pp(Full, [], F1)),
+ {ok, Address, Address}
+ end.
+
+pp([], Acc, _) ->
+ Acc;
+pp([H|T], Acc, Format) ->
+ pp(T, Acc ++ io_lib:format(Format, [H]), Format).
+
+split(N, List) when is_integer(N) andalso N >= 0 andalso is_list(List) ->
+ case split(N, List, []) of
+ Fault when is_atom(Fault) ->
+ erlang:error(Fault, [N,List]);
+ Result ->
+ Result
+ end;
+split(N, List) ->
+ erlang:error(badarg, [N,List]).
+
+split(0, L, R) ->
+ {lists:reverse(R, []), L};
+split(N, [H|T], R) ->
+ split(N-1, T, [H|R]);
+split(_, [], _) ->
+ badarg.
+
+
+%%-----------------------------------------------------------------
+%% function : clear_acl/0
+%% Arguments: -
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+clear_acl() ->
+ clear_acl(?ACL_DB).
+clear_acl(DB) ->
+ (catch ets:delete(DB)),
+ ok.
+
+%%-----------------------------------------------------------------
+%% function : init_acl/1/2
+%% Arguments: Filters - [{Direction, Filter}] | [{Direction, Filter, [Interfaces]}]
+%% Direction - tcp_in | ssl_in | tcp_out | ssl_out
+%% Filter - string(). Examples:
+%% * "123.456.789.10" - match against all bits.
+%% * "123.456.789.10/17" - match against the 17 most significant bits.
+%% * "123.456.789.10/17#4001" - as above but only allow port 4001
+%% * "123.456.789.10/17#4001/5001" - as above but only allow port 4001-5001
+%% Family - inet | inet6
+%% Returns : ok | {'EXCEPTION', E}
+%% Exception: 'BAD_PARAM'
+%% Effect :
+%%-----------------------------------------------------------------
+init_acl(Filters) ->
+ DB = ets:new(?ACL_DB, [set, public, named_table, {keypos, 2}]),
+ case ?ORB_FLAG_TEST(orber:get_flags(), ?ORB_ENV_USE_IPV6) of
+ false ->
+ init_acl(Filters, inet, DB);
+ true ->
+ init_acl(Filters, inet6, DB)
+ end.
+
+init_acl(Filters, Family) ->
+ DB = ets:new(?ACL_DB, [set, public, named_table, {keypos, 2}]),
+ init_acl(Filters, Family, DB).
+
+init_acl([], _, DB) ->
+ {ok, DB};
+init_acl([Data|T], Family, DB) ->
+ {Direction, Filter, Interfaces} =
+ case Data of
+ {D, F, I} ->
+ {D, F, I};
+ {D, F} ->
+ {D, F, []}
+ end,
+ {MaskStr, Bits, Ports} = tokenize(Filter, Family),
+ case inet:getaddr(MaskStr, Family) of
+ {ok, Addr} when size(Addr) == 4 ->
+ create_mask(tuple_to_list(Addr), Bits div 8,
+ get_mask8((Bits rem 8)), DB, Direction, Interfaces, Ports),
+ init_acl(T, Family, DB);
+ {ok, Addr} ->
+ create_mask(tuple_to_list(Addr), Bits div 16,
+ get_mask16((Bits rem 16)), DB, Direction, Interfaces, Ports),
+ init_acl(T, Family, DB)
+ end.
+
+create_mask(List, Div, Mask, DB, Direction, Interfaces, Ports) ->
+ case split(Div, List) of
+ {[], [Partial|_DontCare]} ->
+ %% Less than 8/16 bits (depends on family).
+ add_parts([], Direction, (Partial band Mask), Mask, DB,
+ Interfaces, Ports);
+ {Full, [Partial|_DontCare]} ->
+ add_parts(Full, Direction, (Partial band Mask), Mask, DB,
+ Interfaces, Ports);
+ {Full, []} ->
+ %% 32 bits.
+ add_parts(Full, Direction, ?STOP, Mask, DB, Interfaces, Ports)
+ end.
+
+add_parts([], Parent, Bits, Mask, DB, Interfaces, Ports) ->
+ ets:insert(DB, #acl{key = Parent, bits = Bits,
+ mask = Mask, interfaces = Interfaces, ports = Ports});
+add_parts([H|T], Parent, Bits, Mask, DB, Interfaces, Ports) ->
+ Key = {Parent, H},
+ ets:insert(DB, #acl{key = Key}),
+ add_parts(T, Key, Bits, Mask, DB, Interfaces, Ports).
+
+
+%%-----------------------------------------------------------------
+%% function : match/1/2
+%% Arguments: IP - tuple() | [integer()]
+%% Direction - tcp_in | ssl_in | tcp_out | ssl_out
+%% All - boolean()
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+match(IPTuple, Direction) when is_tuple(IPTuple) ->
+ match_helper(tuple_to_list(IPTuple), Direction, ?ACL_DB, false, Direction);
+match(IPList, Direction) ->
+ match_helper(IPList, Direction, ?ACL_DB, false, Direction).
+
+match(IPTuple, Direction, All) when is_tuple(IPTuple) ->
+ match_helper(tuple_to_list(IPTuple), Direction, ?ACL_DB, All, Direction);
+match(IPList, Direction, All) ->
+ match_helper(IPList, Direction, ?ACL_DB, All, Direction).
+
+match_helper([], _, _, false, _) -> false;
+match_helper([], _, _, true, _) -> {false, [], 0};
+match_helper([H|T], Parent, DB, All, Direction) ->
+ case ets:lookup(DB, {Parent, H}) of
+ [#acl{bits = ?CONTINUE}] ->
+ match_helper(T, {Parent, H}, DB, All, Direction);
+ [#acl{bits = ?STOP}] when All == false ->
+ true;
+ [#acl{bits = ?STOP, interfaces = I, ports = Ports}] ->
+ {true, I, Ports};
+ [#acl{bits = Bits, mask = Mask}] when All == false ->
+ Bits == (hd(T) band Mask);
+ [#acl{bits = Bits, mask = Mask, interfaces = I, ports = Ports}] ->
+ {Bits == (hd(T) band Mask), I, Ports};
+ _ ->
+ %% Less than 8/16 significant bits (depends on family).
+ %% Should we even allow this?
+ case ets:lookup(DB, Direction) of
+ [#acl{bits = Bits, mask = Mask}] when is_integer(Bits) andalso
+ All == false ->
+ Bits == (H band Mask);
+ [#acl{bits = Bits, mask = Mask,
+ interfaces = I, ports = Ports}] when is_integer(Bits) ->
+ {Bits == (H band Mask), I, Ports};
+ _ when All == false ->
+ false;
+ _ ->
+ {false, [], 0}
+ end
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% function : tokenize/1
+%% Arguments: Filter - string(). Examples:
+%% * "123.456.789.10" - match against all.
+%% * "123.456.789.10/17" - match against the 17 most significant bits.
+%% * "123.456.789.10/17#4001" - as above but only allow port 4001
+%% * "123.456.789.10/17#4001/5001" - as above but only allow port 4001-5001
+%% Family - inet | inet6
+%% Returns : {MaskStr, Bits, Ports}
+%% MaskStr - string()
+%% Bits - integer()
+%% Ports - integer() | {integer(), integer()}
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+tokenize(Filter, Family) ->
+ case string:tokens(Filter, "/#") of
+ [MaskStr] when Family == inet ->
+ {MaskStr, 32, 0};
+ [MaskStr] when Family == inet6 ->
+ {MaskStr, 128, 0};
+ [MaskStr, BitString] ->
+ {MaskStr, list_to_integer(BitString), 0};
+ [MaskStr, BitString, Port] ->
+ {MaskStr, list_to_integer(BitString), list_to_integer(Port)};
+ [MaskStr, BitString, MinPort, MaxPort] ->
+ {MaskStr, list_to_integer(BitString),
+ {list_to_integer(MinPort), list_to_integer(MaxPort)}};
+ What ->
+ ?EFORMAT("Invalid Filter: ~p\nReason: ~p\n", [Filter, What])
+ end.
+
+
+%%-----------------------------------------------------------------
+%% function : get_mask/2
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+get_mask(8, Bits) ->
+ get_mask8(Bits);
+get_mask(16, Bits) ->
+ get_mask16(Bits).
+
+%%-----------------------------------------------------------------
+%% function : get_mask8/1
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+get_mask8(0) -> 2#00000000;
+get_mask8(1) -> 2#10000000;
+get_mask8(2) -> 2#11000000;
+get_mask8(3) -> 2#11100000;
+get_mask8(4) -> 2#11110000;
+get_mask8(5) -> 2#11111000;
+get_mask8(6) -> 2#11111100;
+get_mask8(7) -> 2#11111110.
+
+%%-----------------------------------------------------------------
+%% function : get_mask16/1
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+get_mask16(0) -> 2#0000000000000000;
+get_mask16(1) -> 2#1000000000000000;
+get_mask16(2) -> 2#1100000000000000;
+get_mask16(3) -> 2#1110000000000000;
+get_mask16(4) -> 2#1111000000000000;
+get_mask16(5) -> 2#1111100000000000;
+get_mask16(6) -> 2#1111110000000000;
+get_mask16(7) -> 2#1111111000000000;
+get_mask16(8) -> 2#1111111100000000;
+get_mask16(9) -> 2#1111111110000000;
+get_mask16(10) -> 2#1111111111000000;
+get_mask16(11) -> 2#1111111111100000;
+get_mask16(12) -> 2#1111111111110000;
+get_mask16(13) -> 2#1111111111111000;
+get_mask16(14) -> 2#1111111111111100;
+get_mask16(15) -> 2#1111111111111110.
+
+
+%%-----------------------------------------------------------------
+%%------------- END OF MODULE -------------------------------------
+%%-----------------------------------------------------------------
diff --git a/lib/orber/src/orber_diagnostics.erl b/lib/orber/src/orber_diagnostics.erl
new file mode 100644
index 0000000000..c12dbfa896
--- /dev/null
+++ b/lib/orber/src/orber_diagnostics.erl
@@ -0,0 +1,240 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2003-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_diagnostics.erl
+%%
+%% Description:
+%%
+%%-----------------------------------------------------------------
+
+-module(orber_diagnostics).
+
+
+%%-----------------------------------------------------------------
+%% Includes
+%%-----------------------------------------------------------------
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/src/ifr_objects.hrl").
+-include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+-include_lib("orber/COSS/CosNaming/CosNaming_NamingContext.hrl").
+-include_lib("orber/COSS/CosNaming/orber_cosnaming.hrl").
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([nameservice/0, nameservice/1,
+ objectkeys/0,
+ missing_modules/0]).
+
+%%-----------------------------------------------------------------
+%% Internal Exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+-define(DIAGNOSTICS_PING_EXTERNAL, 16#01).
+
+%%-----------------------------------------------------------------
+%% Function : missing_modules
+%% Args : -
+%% Returns :
+%%-----------------------------------------------------------------
+missing_modules() ->
+ List =
+ case orber:light_ifr() of
+ false ->
+ Unions = mnesia:dirty_select(ir_UnionDef,
+ [{#ir_UnionDef{absolute_name='$1',
+ _='_'},
+ [], ['$1']}]),
+ Structs = mnesia:dirty_select(ir_StructDef,
+ [{#ir_StructDef{absolute_name='$1',
+ _='_'},
+ [], ['$1']}]),
+ Exc = mnesia:dirty_select(ir_ExceptionDef,
+ [{#ir_ExceptionDef{absolute_name='$1',
+ _='_'},
+ [], ['$1']}]),
+ Interface = mnesia:dirty_select(ir_InterfaceDef,
+ [{#ir_InterfaceDef{absolute_name='$1',
+ _='_'},
+ [], ['$1']}]),
+ Acc1 = create_module_names(Unions, [], ?IFR_UnionDef),
+ Acc2 = create_module_names(Structs, Acc1, ?IFR_StructDef),
+ Acc3 = create_module_names(Exc, Acc2, ?IFR_ExceptionDef),
+ create_module_names(Interface, Acc3, ?IFR_InterfaceDef);
+ true ->
+ mnesia:dirty_select(orber_light_ifr,
+ [{#orber_light_ifr{module='$1',
+ type='$2', _='_'},
+ [{'=/=', '$2', ?IFR_ModuleDef},
+ {'=/=', '$2', ?IFR_ConstantDef},
+ {'=/=', '$2', ?IFR_AliasDef},
+ {'=/=', '$2', ?IFR_EnumDef}], ['$$']}])
+ end,
+ io:format("Need to check for ~p modules.~n", [length(List)]),
+ Count = missing_modules_helper(List, 0),
+ io:format("Check completed. ~p missing modules.~n", [Count]),
+ Count.
+
+create_module_names([], Acc, _) ->
+ Acc;
+create_module_names([[$:,$:|N]|T], Acc, Type) ->
+ create_module_names(T, [[change_colons_to_underscore(N, []), Type]|Acc], Type).
+
+change_colons_to_underscore([$:, $: | T], Acc) ->
+ change_colons_to_underscore(T, [$_ |Acc]);
+change_colons_to_underscore([H |T], Acc) ->
+ change_colons_to_underscore(T, [H |Acc]);
+change_colons_to_underscore([], Acc) ->
+ list_to_atom(lists:reverse(Acc)).
+
+missing_modules_helper([], ErrorsFound) ->
+ ErrorsFound;
+missing_modules_helper([[Mod, Type]|T], ErrorsFound) when Type == ?IFR_StructDef;
+ Type == ?IFR_UnionDef;
+ Type == ?IFR_ExceptionDef ->
+ case catch Mod:tc() of
+ {'EXIT', _} ->
+ io:format("Missing (~s): ~p~n", [type2str(Type), Mod]),
+ missing_modules_helper(T, ErrorsFound + 1);
+ _ ->
+ missing_modules_helper(T, ErrorsFound)
+ end;
+missing_modules_helper([[Mod, Type]|T], ErrorsFound) when Type == ?IFR_InterfaceDef ->
+ case catch Mod:oe_get_interface() of
+ {'EXIT', {undef,[{Mod, _, _}|_]}} ->
+ io:format("Missing (Interface): ~p~n", [Mod]),
+ missing_modules_helper(T, ErrorsFound + 1);
+ {'EXIT', {undef,[{OtherMod, _, _}|_]}} ->
+ io:format("Missing (Inherited by the ~p Interface): ~p~n",
+ [Mod, OtherMod]),
+ missing_modules_helper(T, ErrorsFound + 1);
+ _ ->
+ missing_modules_helper(T, ErrorsFound)
+ end;
+missing_modules_helper([_|T], ErrorsFound) ->
+ missing_modules_helper(T, ErrorsFound).
+
+type2str(?IFR_StructDef) ->
+ "Struct";
+type2str(?IFR_UnionDef) ->
+ "Union";
+type2str(?IFR_ExceptionDef) ->
+ "Exception".
+
+
+%%-----------------------------------------------------------------
+%% Function : nameservice
+%% Args : - | integer()
+%% Returns :
+%%-----------------------------------------------------------------
+nameservice() ->
+ nameservice(0).
+
+nameservice(Flags) ->
+ case catch ns(?ORB_FLAG_TEST(Flags, ?DIAGNOSTICS_PING_EXTERNAL)) of
+ ok ->
+ ok;
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_diagnostics:nameservice(~p);~n"
+ "Reason: ~p", [?LINE, Flags, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ What ->
+ orber:dbg("[~p] orber_diagnostics:nameservice(~p);~n"
+ "Reason: ~p", [?LINE, Flags, What], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end.
+
+ns(Ping) ->
+ NS = corba:resolve_initial_references("NameService"),
+ display_names(NS, "", Ping).
+
+
+display_names(NS, Prefix, Ping) ->
+ {ok, [], Iter} = 'CosNaming_NamingContextExt':list(NS, 0),
+ More = not corba_object:is_nil(Iter),
+ iter_names(NS, Prefix, Iter, More, Ping).
+
+iter_names(_NS, _Prefix, Iter, false, _) ->
+ destroy_iter(Iter);
+iter_names(NS, Prefix, Iter, true, Ping) ->
+ {More, #'CosNaming_Binding'{binding_name = Name, binding_type = Type}} =
+ 'CosNaming_BindingIterator':next_one(Iter),
+ Fun = fun(#'CosNaming_NameComponent'{id = Id, kind = Kind}, Acc) ->
+ case Kind of
+ "" -> Acc ++ Id ++ "/";
+ _ -> Acc ++ Id ++ "." ++ Kind ++ "/"
+ end
+ end,
+ Prefix2 = lists:foldl(Fun, Prefix, Name),
+ if
+ More == false ->
+ ignore;
+ Type == nobject ->
+ Object = 'CosNaming_NamingContext':resolve(NS, Name),
+ Status =
+ case corba_object:is_remote(Object) of
+ false ->
+ corba_object:non_existent(Object);
+ _ when Ping == true ->
+ case catch corba_object:non_existent(Object) of
+ Boolean when is_atom(Boolean) ->
+ Boolean;
+ _Other ->
+ undefined
+ end;
+ _ ->
+ external
+ end,
+ io:format("~s [~p] ~s\n",
+ [Prefix2, Status, iop_ior:get_typeID(Object)]);
+ Type == ncontext ->
+ Context = 'CosNaming_NamingContext':resolve(NS, Name),
+ io:format("~s\n", [Prefix2]),
+ display_names(Context, Prefix2, Ping)
+ end,
+ iter_names(NS, Prefix, Iter, More, Ping).
+
+destroy_iter(Iter) ->
+ case corba_object:is_nil(Iter) of
+ false ->
+ 'CosNaming_BindingIterator':destroy(Iter),
+ ok;
+ true ->
+ ok
+ end.
+
+objectkeys() ->
+ ok.
+
+
+
+%%---------------- END OF MODULE ----------------------------------
diff --git a/lib/orber/src/orber_env.erl b/lib/orber/src/orber_env.erl
new file mode 100644
index 0000000000..79f852eee0
--- /dev/null
+++ b/lib/orber/src/orber_env.erl
@@ -0,0 +1,1456 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_env.erl
+%%
+%% Description:
+%% Handling environment parameters for Orber.
+%%
+%% Creation date: 040723
+%%
+%%-----------------------------------------------------------------
+-module(orber_env).
+
+-behaviour(gen_server).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/1, configure/2, configure/3, configure_override/2,
+ multi_configure/1, get_env/1, set_env/2, get_keys/0, env/1,
+ info/0, info/1]).
+
+-export([iiop_acl/0, iiop_port/0, nat_iiop_port/0, nat_iiop_port/1, iiop_out_ports/0,
+ domain/0, ip_address_variable_defined/0, nat_host/0, nat_host/1, host/0,
+ ip_address/0, ip_address/1, giop_version/0, iiop_timeout/0,
+ iiop_connection_timeout/0, iiop_setup_connection_timeout/0,
+ iiop_in_connection_timeout/0, iiop_max_fragments/0, iiop_max_in_requests/0,
+ iiop_max_in_connections/0, iiop_backlog/0, objectkeys_gc_time/0,
+ get_ORBInitRef/0, get_ORBDefaultInitRef/0, get_interceptors/0,
+ get_local_interceptors/0, get_cached_interceptors/0,
+ set_interceptors/1, is_lightweight/0, get_lightweight_nodes/0, secure/0,
+ iiop_ssl_backlog/0, iiop_ssl_port/0, nat_iiop_ssl_port/0, nat_iiop_ssl_port/1,
+ ssl_server_certfile/0, ssl_client_certfile/0, set_ssl_client_certfile/1,
+ ssl_server_verify/0, ssl_client_verify/0, set_ssl_client_verify/1,
+ ssl_server_depth/0, ssl_client_depth/0, set_ssl_client_depth/1,
+ ssl_server_cacertfile/0, ssl_client_cacertfile/0,
+ set_ssl_client_cacertfile/1, ssl_client_password/0,
+ ssl_server_password/0, ssl_client_keyfile/0, ssl_server_keyfile/0,
+ ssl_client_ciphers/0, ssl_server_ciphers/0, ssl_client_cachetimeout/0,
+ ssl_server_cachetimeout/0, get_flags/0, typechecking/0,
+ exclude_codeset_ctx/0, exclude_codeset_component/0, partial_security/0,
+ use_CSIv2/0, use_FT/0, ip_version/0, light_ifr/0, bidir_context/0,
+ get_debug_level/0, getaddrstr/2, addr2str/1, iiop_packet_size/0,
+ iiop_ssl_ip_address_local/0, ip_address_local/0, iiop_in_keepalive/0,
+ iiop_out_keepalive/0, iiop_ssl_in_keepalive/0, iiop_ssl_out_keepalive/0,
+ iiop_ssl_accept_timeout/0, ssl_generation/0]).
+
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, handle_call/3]).
+-export([handle_cast/2, handle_info/2, code_change/3]).
+
+%%-----------------------------------------------------------------
+%% Record Definitions Etc.
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+-define(FORMAT(_F, _A), {error, lists:flatten(io_lib:format(_F, _A))}).
+-define(EFORMAT(_F, _A), exit(lists:flatten(io_lib:format(_F, _A)))).
+
+-define(ENV_DB, orber_env_db).
+
+-define(ENV_KEYS,
+ [flags, iiop_port, nat_iiop_port, iiop_out_ports, domain, ip_address,
+ nat_ip_address, giop_version, iiop_timeout, iiop_connection_timeout,
+ iiop_setup_connection_timeout, iiop_in_connection_timeout, iiop_acl,
+ iiop_max_fragments, iiop_max_in_requests, iiop_max_in_connections,
+ iiop_backlog, objectkeys_gc_time, orbInitRef, orbDefaultInitRef,
+ interceptors, local_interceptors, lightweight, ip_address_local,
+ secure, iiop_ssl_ip_address_local, iiop_ssl_backlog,
+ iiop_ssl_port, nat_iiop_ssl_port, ssl_server_certfile,
+ ssl_client_certfile, ssl_server_verify, ssl_client_verify, ssl_server_depth,
+ ssl_client_depth, ssl_server_cacertfile, ssl_client_cacertfile,
+ ssl_client_password, ssl_server_password, ssl_client_keyfile,
+ ssl_server_keyfile, ssl_client_ciphers, ssl_server_ciphers,
+ ssl_client_cachetimeout, ssl_server_cachetimeout, orber_debug_level,
+ iiop_packet_size, iiop_in_keepalive, iiop_out_keepalive,
+ iiop_ssl_in_keepalive, iiop_ssl_out_keepalive, iiop_ssl_accept_timeout]).
+
+%% The 'flags' parameter must be first in the list.
+%-define(ENV_KEYS,
+% [{flags, ?ORB_ENV_INIT_FLAGS}, {iiop_port, 4001}, nat_iiop_port,
+% {iiop_out_ports, 0}, {domain, "ORBER"}, ip_address, nat_ip_address,
+% {giop_version, {1, 1}}, {iiop_timeout, infinity},
+% {iiop_connection_timeout, infinity}, {iiop_setup_connection_timeout, infinity},
+% {iiop_in_connection_timeout, infinity}, {iiop_acl, []},
+% {iiop_max_fragments, infinity}, {iiop_max_in_requests, infinity},
+% {iiop_max_in_connections, infinity}, {iiop_backlog, 5},
+% {objectkeys_gc_time, infinity},
+% {orbInitRef, undefined}, {orbDefaultInitRef, undefined},
+% {interceptors, false}, {local_interceptors, false}, {lightweight, false},
+% {secure, no}, {iiop_ssl_backlog, 5}, {iiop_ssl_port, 4002},
+% nat_iiop_ssl_port, {ssl_server_certfile, []}, {ssl_client_certfile, []},
+% {ssl_server_verify, 0}, {ssl_client_verify, 0}, {ssl_server_depth, 1},
+% {ssl_client_depth, 1}, {ssl_server_cacertfile, []},
+% {ssl_client_cacertfile, []}, {ssl_client_password, []},
+% {ssl_server_password, []}, {ssl_client_keyfile, []},
+% {ssl_server_keyfile, []}, {ssl_client_ciphers, []},
+% {ssl_server_ciphers, []}, {ssl_client_cachetimeout, infinity},
+% {ssl_server_cachetimeout, infinity}, {orber_debug_level, 0}]).
+
+-record(parameters, {key, value, flags = 0}).
+
+-record(env, {acl, parameters, flags = 0}).
+
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% function :
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+start(Opts) ->
+ gen_server:start_link({local, orber_env}, ?MODULE, Opts, []).
+
+%%-----------------------------------------------------------------
+%% function : get_keys
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+get_keys() ->
+ ?ENV_KEYS.
+
+%%-----------------------------------------------------------------
+%% function : get_env
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+get_env(Key) when is_atom(Key) ->
+ case catch ets:lookup(?ENV_DB, Key) of
+ [#parameters{value = Val}] ->
+ {ok, Val};
+ _ ->
+ undefined
+ end.
+
+%%-----------------------------------------------------------------
+%% function : get_env
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+set_env(Key, Value) when is_atom(Key) ->
+ case catch ets:insert(?ENV_DB, #parameters{key = Key, value = Value}) of
+ true ->
+ ok;
+ _ ->
+ undefined
+ end.
+
+
+%%-----------------------------------------------------------------
+%% function : info
+%% Arguments: IoDervice - info_msg | string | io | {io, Dev}
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+info() ->
+ info(info_msg).
+
+info(IoDevice) ->
+ Info =
+ case orber_tb:is_running() of
+ true ->
+ Info1 = create_main_info(),
+ Info2 = create_flag_info(Info1),
+ create_security_info(secure(), Info2);
+ _ ->
+ lists:flatten(
+ io_lib:format("======= Orber Execution Environment ======~n"
+ " *** Orber-~s is not running ***~n"
+ "==========================================~n",
+ [?ORBVSN]))
+ end,
+ case IoDevice of
+ info_msg ->
+ error_logger:info_msg(Info);
+ string ->
+ Info;
+ io ->
+ io:format("~s", [Info]);
+ {io, Dev} ->
+ io:format(Dev, "~s", [Info]);
+ _ ->
+ exit("Bad parameter")
+ end.
+
+create_main_info() ->
+ {Major, Minor} = giop_version(),
+ [io_lib:format("======= Orber Execution Environment ======~n"
+ "Orber version.................: ~s~n"
+ "Orber domain..................: ~s~n"
+ "IIOP port number..............: ~p~n"
+ "IIOP NAT port number..........: ~p~n"
+ "Interface(s)..................: ~p~n"
+ "Interface(s) NAT..............: ~p~n"
+ "Local Interface (default).....: ~p~n"
+ "Nodes in domain...............: ~p~n"
+ "GIOP version (default)........: ~p.~p~n"
+ "IIOP out timeout..............: ~p msec~n"
+ "IIOP out connection timeout...: ~p msec~n"
+ "IIOP setup connection timeout.: ~p msec~n"
+ "IIOP out ports................: ~p~n"
+ "IIOP out connections..........: ~p~n"
+ "IIOP out connections (pending): ~p~n"
+ "IIOP out keepalive............: ~p~n"
+ "IIOP in connections...........: ~p~n"
+ "IIOP in connection timeout....: ~p msec~n"
+ "IIOP in keepalive.............: ~p~n"
+ "IIOP max fragments............: ~p~n"
+ "IIOP max in requests..........: ~p~n"
+ "IIOP max in connections.......: ~p~n"
+ "IIOP backlog..................: ~p~n"
+ "IIOP ACL......................: ~p~n"
+ "IIOP maximum packet size......: ~p~n"
+ "Object Keys GC interval.......: ~p~n"
+ "Using Interceptors............: ~p~n"
+ "Using Local Interceptors......: ~p~n"
+ "Debug Level...................: ~p~n"
+ "orbInitRef....................: ~p~n"
+ "orbDefaultInitRef.............: ~p~n",
+ [?ORBVSN, domain(), iiop_port(), nat_iiop_port(), host(),
+ nat_host(), ip_address_local(),
+ orber:orber_nodes(), Major, Minor,
+ iiop_timeout(), iiop_connection_timeout(),
+ iiop_setup_connection_timeout(), iiop_out_ports(),
+ orber:iiop_connections(out), orber:iiop_connections_pending(),
+ iiop_out_keepalive(), orber:iiop_connections(in),
+ iiop_in_connection_timeout(), iiop_in_keepalive(),
+ iiop_max_fragments(), iiop_max_in_requests(),
+ iiop_max_in_connections(), iiop_backlog(), iiop_acl(),
+ iiop_packet_size(), objectkeys_gc_time(), get_interceptors(),
+ get_local_interceptors(), get_debug_level(), get_ORBInitRef(),
+ get_ORBDefaultInitRef()])].
+
+create_flag_info(Info) ->
+ case get_flags() of
+ ?ORB_ENV_INIT_FLAGS ->
+ [Info, "System Flags Set..............: -\n"];
+ Flags ->
+ FlagData = check_flags(?ORB_ENV_FLAGS, Flags, []),
+ [Info, "System Flags Set..............: \n", FlagData, "\n"]
+ end.
+
+check_flags([], _, Acc) ->
+ Acc;
+check_flags([{Flag, Txt}|T], Flags, Acc) when ?ORB_FLAG_TEST(Flags, Flag) ->
+ check_flags(T, Flags, [" - ", Txt, "\n"|Acc]);
+check_flags([_|T], Flags, Acc) ->
+ check_flags(T, Flags, Acc).
+
+
+create_security_info(no, Info) ->
+ lists:flatten([Info, "=========================================\n"]);
+create_security_info(ssl, Info) ->
+ lists:flatten([Info,
+ io_lib:format("ORB security..................: ssl~n"
+ "SSL generation................: ~p~n"
+ "SSL IIOP in keepalive.........: ~p~n"
+ "SSL IIOP out keepalive........: ~p~n"
+ "SSL IIOP port number..........: ~p~n"
+ "SSL IIOP NAT port number......: ~p~n"
+ "SSL IIOP accept timeout.......: ~p~n"
+ "SSL IIOP backlog..............: ~p~n"
+ "SSL IIOP Local Interface......: ~p~n"
+ "SSL server certfile...........: ~p~n"
+ "SSL server verification type..: ~p~n"
+ "SSL server verification depth.: ~p~n"
+ "SSL server cacertfile.........: ~p~n"
+ "SSL server keyfile............: ~p~n"
+ "SSL server password...........: ~p~n"
+ "SSL server ciphers............: ~p~n"
+ "SSL server cachetimeout.......: ~p~n"
+ "SSL client certfile...........: ~p~n"
+ "SSL client verification type..: ~p~n"
+ "SSL client verification depth.: ~p~n"
+ "SSL client cacertfile.........: ~p~n"
+ "SSL client keyfile............: ~p~n"
+ "SSL client password...........: ~p~n"
+ "SSL client ciphers............: ~p~n"
+ "SSL client cachetimeout.......: ~p~n"
+ "=========================================~n",
+ [ssl_generation(), iiop_ssl_port(),
+ iiop_ssl_in_keepalive(), iiop_ssl_out_keepalive(),
+ nat_iiop_ssl_port(), iiop_ssl_accept_timeout(),
+ iiop_ssl_backlog(), iiop_ssl_ip_address_local(),
+ ssl_server_certfile(), ssl_server_verify(),
+ ssl_server_depth(), ssl_server_cacertfile(),
+ ssl_server_keyfile(), ssl_server_password(),
+ ssl_server_ciphers(), ssl_server_cachetimeout(),
+ ssl_client_certfile(), ssl_client_verify(),
+ ssl_client_depth(), ssl_client_cacertfile(),
+ ssl_client_keyfile(), ssl_client_password(),
+ ssl_client_ciphers(), ssl_client_cachetimeout()])]).
+
+
+%%-----------------------------------------------------------------
+%% function : iiop_acl
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+iiop_acl() ->
+ case application:get_env(orber, iiop_acl) of
+ {ok, ACL} when is_list(ACL) ->
+ ACL;
+ _ ->
+ []
+ end.
+
+iiop_packet_size() ->
+ case application:get_env(orber, iiop_packet_size) of
+ {ok, Max} when is_integer(Max) andalso Max > 0 ->
+ Max;
+ _ ->
+ infinity
+ end.
+
+
+iiop_port() ->
+ case application:get_env(orber, iiop_port) of
+ {ok, Port} when is_integer(Port) andalso Port >= 0 ->
+ Port;
+ _ ->
+ 4001
+ end.
+
+nat_iiop_port() ->
+ case application:get_env(orber, nat_iiop_port) of
+ {ok, Port} when is_integer(Port) andalso Port > 0 ->
+ Port;
+ {ok, {local, Default, _NATList}} ->
+ Default;
+ _ ->
+ iiop_port()
+ end.
+
+nat_iiop_port(LocalPort) ->
+ case application:get_env(orber, nat_iiop_port) of
+ {ok, Port} when is_integer(Port) andalso Port > 0 ->
+ Port;
+ {ok, {local, Default, NATList}} ->
+ orber_tb:keysearch(LocalPort, NATList, Default);
+ _ ->
+ iiop_port()
+ end.
+
+iiop_out_ports() ->
+ case application:get_env(orber, iiop_out_ports) of
+ {ok, {Min, Max}} when is_integer(Min) andalso is_integer(Max) andalso Min =< Max ->
+ {Min, Max};
+ {ok, {Max, Min}} when is_integer(Min) andalso is_integer(Max) andalso Min < Max ->
+ {Min, Max};
+ _ ->
+ 0
+ end.
+
+domain() ->
+ case application:get_env(orber, domain) of
+ {ok, Domain} when is_list(Domain) ->
+ Domain;
+ {ok, Domain} when is_atom(Domain) ->
+ atom_to_list(Domain);
+ _ ->
+ "ORBER"
+ end.
+
+ip_address_variable_defined() ->
+ case application:get_env(orber, ip_address) of
+ undefined ->
+ false;
+ {ok,{multiple, _}} ->
+ false;
+ _ ->
+ [Host] = host(),
+ Host
+ end.
+
+nat_host() ->
+ case application:get_env(orber, nat_ip_address) of
+ {ok,I} when is_list(I) ->
+ [I];
+ {ok,{multiple, [I|_] = IList}} when is_list(I) ->
+ IList;
+ {ok,{local, Default, _NATList}} ->
+ [Default];
+ _ ->
+ host()
+ end.
+
+nat_host([Host]) ->
+ case application:get_env(orber, nat_ip_address) of
+ {ok,I} when is_list(I) ->
+ [I];
+ {ok,{multiple, [I|_] = IList}} when is_list(I) ->
+ IList;
+ {ok,{local, Default, NATList}} ->
+ [orber_tb:keysearch(Host, NATList, Default)];
+ _ ->
+ host()
+ end.
+
+
+host() ->
+ case application:get_env(orber, ip_address) of
+ {ok,I} when is_list(I) ->
+ [I];
+ {ok,{multiple, [I|_] = IList}} when is_list(I) ->
+ IList;
+ %% IPv4. For IPv6 we only accept a string, but we must support this format
+ %% for IPv4
+ {ok, {A1, A2, A3, A4}} when is_integer(A1+A2+A3+A4) ->
+ [integer_to_list(A1) ++ "." ++ integer_to_list(A2) ++ "." ++ integer_to_list(A3)
+ ++ "." ++ integer_to_list(A4)];
+ _ ->
+ Flags = get_flags(),
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_HOSTNAME_IN_IOR) of
+ true ->
+ {ok, Hostname} = inet:gethostname(),
+ [Hostname];
+ _ ->
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_USE_IPV6) of
+ false ->
+ [ip_address(inet)];
+ true ->
+ [ip_address(inet6)]
+ end
+ end
+ end.
+
+ip_address_local() ->
+ case application:get_env(orber, ip_address_local) of
+ {ok,I} when is_list(I) ->
+ [I];
+ _ ->
+ []
+ end.
+
+
+ip_address() ->
+ ip_address(ip_version()).
+
+ip_address(inet) ->
+ {ok, Hostname} = inet:gethostname(),
+ {ok, {A1, A2, A3, A4}} = inet:getaddr(Hostname, inet),
+ integer_to_list(A1) ++ "." ++ integer_to_list(A2) ++ "." ++ integer_to_list(A3)
+ ++ "." ++ integer_to_list(A4);
+ip_address(inet6) ->
+ {ok, Hostname} = inet:gethostname(),
+ {ok, {A1, A2, A3, A4, A5, A6, A7, A8}} = inet:getaddr(Hostname, inet6),
+ int16_to_hex(A1) ++ ":" ++int16_to_hex(A2) ++ ":" ++
+ int16_to_hex(A3) ++ ":" ++ int16_to_hex(A4) ++ ":" ++
+ int16_to_hex(A5) ++ ":" ++ int16_to_hex(A6) ++ ":" ++
+ int16_to_hex(A7) ++ ":" ++ int16_to_hex(A8).
+
+getaddrstr(Hostname, inet) ->
+ {ok, {A1, A2, A3, A4}} = inet:getaddr(Hostname, inet),
+ integer_to_list(A1) ++ "." ++ integer_to_list(A2) ++ "." ++ integer_to_list(A3)
+ ++ "." ++ integer_to_list(A4);
+getaddrstr(Hostname, inet6) ->
+ {ok, {A1, A2, A3, A4, A5, A6, A7, A8}} = inet:getaddr(Hostname, inet6),
+ int16_to_hex(A1) ++ ":" ++int16_to_hex(A2) ++ ":" ++
+ int16_to_hex(A3) ++ ":" ++ int16_to_hex(A4) ++ ":" ++
+ int16_to_hex(A5) ++ ":" ++ int16_to_hex(A6) ++ ":" ++
+ int16_to_hex(A7) ++ ":" ++ int16_to_hex(A8).
+
+addr2str({A1, A2, A3, A4}) ->
+ integer_to_list(A1) ++ "." ++ integer_to_list(A2) ++ "." ++ integer_to_list(A3)
+ ++ "." ++ integer_to_list(A4);
+addr2str({A1, A2, A3, A4, A5, A6, A7, A8}) ->
+ int16_to_hex(A1) ++ ":" ++int16_to_hex(A2) ++ ":" ++
+ int16_to_hex(A3) ++ ":" ++ int16_to_hex(A4) ++ ":" ++
+ int16_to_hex(A5) ++ ":" ++ int16_to_hex(A6) ++ ":" ++
+ int16_to_hex(A7) ++ ":" ++ int16_to_hex(A8).
+
+
+int16_to_hex(0) ->
+ [$0];
+int16_to_hex(I) ->
+ N1 = ((I bsr 8) band 16#ff),
+ N2 = (I band 16#ff),
+ [code_character(N1 div 16), code_character(N1 rem 16),
+ code_character(N2 div 16), code_character(N2 rem 16)].
+
+code_character(N) when N < 10 ->
+ $0 + N;
+code_character(N) ->
+ $A + (N - 10).
+
+giop_version() ->
+ case application:get_env(orber, giop_version) of
+ {ok, {Major, Minor}} ->
+ {Major, Minor};
+ _ ->
+ {1, 1}
+ end.
+
+iiop_timeout() ->
+ case application:get_env(orber, iiop_timeout) of
+ {ok, Int} when is_integer(Int) ->
+ if
+ Int > 1000000 ->
+ error_logger:error_msg("Orber 'iiop_timeout' badly configured.~n"
+ "Time to large (>1000000 sec), swithed to 'infinity'~n"),
+ infinity;
+ true ->
+ %% Convert to msec.
+ Int*1000
+ end;
+ _ ->
+ infinity
+ end.
+
+iiop_connection_timeout() ->
+ case application:get_env(orber, iiop_connection_timeout) of
+ {ok, Int} when is_integer(Int) ->
+ if
+ Int > 1000000 ->
+ error_logger:error_msg("Orber 'iiop_connection_timeout' badly configured.~n"
+ "Time to large (>1000000 sec), swithed to 'infinity'~n"),
+ infinity;
+ true ->
+ %% Convert to msec.
+ Int*1000
+ end;
+ _ ->
+ infinity
+ end.
+
+iiop_setup_connection_timeout() ->
+ case application:get_env(orber, iiop_setup_connection_timeout) of
+ {ok, Int} when is_integer(Int) ->
+ %% Convert to msec.
+ Int*1000;
+ _ ->
+ infinity
+ end.
+
+iiop_in_connection_timeout() ->
+ case application:get_env(orber, iiop_in_connection_timeout) of
+ {ok, Int} when is_integer(Int) ->
+ if
+ Int > 1000000 ->
+ error_logger:error_msg("Orber 'iiop_connection_timeout' badly configured.~n"
+ "Time to large (>1000000 sec), swithed to 'infinity'~n"),
+ infinity;
+ true ->
+ %% Convert to msec.
+ Int*1000
+ end;
+ _ ->
+ infinity
+ end.
+
+iiop_max_fragments() ->
+ case application:get_env(orber, iiop_max_fragments) of
+ {ok, Max} when is_integer(Max) andalso Max > 0 ->
+ Max;
+ _ ->
+ infinity
+ end.
+
+iiop_max_in_requests() ->
+ case application:get_env(orber, iiop_max_in_requests) of
+ {ok, Max} when is_integer(Max) andalso Max > 0 ->
+ Max;
+ _ ->
+ infinity
+ end.
+
+iiop_max_in_connections() ->
+ case application:get_env(orber, iiop_max_in_connections) of
+ {ok, Max} when is_integer(Max) andalso Max > 0 ->
+ Max;
+ _ ->
+ infinity
+ end.
+
+iiop_backlog() ->
+ case application:get_env(orber, iiop_backlog) of
+ {ok, Int} when is_integer(Int) andalso Int >= 0 ->
+ Int;
+ _ ->
+ 5
+ end.
+
+iiop_in_keepalive() ->
+ case application:get_env(orber, iiop_in_keepalive) of
+ {ok, true} ->
+ true;
+ _ ->
+ false
+ end.
+
+iiop_out_keepalive() ->
+ case application:get_env(orber, iiop_out_keepalive) of
+ {ok, true} ->
+ true;
+ _ ->
+ false
+ end.
+
+
+
+get_flags() ->
+ case get(oe_orber_flags) of
+ undefined ->
+ case application:get_env(orber, flags) of
+ undefined ->
+ put(oe_orber_flags, ?ORB_ENV_INIT_FLAGS),
+ ?ORB_ENV_INIT_FLAGS;
+ {ok, Flags} ->
+ put(oe_orber_flags, Flags),
+ Flags
+ end;
+ Flags when is_integer(Flags) ->
+ Flags
+ end.
+
+typechecking() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_LOCAL_TYPECHECKING).
+
+exclude_codeset_ctx() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_EXCLUDE_CODESET_CTX).
+
+exclude_codeset_component() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_EXCLUDE_CODESET_COMPONENT).
+
+partial_security() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_PARTIAL_SECURITY).
+
+use_CSIv2() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_USE_CSIV2).
+
+use_FT() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_USE_FT).
+
+ip_version() ->
+ case ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_USE_IPV6) of
+ false ->
+ inet;
+ true ->
+ inet6
+ end.
+
+light_ifr() ->
+ ?ORB_FLAG_TEST(get_flags(), ?ORB_ENV_LIGHT_IFR).
+
+bidir_context() ->
+ Flags = get_flags(),
+ if
+ ?ORB_FLAG_TEST(Flags, ?ORB_ENV_USE_BI_DIR_IIOP) ->
+ [#'IOP_ServiceContext'
+ {context_id=?IOP_BI_DIR_IIOP,
+ context_data =
+ #'IIOP_BiDirIIOPServiceContext'{listen_points =
+ [#'IIOP_ListenPoint'{host=host(),
+ port=iiop_port()}]}}];
+ true ->
+ []
+ end.
+
+objectkeys_gc_time() ->
+ case application:get_env(orber, objectkeys_gc_time) of
+ {ok, Int} when is_integer(Int) ->
+ if
+ Int > 1000000 ->
+ error_logger:error_msg("Orber 'objectkeys_gc_time' badly configured.~n"
+ "Time to large (>1000000 sec), swithed to 'infinity'~n"),
+ infinity;
+ true ->
+ Int
+ end;
+ _ ->
+ infinity
+ end.
+
+get_ORBInitRef() ->
+ case application:get_env(orber, orbInitRef) of
+ {ok, Ref} when is_list(Ref) ->
+ Ref;
+ _ ->
+ undefined
+ end.
+
+get_ORBDefaultInitRef() ->
+ case application:get_env(orber, orbDefaultInitRef) of
+ {ok, Ref} when is_list(Ref) ->
+ Ref;
+ _ ->
+ undefined
+ end.
+
+get_debug_level() ->
+ case application:get_env(orber, orber_debug_level) of
+ {ok, Level} when is_integer(Level) ->
+ Level;
+ _ ->
+ 0
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Interceptor opertaions (see orber_pi.erl)
+%%-----------------------------------------------------------------
+get_interceptors() ->
+ case application:get_env(orber, interceptors) of
+ {ok, {native, PIs}} when is_list(PIs) ->
+ {native, PIs};
+ {ok, {portable, PIs}} when is_list(PIs) ->
+ {portable, PIs};
+ _ ->
+ false
+ end.
+
+get_local_interceptors() ->
+ case application:get_env(orber, local_interceptors) of
+ {ok, {native, PIs}} when is_list(PIs) ->
+ {native, PIs};
+ {ok, {portable, PIs}} when is_list(PIs) ->
+ {portable, PIs};
+ _ ->
+ false
+ end.
+
+
+get_cached_interceptors() ->
+ case get(oe_orber_interceptor_cache) of
+ undefined ->
+ PIs = case application:get_env(orber, local_interceptors) of
+ {ok, {native, LPIs}} when is_list(LPIs) ->
+ {native, LPIs};
+ {ok, {portable, LPIs}} when is_list(LPIs) ->
+ {portable, LPIs};
+ _ ->
+ get_interceptors()
+ end,
+ put(oe_orber_interceptor_cache, PIs),
+ PIs;
+ PIs ->
+ PIs
+ end.
+
+
+set_interceptors({Type, InterceptorList}) when is_list(InterceptorList) ->
+ configure(interceptors, {Type, InterceptorList});
+set_interceptors(_) ->
+ exit({error, "Usage: {Type, ModuleList}"}).
+
+
+%%-----------------------------------------------------------------
+%% Light weight Orber operations
+%%-----------------------------------------------------------------
+is_lightweight() ->
+ case application:get_env(orber, lightweight) of
+ {ok, L} when is_list(L) ->
+ true;
+ _ ->
+ false
+ end.
+get_lightweight_nodes() ->
+ case application:get_env(orber, lightweight) of
+ {ok, L} when is_list(L) ->
+ L;
+ _ ->
+ false
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Security access operations (SSL)
+%%-----------------------------------------------------------------
+secure() ->
+ case application:get_env(orber, secure) of
+ {ok, V} ->
+ V;
+ _ ->
+ no
+ end.
+
+ssl_generation() ->
+ case application:get_env(orber, ssl_generation) of
+ {ok, V} ->
+ V;
+ _ ->
+ 2
+ end.
+
+iiop_ssl_ip_address_local() ->
+ case application:get_env(orber, iiop_ssl_ip_address_local) of
+ {ok,I} when is_list(I) ->
+ [I];
+ _ ->
+ []
+ end.
+
+iiop_ssl_backlog() ->
+ case application:get_env(orber, iiop_ssl_backlog) of
+ {ok, Int} when is_integer(Int), Int >= 0 ->
+ Int;
+ _ ->
+ 5
+ end.
+
+iiop_ssl_in_keepalive() ->
+ case application:get_env(orber, iiop_ssl_in_keepalive) of
+ {ok, true} ->
+ true;
+ _ ->
+ false
+ end.
+
+iiop_ssl_out_keepalive() ->
+ case application:get_env(orber, iiop_ssl_out_keepalive) of
+ {ok, true} ->
+ true;
+ _ ->
+ false
+ end.
+
+iiop_ssl_accept_timeout() ->
+ case application:get_env(orber, iiop_ssl_accept_timeout) of
+ {ok, N} when is_integer(N) ->
+ N * 1000;
+ _ ->
+ infinity
+ end.
+
+iiop_ssl_port() ->
+ case application:get_env(orber, secure) of
+ {ok, ssl} ->
+ case application:get_env(orber, iiop_ssl_port) of
+ {ok, Port} when is_integer(Port) ->
+ Port;
+ _ ->
+ 4002
+ end;
+ _ ->
+ -1
+ end.
+
+nat_iiop_ssl_port() ->
+ case application:get_env(orber, secure) of
+ {ok, ssl} ->
+ case application:get_env(orber, nat_iiop_ssl_port) of
+ {ok, Port} when is_integer(Port) andalso Port > 0 ->
+ Port;
+ {ok, {local, Default, _NATList}} ->
+ Default;
+ _ ->
+ iiop_ssl_port()
+ end;
+ _ ->
+ -1
+ end.
+
+nat_iiop_ssl_port(LocalPort) ->
+ case application:get_env(orber, secure) of
+ {ok, ssl} ->
+ case application:get_env(orber, nat_iiop_ssl_port) of
+ {ok, Port} when is_integer(Port) andalso Port > 0 ->
+ Port;
+ {ok, {local, Default, NATList}} ->
+ orber_tb:keysearch(LocalPort, NATList, Default);
+ _ ->
+ iiop_ssl_port()
+ end;
+ _ ->
+ -1
+ end.
+
+ssl_server_certfile() ->
+ case application:get_env(orber, ssl_server_certfile) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ {ok, V2} when is_atom(V2) ->
+ atom_to_list(V2);
+ _ ->
+ []
+ end.
+
+ssl_client_certfile() ->
+ case get(ssl_client_certfile) of
+ undefined ->
+ case application:get_env(orber, ssl_client_certfile) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ {ok, V2} when is_atom(V2) ->
+ atom_to_list(V2);
+ _ ->
+ []
+ end;
+ V ->
+ V
+ end.
+
+set_ssl_client_certfile(Value) when is_list(Value) ->
+ put(ssl_client_certfile, Value).
+
+ssl_server_verify() ->
+ Verify = case application:get_env(orber, ssl_server_verify) of
+ {ok, V} when is_integer(V) ->
+ V;
+ _ ->
+ 0
+ end,
+ if
+ Verify =< 2, Verify >= 0 ->
+ Verify;
+ true ->
+ 0
+ end.
+
+ssl_client_verify() ->
+ Verify = case get(ssl_client_verify) of
+ undefined ->
+ case application:get_env(orber, ssl_client_verify) of
+ {ok, V1} when is_integer(V1) ->
+ V1;
+ _ ->
+ 0
+ end;
+ V2 ->
+ V2
+ end,
+ if
+ Verify =< 2, Verify >= 0 ->
+ Verify;
+ true ->
+ 0
+ end.
+
+set_ssl_client_verify(Value) when is_integer(Value) andalso Value =< 2 andalso Value >= 0 ->
+ put(ssl_client_verify, Value), ok.
+
+ssl_server_depth() ->
+ case application:get_env(orber, ssl_server_depth) of
+ {ok, V1} when is_integer(V1) ->
+ V1;
+ _ ->
+ 1
+ end.
+
+ssl_client_depth() ->
+ case get(ssl_client_depth) of
+ undefined ->
+ case application:get_env(orber, ssl_client_depth) of
+ {ok, V1} when is_integer(V1) ->
+ V1;
+ _ ->
+ 1
+ end;
+ V2 ->
+ V2
+ end.
+
+set_ssl_client_depth(Value) when is_integer(Value) ->
+ put(ssl_client_depth, Value), ok.
+
+
+
+ssl_server_cacertfile() ->
+ case application:get_env(orber, ssl_server_cacertfile) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ {ok, V2} when is_atom(V2) ->
+ atom_to_list(V2);
+ _ ->
+ []
+ end.
+
+ssl_client_cacertfile() ->
+ case get(ssl_client_cacertfile) of
+ undefined ->
+ case application:get_env(orber, ssl_client_cacertfile) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ {ok, V2} when is_atom(V2) ->
+ atom_to_list(V2);
+ _ ->
+ []
+ end;
+ V3 ->
+ V3
+ end.
+
+set_ssl_client_cacertfile(Value) when is_list(Value) ->
+ put(ssl_client_cacertfile, Value), ok.
+
+
+ssl_client_password() ->
+ case application:get_env(orber, ssl_client_password) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ _ ->
+ []
+ end.
+
+ssl_server_password() ->
+ case application:get_env(orber, ssl_server_password) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ _ ->
+ []
+ end.
+
+ssl_client_keyfile() ->
+ case application:get_env(orber, ssl_client_keyfile) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ _ ->
+ []
+ end.
+
+ssl_server_keyfile() ->
+ case application:get_env(orber, ssl_server_keyfile) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ _ ->
+ []
+ end.
+
+ssl_client_ciphers() ->
+ case application:get_env(orber, ssl_client_ciphers) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ _ ->
+ []
+ end.
+
+ssl_server_ciphers() ->
+ case application:get_env(orber, ssl_server_ciphers) of
+ {ok, V1} when is_list(V1) ->
+ V1;
+ _ ->
+ []
+ end.
+
+ssl_client_cachetimeout() ->
+ case application:get_env(orber, ssl_client_cachetimeout) of
+ {ok, V1} when is_integer(V1) ->
+ V1;
+ _ ->
+ infinity
+ end.
+
+ssl_server_cachetimeout() ->
+ case application:get_env(orber, ssl_server_cachetimeout) of
+ {ok, V1} when is_integer(V1) ->
+ V1;
+ _ ->
+ infinity
+ end.
+
+%%-----------------------------------------------------------------
+%% function : configure
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+configure(Key, Value) when is_atom(Key) ->
+ configure(Key, Value, check);
+configure(Key, _) ->
+ ?EFORMAT("Given key (~p) not an atom.", [Key]).
+
+configure_override(Key, Value) when is_atom(Key) ->
+ configure(Key, Value, loaded);
+configure_override(Key, _) ->
+ ?EFORMAT("Given key (~p) not an atom.", [Key]).
+
+%%-----------------------------------------------------------------
+%% function : multi_configure
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+multi_configure(KeyValueList) when is_list(KeyValueList) ->
+ case orber_tb:is_loaded() of
+ false ->
+ application:load(orber),
+ multi_configure_helper(KeyValueList, loaded);
+ true ->
+ case orber_tb:is_running() of
+ false ->
+ multi_configure_helper(KeyValueList, loaded);
+ true ->
+ multi_configure_helper(KeyValueList, running)
+ end
+ end;
+multi_configure(KeyValueList) ->
+ ?EFORMAT("Given configuration parameters not a Key-Value-pair list: ~p",
+ [KeyValueList]).
+
+multi_configure_helper([], _) ->
+ ok;
+multi_configure_helper([{Key, Value}|T], Status) ->
+ configure(Key, Value, Status),
+ multi_configure_helper(T, Status);
+multi_configure_helper([What|_], _) ->
+ ?EFORMAT("Incorrect configuration parameters supplied: ~p", [What]).
+
+
+%%------ Keys we can update at any time -----
+%% Initial Services References
+configure(orbDefaultInitRef, String, Status) when is_list(String) ->
+ do_configure(orbDefaultInitRef, String, Status);
+configure(orbDefaultInitRef, undefined, Status) ->
+ do_configure(orbDefaultInitRef, undefined, Status);
+configure(orbInitRef, String, Status) when is_list(String) ->
+ do_configure(orbInitRef, String, Status);
+configure(orbInitRef, undefined, Status) ->
+ do_configure(orbInitRef, undefined, Status);
+%% IIOP-version
+configure(giop_version, {1, 0}, Status) ->
+ do_configure(giop_version, {1, 0}, Status);
+configure(giop_version, {1, 1}, Status) ->
+ do_configure(giop_version, {1, 1}, Status);
+configure(giop_version, {1, 2}, Status) ->
+ do_configure(giop_version, {1, 2}, Status);
+%% configure 'iiop_timout' will only have effect on new requests.
+configure(iiop_timeout, infinity, Status) ->
+ do_configure(iiop_timeout, infinity, Status);
+configure(iiop_timeout, Value, Status) when is_integer(Value) andalso Value =< 1000000 ->
+ do_configure(iiop_timeout, Value, Status);
+%% Backlog
+configure(iiop_backlog, Value, Status) when is_integer(Value) andalso Value >= 0 ->
+ do_configure(iiop_backlog, Value, Status);
+%% configure 'iiop_in_keepalive' will only have effect on new connections.
+configure(iiop_in_keepalive, true, Status) ->
+ do_configure(iiop_in_keepalive, true, Status);
+configure(iiop_in_keepalive, false, Status) ->
+ do_configure(iiop_in_keepalive, false, Status);
+%% configure 'iiop_out_keepalive' will only have effect on new connections.
+configure(iiop_out_keepalive, true, Status) ->
+ do_configure(iiop_out_keepalive, true, Status);
+configure(iiop_out_keepalive, false, Status) ->
+ do_configure(iiop_out_keepalive, false, Status);
+%% configure 'iiop_connection_timout' will only have effect on new connections.
+configure(iiop_connection_timeout, infinity, Status) ->
+ do_configure(iiop_connection_timeout, infinity, Status);
+configure(iiop_connection_timeout, Value, Status) when is_integer(Value) andalso Value =< 1000000 ->
+ do_configure(iiop_connection_timeout, Value, Status);
+%% configure 'iiop_in_connection_timout' will only have effect on new connections.
+configure(iiop_in_connection_timeout, infinity, Status) ->
+ do_configure(iiop_in_connection_timeout, infinity, Status);
+configure(iiop_in_connection_timeout, Value, Status) when is_integer(Value) andalso Value =< 1000000 ->
+ do_configure(iiop_in_connection_timeout, Value, Status);
+%% configure 'iiop_setup_connection_timeout' will only have effect on new connections.
+configure(iiop_setup_connection_timeout, infinity, Status) ->
+ do_configure(iiop_setup_connection_timeout, infinity, Status);
+configure(iiop_setup_connection_timeout, Value, Status) when is_integer(Value) ->
+ do_configure(iiop_setup_connection_timeout, Value, Status);
+%% configure 'iiop_max_fragments' will only have effect on new connections.
+configure(iiop_max_fragments, infinity, Status) ->
+ do_configure(iiop_max_fragments, infinity, Status);
+configure(iiop_max_fragments, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_configure(iiop_max_fragments, Value, Status);
+%% configure 'iiop_max_in_requests' will only have effect on new connections.
+configure(iiop_max_in_requests, infinity, Status) ->
+ do_configure(iiop_max_in_requests, infinity, Status);
+configure(iiop_max_in_requests, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_configure(iiop_max_in_requests, Value, Status);
+%% configure 'iiop_max_in_connections' will only have effect on new connections.
+configure(iiop_max_in_connections, infinity, Status) ->
+ do_configure(iiop_max_in_connections, infinity, Status);
+configure(iiop_max_in_connections, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_configure(iiop_max_in_connections, Value, Status);
+%% Garbage Collect the object keys DB.
+configure(objectkeys_gc_time, infinity, Status) ->
+ do_configure(objectkeys_gc_time, infinity, Status);
+configure(objectkeys_gc_time, Value, Status) when is_integer(Value) andalso Value =< 1000000 ->
+ do_configure(objectkeys_gc_time, Value, Status);
+%% Orber debug printouts
+configure(orber_debug_level, Value, Status) when is_integer(Value) ->
+ do_configure(orber_debug_level, Value, Status);
+
+%%------ Keys we cannot change if Orber is running -----
+%% Set the listen port
+configure(iiop_port, Value, Status) when is_integer(Value) ->
+ do_safe_configure(iiop_port, Value, Status);
+%% Set the NAT listen port
+configure(nat_iiop_port, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_safe_configure(nat_iiop_port, Value, Status);
+configure(nat_iiop_port, {local, Value1, Value2}, Status) when is_integer(Value1) andalso
+ Value1 > 0 andalso
+ is_list(Value2) ->
+ do_safe_configure(nat_iiop_port, {local, Value1, Value2}, Status);
+%% Set Maximum Packet Size
+configure(iiop_packet_size, Max, Status) when is_integer(Max) andalso Max > 0 ->
+ do_safe_configure(iiop_packet_size, Max, Status);
+%% IIOP interceptors
+configure(interceptors, Value, Status) when is_tuple(Value) ->
+ do_safe_configure(interceptors, Value, Status);
+%% Local interceptors
+configure(local_interceptors, Value, Status) when is_tuple(Value) ->
+ do_safe_configure(local_interceptors, Value, Status);
+%% Orber Domain
+configure(domain, Value, Status) when is_list(Value) ->
+ do_safe_configure(domain, Value, Status);
+%% Set the IP-address we should use
+configure(ip_address, Value, Status) when is_list(Value) ->
+ do_safe_configure(ip_address, Value, Status);
+configure(ip_address, {multiple, Value}, Status) when is_list(Value) ->
+ do_safe_configure(ip_address, {multiple, Value}, Status);
+configure(ip_address_local, Value, Status) when is_list(Value) ->
+ do_safe_configure(ip_address_local, Value, Status);
+%% Set the NAT IP-address we should use
+configure(nat_ip_address, Value, Status) when is_list(Value) ->
+ do_safe_configure(nat_ip_address, Value, Status);
+configure(nat_ip_address, {multiple, Value}, Status) when is_list(Value) ->
+ do_safe_configure(nat_ip_address, {multiple, Value}, Status);
+configure(nat_ip_address, {local, Value1, Value2}, Status) when is_list(Value1) andalso
+ is_list(Value2) ->
+ do_safe_configure(nat_ip_address, {local, Value1, Value2}, Status);
+%% Set the range of ports we may use on this machine when connecting to a server.
+configure(iiop_out_ports, {Min, Max}, Status) when is_integer(Min) andalso is_integer(Max) ->
+ do_safe_configure(iiop_out_ports, {Min, Max}, Status);
+%% Set the lightweight option.
+configure(lightweight, Value, Status) when is_list(Value) ->
+ do_safe_configure(lightweight, Value, Status);
+%% Configre the System Flags
+configure(flags, Value, Status) when is_integer(Value) ->
+ do_safe_configure(flags, Value, Status);
+%% Configre the ACL
+configure(iiop_acl, Value, Status) when is_list(Value) ->
+ do_safe_configure(iiop_acl, Value, Status);
+
+%% SSL settings
+%% configure 'iiop_in_keepalive' will only have effect on new connections.
+configure(iiop_ssl_in_keepalive, true, Status) ->
+ do_configure(iiop_ssl_in_keepalive, true, Status);
+configure(iiop_ssl_in_keepalive, false, Status) ->
+ do_configure(iiop_ssl_in_keepalive, false, Status);
+%% configure 'iiop_ssl_out_keepalive' will only have effect on new connections.
+configure(iiop_ssl_out_keepalive, true, Status) ->
+ do_configure(iiop_ssl_out_keepalive, true, Status);
+configure(iiop_ssl_out_keepalive, false, Status) ->
+ do_configure(iiop_ssl_out_keepalive, false, Status);
+configure(iiop_ssl_accept_timeout, infinity, Status) ->
+ do_configure(iiop_ssl_accept_timeout, infinity, Status);
+configure(iiop_ssl_accept_timeout, Value, Status) when is_integer(Value) andalso Value >= 0 ->
+ do_configure(iiop_ssl_accept_timeout, Value, Status);
+configure(ssl_generation, Generation, Status) when is_integer(Generation) andalso Generation >= 2 ->
+ do_safe_configure(ssl_generation, Generation, Status);
+configure(secure, ssl, Status) ->
+ do_safe_configure(secure, ssl, Status);
+configure(iiop_ssl_ip_address_local, Value, Status) when is_list(Value) ->
+ do_safe_configure(iiop_ssl_ip_address_local, Value, Status);
+configure(iiop_ssl_backlog, Value, Status) when is_integer(Value) andalso Value >= 0 ->
+ do_safe_configure(iiop_ssl_backlog, Value, Status);
+configure(nat_iiop_ssl_port, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_safe_configure(nat_iiop_ssl_port, Value, Status);
+configure(nat_iiop_ssl_port, {local, Value1, Value2}, Status) when is_integer(Value1) andalso
+ Value1 > 0 andalso
+ is_list(Value2) ->
+ do_safe_configure(nat_iiop_ssl_port, {local, Value1, Value2}, Status);
+configure(iiop_ssl_port, Value, Status) when is_integer(Value) ->
+ do_safe_configure(iiop_ssl_port, Value, Status);
+configure(ssl_server_certfile, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_server_certfile, Value, Status);
+configure(ssl_server_certfile, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_server_certfile, atom_to_list(Value), Status);
+configure(ssl_client_certfile, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_client_certfile, Value, Status);
+configure(ssl_client_certfile, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_client_certfile, atom_to_list(Value), Status);
+configure(ssl_server_verify, Value, Status) when is_integer(Value) ->
+ do_safe_configure(ssl_server_verify, Value, Status);
+configure(ssl_client_verify, Value, Status) when is_integer(Value) ->
+ do_safe_configure(ssl_client_verify, Value, Status);
+configure(ssl_server_depth, Value, Status) when is_integer(Value) ->
+ do_safe_configure(ssl_server_depth, Value, Status);
+configure(ssl_client_depth, Value, Status) when is_integer(Value) ->
+ do_safe_configure(ssl_client_depth, Value, Status);
+configure(ssl_server_cacertfile, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_server_cacertfile, Value, Status);
+configure(ssl_server_cacertfile, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_server_cacertfile, atom_to_list(Value), Status);
+configure(ssl_client_cacertfile, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_client_cacertfile, Value, Status);
+configure(ssl_client_cacertfile, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_client_cacertfile, atom_to_list(Value), Status);
+configure(ssl_client_password, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_client_password, Value, Status);
+configure(ssl_client_password, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_client_password, atom_to_list(Value), Status);
+configure(ssl_client_keyfile, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_client_keyfile, Value, Status);
+configure(ssl_client_keyfile, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_client_keyfile, atom_to_list(Value), Status);
+configure(ssl_server_password, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_server_password, Value, Status);
+configure(ssl_client_password, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_server_password, atom_to_list(Value), Status);
+configure(ssl_server_keyfile, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_server_keyfile, Value, Status);
+configure(ssl_server_keyfile, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_server_keyfile, atom_to_list(Value), Status);
+configure(ssl_server_ciphers, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_server_ciphers, Value, Status);
+configure(ssl_server_ciphers, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_server_ciphers, atom_to_list(Value), Status);
+configure(ssl_client_ciphers, Value, Status) when is_list(Value) ->
+ do_safe_configure(ssl_client_ciphers, Value, Status);
+configure(ssl_client_ciphers, Value, Status) when is_atom(Value) ->
+ do_safe_configure(ssl_client_ciphers, atom_to_list(Value), Status);
+configure(ssl_client_cachetimeout, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_safe_configure(ssl_client_cachetimeout, Value, Status);
+configure(ssl_server_cachetimeout, Value, Status) when is_integer(Value) andalso Value > 0 ->
+ do_safe_configure(ssl_server_cachetimeout, Value, Status);
+
+configure(Key, Value, _) ->
+ ?EFORMAT("Bad configuration parameter: {~p, ~p}", [Key, Value]).
+
+%% This function may be used as long as it is safe to change a value at any time.
+do_configure(Key, Value, check) ->
+ case orber_tb:is_loaded() of
+ false ->
+ application:load(orber),
+ application:set_env(orber, Key, Value);
+ true ->
+ application:set_env(orber, Key, Value)
+ end;
+do_configure(Key, Value, _) ->
+ application:set_env(orber, Key, Value).
+
+%% This function MUST(!!) be used when we cannot change a value if Orber is running.
+do_safe_configure(_, _, running) ->
+ exit("Orber already running, the given key may not be updated!");
+do_safe_configure(Key, Value, check) ->
+ case orber_tb:is_loaded() of
+ false ->
+ application:load(orber),
+ application:set_env(orber, Key, Value);
+ true ->
+ case orber_tb:is_running() of
+ false ->
+ application:set_env(orber, Key, Value);
+ true ->
+ ?EFORMAT("Orber already running. {~p, ~p} may not be updated!",
+ [Key, Value])
+ end
+ end;
+do_safe_configure(Key, Value, loaded) ->
+ application:set_env(orber, Key, Value).
+
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+init(_Opts) ->
+ {ok, #env{acl = orber_acl:init_acl(iiop_acl()),
+ parameters = init_env()}}.
+
+terminate(_Reason, _State) ->
+ ok.
+
+handle_call(_, _From, State) ->
+ {reply, ok, State}.
+
+handle_cast(_, State) ->
+ {noreply, State}.
+
+handle_info(_, State) ->
+ {noreply, State}.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------------
+%% function : env
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Used when Key always exists (Default Value)
+%%-----------------------------------------------------------------
+env(Key) ->
+ [#parameters{value = Val}] = ets:lookup(?ENV_DB, Key),
+ Val.
+
+%%-----------------------------------------------------------------
+%% function : init_env
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%-----------------------------------------------------------------
+init_env() ->
+ application:load(orber),
+ DB = ets:new(?ENV_DB, [set, public, named_table, {keypos, 2}]),
+% init_env(?ENV_KEYS),
+ DB.
+
+%init_env([{H,D}|T]) ->
+% case application:get_env(orber, H) of
+% {ok, V} ->
+% ets:insert(?ENV_DB, #parameters{key = H, value = V, flags = 0}),
+% init_env(T);
+% _ ->
+% ets:insert(?ENV_DB, #parameters{key = H, value = D, flags = 0}),
+% init_env(T)
+% end;
+%init_env([H|T]) ->
+% case application:get_env(orber, H) of
+% {ok, V} ->
+% ets:insert(?ENV_DB, #parameters{key = H, value = V, flags = 0}),
+% init_env(T);
+% _ ->
+% ets:insert(?ENV_DB, #parameters{key = H, value = undefined, flags = 0}),
+% init_env(T)
+% end;
+%init_env([]) ->
+% ok.
+
+%%-----------------------------------------------------------------
+%%------------- END OF MODULE -------------------------------------
+%%-----------------------------------------------------------------
diff --git a/lib/orber/src/orber_exceptions.erl b/lib/orber/src/orber_exceptions.erl
new file mode 100644
index 0000000000..9ee6e31aeb
--- /dev/null
+++ b/lib/orber/src/orber_exceptions.erl
@@ -0,0 +1,717 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_exceptions.erl
+%%
+%% Description:
+%%
+%%-----------------------------------------------------------------
+
+-module(orber_exceptions).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/src/ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([dissect/1,
+ get_def/1,
+ get_name/2,
+ type/1,
+ is_system_exception/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export(['UNKNOWN'/1,
+ 'BAD_PARAM'/1,
+ 'NO_MEMORY'/1,
+ 'IMP_LIMIT'/1,
+ 'COMM_FAILURE'/1,
+ 'INV_OBJREF'/1,
+ 'NO_PERMISSION'/1,
+ 'INTERNAL'/1,
+ 'MARSHAL'/1,
+ 'INITIALIZE'/1,
+ 'NO_IMPLEMENT'/1,
+ 'BAD_TYPECODE'/1,
+ 'BAD_OPERATION'/1,
+ 'NO_RESOURCES'/1,
+ 'NO_RESPONSE'/1,
+ 'PERSIST_STORE'/1,
+ 'BAD_INV_ORDER'/1,
+ 'TRANSIENT'/1,
+ 'FREE_MEM'/1,
+ 'INV_IDENT'/1,
+ 'INV_FLAG'/1,
+ 'INTF_REPOS'/1,
+ 'BAD_CONTEXT'/1,
+ 'OBJ_ADAPTER'/1,
+ 'DATA_CONVERSION'/1,
+ 'OBJECT_NOT_EXIST'/1,
+ 'TRANSACTION_REQUIRED'/1,
+ 'TRANSACTION_ROLLEDBACK'/1,
+ 'INVALID_TRANSACTION'/1,
+ 'INV_POLICY'/1,
+ 'CODESET_INCOMPATIBLE'/1,
+ 'REBIND'/1,
+ 'TIMEOUT'/1,
+ 'TRANSACTION_UNAVAILABLE'/1,
+ 'TRANSACTION_MODE'/1,
+ 'BAD_QOS'/1]).
+
+
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% Function : is_system_exception
+%% Arguments : Exception - record()
+%% Returns : true | false
+%% Raises :
+%% Description: Check if CORBA system exception or user defined
+%%-----------------------------------------------------------------
+is_system_exception({'EXCEPTION', E}) ->
+ is_system_exception(E);
+is_system_exception(E) when is_tuple(E) ->
+ ?SYSTEM_EXCEPTION == type(element(1, E));
+is_system_exception(_E) ->
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%-----------------------------------------------------------------
+%% Function : type
+%% Arguments : ExceptionName - atom()
+%% Returns : ?SYSTEM_EXCEPTION | ?USER_EXCEPTION
+%% Raises :
+%% Description: Check if CORBA system exception or user defined
+%%-----------------------------------------------------------------
+type('UNKNOWN') -> ?SYSTEM_EXCEPTION;
+type('BAD_PARAM') -> ?SYSTEM_EXCEPTION;
+type('NO_MEMORY') -> ?SYSTEM_EXCEPTION;
+type('IMP_LIMIT') -> ?SYSTEM_EXCEPTION;
+type('COMM_FAILURE') -> ?SYSTEM_EXCEPTION;
+type('INV_OBJREF') -> ?SYSTEM_EXCEPTION;
+type('NO_PERMISSION') -> ?SYSTEM_EXCEPTION;
+type('INTERNAL') -> ?SYSTEM_EXCEPTION;
+type('MARSHAL') -> ?SYSTEM_EXCEPTION;
+type('INITIALIZE') -> ?SYSTEM_EXCEPTION;
+type('NO_IMPLEMENT') -> ?SYSTEM_EXCEPTION;
+type('BAD_TYPECODE') -> ?SYSTEM_EXCEPTION;
+type('BAD_OPERATION') -> ?SYSTEM_EXCEPTION;
+type('NO_RESOURCES') -> ?SYSTEM_EXCEPTION;
+type('NO_RESPONSE') -> ?SYSTEM_EXCEPTION;
+type('PERSIST_STORE') -> ?SYSTEM_EXCEPTION;
+type('BAD_INV_ORDER') -> ?SYSTEM_EXCEPTION;
+type('TRANSIENT') -> ?SYSTEM_EXCEPTION;
+type('FREE_MEM') -> ?SYSTEM_EXCEPTION;
+type('INV_IDENT') -> ?SYSTEM_EXCEPTION;
+type('INV_FLAG') -> ?SYSTEM_EXCEPTION;
+type('INTF_REPOS') -> ?SYSTEM_EXCEPTION;
+type('BAD_CONTEXT') -> ?SYSTEM_EXCEPTION;
+type('OBJ_ADAPTER') -> ?SYSTEM_EXCEPTION;
+type('DATA_CONVERSION') -> ?SYSTEM_EXCEPTION;
+type('OBJECT_NOT_EXIST') -> ?SYSTEM_EXCEPTION;
+type('TRANSACTION_REQUIRED') -> ?SYSTEM_EXCEPTION;
+type('TRANSACTION_ROLLEDBACK') -> ?SYSTEM_EXCEPTION;
+type('INVALID_TRANSACTION') -> ?SYSTEM_EXCEPTION;
+type('INV_POLICY') -> ?SYSTEM_EXCEPTION;
+type('CODESET_INCOMPATIBLE') -> ?SYSTEM_EXCEPTION;
+type('REBIND') -> ?SYSTEM_EXCEPTION;
+type('TIMEOUT') -> ?SYSTEM_EXCEPTION;
+type('TRANSACTION_UNAVAILABLE') -> ?SYSTEM_EXCEPTION;
+type('TRANSACTION_MODE') -> ?SYSTEM_EXCEPTION;
+type('BAD_QOS') -> ?SYSTEM_EXCEPTION;
+type(_) -> ?USER_EXCEPTION.
+
+%%-----------------------------------------------------------------
+%% Function : get_def
+%% Arguments : Exception - record()
+%% Returns : {Type, TypeCode, Exc}
+%% Raises :
+%% Description: Returns the TC for the supplied exception
+%%-----------------------------------------------------------------
+get_def(Exception) ->
+ [Exc, TypeId | _] = tuple_to_list(Exception),
+ case type(Exc) of
+ ?SYSTEM_EXCEPTION ->
+ {?SYSTEM_EXCEPTION, get_system_exception_def(Exc), Exception};
+ ?USER_EXCEPTION ->
+ case orber:light_ifr() of
+ true ->
+ case catch orber_ifr:get_tc(TypeId, ?IFR_ExceptionDef) of
+ {'EXCEPTION', NewExc} ->
+ {?SYSTEM_EXCEPTION,
+ get_system_exception_def(NewExc),
+ NewExc};
+ TC ->
+ {?USER_EXCEPTION, TC, Exception}
+ end;
+ false ->
+ case mnesia:dirty_index_read(ir_ExceptionDef, TypeId,
+ #ir_ExceptionDef.id) of
+ [ExcDef] when is_record(ExcDef, ir_ExceptionDef) ->
+ {?USER_EXCEPTION,
+ ExcDef#ir_ExceptionDef.type,
+ Exception};
+ Other ->
+ orber:dbg("[~p] ~p:get_user_exception_type(~p).~n"
+ "IFR Id not found: ~p",
+ [?LINE, ?MODULE, TypeId, Other], ?DEBUG_LEVEL),
+ NewExc = #'UNKNOWN'{minor=(?CORBA_OMGVMCID bor 1),
+ completion_status=?COMPLETED_MAYBE},
+ {?SYSTEM_EXCEPTION,
+ get_system_exception_def(NewExc),
+ NewExc}
+ end
+ end
+ end.
+
+%%-----------------------------------------------------------------
+%% Function : get_name
+%% Arguments : TypeId - string()
+%% Type - ?SYSTEM_EXCEPTION ( | ?USER_EXCEPTION)
+%% Returns : ExceptionName - atom()
+%% Raises : #'UNKNOWN'{}
+%% Description: Extract exception name
+%%-----------------------------------------------------------------
+get_name(TypeId, ?SYSTEM_EXCEPTION) ->
+ ExcName =
+ case string:tokens(TypeId, ":/") of
+ [_IDL, _OMGORG, _CORBA, Name, _Version] when is_list(Name) ->
+ list_to_atom(Name);
+ [_IDL, _CORBA, Name, _Version] when is_list(Name) ->
+ %% We should remove this case but we keep it for now due to backward
+ %% compatible reasons.
+ list_to_atom(Name);
+ Other ->
+ %% The CORBA-spec states that this exception should be raised if
+ %% it's a system exception we do not support.
+ orber:dbg("[~p] ~p:get_system_exception_name(~p).~n"
+ "Unknown System Exception: ~p",
+ [?LINE, ?MODULE, TypeId, Other], ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{minor=(?CORBA_OMGVMCID bor 2),
+ completion_status=?COMPLETED_MAYBE})
+ end,
+ case type(ExcName) of
+ ?SYSTEM_EXCEPTION ->
+ ExcName;
+ What ->
+ orber:dbg("[~p] ~p:get_system_exception_name(~p).~n"
+ "Unknown System Exception: ~p",
+ [?LINE, ?MODULE, TypeId, What], ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{minor=(?CORBA_OMGVMCID bor 2),
+ completion_status=?COMPLETED_MAYBE})
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Generate system exception TypeCode
+%%-----------------------------------------------------------------
+get_system_exception_def(ExcName) when is_atom(ExcName) ->
+ Name = atom_to_list(ExcName),
+ {'tk_except', "IDL:omg.org/CORBA/" ++ Name ++ ":1.0", Name,
+ [{"minor",'tk_ulong'},
+ {"completed",
+ {'tk_enum', "", "completion_status",
+ ["COMPLETED_YES", "COMPLETED_NO",
+ "COMPLETED_MAYBE"]}}]};
+get_system_exception_def(Exc) ->
+ get_system_exception_def(element(1, Exc)).
+
+
+%%-----------------------------------------------------------------
+%% Mapping minor codes to a printable string.
+%%-----------------------------------------------------------------
+dissect({'EXCEPTION', Exc}) ->
+ dissect(Exc);
+dissect(Exception) when is_tuple(Exception) ->
+ [Exc, TypeId | _] = tuple_to_list(Exception),
+ case type(Exc) of
+ ?USER_EXCEPTION ->
+ {ok, lists:flatten(io_lib:format("~n------------- EXCEPTION INFO --------------
+User Defined Exception.: ~p
+IFR Id.................: ~s
+-------------------------------------------~n", [Exc, TypeId]))};
+ ?SYSTEM_EXCEPTION ->
+ case map_exc(Exception) of
+ {ok, String} ->
+ {ok, lists:flatten(String)};
+ {error, Reason} ->
+ {error, Reason}
+ end
+ end;
+dissect(_What) ->
+ {error, "Not a correct exception supplied to orber_exceptions:dissect/1"}.
+
+map_exc({Name, _, Minor, Status}) when is_integer(Minor) ->
+ case lookup_vendor(Minor) of
+ {true, Vendor, VMCID} ->
+ case catch ?MODULE:Name(Minor) of
+ MinorInfo when is_list(MinorInfo) ->
+ {ok, io_lib:format("~n------------- EXCEPTION INFO --------------
+Vendor.....: ~s
+VMCID......: ~s
+Exception..: ~p
+Status.....: ~p
+Minor Code.: ~p
+Info.......: ~s
+-------------------------------------------~n",
+ [Vendor, VMCID, Name, Status, (Minor band 16#fff), MinorInfo])};
+ _ ->
+ {ok, io_lib:format("~n------------- EXCEPTION INFO --------------
+Vendor.....: ~s
+VMCID......: ~s
+Exception..: ~p
+Status.....: ~p
+Minor Code.: ~p
+Info.......: -
+------------------------------------~n", [Vendor, VMCID, Name, Status, (Minor band 16#fff)])}
+ end;
+ {false, Vendor, VMCID} ->
+ {ok, io_lib:format("~n------------- EXCEPTION INFO --------------
+Vendor.....: ~s
+VMCID......: ~s
+Exception..: ~p
+Status.....: ~p
+Minor Code.: ~p
+Info.......: -
+-------------------------------------------~n", [Vendor, VMCID, Name, Status, (Minor band 16#fff)])}
+ end;
+map_exc(_) ->
+ {error, "Not a correct exception supplied to orber_exceptions:map_exc/1"}.
+
+lookup_vendor(Minor) when (?ORBER_VMCID bxor Minor) < 16#0fff ->
+ {true, "Orber", "0x45520000"};
+lookup_vendor(Minor) when (?CORBA_OMGVMCID bxor Minor) < 16#0fff ->
+ {true, "OMG", "0x4f4d0000"};
+lookup_vendor(Minor) when (?IONA_VMCID_1 bxor Minor) < 16#0fff ->
+ {false, "IONA", "0x4f4f0000"};
+lookup_vendor(Minor) when (?IONA_VMCID_2 bxor Minor) < 16#0fff ->
+ {false, "IONA", "0x49540000"};
+lookup_vendor(Minor) when (?SUN_VMCID bxor Minor) < 16#0fff ->
+ {false, "SUN", "0x53550000"};
+lookup_vendor(Minor) when (?BORLAND_VMCID bxor Minor) < 16#0fff ->
+ {false, "Borland", "0x56420000"};
+lookup_vendor(Minor) when (?TAO_VMCID bxor Minor) < 16#0fff ->
+ {false, "TAO", "0x54410000"};
+lookup_vendor(Minor) when (?PRISMTECH_VMCID bxor Minor) < 16#0fff ->
+ {false, "PrismTech", "0x50540000"};
+lookup_vendor(Minor) when is_integer(Minor), Minor =< ?ULONGMAX ->
+ {false, "undefined", extract_VMCID(Minor)};
+lookup_vendor(Minor) when is_integer(Minor), Minor =< ?ULONGMAX ->
+ {false, "Unknown", "Unable to extract it"}.
+
+extract_VMCID(Int) ->
+ int_to_hex_str(3, ((Int bsr 8) band 16#fffff0), ["00"]).
+
+int_to_hex_str(0, _, Acc) ->
+ lists:flatten(["0x" | Acc]);
+int_to_hex_str(N, Int, Acc) ->
+ int_to_hex_str(N-1, (Int bsr 8), [int_to_hex((16#ff band Int))|Acc]).
+
+int_to_hex(B) when B < 256, B >= 0 ->
+ N1 = B div 16,
+ N2 = B rem 16,
+ [code_character(N1),
+ code_character(N2)].
+code_character(N) when N < 10 ->
+ $0 + N;
+code_character(N) ->
+ $a + (N - 10).
+
+
+%% The following functions all maps to a system exception.
+%% UNKNOWN - OMG
+'UNKNOWN'(?CORBA_OMGVMCID bor 1) -> "Unlisted user exception received
+by client";
+'UNKNOWN'(?CORBA_OMGVMCID bor 2) -> "Non-standard System Exception
+not supported";
+%% UNKNOWN - Orber
+'UNKNOWN'(?ORBER_VMCID bor 1) -> "Missing beam-file. Unable to extract TC.";
+'UNKNOWN'(_) -> "-".
+
+
+%% BAD_PARAM - OMG
+'BAD_PARAM'(?CORBA_OMGVMCID bor 1) -> "Failure to register, unregister, or
+lookup value factory";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 2) -> "RID already defined in IFR";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 3) -> "Name already used in the context in IFR";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 4) -> "Target is not a valid container";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 5) -> "Name clash in inherited context";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 6) -> "Incorrect type for abstract interface";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 7) -> "string_to_object conversion failed
+due to bad scheme name";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 8) -> "string_to_object conversion failed
+due to bad address";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 9) -> "string_to_object conversion failed
+due to bad bad schema specific part";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 10) -> "string_to_object conversion failed
+due to non specific reason";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 11) -> "Attempt to derive abstract interface
+from non-abstract base interface
+in the Interface Repository";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 12) -> "Attempt to let a ValueDef support
+more than one non-abstract interface
+in the Interface Repository";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 13) -> "Attempt to use an incomplete
+TypeCode as a parameter";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 14) -> "Invalid object id passed to
+POA::create_reference_by_id";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 15) -> "Bad name argument in TypeCode operation";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 16) -> "Bad RepositoryId argument in TypeCode
+operation";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 17) -> "Invalid member name in TypeCode operation";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 18) -> "Duplicate label value in create_union_tc";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 19) -> "Incompatible TypeCode of label and
+discriminator in create_union_tc";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 20) -> "Supplied discriminator type illegitimate
+in create_union_tc";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 21) -> "Any passed to ServerRequest::set_exception
+does not contain an exception";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 22) -> "Unlisted user exception passed to
+ServerRequest::set_exception";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 23) -> "wchar transmission code set not
+in service context";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 24) -> "Service context is not in OMG-defined range";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 25) -> "Enum value out of range";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 26) -> "Invalid service context Id in portable
+interceptor";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 27) -> "Attempt to call register_initial_reference
+with a null Object";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 28) -> "Invalid component Id in
+portable interceptor";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 29) -> "Invalid profile Id in portable
+interceptor";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 30) -> "Two or more Policy objects with the
+same PolicyType value supplied to
+Object::set_policy_overrides or
+PolicyManager::set_policy_overrides";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 31) -> "Attempt to define a oneway
+operation with non-void result,
+out or inout parameters or user
+exceptions";
+'BAD_PARAM'(?CORBA_OMGVMCID bor 32) -> "DII asked to create request
+for an implicit operation";
+%% BAD_PARAM - Orber
+'BAD_PARAM'(?ORBER_VMCID bor 1) -> "Bad return value from the objects
+init-function (create phase) or invalid
+options suuplied";
+'BAD_PARAM'(_) -> "-".
+
+%% NO_MEMORY - OMG
+'NO_MEMORY'(_) -> "-".
+
+%% IMP_LIMIT - OMG
+'IMP_LIMIT'(?CORBA_OMGVMCID bor 1) -> "Unable to use any profile in IOR";
+%% IMP_LIMIT - Orber
+'IMP_LIMIT'(?ORBER_VMCID bor 1) -> "All ports assigned to the configuration
+parameter 'iiop_out_ports' are in use";
+'IMP_LIMIT'(_) -> "-".
+
+%% COMM_FAILURE - OMG
+%% COMM_FAILURE - Orber
+'COMM_FAILURE'(?ORBER_VMCID bor 1) -> "Unable to connect to another ORB -
+probably inactive";
+'COMM_FAILURE'(?ORBER_VMCID bor 2) -> "Unable to connect to another ORB -
+interceptor(s) rejected it or behaves
+badly";
+'COMM_FAILURE'(?ORBER_VMCID bor 3) -> "Request terminated by another process";
+'COMM_FAILURE'(?ORBER_VMCID bor 4) -> "Unable to connect to another ORB - timed out";
+'COMM_FAILURE'(_) -> "-".
+
+%% INV_OBJREF - OMG
+'INV_OBJREF'(?CORBA_OMGVMCID bor 1) -> "wchar Code Set support not specified";
+'INV_OBJREF'(?CORBA_OMGVMCID bor 2) -> "Codeset component required for type using wchar or wstring data";
+'INV_OBJREF'(_) -> "-".
+
+%% NO_PERMISSION - OMG
+'NO_PERMISSION'(_) -> "-".
+
+%% INTERNAL - OMG
+%% INTERNAL - Orber
+'INTERNAL'(?ORBER_VMCID bor 1) -> "Unable to connect to an Orber installation";
+'INTERNAL'(?ORBER_VMCID bor 2) -> "Failed to register internal objectkey in the database";
+'INTERNAL'(_) -> "-".
+
+%% MARSHAL - OMG
+'MARSHAL'(?CORBA_OMGVMCID bor 1) -> "Unable to locate value factory";
+'MARSHAL'(?CORBA_OMGVMCID bor 2) -> "ServerRequest::set_result called
+before ServerRequest::ctx when the
+operation IDL contains a context
+clause";
+'MARSHAL'(?CORBA_OMGVMCID bor 3) -> "NVList passed to
+ServerRequest::arguments does not
+describe all parameters passed
+by client";
+'MARSHAL'(?CORBA_OMGVMCID bor 4) -> "Attempt to marshal Local object";
+'MARSHAL'(?CORBA_OMGVMCID bor 5) -> "wchar or wstring data erroneosly
+sent by client over GIOP 1.0
+connection";
+'MARSHAL'(?CORBA_OMGVMCID bor 6) -> "wchar or wstring data erroneously
+returned by server over GIOP 1.0
+connection";
+%% MARSHAL - Orber
+'MARSHAL'(?ORBER_VMCID bor 1) -> "Integer overflow";
+'MARSHAL'(?ORBER_VMCID bor 2) -> "Passed a non-integer,
+when it must be an integer";
+'MARSHAL'(?ORBER_VMCID bor 3) -> "Incorrect boolean";
+'MARSHAL'(?ORBER_VMCID bor 4) -> "Passed a non-number,
+when it must be a float, double
+or long double";
+'MARSHAL'(?ORBER_VMCID bor 5) -> "Bad enumerant - does not exist";
+'MARSHAL'(?ORBER_VMCID bor 6) -> "Passed something else but character
+or octet";
+'MARSHAL'(?ORBER_VMCID bor 7) -> "Unable to marshal the supplied
+typecode";
+'MARSHAL'(?ORBER_VMCID bor 8) -> "Unable to un-marshal the supplied
+typecode";
+'MARSHAL'(?ORBER_VMCID bor 9) -> "Union IFR-id does not exist";
+'MARSHAL'(?ORBER_VMCID bor 10) -> "Struct IFR-id does not exist";
+'MARSHAL'(?ORBER_VMCID bor 11) -> "Empty string supplied as IFR-id";
+'MARSHAL'(?ORBER_VMCID bor 12) -> "Unable to decode target address";
+'MARSHAL'(?ORBER_VMCID bor 13) -> "Incorrect TypeCode or unsupported
+data type";
+'MARSHAL'(?ORBER_VMCID bor 14) -> "The Fixed type does not match the
+defined digits/scale parameters";
+'MARSHAL'(?ORBER_VMCID bor 15) -> "The supplied array is to long or to short";
+'MARSHAL'(?ORBER_VMCID bor 16) -> "String/Wstring exceeds maximum length";
+'MARSHAL'(?ORBER_VMCID bor 17) -> "To few or to many parameters supplied";
+'MARSHAL'(?ORBER_VMCID bor 18) -> "Unable to decode message header";
+'MARSHAL'(?ORBER_VMCID bor 19) -> "Sequnce exceeds maximum length";
+'MARSHAL'(_) -> "-".
+
+%% INITIALIZE - OMG
+'INITIALIZE'(_) -> "-".
+
+%% NO_IMPLEMENT - OMG
+'NO_IMPLEMENT'(?CORBA_OMGVMCID bor 1) -> "Missing local value implementation";
+'NO_IMPLEMENT'(?CORBA_OMGVMCID bor 2) -> "Incompatible value implementation version";
+'NO_IMPLEMENT'(?CORBA_OMGVMCID bor 3) -> "Unable to use any profile in IOR";
+'NO_IMPLEMENT'(?CORBA_OMGVMCID bor 4) -> "Attempt to use DII on Local object";
+'NO_IMPLEMENT'(_) -> "-".
+
+
+%% BAD_TYPECODE - OMG
+'BAD_TYPECODE'(?CORBA_OMGVMCID bor 1) -> "Attempt to marshal incomplete
+TypeCode";
+'BAD_TYPECODE'(?CORBA_OMGVMCID bor 2) -> "Member type code illegitimate
+in TypeCode operation";
+'BAD_TYPECODE'(_) -> "-".
+
+%% BAD_OPERATION - OMG
+'BAD_OPERATION'(?CORBA_OMGVMCID bor 1) -> "ServantManager returned wrong
+servant type";
+%% BAD_OPERATION - Orber
+'BAD_OPERATION'(?ORBER_VMCID bor 1) -> "Incorrect instance type for this
+operation";
+'BAD_OPERATION'(?ORBER_VMCID bor 2) -> "Incorrect instance type for this
+operation (one-way)";
+'BAD_OPERATION'(?ORBER_VMCID bor 3) -> "The IC option 'handle_info' was
+not used when compiling the stub";
+'BAD_OPERATION'(?ORBER_VMCID bor 4) -> "Incorrect instance type for the
+invoked operation (two- or one-way)";
+'BAD_OPERATION'(_) -> "-".
+
+%% NO_RESOURCES - OMG
+'NO_RESOURCES'(?CORBA_OMGVMCID bor 1) -> "Portable Interceptor operation
+not supported in this binding";
+'NO_RESOURCES'(_) -> "-".
+
+%% NO_RESPONSE - OMG
+'NO_RESPONSE'(_) -> "-".
+
+%% PERSIST_STORE - OMG
+'PERSIST_STORE'(_) -> "-".
+
+%% BAD_INV_ORDER - OMG
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 1) -> "Dependency exists in IFR preventing
+destruction of this object";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 2) -> "Attempt to destroy indestructible
+objects in IFR";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 3) -> "Operation would deadlock";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 4) -> "ORB has shutdown";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 5) -> "Attempt to invoke send or invoke
+operation of the same Request object
+more than once";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 6) -> "Attempt to set a servant manager
+after one has already been set";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 7) -> "ServerRequest::arguments called more
+than once or after a call to
+ServerRequest:: set_exception";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 8) -> "ServerRequest::ctx called more than
+once or before ServerRequest::arguments or
+after ServerRequest::ctx, ServerRequest::set_result
+or ServerRequest::set_exception";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 9) -> "ServerRequest::set_result called more
+than once or before ServerRequest::arguments
+or after ServerRequest::set_result or
+ServerRequest::set_exception";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 10) -> "Attempt to send a DII request after
+it was sent previously";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 11) -> "Attempt to poll a DII request or to
+retrieve its result before the request
+was sent";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 12) -> "Attempt to poll a DII request or to
+retrieve its result after the result
+was retrieved previously";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 13) -> "Attempt to poll a synchronous DII
+request or to retrieve results from
+a synchronous DII request";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 14) -> "Invalid portable interceptor call";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 15) -> "Service context add failed in portable
+interceptor because a service context
+with the given id already exists";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 16) -> "Registration of PolicyFactory failed
+because a factory already exists for
+the given PolicyType";
+'BAD_INV_ORDER'(?CORBA_OMGVMCID bor 17) -> "POA cannot create POAs while undergoing
+destruction";
+'BAD_INV_ORDER'(_) -> "-".
+
+%% TRANSIENT - OMG
+'TRANSIENT'(?CORBA_OMGVMCID bor 1) -> "Request discarded because of resource
+exhaustion in POA, or because POA
+is in discarding state";
+'TRANSIENT'(?CORBA_OMGVMCID bor 2) -> "No usable profile in IOR";
+'TRANSIENT'(?CORBA_OMGVMCID bor 3) -> "Request cancelled";
+'TRANSIENT'(?CORBA_OMGVMCID bor 4) -> "POA destroyed";
+%% TRANSIENT - Orber
+'TRANSIENT'(?ORBER_VMCID bor 1) -> "Orber is being restarted, or should be,
+on one node in the multi-node Orber
+installation";
+'TRANSIENT'(?ORBER_VMCID bor 2) -> "The node the target object resides on
+is down (multi-node Orber installation)";
+'TRANSIENT'(?ORBER_VMCID bor 3) -> "Received EXIT when invoking an operation
+on an object residing on another
+node in a multi-node Orber installation";
+'TRANSIENT'(?ORBER_VMCID bor 4) -> "Received EXIT when invoking an operation
+on a local object";
+'TRANSIENT'(?ORBER_VMCID bor 5) -> "Received unknown reply when invoking an
+operation on an object residing on
+another node in a multi-node Orber
+installation";
+'TRANSIENT'(?ORBER_VMCID bor 6) -> "Received unknown reply when invoking an
+operation on a local object";
+'TRANSIENT'(?ORBER_VMCID bor 7) -> "Either the stub/skeleton does not exist or an
+incorrect IC-version was used, which does not generate
+the oe_tc/1 or oe_get_interface/1 functions";
+'TRANSIENT'(_) -> "-".
+
+%% FREE_MEM - OMG
+'FREE_MEM'(_) -> "-".
+
+%% INV_IDENT - OMG
+'INV_IDENT'(_) -> "-".
+
+%% INV_FLAG - OMG
+'INV_FLAG'(_) -> "-".
+
+%% INTF_REPOS - OMG
+'INTF_REPOS'(?CORBA_OMGVMCID bor 1) -> "Interface Repository not available";
+'INTF_REPOS'(?CORBA_OMGVMCID bor 2) -> "No entry for requested interface in
+Interface Repository";
+'INTF_REPOS'(_) -> "-".
+
+%% BAD_CONTEXT - OMG
+'BAD_CONTEXT'(_) -> "-".
+
+%% OBJ_ADAPTER - OMG
+'OBJ_ADAPTER'(?CORBA_OMGVMCID bor 1) -> "System exception in
+AdapterActivator::unknown_adapter";
+'OBJ_ADAPTER'(?CORBA_OMGVMCID bor 2) -> "Servant not found [ServantManager]";
+'OBJ_ADAPTER'(?CORBA_OMGVMCID bor 3) -> "No default servant available [POA policy]";
+'OBJ_ADAPTER'(?CORBA_OMGVMCID bor 4) -> "No servant manager available [POA Policy]";
+'OBJ_ADAPTER'(?CORBA_OMGVMCID bor 5) -> "Violation of POA policy by
+ServantActivator::incarnate";
+'OBJ_ADAPTER'(?CORBA_OMGVMCID bor 6) -> "Exception in
+PortableInterceptor::IORInterceptor.components_established";
+%% OBJ_ADAPTER - Orber
+'OBJ_ADAPTER'(?ORBER_VMCID bor 1) -> "Call-back module does not exist";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 2) -> "Missing function or incorrect arity in
+call-back module";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 3) -> "Function exported but arity incorrect";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 4) -> "Unknown error. Call-back module generated
+EXIT";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 5) -> "Call-back module invoked operation on a
+non-existing module";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 6) -> "Missing function or incorrect arity in
+a module invoked via the call-back module";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 7) -> "Function exported but arity incorrect in
+a module invoked via the call-back module";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 8) -> "Call-back module contains a function_clause,
+case_clause or badarith error";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 9) -> "Call-back module invoked operation exported
+by another module which contains a function_clause, case_clause or badarith error";
+'OBJ_ADAPTER'(?ORBER_VMCID bor 10) -> "Unknown EXIT returned by call-back module";
+'OBJ_ADAPTER'(_) -> "-".
+
+%% DATA_CONVERSION - OMG
+'DATA_CONVERSION'(?CORBA_OMGVMCID bor 1) -> "Character does not map to negotiated
+transmission code set";
+'DATA_CONVERSION'(_) -> "-".
+
+%% OBJECT_NOT_EXIST - OMG
+'OBJECT_NOT_EXIST'(?CORBA_OMGVMCID bor 1) -> "Attempt to pass an unactivated
+(unregistered) value as an object reference";
+'OBJECT_NOT_EXIST'(?CORBA_OMGVMCID bor 2) -> "Failed to create or locate Object
+Adapter";
+'OBJECT_NOT_EXIST'(?CORBA_OMGVMCID bor 3) -> "Biomolecular Sequence Analysis
+Service is no longer available";
+'OBJECT_NOT_EXIST'(?CORBA_OMGVMCID bor 4) -> "Object Adapter inactive";
+'OBJECT_NOT_EXIST'(_) -> "-".
+
+%% TRANSACTION_REQUIRED - OMG
+'TRANSACTION_REQUIRED'(_) -> "-".
+
+%% TRANSACTION_ROLLEDBACK - OMG
+'TRANSACTION_ROLLEDBACK'(_) -> "-".
+
+%% INVALID_TRANSACTION - OMG
+'INVALID_TRANSACTION'(_) -> "-".
+
+%% INV_POLICY - OMG
+'INV_POLICY'(?CORBA_OMGVMCID bor 1) -> "Unable to reconcile IOR specified
+policy with effective policy override";
+'INV_POLICY'(?CORBA_OMGVMCID bor 2) -> "Invalid PolicyType";
+'INV_POLICY'(?CORBA_OMGVMCID bor 3) -> "No PolicyFactory has been registered
+for the given PolicyType";
+'INV_POLICY'(_) -> "-".
+
+%% CODESET_INCOMPATIBLE - OMG
+'CODESET_INCOMPATIBLE'(_) -> "-".
+
+%% REBIND - OMG
+'REBIND'(_) -> "-".
+
+%% TIMEOUT - OMG
+'TIMEOUT'(_) -> "-".
+
+%% TRANSACTION_UNAVAILABLE - OMG
+'TRANSACTION_UNAVAILABLE'(_) -> "-".
+
+%% TRANSACTION_MODE - OMG
+'TRANSACTION_MODE'(_) -> "-".
+
+%% BAD_QOS - OMG
+'BAD_QOS'(_) -> "-".
+
diff --git a/lib/orber/src/orber_ifr.erl b/lib/orber/src/orber_ifr.erl
new file mode 100644
index 0000000000..e56672be93
--- /dev/null
+++ b/lib/orber/src/orber_ifr.erl
@@ -0,0 +1,1817 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : corba_ir_impl.erl
+%% Purpose : Interface Repository for CORBA
+%%----------------------------------------------------------------------
+
+%%% NOTES:
+%%%
+%%% For details about known deficiencies in this CORBA IFR
+%%% implementation, see the file ../doc/src/notes.txt.
+%%%
+
+-module(orber_ifr).
+
+-export([
+%%% Public interfaces:
+ init/2,
+ find_repository/0,
+ 'IRObject__get_def_kind'/1,
+ %%'IRObject_destroy'/1,
+ 'Contained__get_def_kind'/1,
+ %%'Contained_destroy'/1,
+ 'Contained__get_id'/1,
+ 'Contained__set_id'/2,
+ 'Contained__get_name'/1,
+ 'Contained__set_name'/2,
+ 'Contained__get_version'/1,
+ 'Contained__set_version'/2,
+ 'Contained__get_defined_in'/1,
+ 'Contained__get_absolute_name'/1,
+ 'Contained__get_containing_repository'/1,
+ 'Contained_describe'/1,
+ 'Contained_move'/4,
+ 'Container__get_def_kind'/1,
+ 'Container_destroy'/1,
+ 'Container_lookup'/2,
+ 'Container_contents'/3,
+ 'Container_lookup_name'/5,
+ 'Container_describe_contents'/4,
+ 'Container_create_module'/4,
+ 'Container_create_constant'/6,
+ 'Container_create_struct'/5,
+ 'Container_create_union'/6,
+ 'Container_create_enum'/5,
+ 'Container_create_alias'/5,
+ 'Container_create_interface'/5,
+ 'Container_create_exception'/5,
+ 'IDLType__get_def_kind'/1,
+ 'IDLType_destroy'/1,
+ 'IDLType__get_type'/1,
+ 'Repository__get_def_kind'/1,
+ 'Repository_destroy'/1,
+ 'Repository_lookup'/2,
+ 'Repository_contents'/3,
+ 'Repository_lookup_name'/5,
+ 'Repository_describe_contents'/4,
+ 'Repository_create_module'/4,
+ 'Repository_create_constant'/6,
+ 'Repository_create_struct'/5,
+ 'Repository_create_union'/6,
+ 'Repository_create_enum'/5,
+ 'Repository_create_alias'/5,
+ 'Repository_create_interface'/5,
+ 'Repository_create_exception'/5,
+ 'Repository_lookup_id'/2,
+ 'Repository_get_primitive'/2,
+ 'Repository_create_string'/2,
+ 'Repository_create_wstring'/2,
+ 'Repository_create_sequence'/3,
+ 'Repository_create_array'/3,
+ 'Repository_create_idltype'/2, %not in CORBA 2.0
+ 'ModuleDef__get_def_kind'/1,
+ 'ModuleDef_destroy'/1,
+ 'ModuleDef_lookup'/2,
+ 'ModuleDef_contents'/3,
+ 'ModuleDef_lookup_name'/5,
+ 'ModuleDef_describe_contents'/4,
+ 'ModuleDef_create_module'/4,
+ 'ModuleDef_create_constant'/6,
+ 'ModuleDef_create_struct'/5,
+ 'ModuleDef_create_union'/6,
+ 'ModuleDef_create_enum'/5,
+ 'ModuleDef_create_alias'/5,
+ 'ModuleDef_create_interface'/5,
+ 'ModuleDef_create_exception'/5,
+ 'ModuleDef__get_id'/1,
+ 'ModuleDef__set_id'/2,
+ 'ModuleDef__get_name'/1,
+ 'ModuleDef__set_name'/2,
+ 'ModuleDef__get_version'/1,
+ 'ModuleDef__set_version'/2,
+ 'ModuleDef__get_defined_in'/1,
+ 'ModuleDef__get_absolute_name'/1,
+ 'ModuleDef__get_containing_repository'/1,
+ 'ModuleDef_describe'/1,
+ 'ModuleDef_move'/4,
+ 'ConstantDef__get_def_kind'/1,
+ 'ConstantDef_destroy'/1,
+ 'ConstantDef__get_id'/1,
+ 'ConstantDef__set_id'/2,
+ 'ConstantDef__get_name'/1,
+ 'ConstantDef__set_name'/2,
+ 'ConstantDef__get_version'/1,
+ 'ConstantDef__set_version'/2,
+ 'ConstantDef__get_defined_in'/1,
+ 'ConstantDef__get_absolute_name'/1,
+ 'ConstantDef__get_containing_repository'/1,
+ 'ConstantDef_describe'/1,
+ 'ConstantDef_move'/4,
+ 'ConstantDef__get_type'/1,
+ 'ConstantDef__get_type_def'/1,
+ 'ConstantDef__set_type_def'/2,
+ 'ConstantDef__get_value'/1,
+ 'ConstantDef__set_value'/2,
+ 'TypedefDef__get_def_kind'/1,
+ 'TypedefDef_destroy'/1,
+ 'TypedefDef__get_id'/1,
+ 'TypedefDef__set_id'/2,
+ 'TypedefDef__get_name'/1,
+ 'TypedefDef__set_name'/2,
+ 'TypedefDef__get_version'/1,
+ 'TypedefDef__set_version'/2,
+ 'TypedefDef__get_defined_in'/1,
+ 'TypedefDef__get_absolute_name'/1,
+ 'TypedefDef__get_containing_repository'/1,
+ 'TypedefDef_describe'/1,
+ 'TypedefDef_move'/4,
+ 'TypedefDef__get_type'/1,
+ 'StructDef__get_def_kind'/1,
+ 'StructDef_destroy'/1,
+ 'StructDef__get_id'/1,
+ 'StructDef__set_id'/2,
+ 'StructDef__get_name'/1,
+ 'StructDef__set_name'/2,
+ 'StructDef__get_version'/1,
+ 'StructDef__set_version'/2,
+ 'StructDef__get_defined_in'/1,
+ 'StructDef__get_absolute_name'/1,
+ 'StructDef__get_containing_repository'/1,
+ 'StructDef_describe'/1,
+ 'StructDef_move'/4,
+ 'StructDef__get_type'/1,
+ 'StructDef__get_members'/1,
+ 'StructDef__set_members'/2,
+ 'UnionDef__get_def_kind'/1,
+ 'UnionDef_destroy'/1,
+ 'UnionDef__get_id'/1,
+ 'UnionDef__set_id'/2,
+ 'UnionDef__get_name'/1,
+ 'UnionDef__set_name'/2,
+ 'UnionDef__get_version'/1,
+ 'UnionDef__set_version'/2,
+ 'UnionDef__get_defined_in'/1,
+ 'UnionDef__get_absolute_name'/1,
+ 'UnionDef__get_containing_repository'/1,
+ 'UnionDef_describe'/1,
+ 'UnionDef_move'/4,
+ 'UnionDef__get_type'/1,
+ 'UnionDef__get_discriminator_type'/1,
+ 'UnionDef__get_discriminator_type_def'/1,
+ 'UnionDef__set_discriminator_type_def'/2,
+ 'UnionDef__get_members'/1,
+ 'UnionDef__set_members'/2,
+ 'EnumDef__get_def_kind'/1,
+ 'EnumDef_destroy'/1,
+ 'EnumDef__get_id'/1,
+ 'EnumDef__set_id'/2,
+ 'EnumDef__get_name'/1,
+ 'EnumDef__set_name'/2,
+ 'EnumDef__get_version'/1,
+ 'EnumDef__set_version'/2,
+ 'EnumDef__get_defined_in'/1,
+ 'EnumDef__get_absolute_name'/1,
+ 'EnumDef__get_containing_repository'/1,
+ 'EnumDef_describe'/1,
+ 'EnumDef_move'/4,
+ 'EnumDef__get_type'/1,
+ 'EnumDef__get_members'/1,
+ 'EnumDef__set_members'/2,
+ 'AliasDef__get_def_kind'/1,
+ 'AliasDef_destroy'/1,
+ 'AliasDef__get_id'/1,
+ 'AliasDef__set_id'/2,
+ 'AliasDef__get_name'/1,
+ 'AliasDef__set_name'/2,
+ 'AliasDef__get_version'/1,
+ 'AliasDef__set_version'/2,
+ 'AliasDef__get_defined_in'/1,
+ 'AliasDef__get_absolute_name'/1,
+ 'AliasDef__get_containing_repository'/1,
+ 'AliasDef_describe'/1,
+ 'AliasDef_move'/4,
+ 'AliasDef__get_type'/1,
+ 'AliasDef__get_original_type_def'/1,
+ 'AliasDef__set_original_type_def'/2,
+ 'PrimitiveDef__get_def_kind'/1,
+ 'PrimitiveDef_destroy'/1,
+ 'PrimitiveDef__get_type'/1,
+ 'PrimitiveDef__get_kind'/1,
+ 'StringDef__get_def_kind'/1,
+ 'StringDef_destroy'/1,
+ 'StringDef__get_type'/1,
+ 'StringDef__get_bound'/1,
+ 'StringDef__set_bound'/2,
+ 'WstringDef__get_def_kind'/1,
+ 'WstringDef_destroy'/1,
+ 'WstringDef__get_type'/1,
+ 'WstringDef__get_bound'/1,
+ 'WstringDef__set_bound'/2,
+ 'FixedDef__get_def_kind'/1,
+ 'FixedDef_destroy'/1,
+ 'FixedDef__get_type'/1,
+ 'FixedDef__get_digits'/1,
+ 'FixedDef__set_digits'/2,
+ 'FixedDef__get_scale'/1,
+ 'FixedDef__set_scale'/2,
+ 'SequenceDef__get_def_kind'/1,
+ 'SequenceDef_destroy'/1,
+ 'SequenceDef__get_type'/1,
+ 'SequenceDef__get_bound'/1,
+ 'SequenceDef__set_bound'/2,
+ 'SequenceDef__get_element_type'/1,
+ 'SequenceDef__get_element_type_def'/1,
+ 'SequenceDef__set_element_type_def'/2,
+ 'ArrayDef__get_def_kind'/1,
+ 'ArrayDef_destroy'/1,
+ 'ArrayDef__get_type'/1,
+ 'ArrayDef__get_length'/1,
+ 'ArrayDef__set_length'/2,
+ 'ArrayDef__get_element_type'/1,
+ 'ArrayDef__get_element_type_def'/1,
+ 'ArrayDef__set_element_type_def'/2,
+ 'ExceptionDef__get_def_kind'/1,
+ 'ExceptionDef_destroy'/1,
+ 'ExceptionDef__get_id'/1,
+ 'ExceptionDef__set_id'/2,
+ 'ExceptionDef__get_name'/1,
+ 'ExceptionDef__set_name'/2,
+ 'ExceptionDef__get_version'/1,
+ 'ExceptionDef__set_version'/2,
+ 'ExceptionDef__get_defined_in'/1,
+ 'ExceptionDef__get_absolute_name'/1,
+ 'ExceptionDef__get_containing_repository'/1,
+ 'ExceptionDef_describe'/1,
+ 'ExceptionDef_move'/4,
+ 'ExceptionDef__get_type'/1,
+ 'ExceptionDef__get_members'/1,
+ 'ExceptionDef__set_members'/2,
+ 'AttributeDef__get_def_kind'/1,
+ 'AttributeDef_destroy'/1,
+ 'AttributeDef__get_id'/1,
+ 'AttributeDef__set_id'/2,
+ 'AttributeDef__get_name'/1,
+ 'AttributeDef__set_name'/2,
+ 'AttributeDef__get_version'/1,
+ 'AttributeDef__set_version'/2,
+ 'AttributeDef__get_defined_in'/1,
+ 'AttributeDef__get_absolute_name'/1,
+ 'AttributeDef__get_containing_repository'/1,
+ 'AttributeDef_describe'/1,
+ 'AttributeDef_move'/4,
+ 'AttributeDef__get_type'/1,
+ 'AttributeDef__get_type_def'/1,
+ 'AttributeDef__set_type_def'/2,
+ 'AttributeDef__get_mode'/1,
+ 'AttributeDef__set_mode'/2,
+ 'OperationDef__get_def_kind'/1,
+ 'OperationDef_destroy'/1,
+ 'OperationDef__get_id'/1,
+ 'OperationDef__set_id'/2,
+ 'OperationDef__get_name'/1,
+ 'OperationDef__set_name'/2,
+ 'OperationDef__get_version'/1,
+ 'OperationDef__set_version'/2,
+ 'OperationDef__get_defined_in'/1,
+ 'OperationDef__get_absolute_name'/1,
+ 'OperationDef__get_containing_repository'/1,
+ 'OperationDef_describe'/1,
+ 'OperationDef_move'/4,
+ 'OperationDef__get_result'/1,
+ 'OperationDef__get_result_def'/1,
+ 'OperationDef__set_result_def'/2,
+ 'OperationDef__get_params'/1,
+ 'OperationDef__set_params'/2,
+ 'OperationDef__get_mode'/1,
+ 'OperationDef__set_mode'/2,
+ 'OperationDef__get_contexts'/1,
+ 'OperationDef__set_contexts'/2,
+ 'OperationDef__get_exceptions'/1,
+ 'OperationDef__set_exceptions'/2,
+ 'InterfaceDef__get_def_kind'/1,
+ 'InterfaceDef_destroy'/1,
+ 'InterfaceDef_lookup'/2,
+ 'InterfaceDef_contents'/3,
+ 'InterfaceDef_lookup_name'/5,
+ 'InterfaceDef_describe_contents'/4,
+ 'InterfaceDef_create_module'/4,
+ 'InterfaceDef_create_constant'/6,
+ 'InterfaceDef_create_struct'/5,
+ 'InterfaceDef_create_union'/6,
+ 'InterfaceDef_create_enum'/5,
+ 'InterfaceDef_create_alias'/5,
+ 'InterfaceDef_create_interface'/5,
+ 'InterfaceDef_create_exception'/5,
+ 'InterfaceDef__get_id'/1,
+ 'InterfaceDef__set_id'/2,
+ 'InterfaceDef__get_name'/1,
+ 'InterfaceDef__set_name'/2,
+ 'InterfaceDef__get_version'/1,
+ 'InterfaceDef__set_version'/2,
+ 'InterfaceDef__get_defined_in'/1,
+ 'InterfaceDef__get_absolute_name'/1,
+ 'InterfaceDef__get_containing_repository'/1,
+ 'InterfaceDef_describe'/1,
+ 'InterfaceDef_move'/4,
+ 'InterfaceDef__get_type'/1,
+ 'InterfaceDef__get_base_interfaces'/1,
+ 'InterfaceDef__set_base_interfaces'/2,
+ 'InterfaceDef_is_a'/2,
+ 'InterfaceDef_describe_interface'/1,
+ 'InterfaceDef_create_attribute'/6,
+ 'InterfaceDef_create_operation'/9,
+ %%'TypeCode_equal'/2,
+ %%'TypeCode_kind'/1,
+ %%'TypeCode_id'/1,
+ %%'TypeCode_name'/1,
+ %%'TypeCode_member_count'/1,
+ %%'TypeCode_member_name'/2,
+ %%'TypeCode_member_type'/2,
+ %%'TypeCode_member_label'/2,
+ %%'TypeCode_discriminator_type'/1,
+ %%'TypeCode_default_index'/1,
+ %%'TypeCode_length'/1,
+ %%'TypeCode_content_type'/1,
+ %%'TypeCode_param_count'/1,
+ %%'TypeCode_parameter'/2,
+ 'ORB_create_struct_tc'/3,
+ 'ORB_create_union_tc'/4,
+ 'ORB_create_enum_tc'/3,
+ 'ORB_create_alias_tc'/3,
+ 'ORB_create_exception_tc'/3,
+ 'ORB_create_interface_tc'/2,
+ 'ORB_create_string_tc'/1,
+ 'ORB_create_wstring_tc'/1,
+ 'ORB_create_sequence_tc'/2,
+ 'ORB_create_recursive_sequence_tc'/2,
+ 'ORB_create_array_tc'/2,
+%%% "Methods" of the IFR "objects"
+ get_def_kind/1,
+ destroy/1,
+ get_id/1,
+ set_id/2,
+ get_name/1,
+ set_name/2,
+ get_version/1,
+ set_version/2,
+ get_defined_in/1,
+ get_absolute_name/1,
+ get_containing_repository/1,
+ describe/1,
+ move/4,
+ lookup/2,
+ contents/3,
+ lookup_name/5,
+ describe_contents/4,
+ create_module/4,
+ create_constant/6,
+ create_struct/5,
+ create_union/6,
+ create_enum/5,
+ create_alias/5,
+ create_interface/5,
+ create_exception/5,
+ get_type/1,
+ lookup_id/2,
+ get_primitive/2,
+ create_string/2,
+ create_wstring/2,
+ create_sequence/3,
+ create_array/3,
+ create_idltype/2, %not in CORBA 2.0
+ create_fixed/3,
+ get_type_def/1,
+ set_type_def/2,
+ get_value/1,
+ set_value/2,
+ get_members/1,
+ set_members/2,
+ get_discriminator_type/1,
+ get_discriminator_type_def/1,
+ set_discriminator_type_def/2,
+ get_original_type_def/1,
+ set_original_type_def/2,
+ get_kind/1,
+ get_bound/1,
+ set_bound/2,
+ get_element_type/1,
+ get_element_type_def/1,
+ set_element_type_def/2,
+ get_length/1,
+ set_length/2,
+ get_mode/1,
+ set_mode/2,
+ get_result/1,
+ get_result_def/1,
+ set_result_def/2,
+ get_params/1,
+ set_params/2,
+ get_contexts/1,
+ set_contexts/2,
+ get_exceptions/1,
+ set_exceptions/2,
+ get_base_interfaces/1,
+ set_base_interfaces/2,
+ is_a/2,
+ describe_interface/1,
+ create_attribute/6,
+ create_operation/9
+ ]).
+
+%% Light IFR operations
+-export([initialize/3,
+ get_module/2,
+ get_tc/2,
+ add_module/3, add_module/4,
+ add_constant/3, add_constant/4,
+ add_struct/3, add_struct/4,
+ add_union/3, add_union/4,
+ add_enum/3, add_enum/4,
+ add_alias/3, add_alias/4,
+ add_interface/3, add_interface/4,
+ add_exception/3, add_exception/4,
+ remove/2,
+ add_items/3]).
+
+
+-include_lib("orber/include/corba.hrl").
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%======================================================================
+%% Public interfaces to the IFR
+%%======================================================================
+%%=================== Light IFR operations =============================
+%%----------------------------------------------------------------------
+%% Function : get_module
+%% Arguments : Id - string()
+%% Type - ?IFR_ModuleDef | ?IFR_ConstantDef | ?IFR_StructDef |
+%% ?IFR_UnionDef | ?IFR_EnumDef | ?IFR_AliasDef |
+%% ?IFR_InterfaceDef | ?IFR_ExceptionDef
+%% Returns : Module - atom() | {'EXCEPTION', E}
+%% Raises : #'MARSHAL'{}
+%% Description:
+%%----------------------------------------------------------------------
+get_module(Id, Type) ->
+ case mnesia:dirty_read(orber_light_ifr, Id) of
+ [#orber_light_ifr{module = Module, type = Type}] ->
+ Module;
+ What ->
+ orber:dbg("[~p] ~p:get_module(~p, ~p).~n"
+ "Id doesn't exist, mismatch Id vs Type or DB error: ~p",
+ [?LINE, ?MODULE, Id, What], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE})
+ end.
+
+
+%%----------------------------------------------------------------------
+%% Function : get_tc
+%% Arguments : Id - string()
+%% Type - ?IFR_ModuleDef | ?IFR_ConstantDef | ?IFR_StructDef |
+%% ?IFR_UnionDef | ?IFR_EnumDef | ?IFR_AliasDef |
+%% ?IFR_InterfaceDef | ?IFR_ExceptionDef
+%% Returns : Module - atom() | {'EXCEPTION', E}
+%% Raises : #'MARSHAL'{}
+%% Description: This function may *only* return correct TypeCode or raise
+%% a system exception!!
+%%----------------------------------------------------------------------
+get_tc(Id, Type) ->
+ case catch mnesia:dirty_read(orber_light_ifr, Id) of
+ [#orber_light_ifr{module = Module, type = Type}] ->
+ case catch Module:tc() of
+ {'EXIT', Reason} ->
+ case Reason of
+ {undef,[{Module, tc,[]}|_]} ->
+ orber:dbg("[~p] ~p:get_tc(~p);~nMissing ~p:tc()~n",
+ [?LINE, ?MODULE, Id, Module], ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_MAYBE});
+ _ ->
+ orber:dbg("[~p] ~p:get_tc(~p, ~p);~nEXIT reason: ~p~n",
+ [?LINE, ?MODULE, Id, Module, Reason],
+ ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{minor=(?CORBA_OMGVMCID bor 1),
+ completion_status=?COMPLETED_MAYBE})
+ end;
+ TC ->
+ TC
+ end;
+ What when Type == ?IFR_ExceptionDef ->
+ orber:dbg("[~p] ~p:get_tc(~p, ExceptionDef);~nUnknown: ~p~n",
+ [?LINE, ?MODULE, Id, What], ?DEBUG_LEVEL),
+ corba:raise(#'UNKNOWN'{completion_status=?COMPLETED_MAYBE});
+ What ->
+ orber:dbg("[~p] ~p:get_tc(~p, ~p);~nUnknown: ~p~n",
+ [?LINE, ?MODULE, Id, Type, What], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE})
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : initialize
+%% Arguments : Timeout - integer() | infinity
+%% Options - [{Key, Value}]
+%% LightIFR - true | false
+%% Returns : ok | {'EXCEPTION', E}
+%% Raises : #'INTF_REPOS'{}
+%% Description:
+%%----------------------------------------------------------------------
+initialize(Timeout, Options, LightIFR) ->
+ orber_ifr_utils:init_DB(Timeout, Options, LightIFR).
+
+%%----------------------------------------------------------------------
+%% Function : add_X
+%% Arguments : Id - string()
+%% Module - atom()
+%% BaseId - string()
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+add_module(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_ModuleDef, false).
+add_module(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_ModuleDef, Transaction).
+
+add_constant(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_ConstantDef, false).
+add_constant(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_ConstantDef, Transaction).
+
+add_struct(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_StructDef, false).
+add_struct(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_StructDef, Transaction).
+
+add_union(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_UnionDef, false).
+add_union(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_UnionDef, Transaction).
+
+add_enum(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_EnumDef, false).
+add_enum(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_EnumDef, Transaction).
+
+add_alias(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_AliasDef, false).
+add_alias(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_AliasDef, Transaction).
+
+add_interface(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_InterfaceDef, false).
+add_interface(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_InterfaceDef, Transaction).
+
+add_exception(Id, Module, BaseId) ->
+ add_it(Id, Module, BaseId, ?IFR_ExceptionDef, false).
+add_exception(Id, Module, BaseId, Transaction) ->
+ add_it(Id, Module, BaseId, ?IFR_ExceptionDef, Transaction).
+
+
+%%----------------------------------------------------------------------
+%% Function : add_it
+%% Arguments : Id - string()
+%% Module - atom()
+%% BaseId - string()
+%% Type - ?IFR_ModuleDef | ?IFR_ConstantDef | ?IFR_StructDef |
+%% ?IFR_UnionDef | ?IFR_EnumDef | ?IFR_AliasDef |
+%% ?IFR_InterfaceDef | ?IFR_ExceptionDef
+%% Transaction - true | false
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+add_it(Id, Module, BaseId, Type, true) ->
+ F = fun() ->
+ D = #orber_light_ifr{id = Id, module = Module,
+ type = Type, base_id = BaseId},
+ mnesia:write(D)
+ end,
+ case mnesia:transaction(F) of
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_ifr:add_it(~p). aborted:~n~p~n",
+ [?LINE, Id, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ {atomic, _} ->
+ ok
+ end;
+add_it(Id, Module, BaseId, Type, false) ->
+ D = #orber_light_ifr{id = Id, module = Module,
+ type = Type, base_id = BaseId},
+ mnesia:write(D).
+
+%%----------------------------------------------------------------------
+%% Function : remove
+%% Arguments : BaseId - atom()
+%% Options - [KeyValue]
+%% KeyValue - {storage, mnesia | ets}
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+remove(ContainerId, _Options) ->
+ F = fun() ->
+ MatchHead = #orber_light_ifr{id = '$1', base_id = ContainerId, _='_'},
+ Result = '$1',
+ IdList = mnesia:select(orber_light_ifr,
+ [{MatchHead, [], [Result]}],
+ write),
+ lists:foreach(fun(RefId) ->
+ mnesia:delete({orber_light_ifr, RefId})
+ end, IdList)
+ end,
+ case mnesia:transaction(F) of
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_ifr:remove(~p). aborted:~n~p~n",
+ [?LINE, ContainerId, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ {atomic, _} ->
+ ok
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : add_items
+%% Arguments : ContainerId - atom()
+%% Options - [KeyValue]
+%% KeyValue - {storage, mnesia | ets}
+%% Items - [{Id, Module, Type}]
+%% Id - string()
+%% Module - atom()
+%% Type - struct | except | union | interface
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+add_items(ContainerId, _Options, Items) ->
+ F = fun() ->
+ mnesia:write_lock_table(orber_light_ifr),
+ add_items_helper(Items, ContainerId)
+ end,
+ case mnesia:transaction(F) of
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_ifr:add_items(~p). aborted:~n~p~n",
+ [?LINE, ContainerId, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ {atomic, _} ->
+ ok
+ end.
+
+add_items_helper([{Id, Module, struct}|T], ContainerId) ->
+ add_it(Id, Module, ContainerId, ?IFR_StructDef, false),
+ add_items_helper(T, ContainerId);
+add_items_helper([{Id, Module, interface}|T], ContainerId) ->
+ add_it(Id, Module, ContainerId, ?IFR_InterfaceDef, false),
+ add_items_helper(T, ContainerId);
+add_items_helper([{Id, Module, except}|T], ContainerId) ->
+ add_it(Id, Module, ContainerId, ?IFR_ExceptionDef, false),
+ add_items_helper(T, ContainerId);
+add_items_helper([{Id, Module, union}|T], ContainerId) ->
+ add_it(Id, Module, ContainerId, ?IFR_UnionDef, false),
+ add_items_helper(T, ContainerId);
+add_items_helper([ok], _) ->
+ ok.
+
+
+%%=================== End Light IFR operations =========================
+
+%% Initialize the database
+init(Nodes, Timeout) when is_atom(Timeout) orelse is_integer(Timeout) ->
+ orber_ifr_utils:init_DB(Timeout, [{disc_copies, Nodes}]);
+init(Timeout, Nodes) ->
+ orber_ifr_utils:init_DB(Timeout, [{disc_copies, Nodes}]).
+
+
+%%% Find the repository
+find_repository() ->
+ orber_ifr_utils:create_repository().
+
+'IRObject__get_def_kind'(Objref) ->
+ orber_ifr_irobject:'_get_def_kind'(Objref).
+%%'IRObject_destroy'(Objref) ->
+%% orber_ifr_irobject:destroy(Objref).
+
+'Contained__get_def_kind'(Objref) ->
+ orber_ifr_contained:'_get_def_kind'(Objref).
+%%'Contained_destroy'(Objref) ->
+%% orber_ifr_contained:destroy(Objref).
+'Contained__get_id'(Objref) ->
+ orber_ifr_contained:'_get_id'(Objref).
+'Contained__set_id'(Objref,Id) ->
+ orber_ifr_contained:'_set_id'(Objref,Id).
+'Contained__get_name'(Objref) ->
+ orber_ifr_contained:'_get_name'(Objref).
+'Contained__set_name'(Objref,Name) ->
+ orber_ifr_contained:'_set_name'(Objref,Name).
+'Contained__get_version'(Objref) ->
+ orber_ifr_contained:'_get_version'(Objref).
+'Contained__set_version'(Objref,Version) ->
+ orber_ifr_contained:'_set_version'(Objref,Version).
+'Contained__get_defined_in'(Objref) ->
+ orber_ifr_contained:'_get_defined_in'(Objref).
+'Contained__get_absolute_name'(Objref) ->
+ orber_ifr_contained:'_get_absolute_name'(Objref).
+'Contained__get_containing_repository'(Objref) ->
+ orber_ifr_contained:'_get_containing_repository'(Objref).
+'Contained_describe'(Objref) ->
+ orber_ifr_contained:describe(Objref).
+'Contained_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_contained:move(Objref,New_container,New_name,New_version).
+
+'Container__get_def_kind'(Objref) ->
+ orber_ifr_container:'_get_def_kind'(Objref).
+'Container_destroy'(Objref) ->
+ orber_ifr_container:destroy(Objref).
+'Container_lookup'(Objref,Search_name) ->
+ orber_ifr_container:lookup(Objref,Search_name).
+'Container_contents'(Objref,Limit_type,Exclude_inherited) ->
+ orber_ifr_container:contents(Objref,Limit_type,Exclude_inherited).
+'Container_lookup_name'(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited) ->
+ orber_ifr_container:lookup_name(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited).
+'Container_describe_contents'(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs) ->
+ orber_ifr_container:describe_contents(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs).
+'Container_create_module'(Objref,Id,Name,Version) ->
+ orber_ifr_container:create_module(Objref,Id,Name,Version).
+'Container_create_constant'(Objref,Id,Name,Version,Type,Value) ->
+ orber_ifr_container:create_constant(Objref,Id,Name,Version,Type,Value).
+'Container_create_struct'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_container:create_struct(Objref,Id,Name,Version,Members).
+'Container_create_union'(Objref,Id,Name,Version,Discriminator_type,Members) ->
+ orber_ifr_container:create_union(Objref,Id,Name,Version,Discriminator_type,
+ Members).
+'Container_create_enum'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_container:create_enum(Objref,Id,Name,Version,Members).
+'Container_create_alias'(Objref,Id,Name,Version,Original_type) ->
+ orber_ifr_container:create_alias(Objref,Id,Name,Version,Original_type).
+'Container_create_interface'(Objref,Id,Name,Version,Base_interfaces) ->
+ orber_ifr_container:create_interface(Objref,Id,Name,Version,Base_interfaces).
+'Container_create_exception'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_container:create_exception(Objref,Id,Name,Version,Members).
+
+'IDLType__get_def_kind'(Objref) ->
+ orber_ifr_idltype:'_get_def_kind'(Objref).
+'IDLType_destroy'(Objref) ->
+ orber_ifr_idltype:destroy(Objref).
+'IDLType__get_type'(Objref) ->
+ orber_ifr_idltype:'_get_type'(Objref).
+
+'Repository__get_def_kind'(Objref) ->
+ orber_ifr_repository:'_get_def_kind'(Objref).
+'Repository_destroy'(Objref) ->
+ orber_ifr_repository:destroy(Objref).
+'Repository_lookup'(Objref,Search_name) ->
+ orber_ifr_repository:lookup(Objref,Search_name).
+'Repository_contents'(Objref,Limit_type,Exclude_inherited) ->
+ orber_ifr_repository:contents(Objref,Limit_type,Exclude_inherited).
+'Repository_lookup_name'(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited) ->
+ orber_ifr_repository:lookup_name(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited).
+'Repository_describe_contents'(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs) ->
+ orber_ifr_repository:describe_contents(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs).
+'Repository_create_module'(Objref,Id,Name,Version) ->
+ orber_ifr_repository:create_module(Objref,Id,Name,Version).
+'Repository_create_constant'(Objref,Id,Name,Version,Type,Value) ->
+ orber_ifr_repository:create_constant(Objref,Id,Name,Version,Type,Value).
+'Repository_create_struct'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_repository:create_struct(Objref,Id,Name,Version,Members).
+'Repository_create_union'(Objref,Id,Name,Version,Discriminator_type,Members) ->
+ orber_ifr_repository:create_union(Objref,Id,Name,Version,Discriminator_type,
+ Members).
+'Repository_create_enum'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_repository:create_enum(Objref,Id,Name,Version,Members).
+'Repository_create_alias'(Objref,Id,Name,Version,Original_type) ->
+ orber_ifr_repository:create_alias(Objref,Id,Name,Version,Original_type).
+'Repository_create_interface'(Objref,Id,Name,Version,Base_interfaces) ->
+ orber_ifr_repository:create_interface(Objref,Id,Name,Version,Base_interfaces).
+'Repository_create_exception'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_repository:create_exception(Objref,Id,Name,Version,Members).
+'Repository_lookup_id'(Objref,Search_id) ->
+ lookup_id(Objref,Search_id).
+'Repository_get_primitive'(Objref,Kind) ->
+ orber_ifr_repository:get_primitive(Objref,Kind).
+'Repository_create_string'(Objref,Bound) ->
+ orber_ifr_repository:create_string(Objref,Bound).
+'Repository_create_wstring'(Objref,Bound) ->
+ orber_ifr_repository:create_wstring(Objref,Bound).
+'Repository_create_sequence'(Objref,Bound,Element_type) ->
+ orber_ifr_repository:create_sequence(Objref,Bound,Element_type).
+'Repository_create_array'(Objref,Length,Element_type) ->
+ orber_ifr_repository:create_array(Objref,Length,Element_type).
+'Repository_create_idltype'(Objref,Typecode) ->
+ orber_ifr_repository:create_idltype(Objref,Typecode).
+
+'ModuleDef__get_def_kind'(Objref) ->
+ orber_ifr_moduledef:'_get_def_kind'(Objref).
+'ModuleDef_destroy'(Objref) ->
+ orber_ifr_moduledef:destroy(Objref).
+'ModuleDef_lookup'(Objref,Search_name) ->
+ orber_ifr_moduledef:lookup(Objref,Search_name).
+'ModuleDef_contents'(Objref,Limit_type,Exclude_inherited) ->
+ orber_ifr_moduledef:contents(Objref,Limit_type,Exclude_inherited).
+'ModuleDef_lookup_name'(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited) ->
+ orber_ifr_moduledef:lookup_name(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited).
+'ModuleDef_describe_contents'(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs) ->
+ orber_ifr_moduledef:describe_contents(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs).
+'ModuleDef_create_module'(Objref,Id,Name,Version) ->
+ orber_ifr_moduledef:create_module(Objref,Id,Name,Version).
+'ModuleDef_create_constant'(Objref,Id,Name,Version,Type,Value) ->
+ orber_ifr_moduledef:create_constant(Objref,Id,Name,Version,Type,Value).
+'ModuleDef_create_struct'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_moduledef:create_struct(Objref,Id,Name,Version,Members).
+'ModuleDef_create_union'(Objref,Id,Name,Version,Discriminator_type,Members) ->
+ orber_ifr_moduledef:create_union(Objref,Id,Name,Version,Discriminator_type,
+ Members).
+'ModuleDef_create_enum'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_moduledef:create_enum(Objref,Id,Name,Version,Members).
+'ModuleDef_create_alias'(Objref,Id,Name,Version,Original_type) ->
+ orber_ifr_moduledef:create_alias(Objref,Id,Name,Version,Original_type).
+'ModuleDef_create_interface'(Objref,Id,Name,Version,Base_interfaces) ->
+ orber_ifr_moduledef:create_interface(Objref,Id,Name,Version,Base_interfaces).
+'ModuleDef_create_exception'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_moduledef:create_exception(Objref,Id,Name,Version,Members).
+'ModuleDef__get_id'(Objref) ->
+ orber_ifr_moduledef:'_get_id'(Objref).
+'ModuleDef__set_id'(Objref,Id) ->
+ orber_ifr_moduledef:'_set_id'(Objref,Id).
+'ModuleDef__get_name'(Objref) ->
+ orber_ifr_moduledef:'_get_name'(Objref).
+'ModuleDef__set_name'(Objref,Name) ->
+ orber_ifr_moduledef:'_set_name'(Objref,Name).
+'ModuleDef__get_version'(Objref) ->
+ orber_ifr_moduledef:'_get_version'(Objref).
+'ModuleDef__set_version'(Objref,Version) ->
+ orber_ifr_moduledef:'_set_version'(Objref,Version).
+'ModuleDef__get_defined_in'(Objref) ->
+ orber_ifr_moduledef:'_get_defined_in'(Objref).
+'ModuleDef__get_absolute_name'(Objref) ->
+ orber_ifr_moduledef:'_get_absolute_name'(Objref).
+'ModuleDef__get_containing_repository'(Objref) ->
+ orber_ifr_moduledef:'_get_containing_repository'(Objref).
+'ModuleDef_describe'(Objref) ->
+ orber_ifr_moduledef:describe(Objref).
+'ModuleDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_moduledef:move(Objref,New_container,New_name,New_version).
+
+'ConstantDef__get_def_kind'(Objref) ->
+ orber_ifr_constantdef:'_get_def_kind'(Objref).
+'ConstantDef_destroy'(Objref) ->
+ orber_ifr_constantdef:destroy(Objref).
+'ConstantDef__get_id'(Objref) ->
+ orber_ifr_constantdef:'_get_id'(Objref).
+'ConstantDef__set_id'(Objref,Id) ->
+ orber_ifr_constantdef:'_set_id'(Objref,Id).
+'ConstantDef__get_name'(Objref) ->
+ orber_ifr_constantdef:'_get_name'(Objref).
+'ConstantDef__set_name'(Objref,Name) ->
+ orber_ifr_constantdef:'_set_name'(Objref,Name).
+'ConstantDef__get_version'(Objref) ->
+ orber_ifr_constantdef:'_get_version'(Objref).
+'ConstantDef__set_version'(Objref,Version) ->
+ orber_ifr_constantdef:'_set_version'(Objref,Version).
+'ConstantDef__get_defined_in'(Objref) ->
+ orber_ifr_constantdef:'_get_defined_in'(Objref).
+'ConstantDef__get_absolute_name'(Objref) ->
+ orber_ifr_constantdef:'_get_absolute_name'(Objref).
+'ConstantDef__get_containing_repository'(Objref) ->
+ orber_ifr_constantdef:'_get_containing_repository'(Objref).
+'ConstantDef_describe'(Objref) ->
+ orber_ifr_constantdef:describe(Objref).
+'ConstantDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_constantdef:move(Objref,New_container,New_name,New_version).
+'ConstantDef__get_type'(Objref) ->
+ orber_ifr_constantdef:'_get_type'(Objref).
+'ConstantDef__get_type_def'(Objref) ->
+ orber_ifr_constantdef:'_get_type_def'(Objref).
+'ConstantDef__set_type_def'(Objref,TypeDef) ->
+ orber_ifr_constantdef:'_set_type_def'(Objref,TypeDef).
+'ConstantDef__get_value'(Objref) ->
+ orber_ifr_constantdef:'_get_value'(Objref).
+'ConstantDef__set_value'(Objref,Value) ->
+ orber_ifr_constantdef:'_set_value'(Objref,Value).
+
+'TypedefDef__get_def_kind'(Objref) ->
+ orber_ifr_typedef:'_get_def_kind'(Objref).
+'TypedefDef_destroy'(Objref) ->
+ orber_ifr_typedef:destroy(Objref).
+'TypedefDef__get_id'(Objref) ->
+ orber_ifr_typedef:'_get_id'(Objref).
+'TypedefDef__set_id'(Objref,Id) ->
+ orber_ifr_typedef:'_set_id'(Objref,Id).
+'TypedefDef__get_name'(Objref) ->
+ orber_ifr_typedef:'_get_name'(Objref).
+'TypedefDef__set_name'(Objref,Name) ->
+ orber_ifr_typedef:'_set_name'(Objref,Name).
+'TypedefDef__get_version'(Objref) ->
+ orber_ifr_typedef:'_get_version'(Objref).
+'TypedefDef__set_version'(Objref,Version) ->
+ orber_ifr_typedef:'_set_version'(Objref,Version).
+'TypedefDef__get_defined_in'(Objref) ->
+ orber_ifr_typedef:'_get_defined_in'(Objref).
+'TypedefDef__get_absolute_name'(Objref) ->
+ orber_ifr_typedef:'_get_absolute_name'(Objref).
+'TypedefDef__get_containing_repository'(Objref) ->
+ orber_ifr_typedef:'_get_containing_repository'(Objref).
+'TypedefDef_describe'(Objref) ->
+ orber_ifr_typedef:describe(Objref).
+'TypedefDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_typedef:move(Objref,New_container,New_name,New_version).
+'TypedefDef__get_type'(Objref) ->
+ orber_ifr_typedef:'_get_type'(Objref).
+
+'StructDef__get_def_kind'(Objref) ->
+ orber_ifr_structdef:'_get_def_kind'(Objref).
+'StructDef_destroy'(Objref) ->
+ orber_ifr_structdef:destroy(Objref).
+'StructDef__get_id'(Objref) ->
+ orber_ifr_structdef:'_get_id'(Objref).
+'StructDef__set_id'(Objref,Id) ->
+ orber_ifr_structdef:'_set_id'(Objref,Id).
+'StructDef__get_name'(Objref) ->
+ orber_ifr_structdef:'_get_name'(Objref).
+'StructDef__set_name'(Objref,Name) ->
+ orber_ifr_structdef:'_set_name'(Objref,Name).
+'StructDef__get_version'(Objref) ->
+ orber_ifr_structdef:'_get_version'(Objref).
+'StructDef__set_version'(Objref,Version) ->
+ orber_ifr_structdef:'_set_version'(Objref,Version).
+'StructDef__get_defined_in'(Objref) ->
+ orber_ifr_structdef:'_get_defined_in'(Objref).
+'StructDef__get_absolute_name'(Objref) ->
+ orber_ifr_structdef:'_get_absolute_name'(Objref).
+'StructDef__get_containing_repository'(Objref) ->
+ orber_ifr_structdef:'_get_containing_repository'(Objref).
+'StructDef_describe'(Objref) ->
+ orber_ifr_structdef:describe(Objref).
+'StructDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_structdef:move(Objref,New_container,New_name,New_version).
+'StructDef__get_type'(Objref) ->
+ orber_ifr_structdef:'_get_type'(Objref).
+'StructDef__get_members'(Objref) ->
+ orber_ifr_structdef:'_get_members'(Objref).
+'StructDef__set_members'(Objref,Members) ->
+ orber_ifr_structdef:'_set_members'(Objref,Members).
+
+'UnionDef__get_def_kind'(Objref) ->
+ orber_ifr_uniondef:'_get_def_kind'(Objref).
+'UnionDef_destroy'(Objref) ->
+ orber_ifr_uniondef:destroy(Objref).
+'UnionDef__get_id'(Objref) ->
+ orber_ifr_uniondef:'_get_id'(Objref).
+'UnionDef__set_id'(Objref,Id) ->
+ orber_ifr_uniondef:'_set_id'(Objref,Id).
+'UnionDef__get_name'(Objref) ->
+ orber_ifr_uniondef:'_get_name'(Objref).
+'UnionDef__set_name'(Objref,Name) ->
+ orber_ifr_uniondef:'_set_name'(Objref,Name).
+'UnionDef__get_version'(Objref) ->
+ orber_ifr_uniondef:'_get_version'(Objref).
+'UnionDef__set_version'(Objref,Version) ->
+ orber_ifr_uniondef:'_set_version'(Objref,Version).
+'UnionDef__get_defined_in'(Objref) ->
+ orber_ifr_uniondef:'_get_defined_in'(Objref).
+'UnionDef__get_absolute_name'(Objref) ->
+ orber_ifr_uniondef:'_get_absolute_name'(Objref).
+'UnionDef__get_containing_repository'(Objref) ->
+ orber_ifr_uniondef:'_get_containing_repository'(Objref).
+'UnionDef_describe'(Objref) ->
+ orber_ifr_uniondef:describe(Objref).
+'UnionDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_uniondef:move(Objref,New_container,New_name,New_version).
+'UnionDef__get_type'(Objref) ->
+ orber_ifr_uniondef:'_get_type'(Objref).
+'UnionDef__get_discriminator_type'(Objref) ->
+ orber_ifr_uniondef:'_get_discriminator_type'(Objref).
+'UnionDef__get_discriminator_type_def'(Objref) ->
+ orber_ifr_uniondef:'_get_discriminator_type_def'(Objref).
+'UnionDef__set_discriminator_type_def'(Objref,TypeDef) ->
+ orber_ifr_uniondef:'_set_discriminator_type_def'(Objref,TypeDef).
+'UnionDef__get_members'(Objref) ->
+ orber_ifr_uniondef:'_get_members'(Objref).
+'UnionDef__set_members'(Objref,Members) ->
+ orber_ifr_uniondef:'_set_members'(Objref,Members).
+
+'EnumDef__get_def_kind'(Objref) ->
+ orber_ifr_enumdef:'_get_def_kind'(Objref).
+'EnumDef_destroy'(Objref) ->
+ orber_ifr_enumdef:destroy(Objref).
+'EnumDef__get_id'(Objref) ->
+ orber_ifr_enumdef:'_get_id'(Objref).
+'EnumDef__set_id'(Objref,Id) ->
+ orber_ifr_enumdef:'_set_id'(Objref,Id).
+'EnumDef__get_name'(Objref) ->
+ orber_ifr_enumdef:'_get_name'(Objref).
+'EnumDef__set_name'(Objref,Name) ->
+ orber_ifr_enumdef:'_set_name'(Objref,Name).
+'EnumDef__get_version'(Objref) ->
+ orber_ifr_enumdef:'_get_version'(Objref).
+'EnumDef__set_version'(Objref,Version) ->
+ orber_ifr_enumdef:'_set_version'(Objref,Version).
+'EnumDef__get_defined_in'(Objref) ->
+ orber_ifr_enumdef:'_get_defined_in'(Objref).
+'EnumDef__get_absolute_name'(Objref) ->
+ orber_ifr_enumdef:'_get_absolute_name'(Objref).
+'EnumDef__get_containing_repository'(Objref) ->
+ orber_ifr_enumdef:'_get_containing_repository'(Objref).
+'EnumDef_describe'(Objref) ->
+ orber_ifr_enumdef:describe(Objref).
+'EnumDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_enumdef:move(Objref,New_container,New_name,New_version).
+'EnumDef__get_type'(Objref) ->
+ orber_ifr_enumdef:'_get_type'(Objref).
+'EnumDef__get_members'(Objref) ->
+ orber_ifr_enumdef:'_get_members'(Objref).
+'EnumDef__set_members'(Objref,Members) ->
+ orber_ifr_enumdef:'_set_members'(Objref,Members).
+
+'AliasDef__get_def_kind'(Objref) ->
+ orber_ifr_aliasdef:'_get_def_kind'(Objref).
+'AliasDef_destroy'(Objref) ->
+ orber_ifr_aliasdef:destroy(Objref).
+'AliasDef__get_id'(Objref) ->
+ orber_ifr_aliasdef:'_get_id'(Objref).
+'AliasDef__set_id'(Objref,Id) ->
+ orber_ifr_aliasdef:'_set_id'(Objref,Id).
+'AliasDef__get_name'(Objref) ->
+ orber_ifr_aliasdef:'_get_name'(Objref).
+'AliasDef__set_name'(Objref,Name) ->
+ orber_ifr_aliasdef:'_set_name'(Objref,Name).
+'AliasDef__get_version'(Objref) ->
+ orber_ifr_aliasdef:'_get_version'(Objref).
+'AliasDef__set_version'(Objref,Version) ->
+ orber_ifr_aliasdef:'_set_version'(Objref,Version).
+'AliasDef__get_defined_in'(Objref) ->
+ orber_ifr_aliasdef:'_get_defined_in'(Objref).
+'AliasDef__get_absolute_name'(Objref) ->
+ orber_ifr_aliasdef:'_get_absolute_name'(Objref).
+'AliasDef__get_containing_repository'(Objref) ->
+ orber_ifr_aliasdef:'_get_containing_repository'(Objref).
+'AliasDef_describe'(Objref) ->
+ orber_ifr_aliasdef:describe(Objref).
+'AliasDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_aliasdef:move(Objref,New_container,New_name,New_version).
+'AliasDef__get_type'(Objref) ->
+ orber_ifr_aliasdef:'_get_type'(Objref).
+'AliasDef__get_original_type_def'(Objref) ->
+ orber_ifr_aliasdef:'_get_original_type_def'(Objref).
+'AliasDef__set_original_type_def'(Objref,TypeDef) ->
+ orber_ifr_aliasdef:'_set_original_type_def'(Objref,TypeDef).
+
+'PrimitiveDef__get_def_kind'(Objref) ->
+ orber_ifr_primitivedef:'_get_def_kind'(Objref).
+'PrimitiveDef_destroy'(Objref) ->
+ orber_ifr_primitivedef:destroy(Objref).
+'PrimitiveDef__get_type'(Objref) ->
+ orber_ifr_primitivedef:'_get_type'(Objref).
+'PrimitiveDef__get_kind'(Objref) ->
+ orber_ifr_primitivedef:'_get_kind'(Objref).
+
+'StringDef__get_def_kind'(Objref) ->
+ orber_ifr_stringdef:'_get_def_kind'(Objref).
+'StringDef_destroy'(Objref) ->
+ orber_ifr_stringdef:destroy(Objref).
+'StringDef__get_type'(Objref) ->
+ orber_ifr_stringdef:'_get_type'(Objref).
+'StringDef__get_bound'(Objref) ->
+ orber_ifr_stringdef:'_get_bound'(Objref).
+'StringDef__set_bound'(Objref,Bound) ->
+ orber_ifr_stringdef:'_set_bound'(Objref,Bound).
+
+'WstringDef__get_def_kind'(Objref) ->
+ orber_ifr_wstringdef:'_get_def_kind'(Objref).
+'WstringDef_destroy'(Objref) ->
+ orber_ifr_wstringdef:destroy(Objref).
+'WstringDef__get_type'(Objref) ->
+ orber_ifr_wstringdef:'_get_type'(Objref).
+'WstringDef__get_bound'(Objref) ->
+ orber_ifr_wstringdef:'_get_bound'(Objref).
+'WstringDef__set_bound'(Objref,Bound) ->
+ orber_ifr_wstringdef:'_set_bound'(Objref,Bound).
+
+'FixedDef__get_def_kind'(Objref) ->
+ orber_ifr_fixeddef:'_get_def_kind'(Objref).
+'FixedDef_destroy'(Objref) ->
+ orber_ifr_fixeddef:destroy(Objref).
+'FixedDef__get_type'(Objref) ->
+ orber_ifr_fixeddef:'_get_type'(Objref).
+'FixedDef__get_digits'(Objref) ->
+ orber_ifr_fixeddef:'_get_digits'(Objref).
+'FixedDef__set_digits'(Objref,Digits) ->
+ orber_ifr_fixeddef:'_set_digits'(Objref,Digits).
+'FixedDef__get_scale'(Objref) ->
+ orber_ifr_fixeddef:'_get_scale'(Objref).
+'FixedDef__set_scale'(Objref,Scale) ->
+ orber_ifr_fixeddef:'_set_scale'(Objref,Scale).
+
+'SequenceDef__get_def_kind'(Objref) ->
+ orber_ifr_sequencedef:'_get_def_kind'(Objref).
+'SequenceDef_destroy'(Objref) ->
+ orber_ifr_sequencedef:destroy(Objref).
+'SequenceDef__get_type'(Objref) ->
+ orber_ifr_sequencedef:'_get_type'(Objref).
+'SequenceDef__get_bound'(Objref) ->
+ orber_ifr_sequencedef:'_get_bound'(Objref).
+'SequenceDef__set_bound'(Objref,Bound) ->
+ orber_ifr_sequencedef:'_set_bound'(Objref,Bound).
+'SequenceDef__get_element_type'(Objref) ->
+ orber_ifr_sequencedef:'_get_element_type'(Objref).
+'SequenceDef__get_element_type_def'(Objref) ->
+ orber_ifr_sequencedef:'_get_element_type_def'(Objref).
+'SequenceDef__set_element_type_def'(Objref,TypeDef) ->
+ orber_ifr_sequencedef:'_set_element_type_def'(Objref,TypeDef).
+
+'ArrayDef__get_def_kind'(Objref) ->
+ orber_ifr_arraydef:'_get_def_kind'(Objref).
+'ArrayDef_destroy'(Objref) ->
+ orber_ifr_arraydef:destroy(Objref).
+'ArrayDef__get_type'(Objref) ->
+ orber_ifr_arraydef:'_get_type'(Objref).
+'ArrayDef__get_length'(Objref) ->
+ orber_ifr_arraydef:'_get_length'(Objref).
+'ArrayDef__set_length'(Objref,Length) ->
+ orber_ifr_arraydef:'_set_length'(Objref,Length).
+'ArrayDef__get_element_type'(Objref) ->
+ orber_ifr_arraydef:'_get_element_type'(Objref).
+'ArrayDef__get_element_type_def'(Objref) ->
+ orber_ifr_arraydef:'_get_element_type_def'(Objref).
+'ArrayDef__set_element_type_def'(Objref,TypeDef) ->
+ orber_ifr_arraydef:'_set_element_type_def'(Objref,TypeDef).
+
+'ExceptionDef__get_def_kind'(Objref) ->
+ orber_ifr_exceptiondef:'_get_def_kind'(Objref).
+'ExceptionDef_destroy'(Objref) ->
+ orber_ifr_exceptiondef:destroy(Objref).
+'ExceptionDef__get_id'(Objref) ->
+ orber_ifr_exceptiondef:'_get_id'(Objref).
+'ExceptionDef__set_id'(Objref,Id) ->
+ orber_ifr_exceptiondef:'_set_id'(Objref,Id).
+'ExceptionDef__get_name'(Objref) ->
+ orber_ifr_exceptiondef:'_get_name'(Objref).
+'ExceptionDef__set_name'(Objref,Name) ->
+ orber_ifr_exceptiondef:'_set_name'(Objref,Name).
+'ExceptionDef__get_version'(Objref) ->
+ orber_ifr_exceptiondef:'_get_version'(Objref).
+'ExceptionDef__set_version'(Objref,Version) ->
+ orber_ifr_exceptiondef:'_set_version'(Objref,Version).
+'ExceptionDef__get_defined_in'(Objref) ->
+ orber_ifr_exceptiondef:'_get_defined_in'(Objref).
+'ExceptionDef__get_absolute_name'(Objref) ->
+ orber_ifr_exceptiondef:'_get_absolute_name'(Objref).
+'ExceptionDef__get_containing_repository'(Objref) ->
+ orber_ifr_exceptiondef:'_get_containing_repository'(Objref).
+'ExceptionDef_describe'(Objref) ->
+ orber_ifr_exceptiondef:describe(Objref).
+'ExceptionDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_exceptiondef:move(Objref,New_container,New_name,New_version).
+'ExceptionDef__get_type'(Objref) ->
+ orber_ifr_exceptiondef:'_get_type'(Objref).
+'ExceptionDef__get_members'(Objref) ->
+ orber_ifr_exceptiondef:'_get_members'(Objref).
+'ExceptionDef__set_members'(Objref,Members) ->
+ orber_ifr_exceptiondef:'_set_members'(Objref,Members).
+
+'AttributeDef__get_def_kind'(Objref) ->
+ orber_ifr_attributedef:'_get_def_kind'(Objref).
+'AttributeDef_destroy'(Objref) ->
+ orber_ifr_attributedef:destroy(Objref).
+'AttributeDef__get_id'(Objref) ->
+ orber_ifr_attributedef:'_get_id'(Objref).
+'AttributeDef__set_id'(Objref,Id) ->
+ orber_ifr_attributedef:'_set_id'(Objref,Id).
+'AttributeDef__get_name'(Objref) ->
+ orber_ifr_attributedef:'_get_name'(Objref).
+'AttributeDef__set_name'(Objref,Name) ->
+ orber_ifr_attributedef:'_set_name'(Objref,Name).
+'AttributeDef__get_version'(Objref) ->
+ orber_ifr_attributedef:'_get_version'(Objref).
+'AttributeDef__set_version'(Objref,Version) ->
+ orber_ifr_attributedef:'_set_version'(Objref,Version).
+'AttributeDef__get_defined_in'(Objref) ->
+ orber_ifr_attributedef:'_get_defined_in'(Objref).
+'AttributeDef__get_absolute_name'(Objref) ->
+ orber_ifr_attributedef:'_get_absolute_name'(Objref).
+'AttributeDef__get_containing_repository'(Objref) ->
+ orber_ifr_attributedef:'_get_containing_repository'(Objref).
+'AttributeDef_describe'(Objref) ->
+ orber_ifr_attributedef:describe(Objref).
+'AttributeDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_attributedef:move(Objref,New_container,New_name,New_version).
+'AttributeDef__get_type'(Objref) ->
+ orber_ifr_attributedef:'_get_type'(Objref).
+'AttributeDef__get_type_def'(Objref) ->
+ orber_ifr_attributedef:'_get_type_def'(Objref).
+'AttributeDef__set_type_def'(Objref,TypeDef) ->
+ orber_ifr_attributedef:'_set_type_def'(Objref,TypeDef).
+'AttributeDef__get_mode'(Objref) ->
+ orber_ifr_attributedef:'_get_mode'(Objref).
+'AttributeDef__set_mode'(Objref,Mode) ->
+ orber_ifr_attributedef:'_set_mode'(Objref,Mode).
+
+'OperationDef__get_def_kind'(Objref) ->
+ orber_ifr_operationdef:'_get_def_kind'(Objref).
+'OperationDef_destroy'(Objref) ->
+ orber_ifr_operationdef:destroy(Objref).
+'OperationDef__get_id'(Objref) ->
+ orber_ifr_operationdef:'_get_id'(Objref).
+'OperationDef__set_id'(Objref,Id) ->
+ orber_ifr_operationdef:'_set_id'(Objref,Id).
+'OperationDef__get_name'(Objref) ->
+ orber_ifr_operationdef:'_get_name'(Objref).
+'OperationDef__set_name'(Objref,Name) ->
+ orber_ifr_operationdef:'_set_name'(Objref,Name).
+'OperationDef__get_version'(Objref) ->
+ orber_ifr_operationdef:'_get_version'(Objref).
+'OperationDef__set_version'(Objref,Version) ->
+ orber_ifr_operationdef:'_set_version'(Objref,Version).
+'OperationDef__get_defined_in'(Objref) ->
+ orber_ifr_operationdef:'_get_defined_in'(Objref).
+'OperationDef__get_absolute_name'(Objref) ->
+ orber_ifr_operationdef:'_get_absolute_name'(Objref).
+'OperationDef__get_containing_repository'(Objref) ->
+ orber_ifr_operationdef:'_get_containing_repository'(Objref).
+'OperationDef_describe'(Objref) ->
+ orber_ifr_operationdef:describe(Objref).
+'OperationDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_operationdef:move(Objref,New_container,New_name,New_version).
+'OperationDef__get_result'(Objref) ->
+ orber_ifr_operationdef:'_get_result'(Objref).
+'OperationDef__get_result_def'(Objref) ->
+ orber_ifr_operationdef:'_get_result_def'(Objref).
+'OperationDef__set_result_def'(Objref,ResultDef) ->
+ orber_ifr_operationdef:'_set_result_def'(Objref,ResultDef).
+'OperationDef__get_params'(Objref) ->
+ orber_ifr_operationdef:'_get_params'(Objref).
+'OperationDef__set_params'(Objref,Params) ->
+ orber_ifr_operationdef:'_set_params'(Objref,Params).
+'OperationDef__get_mode'(Objref) ->
+ orber_ifr_operationdef:'_get_mode'(Objref).
+'OperationDef__set_mode'(Objref,Mode) ->
+ orber_ifr_operationdef:'_set_mode'(Objref,Mode).
+'OperationDef__get_contexts'(Objref) ->
+ orber_ifr_operationdef:'_get_contexts'(Objref).
+'OperationDef__set_contexts'(Objref,Contexts) ->
+ orber_ifr_operationdef:'_set_contexts'(Objref,Contexts).
+'OperationDef__get_exceptions'(Objref) ->
+ orber_ifr_operationdef:'_get_exceptions'(Objref).
+'OperationDef__set_exceptions'(Objref,Exceptions) ->
+ orber_ifr_operationdef:'_set_exceptions'(Objref,Exceptions).
+
+'InterfaceDef__get_def_kind'(Objref) ->
+ orber_ifr_interfacedef:'_get_def_kind'(Objref).
+'InterfaceDef_destroy'(Objref) ->
+ orber_ifr_interfacedef:destroy(Objref).
+'InterfaceDef_lookup'(Objref,Search_name) ->
+ orber_ifr_interfacedef:lookup(Objref,Search_name).
+'InterfaceDef_contents'(Objref,Limit_type,Exclude_inherited) ->
+ orber_ifr_interfacedef:contents(Objref,Limit_type,Exclude_inherited).
+'InterfaceDef_lookup_name'(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited) ->
+ orber_ifr_interfacedef:lookup_name(Objref,Search_name,Levels_to_search,Limit_type,
+ Exclude_inherited).
+'InterfaceDef_describe_contents'(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs) ->
+ orber_ifr_interfacedef:describe_contents(Objref,Limit_type,Exclude_inherited,
+ Max_returned_objs).
+'InterfaceDef_create_module'(Objref,Id,Name,Version) ->
+ orber_ifr_interfacedef:create_module(Objref,Id,Name,Version).
+'InterfaceDef_create_constant'(Objref,Id,Name,Version,Type,Value) ->
+ orber_ifr_interfacedef:create_constant(Objref,Id,Name,Version,Type,Value).
+'InterfaceDef_create_struct'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_interfacedef:create_struct(Objref,Id,Name,Version,Members).
+'InterfaceDef_create_union'(Objref,Id,Name,Version,Discriminator_type,
+ Members) ->
+ orber_ifr_interfacedef:create_union(Objref,Id,Name,Version,Discriminator_type,
+ Members).
+'InterfaceDef_create_enum'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_interfacedef:create_enum(Objref,Id,Name,Version,Members).
+'InterfaceDef_create_alias'(Objref,Id,Name,Version,Original_type) ->
+ orber_ifr_interfacedef:create_alias(Objref,Id,Name,Version,Original_type).
+'InterfaceDef_create_interface'(Objref,Id,Name,Version,Base_interfaces) ->
+ orber_ifr_interfacedef:create_interface(Objref,Id,Name,Version,Base_interfaces).
+'InterfaceDef_create_exception'(Objref,Id,Name,Version,Members) ->
+ orber_ifr_interfacedef:create_exception(Objref,Id,Name,Version,Members).
+'InterfaceDef__get_id'(Objref) ->
+ orber_ifr_interfacedef:'_get_id'(Objref).
+'InterfaceDef__set_id'(Objref,Id) ->
+ orber_ifr_interfacedef:'_set_id'(Objref,Id).
+'InterfaceDef__get_name'(Objref) ->
+ orber_ifr_interfacedef:'_get_name'(Objref).
+'InterfaceDef__set_name'(Objref,Name) ->
+ orber_ifr_interfacedef:'_set_name'(Objref,Name).
+'InterfaceDef__get_version'(Objref) ->
+ orber_ifr_interfacedef:'_get_version'(Objref).
+'InterfaceDef__set_version'(Objref,Version) ->
+ orber_ifr_interfacedef:'_set_version'(Objref,Version).
+'InterfaceDef__get_defined_in'(Objref) ->
+ orber_ifr_interfacedef:'_get_defined_in'(Objref).
+'InterfaceDef__get_absolute_name'(Objref) ->
+ orber_ifr_interfacedef:'_get_absolute_name'(Objref).
+'InterfaceDef__get_containing_repository'(Objref) ->
+ orber_ifr_interfacedef:'_get_containing_repository'(Objref).
+'InterfaceDef_describe'(Objref) ->
+ orber_ifr_interfacedef:describe(Objref).
+'InterfaceDef_move'(Objref,New_container,New_name,New_version) ->
+ orber_ifr_interfacedef:move(Objref,New_container,New_name,New_version).
+'InterfaceDef__get_type'(Objref) ->
+ orber_ifr_interfacedef:'_get_type'(Objref).
+'InterfaceDef__get_base_interfaces'(Objref) ->
+ orber_ifr_interfacedef:'_get_base_interfaces'(Objref).
+'InterfaceDef__set_base_interfaces'(Objref,BaseInterfaces) ->
+ orber_ifr_interfacedef:'_set_base_interfaces'(Objref,BaseInterfaces).
+'InterfaceDef_is_a'(Objref,Interface_id) ->
+ orber_ifr_interfacedef:is_a(Objref,Interface_id).
+'InterfaceDef_describe_interface'(Objref) ->
+ orber_ifr_interfacedef:describe_interface(Objref).
+'InterfaceDef_create_attribute'(Objref,Id,Name,Version,Type,Mode) ->
+ orber_ifr_interfacedef:create_attribute(Objref,Id,Name,Version,Type,Mode).
+'InterfaceDef_create_operation'(Objref,Id,Name,Version,Result,Mode,Params,
+ Exceptions,Contexts) ->
+ orber_ifr_interfacedef:create_operation(Objref,Id,Name,Version,Result,Mode,
+ Params,Exceptions,Contexts).
+
+%%'TypeCode_equal'(Objref,Tc) ->
+%% orber_ifr_typecode:equal(Objref,Tc).
+%%'TypeCode_kind'(Objref) ->
+%% orber_ifr_typecode:kind(Objref).
+%%'TypeCode_id'(Objref) ->
+%% orber_ifr_typecode:id(Objref).
+%%'TypeCode_name'(Objref) ->
+%% orber_ifr_typecode:name(Objref).
+%%'TypeCode_member_count'(Objref) ->
+%% orber_ifr_typecode:member_count(Objref).
+%%'TypeCode_member_name'(Objref,Index) ->
+%% orber_ifr_typecode:member_name(Objref,Index).
+%%'TypeCode_member_type'(Objref,Index) ->
+%% orber_ifr_typecode:member_type(Objref,Index).
+%%'TypeCode_member_label'(Objref,Index) ->
+%% orber_ifr_typecode:member_label(Objref,Index).
+%%'TypeCode_discriminator_type'(Objref) ->
+%% orber_ifr_typecode:discriminator_type(Objref).
+%%'TypeCode_default_index'(Objref) ->
+%% orber_ifr_typecode:default_index(Objref).
+%%'TypeCode_length'(Objref) ->
+%% orber_ifr_typecode:length(Objref).
+%%'TypeCode_content_type'(Objref) ->
+%% orber_ifr_typecode:content_type(Objref).
+%%'TypeCode_param_count'(Objref) ->
+%% orber_ifr_typecode:param_count(Objref).
+%%'TypeCode_parameter'(Objref,Index) ->
+%% orber_ifr_typecode:parameter(Objref,Index).
+
+'ORB_create_struct_tc'(Id,Name,Members) ->
+ orber_ifr_orb:create_struct_tc(Id,Name,Members).
+'ORB_create_union_tc'(Id,Name,Discriminator_type,Members) ->
+ orber_ifr_orb:create_union_tc(Id,Name,Discriminator_type,Members).
+'ORB_create_enum_tc'(Id,Name,Members) ->
+ orber_ifr_orb:create_enum_tc(Id,Name,Members).
+'ORB_create_alias_tc'(Id,Name,Original_type) ->
+ orber_ifr_orb:create_alias_tc(Id,Name,Original_type).
+'ORB_create_exception_tc'(Id,Name,Members) ->
+ orber_ifr_orb:create_exception_tc(Id,Name,Members).
+'ORB_create_interface_tc'(Id,Name) ->
+ orber_ifr_orb:create_interface_tc(Id,Name).
+'ORB_create_string_tc'(Bound) ->
+ orber_ifr_orb:create_string_tc(Bound).
+'ORB_create_wstring_tc'(Bound) ->
+ orber_ifr_orb:create_wstring_tc(Bound).
+'ORB_create_sequence_tc'(Bound,Element_type) ->
+ orber_ifr_orb:create_sequence_tc(Bound,Element_type).
+'ORB_create_recursive_sequence_tc'(Bound,Offset) ->
+ orber_ifr_orb:create_recursive_sequence_tc(Bound,Offset).
+'ORB_create_array_tc'(Length,Element_type) ->
+ orber_ifr_orb:create_array_tc(Length,Element_type).
+
+%%%---------------------------------------------------------------
+%%% "Methods" of the IFR "objects"
+
+get_def_kind(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_def_kind'(Objref).
+
+%% Light IFR Operations
+destroy(#orber_light_ifr_ref{data = #lightdata{id = Id}}) ->
+ F = fun() ->
+ MatchHead = #orber_light_ifr{id = '$1', base_id = Id, _='_'},
+ Result = '$1',
+ IdList = mnesia:select(orber_light_ifr,
+ [{MatchHead, [], [Result]}],
+ write),
+ lists:foreach(fun(RefId) ->
+ mnesia:delete({orber_light_ifr, RefId})
+ end, IdList)
+ end,
+ case mnesia:transaction(F) of
+ {aborted, _} ->
+ exit({"FAILED TO DELETE:", Id});
+ {atomic, _} ->
+ ok
+ end;
+destroy(Objref) ->
+ %% Destroying an ir_IRObject, ir_Contained or ir_Container directly
+ %% is not allowed
+ Mod = obj2mod(Objref),
+ Mod:destroy(Objref).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_id(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_id'(Objref).
+
+set_id(Objref,Id) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_id'(Objref,Id).
+
+get_name(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_name'(Objref).
+
+set_name(Objref,Name) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_name'(Objref,Name).
+
+get_version(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_version'(Objref).
+
+set_version(Objref,Version) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_version'(Objref,Version).
+
+get_defined_in(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_defined_in'(Objref).
+
+get_absolute_name(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod: '_get_absolute_name'(Objref).
+
+get_containing_repository(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_containing_repository'(Objref).
+
+describe(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:describe(Objref).
+
+move(Objref,New_container,New_name,New_version) ->
+ Mod = obj2mod(Objref),
+ Mod:move(Objref,New_container,New_name,New_version).
+
+%%%---------------------------------------------------------------
+%%%
+
+lookup(Objref,Search_name) ->
+ Mod = obj2mod(Objref),
+ Mod:lookup(Objref,Search_name).
+
+%% Light IFR Operation
+contents(#orber_light_ifr_ref{data = #lightdata{id = _Id}},
+ _Limit_type, _Exclude_inherited) ->
+ [];
+contents(Objref,Limit_type,Exclude_inherited) ->
+ Mod = obj2mod(Objref),
+ Mod:contents(Objref,Limit_type,Exclude_inherited).
+
+lookup_name(Objref,Search_name,Levels_to_search,Limit_type,Exclude_inherited) ->
+ Mod = obj2mod(Objref),
+ Mod:lookup_name(Objref,Search_name,Levels_to_search,Limit_type,Exclude_inherited).
+
+
+describe_contents(Objref,Limit_type,Exclude_inherited,Max_returned_objs) ->
+ Mod = obj2mod(Objref),
+ Mod:describe_contents(Objref,Limit_type,Exclude_inherited,Max_returned_objs).
+
+create_module(Objref,Id,Name,Version) ->
+ Mod = obj2mod(Objref),
+ Mod:create_module(Objref,Id,Name,Version).
+
+create_constant(Objref,Id,Name,Version,Type,Value) ->
+ Mod = obj2mod(Objref),
+ Mod:create_constant(Objref,Id,Name,Version,Type,Value).
+
+create_struct(Objref,Id,Name,Version,Members) ->
+ Mod = obj2mod(Objref),
+ Mod:create_struct(Objref,Id,Name,Version,Members).
+
+create_union(Objref,Id,Name,Version,Discriminator_type,Members) ->
+ Mod = obj2mod(Objref),
+ Mod:create_union(Objref,Id,Name,Version,Discriminator_type,Members).
+
+create_enum(Objref,Id,Name,Version,Members) ->
+ Mod = obj2mod(Objref),
+ Mod:create_enum(Objref,Id,Name,Version,Members).
+
+create_alias(Objref,Id,Name,Version,Original_type) ->
+ Mod = obj2mod(Objref),
+ Mod:create_alias(Objref,Id,Name,Version,Original_type).
+
+create_interface(Objref,Id,Name,Version,Base_interfaces) ->
+ Mod = obj2mod(Objref),
+ Mod:create_interface(Objref,Id,Name,Version,Base_interfaces).
+
+create_exception(Objref,Id,Name,Version,Members) ->
+ Mod = obj2mod(Objref),
+ Mod:create_exception(Objref,Id,Name,Version,Members).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_type(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_type'(Objref).
+
+%%%---------------------------------------------------------------
+%%%
+
+%% This list should contain the data in most-likely-to-be-accessed-order.
+-define(INDEXED_TABLE_LIST, [{ir_ExceptionDef, #ir_ExceptionDef.id},
+ {ir_InterfaceDef, #ir_InterfaceDef.id},
+ {ir_ModuleDef, #ir_ModuleDef.id},
+ {ir_StructDef, #ir_StructDef.id},
+ {ir_UnionDef, #ir_UnionDef.id},
+ {ir_AliasDef, #ir_AliasDef.id},
+ {ir_TypedefDef, #ir_TypedefDef.id},
+ {ir_ConstantDef, #ir_ConstantDef.id},
+ {ir_EnumDef, #ir_EnumDef.id},
+ {ir_AttributeDef, #ir_AttributeDef.id},
+ {ir_Contained, #ir_Contained.id},
+ {ir_OperationDef, #ir_OperationDef.id}]).
+
+
+lookup_id(#orber_light_ifr_ref{}, Id) ->
+ case mnesia:dirty_read(orber_light_ifr, Id) of
+ [] ->
+ [];
+ [#orber_light_ifr{module = Mod}] ->
+ #orber_light_ifr_ref{data = #lightdata{scope = atom_to_list(Mod),
+ id = Id}}
+ end;
+lookup_id(_Objref,Id) ->
+ %% We used the operation below before but it's very expensive.
+ %% orber_ifr_repository:lookup_id(Objref,Id)
+ lookup_id_helper(?INDEXED_TABLE_LIST, Id).
+
+lookup_id_helper([], _) ->
+ [];
+lookup_id_helper([{Tab, IdNum}|T], Id) ->
+ case mnesia:dirty_index_read(Tab, Id, IdNum) of
+ [] ->
+ lookup_id_helper(T, Id);
+ [FoundIt] ->
+ {Tab, element(2, FoundIt)}
+ end.
+
+get_primitive(Objref,Kind) ->
+ orber_ifr_repository:get_primitive(Objref,Kind).
+
+create_string(Objref,Bound) ->
+ orber_ifr_repository:create_string(Objref,Bound).
+
+create_wstring(Objref,Bound) ->
+ orber_ifr_repository:create_wstring(Objref,Bound).
+
+create_sequence(Objref,Bound,Element_type) ->
+ orber_ifr_repository:create_sequence(Objref,Bound,Element_type).
+
+create_array(Objref,Length,Element_type) ->
+ orber_ifr_repository:create_array(Objref,Length,Element_type).
+
+create_idltype(Objref,Typecode) -> %not in CORBA 2.0
+ orber_ifr_repository:create_idltype(Objref,Typecode).
+
+create_fixed(Objref, Digits, Scale) ->
+ orber_ifr_repository:create_fixed(Objref, Digits, Scale).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_type_def(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_type_def'(Objref).
+
+set_type_def(Objref,TypeDef) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_type_def'(Objref,TypeDef).
+
+get_value(Objref) ->
+ orber_ifr_constantdef:'_get_value'(Objref).
+
+set_value(Objref,Value) ->
+ orber_ifr_constantdef: '_set_value'(Objref,Value).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_members(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_members'(Objref).
+
+set_members(Objref,Members) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_members'(Objref,Members).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_discriminator_type(Objref) ->
+ orber_ifr_uniondef:'_get_discriminator_type'(Objref).
+
+get_discriminator_type_def(Objref) ->
+ orber_ifr_uniondef:'_get_discriminator_type_def'(Objref).
+
+set_discriminator_type_def(Objref,TypeDef) ->
+ orber_ifr_uniondef:'_set_discriminator_type_def'(Objref,TypeDef).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_original_type_def(Objref) ->
+ orber_ifr_aliasdef:'_get_original_type_def'(Objref).
+
+set_original_type_def(Objref,TypeDef) ->
+ orber_ifr_aliasdef:'_set_original_type_def'(Objref,TypeDef).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_kind(Objref) ->
+ orber_ifr_primitivedef:'_get_kind'(Objref).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_bound(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_bound'(Objref).
+
+set_bound(Objref,Bound) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_bound'(Objref,Bound).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_element_type(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_element_type'(Objref).
+
+get_element_type_def(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_element_type_def'(Objref).
+
+set_element_type_def(Objref,TypeDef) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_element_type_def'(Objref,TypeDef).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_length(Objref) ->
+ orber_ifr_arraydef:'_get_length'(Objref).
+
+set_length(Objref,Length) ->
+ orber_ifr_arraydef:'_set_length'(Objref,Length).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_mode(Objref) ->
+ Mod = obj2mod(Objref),
+ Mod:'_get_mode'(Objref).
+
+set_mode(Objref,Mode) ->
+ Mod = obj2mod(Objref),
+ Mod:'_set_mode'(Objref,Mode).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_result(Objref) ->
+ orber_ifr_operationdef:'_get_result'(Objref).
+
+get_result_def(Objref) ->
+ orber_ifr_operationdef:'_get_result_def'(Objref).
+
+set_result_def(Objref,ResultDef) ->
+ orber_ifr_operationdef:'_set_result_def'(Objref,ResultDef).
+
+get_params(Objref) ->
+ orber_ifr_operationdef:'_get_params'(Objref).
+
+set_params(Objref,Params) ->
+ orber_ifr_operationdef:'_set_params'(Objref,Params).
+
+get_contexts(Objref) ->
+ orber_ifr_operationdef:'_get_contexts'(Objref).
+
+set_contexts(Objref,Contexts) ->
+ orber_ifr_operationdef:'_set_contexts'(Objref,Contexts).
+
+get_exceptions(Objref) ->
+ orber_ifr_operationdef:'_get_exceptions'(Objref).
+
+set_exceptions(Objref,Exceptions) ->
+ orber_ifr_operationdef:'_set_exceptions'(Objref,Exceptions).
+
+%%%---------------------------------------------------------------
+%%%
+
+get_base_interfaces(Objref) ->
+ orber_ifr_interfacedef:'_get_base_interfaces'(Objref).
+
+set_base_interfaces(Objref,BaseInterfaces) ->
+ orber_ifr_interfacedef:'_set_base_interfaces'(Objref,BaseInterfaces).
+
+is_a(Objref,Interface_id) ->
+ orber_ifr_interfacedef:is_a(Objref,Interface_id).
+
+describe_interface(Objref) ->
+ orber_ifr_interfacedef:describe_interface(Objref).
+
+create_attribute(Objref,Id,Name,Version,Type,Mode) ->
+ orber_ifr_interfacedef:create_attribute(Objref,Id,Name,Version,Type,Mode).
+
+create_operation(Objref,Id,Name,Version,Result,Mode,Params,Exceptions,Contexts) ->
+ orber_ifr_interfacedef:create_operation(Objref,Id,Name,Version,Result,Mode,
+ Params,Exceptions,Contexts).
+
+obj2mod({ir_IRObject, _}) ->
+ orber_ifr_irobject;
+obj2mod({ir_Contained, _}) ->
+ orber_ifr_contained;
+obj2mod({ir_Container, _}) ->
+ orber_ifr_container;
+obj2mod({ir_IDLType, _}) ->
+ orber_ifr_idltype;
+obj2mod({ir_Repository, _}) ->
+ orber_ifr_repository;
+obj2mod({ir_ModuleDef, _}) ->
+ orber_ifr_moduledef;
+obj2mod({ir_ConstantDef, _}) ->
+ orber_ifr_constantdef;
+obj2mod({ir_TypedefDef, _}) ->
+ orber_ifr_typedef;
+obj2mod({ir_StructDef, _}) ->
+ orber_ifr_structdef;
+obj2mod({ir_UnionDef, _}) ->
+ orber_ifr_uniondef;
+obj2mod({ir_EnumDef, _}) ->
+ orber_ifr_enumdef;
+obj2mod({ir_AliasDef, _}) ->
+ orber_ifr_aliasdef;
+obj2mod({ir_PrimitiveDef, _}) ->
+ orber_ifr_primitivedef;
+obj2mod({ir_StringDef, _}) ->
+ orber_ifr_stringdef;
+obj2mod({ir_WstringDef, _}) ->
+ orber_ifr_wstringdef;
+obj2mod({ir_SequenceDef, _}) ->
+ orber_ifr_sequencedef;
+obj2mod({ir_ArrayDef, _}) ->
+ orber_ifr_arraydef;
+obj2mod({ir_ExceptionDef, _}) ->
+ orber_ifr_exceptiondef;
+obj2mod({ir_AttributeDef, _}) ->
+ orber_ifr_attributedef;
+obj2mod({ir_OperationDef, _}) ->
+ orber_ifr_operationdef;
+obj2mod({ir_InterfaceDef, _}) ->
+ orber_ifr_interfacedef;
+obj2mod({ir_FixedDef, _}) ->
+ orber_ifr_fidxeddef;
+obj2mod(Obj) ->
+ orber:dbg("[~p] orber_ifr:obj2mod(~p); unknown.",
+ [?LINE, Obj], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+
diff --git a/lib/orber/src/orber_ifr.hrl b/lib/orber/src/orber_ifr.hrl
new file mode 100644
index 0000000000..a9b791cc97
--- /dev/null
+++ b/lib/orber/src/orber_ifr.hrl
@@ -0,0 +1,34 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr.hrl
+%% Purpose : Macros for the Interface Repository
+%%----------------------------------------------------------------------
+
+
+-record(lightdata, {scope, id}).
+-record(orber_light_ifr_ref, {data}).
+
+%% "Type" checking
+-define(tcheck(Type, Thing), when Type == Thing ; Thing == orber_light_ifr_ref).
+
+-define(DEBUG_LEVEL, 9).
+
diff --git a/lib/orber/src/orber_ifr_aliasdef.erl b/lib/orber/src/orber_ifr_aliasdef.erl
new file mode 100644
index 0000000000..ab25c73f47
--- /dev/null
+++ b/lib/orber/src/orber_ifr_aliasdef.erl
@@ -0,0 +1,134 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_aliasdef.erl
+%% Purpose : Code for Aliasdef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_aliasdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_original_type_def'/1,
+ '_set_original_type_def'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%======================================================================
+%%% AliasDef (TypedefDef(Contained(IRObject), IDLType(IRObject)))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy(
+ '_get_original_type_def'({ObjType,ObjID})) ++
+ orber_ifr_typedef:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_AliasDef,ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_AliasDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_original_type_def'({ObjType, ObjID})
+ ?tcheck(ir_AliasDef, ObjType) ->
+ get_field({ObjType,ObjID},original_type_def).
+
+'_set_original_type_def'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_AliasDef, ObjType) ->
+ AliasDef = get_object({ObjType, ObjID}),
+ New_AliasDef = AliasDef#ir_AliasDef{type = {tk_alias,
+ AliasDef#ir_AliasDef.id,
+ AliasDef#ir_AliasDef.name,
+ EO_Value#ir_IDLType.type},
+ original_type_def = EO_Value},
+ set_object(New_AliasDef).
diff --git a/lib/orber/src/orber_ifr_arraydef.erl b/lib/orber/src/orber_ifr_arraydef.erl
new file mode 100644
index 0000000000..5b55f2da86
--- /dev/null
+++ b/lib/orber/src/orber_ifr_arraydef.erl
@@ -0,0 +1,103 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_arraydef.erl
+%% Purpose : Code for Arraydef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_arraydef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_length'/1,
+ '_set_length'/2,
+ '_get_element_type'/1,
+ '_get_element_type_def'/1,
+ '_set_element_type_def'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%======================================================================
+%%% ArrayDef (IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy(
+ '_get_element_type_def'({ObjType,ObjID})) ++
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_length'({ObjType, ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ get_field({ObjType,ObjID},length).
+
+'_set_length'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ArrayDef, ObjType) ->
+ ArrayDef = get_object({ObjType, ObjID}),
+ New_ArrayDef =
+ ArrayDef#ir_ArrayDef{type = {tk_array,
+ ArrayDef#ir_ArrayDef.type,
+ ArrayDef#ir_ArrayDef.length},
+ length = EO_Value},
+ set_object(New_ArrayDef).
+
+'_get_element_type'({ObjType, ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ get_field({ObjType,ObjID},element_type).
+
+'_get_element_type_def'({ObjType, ObjID}) ?tcheck(ir_ArrayDef, ObjType) ->
+ get_field({ObjType,ObjID},element_type_def).
+
+'_set_element_type_def'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_ArrayDef, ObjType) ->
+ ArrayDef = get_object({ObjType, ObjID}),
+ New_type = {tk_array,
+ EO_Value#ir_IDLType.type,
+ ArrayDef#ir_ArrayDef.length},
+ New_ArrayDef = ArrayDef#ir_ArrayDef{type = New_type,
+ element_type = New_type,
+ element_type_def = EO_Value},
+ set_object(New_ArrayDef).
diff --git a/lib/orber/src/orber_ifr_attributedef.erl b/lib/orber/src/orber_ifr_attributedef.erl
new file mode 100644
index 0000000000..866ac3ae26
--- /dev/null
+++ b/lib/orber/src/orber_ifr_attributedef.erl
@@ -0,0 +1,137 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_attributedef.erl
+%% Purpose : Code for Attributedef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_attributedef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_type_def'/1,
+ '_set_type_def'/2,
+ '_get_mode'/1,
+ '_set_mode'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ set_field/3,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%----------------------------------------------------------------------
+%% AttributeDef (Contained(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy(
+ orber_ifr_idltype:'_get_type_def'({ObjType,ObjID})) ++
+ orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID})
+ ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_AttributeDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ get_field({ObjType,ObjID},type).
+
+'_get_type_def'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ get_field({ObjType,ObjID},type_def).
+
+'_set_type_def'({ObjType, ObjID},EO_Value) ?tcheck(ir_AttributeDef, ObjType) ->
+ AttributeDef = get_object({ObjType, ObjID}),
+ New_AttributeDef =
+ AttributeDef#ir_AttributeDef{type = EO_Value#ir_IDLType.type,
+ type_def = EO_Value},
+ set_object(New_AttributeDef).
+
+'_get_mode'({ObjType, ObjID}) ?tcheck(ir_AttributeDef, ObjType) ->
+ get_field({ObjType,ObjID},mode).
+
+'_set_mode'({ObjType, ObjID}, EO_Value) ?tcheck(ir_AttributeDef, ObjType) ->
+ set_field({ObjType,ObjID}, mode, EO_Value).
diff --git a/lib/orber/src/orber_ifr_constantdef.erl b/lib/orber/src/orber_ifr_constantdef.erl
new file mode 100644
index 0000000000..c966e8ed48
--- /dev/null
+++ b/lib/orber/src/orber_ifr_constantdef.erl
@@ -0,0 +1,147 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_constantdef.erl
+%% Purpose : Code for Constantdef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_constantdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_type_def'/1,
+ '_set_type_def'/2,
+ '_get_value'/1,
+ '_set_value'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ set_field/3,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include_lib("orber/include/corba.hrl").
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%======================================================================
+%%% ConstantDef (Contained(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ?tcheck(ir_ConstantDef,ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType, ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType,ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy(
+ '_get_type_def'({ObjType,ObjID})) ++
+ orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_ConstantDef,ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID})
+ ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+ %
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_ConstantDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ get_field({ObjType,ObjID},type).
+
+'_get_type_def'({ObjType,ObjID}) ?tcheck(ir_ConstantDef,ObjType) ->
+ get_field({ObjType,ObjID},type_def).
+
+'_set_type_def'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ConstantDef, ObjType) ->
+ ConstantDef = get_object({ObjType, ObjID}),
+ New_ConstantDef = ConstantDef#ir_ConstantDef{type=EO_Value#ir_IDLType.type,
+ type_def = EO_Value},
+ set_object(New_ConstantDef).
+
+'_get_value'({ObjType, ObjID}) ?tcheck(ir_ConstantDef, ObjType) ->
+ get_field({ObjType,ObjID},value).
+
+'_set_value'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ConstantDef, ObjType) ->
+ Typecode = get_field({ObjType,ObjID},type),
+ {Value_typecode, _} = EO_Value,
+ case Value_typecode == Typecode of
+ true ->
+ set_field({ObjType, ObjID}, value, EO_Value);
+ false ->
+ orber:dbg("[~p] ~p:destroy(~p, ~p, ~p);~n"
+ "Wrong typecode in set_value.~n",
+ [?LINE, ?MODULE, ObjType, ObjID, EO_Value], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end.
diff --git a/lib/orber/src/orber_ifr_contained.erl b/lib/orber/src/orber_ifr_contained.erl
new file mode 100644
index 0000000000..21c72e3b72
--- /dev/null
+++ b/lib/orber/src/orber_ifr_contained.erl
@@ -0,0 +1,247 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_contained.erl
+%% Purpose : Code for Contained
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_contained).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ describe/2, %not in CORBA 2.0
+ move/4
+ ]).
+
+-import(orber_ifr_utils,[get_object/1,
+ get_field/2,
+ set_field/3,
+ construct/3,
+ select/2,
+ write_result/1,
+ ifr_transaction_read_write/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%%======================================================================
+%%% Contained (IRObject)
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+%%% Note, that the destroy function is meant to be called within a
+%%% transaction called in the destroy function of an object which
+%%% inherits from Contained. A Contained should only be destroyed by
+%%% destroying the object that inherits from a Contained. An attempt
+%%% to call this function in user code will result in unpredictable
+%%% results.
+
+%%% Don't type check the object reference. We need to be able to
+%%% handle several types of objects that inherit from Contained.
+
+destroy(Contained_objref) ->
+ ObjList = cleanup_for_destroy(Contained_objref),
+ orber_ifr_irobject:destroy([Contained_objref | ObjList]).
+
+cleanup_for_destroy(Contained_objref) ->
+ Defined_in = '_get_defined_in'(Contained_objref),
+ [Container_obj] = mnesia:read(Defined_in),
+ New_container_obj =
+ construct(Container_obj,contents,
+ lists:filter(fun(X) -> X /= Contained_objref end,
+ select(Container_obj,contents))),
+ [fun() -> mnesia:write(New_container_obj) end].
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_id'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},id).
+
+'_set_id'({ObjType,ObjID}, EO_Value) ->
+ set_field({ObjType, ObjID}, id, EO_Value).
+
+'_get_name'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},name).
+
+'_set_name'({ObjType,ObjID}, EO_Value) ->
+ set_field({ObjType, ObjID}, name, EO_Value).
+
+'_get_version'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},version).
+
+'_set_version'({ObjType,ObjID}, EO_Value) ->
+ set_field({ObjType, ObjID}, version, EO_Value).
+
+'_get_defined_in'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},defined_in).
+
+'_get_absolute_name'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},absolute_name).
+
+'_get_containing_repository'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},containing_repository).
+
+describe(ObjRef) ->
+ Def_kind = '_get_def_kind'(ObjRef),
+ Object = get_object(ObjRef),
+ describe(Object,Def_kind).
+
+describe(Object,Def_kind) ->
+ Value =
+ case Def_kind of
+ dk_Module ->
+ #moduledescription{name = Object#ir_ModuleDef.name,
+ id = Object#ir_ModuleDef.id,
+ defined_in = Object#ir_ModuleDef.defined_in,
+ version = Object#ir_ModuleDef.version};
+ dk_Constant ->
+ #constantdescription{name = Object#ir_ConstantDef.name,
+ id = Object#ir_ConstantDef.id,
+ defined_in =
+ Object#ir_ConstantDef.defined_in,
+ version = Object#ir_ConstantDef.version,
+ type = Object#ir_ConstantDef.type,
+ value = Object#ir_ConstantDef.value};
+ dk_Typedef ->
+ #typedescription{name = Object#ir_TypedefDef.name,
+ id = Object#ir_TypedefDef.id,
+ defined_in = Object#ir_TypedefDef.defined_in,
+ version = Object#ir_TypedefDef.version,
+ type = Object#ir_TypedefDef.type};
+ dk_Struct ->
+ ?make_typedescription(Object,ir_StructDef);
+ dk_Union ->
+ ?make_typedescription(Object,ir_UnionDef);
+ dk_Enum ->
+ ?make_typedescription(Object,ir_EnumDef);
+ dk_Alias ->
+ ?make_typedescription(Object,ir_AliasDef);
+ dk_Exception ->
+ #exceptiondescription{name = Object#ir_ExceptionDef.name,
+ id = Object#ir_ExceptionDef.id,
+ defined_in =
+ Object#ir_ExceptionDef.defined_in,
+ version = Object#ir_ExceptionDef.version,
+ type = Object#ir_ExceptionDef.type};
+ dk_Attribute ->
+ #attributedescription{name = Object#ir_AttributeDef.name,
+ id = Object#ir_AttributeDef.id,
+ defined_in =
+ Object#ir_AttributeDef.defined_in,
+ version = Object#ir_AttributeDef.version,
+ type = Object#ir_AttributeDef.type,
+ mode = Object#ir_AttributeDef.mode};
+ dk_Operation ->
+ #operationdescription{name = Object#ir_OperationDef.name,
+ id = Object#ir_OperationDef.id,
+ defined_in =
+ Object#ir_OperationDef.defined_in,
+ version = Object#ir_OperationDef.version,
+ result = Object#ir_OperationDef.result,
+ mode = Object#ir_OperationDef.mode,
+ contexts =
+ Object#ir_OperationDef.contexts,
+ parameters =
+ Object#ir_OperationDef.params,
+ exceptions =
+ Object#ir_OperationDef.exceptions};
+ dk_Interface ->
+ #interfacedescription{name = Object#ir_InterfaceDef.name,
+ id = Object#ir_InterfaceDef.id,
+ defined_in =
+ Object#ir_InterfaceDef.defined_in,
+ version = Object#ir_InterfaceDef.version,
+ base_interfaces =
+ Object#ir_InterfaceDef.base_interfaces};
+ _ ->
+ undefined
+ end,
+ #contained_description{kind=Def_kind, value=Value}.
+
+move({ObjType,ObjID},{NewContainerType,NewContainerID},New_name,New_version) ->
+ Move_OK =
+ ('_get_containing_repository'({NewContainerType,NewContainerID}) ==
+ '_get_containing_repository'({ObjType,ObjID}))
+ and
+ case NewContainerType of
+ ir_Repository ->
+ lists:member(ObjType,[ir_ConstantDef,ir_TypedefDef,
+ ir_ExceptionDef,ir_InterfaceDef,
+ ir_ModuleDef]);
+ ir_ModuleDef ->
+ lists:member(ObjType,[ir_ConstantDef,ir_TypedefDef,
+ ir_ExceptionDef,ir_ModuleDef,
+ ir_InterfaceDef]);
+ ir_InterfaceDef ->
+ lists:member(ObjType,[ir_ConstantDef,ir_TypedefDef,
+ ir_ExceptionDef,ir_AttributeDef,
+ ir_OperationDef]);
+ _ ->
+ false
+ end
+ and
+ (orber_ifr_container:lookup_name({NewContainerType,NewContainerID},
+ New_name, -1, % *** -1?
+ dk_All, false) == []),
+ move(Move_OK,{ObjType,ObjID},{NewContainerType,NewContainerID},New_name,
+ New_version).
+
+move(true, Contained_objref, New_container, New_name, New_version) ->
+ F = fun() -> Defined_in = '_get_defined_in'(Contained_objref),
+ [Old_container_obj] = mnesia:read(Defined_in),
+ New_old_container_obj =
+ construct(Old_container_obj,contents,
+ lists:filter(fun(X) -> X /= Contained_objref
+ end, select(Old_container_obj,
+ contents))),
+ New_container_obj = mnesia:read(New_container),
+ Contents = orber_ifr_container:contents(New_container, dk_All,
+ true),
+ New_new_container_obj =
+ construct(construct(construct(New_container_obj, contents,
+ [Contained_objref | Contents]),
+ name,New_name),version,New_version),
+ mnesia:write(New_old_container_obj),
+ mnesia:write(New_new_container_obj)
+ end,
+ write_result(ifr_transaction_read_write(F));
+
+move(false, _Contained_objref, _New_container, _New_name, _New_version) ->
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
diff --git a/lib/orber/src/orber_ifr_container.erl b/lib/orber/src/orber_ifr_container.erl
new file mode 100644
index 0000000000..85ae36bfa2
--- /dev/null
+++ b/lib/orber/src/orber_ifr_container.erl
@@ -0,0 +1,463 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_container.erl
+%% Purpose : Code for Container
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_container).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ lookup/2,
+ contents/3,
+ lookup_name/5,
+ describe_contents/4,
+ make_absolute_name/2, %not in CORBA 2.0
+ make_containing_repository/1, %not in CORBA 2.0
+ add_to_container/5, %not in CORBA 2.0
+ create_module/4,
+ create_constant/6,
+ create_struct/5,
+ create_union/6,
+ create_enum/5,
+ create_alias/5,
+ create_interface/5,
+ create_exception/5
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,select/2,construct/3,makeref/1,unique/0]).
+-import(lists,[map/2,filter/2,flatten/1,sublist/2]).
+
+-include_lib("orber/include/corba.hrl").
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+%%%======================================================================
+%%% Container (IRObject)
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'(ObjRef) ->
+ orber_ifr_irobject:'_get_def_kind'(ObjRef).
+
+%%% Note, that the destroy function is meant to be called within a
+%%% transaction called in the destroy function of an object which
+%%% inherits from Container. A Container should only be destroyed by
+%%% destroying the object that inherits from a Container. An attempt
+%%% to call this function in user code will result in unpredictable
+%%% results.
+
+%%% Don't type check the object reference. We need to be able to handle several
+%%% types of objects that inherit from Container.
+
+destroy(Container_objref) ->
+ ObjList = cleanup_for_destroy(Container_objref),
+ orber_ifr_irobject:destroy([Container_objref | ObjList]).
+
+cleanup_for_destroy(Container_objref) ->
+ Contents = get_field(Container_objref, contents),
+ map(fun destroy_thing/1, Contents) ++ Contents.
+
+%%% Destroy objects which inherit from Contained, i.e. objects that populate
+%%% the contents list of a Container.
+
+destroy_thing({ObjType,ObjID}) when ObjType == ir_ModuleDef ->
+ orber_ifr_moduledef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_ConstantDef ->
+ orber_ifr_constantdef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_TypedefDef ->
+ orber_ifr_typedef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_StructDef ->
+ orber_ifr_structdef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_UnionDef ->
+ orber_ifr_uniondef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_EnumDef ->
+ orber_ifr_enumdef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_AliasDef ->
+ orber_ifr_aliasdef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_ExceptionDef ->
+ orber_ifr_exceptiondef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_AttributeDef ->
+ orber_ifr_attributedef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_OperationDef ->
+ orber_ifr_operationdef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({ObjType,ObjID}) when ObjType == ir_InterfaceDef ->
+ orber_ifr_interfacedef:cleanup_for_destroy({ObjType,ObjID});
+destroy_thing({_ObjType,_ObjID}) ->
+ %% Unknown object in Container contents.
+ true.
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+lookup(ObjRef, Search_name) ->
+ Contents = contents(ObjRef, dk_All, false),
+
+ %% We now have the contents (a list of object references).
+ %% Let's find all objects with the correct name.
+
+ case filter(fun({Type,ID}) ->
+ orber_ifr_contained:'_get_absolute_name'({Type,ID}) ==
+ Search_name
+ end,
+ Contents) of
+ [Obj] ->
+ Obj;
+ X ->
+ X
+ end.
+
+
+contents(ObjRef, Limit_type, Exclude_inherited) ->
+ Contents =
+ flatten(get_field(ObjRef, contents) ++
+ inherited_contents(ObjRef,Exclude_inherited)),
+ AllContents =
+ Contents ++
+ flatten(subcontents(Limit_type,Contents)),
+ limit_contents(Limit_type,AllContents).
+
+
+subcontents(_,[]) -> [];
+subcontents(Limit_type,Contents) ->
+ map(fun(ObjRef) -> contents(ObjRef,Limit_type) end, Contents).
+
+contents({ir_Repository,ObjID},Limit_type) ->
+ orber_ifr_repository:contents({ir_Repository,ObjID},Limit_type,false);
+contents({ir_ModuleDef,ObjID},Limit_type) ->
+ orber_ifr_moduledef:contents({ir_ModuleDef,ObjID},Limit_type,false);
+contents({ir_InterfaceDef,ObjID},Limit_type) ->
+ orber_ifr_interfacedef:contents({ir_InterfaceDef,ObjID},Limit_type,false);
+contents(_,_) -> [].
+
+limit_contents(dk_All,Contents) -> Contents;
+limit_contents(Limit_type,Contents) ->
+ filter(fun(Obj_Ref) -> '_get_def_kind'(Obj_Ref) == Limit_type end,
+ Contents).
+
+
+lookup_name(ObjRef, Search_name, Levels_to_search,
+ Limit_type, Exclude_inherited) ->
+ Contents = get_field(ObjRef, contents),
+ AllContents = Contents ++ inherited_contents(ObjRef, Exclude_inherited),
+ lookup_name(AllContents, Search_name, Levels_to_search, Limit_type).
+
+inherited_contents({ir_InterfaceDef,ObjID}, false) ->
+ map(fun(ObjRef) -> get_field(ObjRef,contents) end,
+ orber_ifr_interfacedef:'_get_base_interfaces'({ir_InterfaceDef,ObjID}));
+inherited_contents(_, false) -> [];
+inherited_contents(_, true) -> [].
+
+lookup_name(Contents, Search_name, Level, Limit_type) ->
+ filter(fun(X) ->
+ (orber_ifr_contained:'_get_id'(X) == Search_name)
+ and
+ ('_get_def_kind'(X) == Limit_type)
+ end, Contents) ++
+ sublookup_name(Contents, Search_name, Level - 1, Limit_type).
+
+sublookup_name([],_,_,_) -> [];
+sublookup_name(_,_,0,_) -> [];
+sublookup_name(Contents, Search_name, Level, Limit_type) ->
+ map(fun(X) ->
+ Conts = subcontents(X),
+ lookup_name(Conts, Search_name, Level - 1, Limit_type)
+ end, Contents).
+
+subcontents({ir_Repository,ObjID}) ->
+ get_field({ir_Repository,ObjID}, contents);
+subcontents({ir_ModuleDefObjType,ObjID}) ->
+ get_field({ir_ModuleDef,ObjID}, contents);
+subcontents({ir_InterfaceDef,ObjID}) ->
+ get_field({ir_InterfaceDef,ObjID}, contents);
+subcontents(_) -> [].
+
+describe_contents(ObjRef, Limit_type, Exclude_inherited,
+ Max_returned_objs) ->
+ Limited_contents = contents(ObjRef,Limit_type,Exclude_inherited),
+ describe_contents(Limited_contents, Max_returned_objs, []).
+
+describe_contents(_, 0, Acc) ->
+ Acc;
+describe_contents([], _Max_returned_objs, Acc) ->
+ Acc;
+describe_contents([H|T], Max_returned_objs, Acc) ->
+ Desc = orber_ifr_contained:describe(H),
+ describe_contents(T, Max_returned_objs-1, [Desc|Acc]).
+
+
+%% This is a kludge. Se p. 6-11 in CORBA 2.0.
+make_absolute_name({ObjType,ObjID}, Name) ->
+ case ObjType of
+ ir_Repository ->
+ "::" ++ Name;
+ _ ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}) ++
+ "::" ++ Name
+ end.
+
+%% This is a kludge. Se p. 6-15 in CORBA 2.0.
+make_containing_repository({ObjType,ObjID}) ->
+ case ObjType of
+ ir_Repository ->
+ {ir_Repository,ObjID};
+ _ ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType, ObjID})
+ end.
+
+add_to_container(ContainerRef,Object, Id, Table, Index) ->
+ F = fun() ->
+ [Container_obj] = mnesia:wread(ContainerRef),
+ case mnesia:index_read(Table, Id, Index) of
+ [] ->
+ ObjectRef = makeref(Object),
+ New_container_obj =
+ construct(Container_obj,contents,
+ [ObjectRef | select(Container_obj,contents)]),
+ mnesia:write(New_container_obj),
+ mnesia:write(Object);
+ _ ->
+ mnesia:abort("duplicate")
+ end
+ end,
+ case mnesia:transaction(F) of
+ {aborted, "duplicate"} ->
+ %% Must keep the misspelled word (must match IC generated code).
+ exit({allready_registered, Id});
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_ifr_container:add_to_container(~p). aborted:~n~p~n",
+ [?LINE, Id, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ {atomic, _} ->
+ ok
+ end.
+
+add_to_light(#orber_light_ifr_ref{data = Data} = LRef, Id, Type, Name) ->
+ BaseId = get_base_id(Data#lightdata.id, Id),
+ NewScope = scoped_name(Data#lightdata.scope, Name, Type),
+ F = fun() ->
+ D = #orber_light_ifr{id = Id,
+ module = list_to_atom(NewScope),
+ type = Type, base_id = BaseId},
+ mnesia:write(D)
+ end,
+ case mnesia:transaction(F) of
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_ifr_container:add_to_light(~p). aborted:~n~p~n",
+ [?LINE, Id, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ {atomic, _} ->
+ LRef#orber_light_ifr_ref{data = Data#lightdata{scope = NewScope,
+ id = BaseId}}
+ end.
+
+get_base_id("", Id) ->
+ Id;
+get_base_id(Id, _) ->
+ Id.
+
+scoped_name("", Name, _) ->
+ Name;
+scoped_name(Scope, _, ?IFR_ConstantDef) ->
+ Scope;
+scoped_name(Scope, Name, _) ->
+ Scope ++ "_" ++ Name.
+
+create_module(#orber_light_ifr_ref{} = LRef, Id, Name, _Version) ->
+ add_to_light(LRef, Id, ?IFR_ModuleDef, Name);
+create_module(ObjRef, Id, Name, Version) ->
+ New_module = #ir_ModuleDef{ir_Internal_ID = unique(),
+ def_kind = dk_Module,
+ contents = [],
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef, Name),
+ containing_repository =
+ make_containing_repository(ObjRef)},
+ add_to_container(ObjRef,New_module, Id, ir_ModuleDef, #ir_ModuleDef.id),
+ makeref(New_module).
+
+create_constant(#orber_light_ifr_ref{} = LRef, Id, Name, _Version, _Type, _Value) ->
+ add_to_light(LRef, Id, ?IFR_ConstantDef, Name);
+create_constant(ObjRef, Id, Name, Version, Type, Value) ->
+ IDL_typecode = get_field(Type,type),
+ {Typecode, _} = Value,
+ case IDL_typecode == Typecode of
+ false ->
+ orber:dbg("[~p] ~p:create_constant(~p, ~p, ~p, ~p, ~p, ~p);~n"
+ "Wrong type.~n",
+ [?LINE, ?MODULE, ObjRef, Id, Name, Version, Type, Value],
+ ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ true ->
+ New_constant = #ir_ConstantDef{ir_Internal_ID = unique(),
+ def_kind = dk_Constant,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef, Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = get_field(Type,type),
+ type_def = Type,
+ value = Value},
+ add_to_container(ObjRef,New_constant,
+ Id, ir_ConstantDef, #ir_ConstantDef.id),
+ makeref(New_constant)
+ end.
+
+create_struct(#orber_light_ifr_ref{} = LRef, Id, Name, _Version, _Members) ->
+ add_to_light(LRef, Id, ?IFR_StructDef, Name);
+create_struct(ObjRef, Id, Name, Version, Members) ->
+ New_struct = #ir_StructDef{ir_Internal_ID = unique(),
+ def_kind = dk_Struct,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef, Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = {tk_struct, Id, Name,
+ map(fun(#structmember{name=MemName,
+ type=Type}) ->
+ {MemName,Type} end,
+ Members)},
+ members = Members},
+ add_to_container(ObjRef, New_struct, Id, ir_StructDef, #ir_StructDef.id),
+ makeref(New_struct).
+
+create_union(#orber_light_ifr_ref{} = LRef, Id, Name, _Version,
+ _Discriminator_type, _Members) ->
+ add_to_light(LRef, Id, ?IFR_UnionDef, Name);
+create_union(ObjRef, Id, Name, Version,
+ Discriminator_type, Members) ->
+ Discriminator_type_code = get_field(Discriminator_type, type),
+ New_union = #ir_UnionDef{ir_Internal_ID = unique(),
+ def_kind = dk_Union,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef, Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = {tk_union, Id, Name,
+ Discriminator_type_code, -1,
+ map(fun(#unionmember{name=MemName,
+ label=Label,
+ type=Type}) ->
+ {Label,MemName,Type} end,
+ Members)},
+ discriminator_type = Discriminator_type_code,
+ discriminator_type_def = Discriminator_type,
+ members = Members},
+ add_to_container(ObjRef, New_union, Id, ir_UnionDef, #ir_UnionDef.id),
+ makeref(New_union).
+
+create_enum(#orber_light_ifr_ref{} = LRef, Id, Name, _Version, _Members) ->
+ add_to_light(LRef, Id, ?IFR_EnumDef, Name);
+create_enum(ObjRef, Id, Name, Version, Members) ->
+ New_enum = #ir_EnumDef{ir_Internal_ID = unique(),
+ def_kind = dk_Enum,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef, Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = {tk_enum, Id, Name, Members},
+ members = Members},
+ add_to_container(ObjRef, New_enum, Id, ir_EnumDef, #ir_EnumDef.id),
+ makeref(New_enum).
+
+create_alias(#orber_light_ifr_ref{} = LRef, Id, Name, _Version, _Original_type) ->
+ add_to_light(LRef, Id, ?IFR_AliasDef, Name);
+create_alias(ObjRef, Id, Name, Version, Original_type) ->
+ New_alias = #ir_AliasDef{ir_Internal_ID = unique(),
+ def_kind = dk_Alias,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef, Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = {tk_alias, Id, Name,
+ get_field(Original_type,type)},
+ original_type_def = Original_type},
+ add_to_container(ObjRef, New_alias, Id, ir_AliasDef, #ir_AliasDef.id),
+ makeref(New_alias).
+
+create_interface(#orber_light_ifr_ref{} = LRef, Id, Name, _Version, _Base_interfaces) ->
+ add_to_light(LRef, Id, ?IFR_InterfaceDef, Name);
+create_interface(ObjRef, Id, Name, Version, Base_interfaces) ->
+ New_interface = #ir_InterfaceDef{ir_Internal_ID = unique(),
+ def_kind = dk_Interface,
+ contents = [],
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef,Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = {tk_objref, Id, Name},
+ base_interfaces = Base_interfaces},
+ add_to_container(ObjRef, New_interface, Id, ir_InterfaceDef, #ir_InterfaceDef.id),
+ makeref(New_interface).
+
+create_exception(#orber_light_ifr_ref{} = LRef, Id, Name, _Version, _Members) ->
+ add_to_light(LRef, Id, ?IFR_ExceptionDef, Name);
+create_exception(ObjRef, Id, Name, Version, Members) ->
+ New_exception = #ir_ExceptionDef{ir_Internal_ID = unique(),
+ def_kind = dk_Exception,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = ObjRef,
+ absolute_name =
+ make_absolute_name(ObjRef,Name),
+ containing_repository =
+ make_containing_repository(ObjRef),
+ type = {tk_except, Id, Name,
+ map(fun(#structmember{name=MemName,
+ type=Type})
+ ->
+ {MemName,Type} end,
+ Members)},
+ members = Members},
+ add_to_container(ObjRef, New_exception, Id, ir_ExceptionDef, #ir_ExceptionDef.id),
+ makeref(New_exception).
diff --git a/lib/orber/src/orber_ifr_enumdef.erl b/lib/orber/src/orber_ifr_enumdef.erl
new file mode 100644
index 0000000000..035dcdd644
--- /dev/null
+++ b/lib/orber/src/orber_ifr_enumdef.erl
@@ -0,0 +1,129 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_enumdef.erl
+%% Purpose : Code for Enumdef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_enumdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_members'/1,
+ '_set_members'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%======================================================================
+%%% EnumDef (TypedefDef(Contained(IRObject), IDLType(IRObject)))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType, ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_typedef:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,New_version).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_members'({ObjType, ObjID}) ?tcheck(ir_EnumDef, ObjType) ->
+ get_field({ObjType,ObjID},members).
+
+'_set_members'({ObjType, ObjID}, EO_Value) ?tcheck(ir_EnumDef, ObjType) ->
+ EnumDef = get_object({ObjType, ObjID}),
+ New_EnumDef = EnumDef#ir_EnumDef{type = {tk_enum,
+ EnumDef#ir_EnumDef.id,
+ EnumDef#ir_EnumDef.name,
+ EO_Value},
+ members = EO_Value},
+ set_object(New_EnumDef).
diff --git a/lib/orber/src/orber_ifr_exceptiondef.erl b/lib/orber/src/orber_ifr_exceptiondef.erl
new file mode 100644
index 0000000000..7665d3d1bc
--- /dev/null
+++ b/lib/orber/src/orber_ifr_exceptiondef.erl
@@ -0,0 +1,164 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_exceptiondef.erl
+%% Purpose : Code for Exceptiondef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_exceptiondef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ %%lookup_id/1, %not in CORBA 2.0
+ move/4,
+ '_get_type'/1,
+ '_get_members'/1,
+ '_set_members'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ get_object/1,
+ set_object/1
+ ]).
+-import(lists,[map/2]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+%%%======================================================================
+%%% ExceptionDef (Contained(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ lists:map(fun(X) -> orber_ifr_idltype:cleanup_for_destroy(
+ X#structmember.type_def)
+ end,
+ '_get_members'({ObjType, ObjID})) ++
+ orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID})
+ ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+%%% *** This function should be removed. Use
+%%% orber_ifr_repository:lookup_id/2 instead.
+
+%%lookup_id(SearchId) ->
+%% _F = fun() ->
+%% Q = query [X.ir_Internal_ID || X <- table(ir_ExceptionDef)]
+%% end,
+%% mnemosyne:eval(Q)
+%% end,
+%% case orber_ifr_utils:ifr_transaction_read(_F) of
+%% ?read_check_2() ->
+%% {ok, []};
+%% ?read_check_1(Rep_IDs) ->
+%% ExceptionDefs = lists:map(fun(X) -> {ir_ExceptionDef, X} end,
+%% Rep_IDs),
+%% {ok, lists:filter(fun(X) -> orber_ifr_exceptiondef:'_get_id'(X) ==
+%% SearchId end,
+%% ExceptionDefs)}
+%% end.
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_ExceptionDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ get_field({ObjType,ObjID},type).
+
+'_get_members'({ObjType, ObjID}) ?tcheck(ir_ExceptionDef, ObjType) ->
+ get_field({ObjType,ObjID},members).
+
+'_set_members'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ExceptionDef, ObjType) ->
+ ExceptionDef = get_object({ObjType, ObjID}),
+ Members=map(fun(Exceptionmember) ->
+ Exceptionmember#structmember{type=tk_void}
+ end, EO_Value),
+ New_ExceptionDef =
+ ExceptionDef#ir_ExceptionDef{type =
+ {tk_except,
+ ExceptionDef#ir_ExceptionDef.id,
+ ExceptionDef#ir_ExceptionDef.name,
+ map(fun(#structmember{name=Name,
+ type=Type}) ->
+ {Name,Type}
+ end,
+ EO_Value)},
+ members=Members},
+ set_object(New_ExceptionDef).
diff --git a/lib/orber/src/orber_ifr_fixeddef.erl b/lib/orber/src/orber_ifr_fixeddef.erl
new file mode 100644
index 0000000000..815eb77ea3
--- /dev/null
+++ b/lib/orber/src/orber_ifr_fixeddef.erl
@@ -0,0 +1,79 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_fixeddef.erl
+%% Description :
+%%
+%%----------------------------------------------------------------------
+-module(orber_ifr_fixeddef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_digits'/1,
+ '_set_digits'/2,
+ '_get_scale'/1,
+ '_set_scale'/2]).
+
+-import(orber_ifr_utils, [get_field/2,
+ set_field/3]).
+
+-include("orber_ifr.hrl").
+
+%%%======================================================================
+%%% FixedDef (IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ?tcheck(ir_FixedDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_FixedDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_FixedDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_FixedDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_digits'({ObjType, ObjID}) ?tcheck(ir_FixedDef, ObjType) ->
+ get_field({ObjType,ObjID},digits).
+'_get_scale'({ObjType, ObjID}) ?tcheck(ir_FixedDef, ObjType) ->
+ get_field({ObjType,ObjID},scale).
+
+'_set_digits'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_FixedDef, ObjType) ->
+ set_field({ObjType, ObjID}, digits, EO_Value).
+'_set_scale'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_FixedDef, ObjType) ->
+ set_field({ObjType, ObjID}, scale, EO_Value).
diff --git a/lib/orber/src/orber_ifr_idltype.erl b/lib/orber/src/orber_ifr_idltype.erl
new file mode 100644
index 0000000000..6bebaab150
--- /dev/null
+++ b/lib/orber/src/orber_ifr_idltype.erl
@@ -0,0 +1,74 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_idltype.erl
+%% Purpose : Code for Idltype
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_idltype).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_type_def'/1
+ ]).
+
+-import(orber_ifr_utils,[get_field/2]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%======================================================================
+%%% IDLType (IRObject)
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_IDLType, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType, ObjID}).
+
+%%% Don't type check the object reference. We need to be able to
+%%% handle several types of objects that inherit from IDLType.
+
+destroy(IDLType_objref) ->
+ F = fun() -> ObjList = cleanup_for_destroy(IDLType_objref),
+ orber_ifr_irobject:destroy(ObjList)
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy(IDLType_objref) ->
+ [IDLType_objref].
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+%% What is this ? You cannot check this for ir_IDLType here !
+%% ( an object type cannot be both .... )
+%%'_get_type'({ObjType,ObjID}) ?tcheck(ir_IDLType, ObjType) ->
+%% get_field({ObjType,ObjID},type).
+
+
+'_get_type'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},type).
+
+'_get_type_def'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},type_def).
diff --git a/lib/orber/src/orber_ifr_interfacedef.erl b/lib/orber/src/orber_ifr_interfacedef.erl
new file mode 100644
index 0000000000..d8dc4f7802
--- /dev/null
+++ b/lib/orber/src/orber_ifr_interfacedef.erl
@@ -0,0 +1,339 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_interfacedef.erl
+%% Purpose : Code for Interfacedef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_interfacedef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ lookup/2,
+ contents/3,
+ lookup_name/5,
+ describe_contents/4,
+ create_module/4,
+ create_constant/6,
+ create_struct/5,
+ create_union/6,
+ create_enum/5,
+ create_alias/5,
+ create_interface/5,
+ create_exception/5,
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_base_interfaces'/1,
+ '_set_base_interfaces'/2,
+ is_a/2,
+ describe_interface/1,
+ create_attribute/6,
+ create_operation/9
+ ]).
+
+-import(orber_ifr_utils,[get_object/1,
+ get_field/2,
+ set_field/3,
+ select/2,
+ makeref/1,
+ unique/0
+ ]).
+-import(orber_ifr_container,[make_absolute_name/2,
+ make_containing_repository/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+
+%%%======================================================================
+%%% InterfaceDef (Container(IRObject), Contained(IRObject), IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType,ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}) ++
+ orber_ifr_container:cleanup_for_destroy({ObjType,ObjID}) ++
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+
+%% BUG ! You can't remove inherited !!!!!
+%%cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+%% lists:map(fun(X) -> cleanup_for_destroy(X) end,
+%% '_get_base_interfaces'({ObjType,ObjID})) ++ <<<<<<<<<< Here
+%% orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}) ++
+%% orber_ifr_container:cleanup_for_destroy({ObjType,ObjID}) ++
+%% orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Container
+
+lookup({ObjType, ObjID}, Search_name) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:lookup({ObjType,ObjID}, Search_name).
+
+contents({ObjType, ObjID}, Limit_type, Exclude_inherited)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:contents({ObjType,ObjID},Limit_type,Exclude_inherited).
+
+lookup_name({ObjType, ObjID}, Search_name, Levels_to_search, Limit_type,
+ Exclude_inherited) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:lookup_name({ObjType,ObjID}, Search_name,
+ Levels_to_search, Limit_type,
+ Exclude_inherited).
+
+describe_contents({ObjType, ObjID}, Limit_type, Exclude_inherited,
+ Max_returned_objs) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:describe_contents({ObjType,ObjID}, Limit_type,
+ Exclude_inherited,
+ Max_returned_objs).
+
+create_module({ObjType, ObjID}, Id, Name, Version)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_module({ObjType, ObjID}, Id, Name, Version).
+
+create_constant({ObjType, ObjID}, Id, Name, Version, Type, Value)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_constant({ObjType, ObjID}, Id, Name, Version,
+ Type, Value).
+
+create_struct({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_struct({ObjType,ObjID},Id,Name,Version,Members).
+
+create_union({ObjType, ObjID}, Id, Name, Version, Discriminator_type, Members)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_union({ObjType, ObjID}, Id, Name, Version,
+ Discriminator_type, Members).
+
+create_enum({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_enum({ObjType, ObjID},Id,Name,Version,Members).
+
+create_alias({ObjType, ObjID}, Id, Name, Version, Original_type)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_alias({ObjType, ObjID}, Id, Name, Version,
+ Original_type).
+
+create_interface({ObjType, ObjID}, Id, Name, Version, Base_interfaces)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_interface({ObjType, ObjID}, Id, Name, Version,
+ Base_interfaces).
+
+create_exception({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_container:create_exception({ObjType, ObjID}, Id, Name, Version,
+ Members).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID})
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_base_interfaces'({ObjType,ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+ get_field({ObjType,ObjID},base_interfaces).
+
+'_set_base_interfaces'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ set_field({ObjType,ObjID}, base_interfaces, EO_Value).
+
+
+
+is_a({ObjType, ObjID}, Interface_id) ?tcheck(ir_InterfaceDef, ObjType) ->
+ Base_interfaces = '_get_base_interfaces'({ObjType, ObjID}),
+ lists:any(fun(X) ->
+ case catch orber_ifr_contained:'_get_id'(X) of
+ Interface_id ->
+ 'true';
+ _ ->
+ 'false'
+ end
+ end,
+ Base_interfaces).
+
+describe_interface({ObjType, ObjID}) ?tcheck(ir_InterfaceDef, ObjType) ->
+
+%%% *** Should we exclude the inherited operations here? Probably not,
+%%% but I'm not sure at all.
+
+%%% OpContents = orber_ifr_container:contents({ObjType,ObjID}, dk_Operation,
+%%% true),
+
+ %% If it is OK to set Exclude_inherited to true (as in the above
+ %% code which is commented out), the following code is faster than
+ %% calling the contents/3 above. Otherwise we have to rethink
+ %% this.
+
+ Object = get_object({ObjType, ObjID}),
+
+%%% Contents = select(Object, contents),
+ %% This is faster:
+ Contents = Object#ir_InterfaceDef.contents,
+
+ ContentsObjects = lists:map(fun(ObjRef) ->
+ get_object(ObjRef)
+ end,
+ Contents),
+ OpContents = lists:filter(fun(Obj) ->
+ select(Obj,def_kind) == dk_Operation
+ end,
+ ContentsObjects),
+
+ Ops = lists:map(fun(Obj) ->
+ orber_ifr_contained:describe(Obj,dk_Operation)
+ end, OpContents),
+
+%%% *** See the comment above on the Exclude_inherited parameter, and
+%%% the circumstances when not to use contents/3.
+
+%%% AttrContents = orber_ifr_container:contents({ObjType,ObjID}, dk_Attribute,
+%%% true),
+
+ AttrContents = lists:filter(fun(Obj) ->
+ select(Obj,def_kind) == dk_Attribute
+ end,
+ ContentsObjects),
+ Attrs = lists:map(fun(Obj) ->
+ orber_ifr_contained:describe(Obj,dk_Attribute)
+ end, AttrContents),
+
+ #fullinterfacedescription{name = Object#ir_InterfaceDef.name,
+ id = Object#ir_InterfaceDef.id,
+ defined_in = Object#ir_InterfaceDef.defined_in,
+ version = Object#ir_InterfaceDef.version,
+ operations = Ops,
+ attributes = Attrs,
+ base_interfaces =
+ Object#ir_InterfaceDef.base_interfaces,
+ type = Object#ir_InterfaceDef.type
+ }.
+
+create_attribute(#orber_light_ifr_ref{} = LRef, _Id, _Name, _Version, _Type, _Mode) ->
+ LRef;
+create_attribute({ObjType, ObjID}, Id, Name, Version, Type, Mode)
+ ?tcheck(ir_InterfaceDef, ObjType) ->
+ New_attribute = #ir_AttributeDef{ir_Internal_ID = unique(),
+ def_kind = dk_Attribute,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = {ObjType, ObjID},
+ absolute_name =
+ make_absolute_name({ObjType,ObjID}, Name),
+ containing_repository =
+ make_containing_repository({ObjType,ObjID}),
+ type = get_field(Type,type),
+ type_def = Type,
+ mode = Mode},
+ orber_ifr_container:add_to_container({ObjType,ObjID}, New_attribute,
+ Id, ir_AttributeDef,
+ #ir_AttributeDef.id),
+ makeref(New_attribute).
+
+create_operation(#orber_light_ifr_ref{} = LRef, _Id, _Name, _Version, _Result,
+ _Mode, _Params, _Exceptions, _Contexts) ->
+ LRef;
+create_operation({ObjType, ObjID}, Id, Name, Version, Result, Mode, Params,
+ Exceptions, Contexts) ?tcheck(ir_InterfaceDef, ObjType) ->
+ New_operation = #ir_OperationDef{ir_Internal_ID = unique(),
+ def_kind = dk_Operation,
+ id = Id,
+ name = Name,
+ version = Version,
+ defined_in = {ObjType, ObjID},
+ absolute_name =
+ make_absolute_name({ObjType,ObjID}, Name),
+ containing_repository =
+ make_containing_repository({ObjType,ObjID}),
+ result = get_field(Result,type),
+ result_def = Result,
+ mode = Mode,
+ params = Params,
+ exceptions = Exceptions,
+ contexts = Contexts},
+ orber_ifr_container:add_to_container({ObjType,ObjID}, New_operation,
+ Id, ir_OperationDef,
+ #ir_OperationDef.id),
+ makeref(New_operation).
diff --git a/lib/orber/src/orber_ifr_irobject.erl b/lib/orber/src/orber_ifr_irobject.erl
new file mode 100644
index 0000000000..56eab57e36
--- /dev/null
+++ b/lib/orber/src/orber_ifr_irobject.erl
@@ -0,0 +1,72 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_irobject.erl
+%% Purpose : Code for IRObject
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_irobject).
+
+-export(['_get_def_kind'/1,
+ destroy/1
+ ]).
+
+-import(orber_ifr_utils,[get_field/2]).
+
+-include("orber_ifr.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%%======================================================================
+%%% IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ->
+ get_field({ObjType,ObjID},def_kind).
+
+%%% Note, that the destroy function is meant to be called within a
+%%% transaction called in the destroy function of an object which
+%%% inherits from IRObject. An IRObject should only be destroyed by
+%%% destroying the object that inherits from an IRObject. An attempt
+%%% to call this function in user code will result in unpredictable
+%%% results.
+
+%%% Don't type check the object reference. We need to be able to
+%%% handle several types of objects that inherit from IRObject.
+
+destroy(L) when is_list(L) ->
+ destroy2(lists:reverse(L)).
+
+destroy2([Things_HD | Things_TL]) ->
+ destroy2(Things_HD),
+ destroy2(Things_TL);
+
+destroy2([]) ->
+ ok;
+destroy2(F) when is_function(F) ->
+ F();
+destroy2(Thing) when is_tuple(Thing) ->
+ mnesia:delete(Thing),
+ ok;
+destroy2(Thing) ->
+ orber:dbg("[~p] ~p:destroy2(~p);~n"
+ "Strange argument for destroy.~n",
+ [?LINE, ?MODULE, Thing], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
diff --git a/lib/orber/src/orber_ifr_moduledef.erl b/lib/orber/src/orber_ifr_moduledef.erl
new file mode 100644
index 0000000000..51229661ed
--- /dev/null
+++ b/lib/orber/src/orber_ifr_moduledef.erl
@@ -0,0 +1,183 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_moduledef.erl
+%% Purpose : Code for Moduledef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_moduledef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ lookup/2,
+ contents/3,
+ lookup_name/5,
+ describe_contents/4,
+ create_module/4,
+ create_constant/6,
+ create_struct/5,
+ create_union/6,
+ create_enum/5,
+ create_alias/5,
+ create_interface/5,
+ create_exception/5,
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4
+ ]).
+
+-include("orber_ifr.hrl").
+
+%%%======================================================================
+%%% ModuleDef (Container(IRObject), Contained(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType, ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ F = fun() -> '_clean'({ObjType, ObjID}) end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+'_clean'(ObjRef) ->
+ ObjList = cleanup_for_destroy(ObjRef),
+ orber_ifr_irobject:destroy([ObjRef | ObjList]).
+
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:cleanup_for_destroy({ObjType,ObjID}) ++
+ orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}).
+
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Container
+
+lookup({ObjType, ObjID}, Search_name) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:lookup({ObjType, ObjID}, Search_name).
+
+contents({ObjType, ObjID}, Limit_type, Exclude_inherited)
+ ?tcheck(ir_ModuleDef, ObjType)->
+ orber_ifr_container:contents({ObjType, ObjID},Limit_type,
+ Exclude_inherited).
+
+lookup_name({ObjType, ObjID}, Search_name, Levels_to_search, Limit_type,
+ Exclude_inherited)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:lookup_name({ObjType,ObjID}, Search_name,
+ Levels_to_search, Limit_type,
+ Exclude_inherited).
+
+describe_contents({ObjType, ObjID}, Limit_type, Exclude_inherited,
+ Max_returned_objs)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:describe_contents({ObjType, ObjID}, Limit_type,
+ Exclude_inherited,Max_returned_objs).
+
+create_module({ObjType, ObjID}, Id, Name, Version)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_module({ObjType, ObjID}, Id, Name, Version).
+
+create_constant({ObjType, ObjID}, Id, Name, Version, Type, Value)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_constant({ObjType, ObjID}, Id, Name, Version,
+ Type, Value).
+
+create_struct({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_struct({ObjType,ObjID},Id,Name,Version,Members).
+
+create_union({ObjType, ObjID}, Id, Name, Version, Discriminator_type, Members)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_union({ObjType, ObjID}, Id, Name, Version,
+ Discriminator_type, Members).
+
+create_enum({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_enum({ObjType, ObjID},Id,Name,Version,Members).
+
+create_alias({ObjType, ObjID}, Id, Name, Version, Original_type)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_alias({ObjType, ObjID}, Id, Name, Version,
+ Original_type).
+
+create_interface({ObjType, ObjID}, Id, Name, Version, Base_interfaces)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_interface({ObjType, ObjID}, Id, Name, Version,
+ Base_interfaces).
+
+create_exception({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_container:create_exception({ObjType, ObjID}, Id, Name, Version,
+ Members).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType,ObjID},EO_Value) ?tcheck(ir_ModuleDef,ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID}) ?tcheck(ir_ModuleDef,ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_ModuleDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+%%% none %%
diff --git a/lib/orber/src/orber_ifr_operationdef.erl b/lib/orber/src/orber_ifr_operationdef.erl
new file mode 100644
index 0000000000..1d957e17d9
--- /dev/null
+++ b/lib/orber/src/orber_ifr_operationdef.erl
@@ -0,0 +1,191 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_operationdef.erl
+%% Purpose : Code for Operationdef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_operationdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_result'/1,
+ '_get_result_def'/1,
+ '_set_result_def'/2,
+ '_get_params'/1,
+ '_set_params'/2,
+ '_get_mode'/1,
+ '_set_mode'/2,
+ '_get_contexts'/1,
+ '_set_contexts'/2,
+ '_get_exceptions'/1,
+ '_set_exceptions'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ set_field/3,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%%======================================================================
+%%% OperationDef (Contained(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ lists:map(fun(X) -> Idl = X#parameterdescription.type_def,
+ orber_ifr_idltype:cleanup_for_destroy(Idl)
+ end,
+ '_get_params'({ObjType,ObjID})) ++
+ orber_ifr_idltype:cleanup_for_destroy('_get_result_def'({ObjType,
+ ObjID})) ++
+ orber_ifr_contained:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_OperationDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,New_version).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_result'({ObjType, ObjID})
+ ?tcheck(ir_OperationDef, ObjType) ->
+ get_field({ObjType,ObjID},result).
+
+'_get_result_def'({ObjType, ObjID})
+ ?tcheck(ir_OperationDef, ObjType) ->
+ get_field({ObjType,ObjID},result_def).
+
+'_set_result_def'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_OperationDef, ObjType) ->
+ OperationDef = get_object({ObjType, ObjID}),
+ New_OperationDef =
+ OperationDef#ir_OperationDef{result = EO_Value#ir_IDLType.type,
+ result_def = EO_Value},
+ set_object(New_OperationDef).
+
+'_get_params'({ObjType,ObjID}) ?tcheck(ir_OperationDef,ObjType) ->
+ get_field({ObjType,ObjID},params).
+
+'_set_params'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_OperationDef, ObjType) ->
+ set_field({ObjType,ObjID}, params, EO_Value).
+
+'_get_mode'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ get_field({ObjType,ObjID},mode).
+
+'_set_mode'({ObjType, ObjID}, EO_Value) ?tcheck(ir_OperationDef, ObjType) ->
+ OperationDef = get_object({ObjType, ObjID}),
+ Set_OK = case EO_Value of
+ 'OP_ONEWAY' ->
+ (OperationDef#ir_OperationDef.result == tk_void)
+ and
+ lists:foldl(fun(#parameterdescription{mode=Mode},AccIn) ->
+ (Mode == 'PARAM_IN') and AccIn
+ end,
+ true,OperationDef#ir_OperationDef.params);
+ _ ->
+ true
+ end,
+ set_mode(Set_OK,{ObjType,ObjID},EO_Value).
+
+set_mode(true,Objref,EO_Value) ->
+ set_field(Objref,mode,EO_Value);
+set_mode(false, Objref, EO_Value) ->
+ orber:dbg("[~p] ~p:destroy(~p, ~p);~n"
+ "Illegal '_set_mode'.~n",
+ [?LINE, ?MODULE, Objref, EO_Value], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+'_get_contexts'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ get_field({ObjType,ObjID},contexts).
+
+'_set_contexts'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_OperationDef, ObjType) ->
+ set_field({ObjType,ObjID}, contexts, EO_Value).
+
+'_get_exceptions'({ObjType, ObjID}) ?tcheck(ir_OperationDef, ObjType) ->
+ get_field({ObjType,ObjID},exceptions).
+
+'_set_exceptions'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_OperationDef, ObjType) ->
+ set_field({ObjType,ObjID}, exceptions, EO_Value).
diff --git a/lib/orber/src/orber_ifr_orb.erl b/lib/orber/src/orber_ifr_orb.erl
new file mode 100644
index 0000000000..f536ae887a
--- /dev/null
+++ b/lib/orber/src/orber_ifr_orb.erl
@@ -0,0 +1,98 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_orb.erl
+%% Purpose : Code for Orb
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_orb).
+
+-export([create_struct_tc/3,
+ create_union_tc/4,
+ create_enum_tc/3,
+ create_alias_tc/3,
+ create_exception_tc/3,
+ create_interface_tc/2,
+ create_string_tc/1,
+ create_wstring_tc/1,
+ create_sequence_tc/2,
+ create_recursive_sequence_tc/2,
+ create_array_tc/2
+ ]).
+
+
+-include("orber_ifr.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%%======================================================================
+%%% ORB
+
+%%%----------------------------------------------------------------------
+%%% Inherited interfaces
+
+%% none %%
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+create_struct_tc(Id, Name, Members) ->
+ {tk_struct,Id,Name,lists:map(fun(#structmember{name=MemName,type=Type}) ->
+ {MemName,Type} end,
+ Members)}.
+
+create_union_tc(Id, Name, Discriminator_type, Members) ->
+ {tk_union, Id, Name, Discriminator_type, -1, % *** is -1 correct???
+ lists:map(fun(#unionmember{name=MemName, label=Label, type=Type}) ->
+ {Label,MemName,Type} end,
+ Members)}.
+
+create_enum_tc(Id, Name, Members) ->
+ {tk_enum, Id, Name, Members}.
+
+create_alias_tc(Id, Name, Original_type) ->
+ {tk_alias, Id, Name, orber_ifr_utils:get_field(Original_type,type)}.
+
+create_exception_tc(Id, Name, Members) ->
+ {tk_except,Id,Name,lists:map(fun(#structmember{name=MemName,type=Type}) ->
+ {MemName,Type} end,
+ Members)}.
+
+create_interface_tc(Id, Name) ->
+ {tk_objref, Id, Name}.
+
+create_string_tc(Bound) ->
+ {tk_string, Bound}.
+
+create_wstring_tc(Bound) ->
+ {tk_wstring, Bound}.
+
+create_sequence_tc(Bound, Element_type) ->
+ {tk_sequence,Element_type,Bound}.
+
+create_recursive_sequence_tc(Bound, Offset) ->
+ orber:dbg("[~p] ~p:create_recursive_sequence_tc(~p, ~p);~n"
+ "Create_recursive_sequence is not implemented.~n",
+ [?LINE, ?MODULE, Bound, Offset], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+create_array_tc(Length, Element_type) ->
+ {tk_array, Element_type, Length}.
diff --git a/lib/orber/src/orber_ifr_primitivedef.erl b/lib/orber/src/orber_ifr_primitivedef.erl
new file mode 100644
index 0000000000..a73fd09fd1
--- /dev/null
+++ b/lib/orber/src/orber_ifr_primitivedef.erl
@@ -0,0 +1,69 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_primitivedef.erl
+%% Purpose : Code for Primitivedef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_primitivedef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_kind'/1
+ ]).
+
+-import(orber_ifr_utils,[get_field/2
+ ]).
+
+-include("orber_ifr.hrl").
+
+%%%======================================================================
+%%% PrimitiveDef (IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_PrimitiveDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_PrimitiveDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_PrimitiveDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_PrimitiveDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_kind'({ObjType, ObjID}) ?tcheck(ir_PrimitiveDef, ObjType) ->
+ get_field({ObjType,ObjID},kind).
+
diff --git a/lib/orber/src/orber_ifr_repository.erl b/lib/orber/src/orber_ifr_repository.erl
new file mode 100644
index 0000000000..dde4d62562
--- /dev/null
+++ b/lib/orber/src/orber_ifr_repository.erl
@@ -0,0 +1,286 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_repository.erl
+%% Purpose : Code for Repository
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_repository).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ lookup/2,
+ contents/3,
+ lookup_name/5,
+ describe_contents/4,
+ create_module/4,
+ create_constant/6,
+ create_struct/5,
+ create_union/6,
+ create_enum/5,
+ create_alias/5,
+ create_interface/5,
+ create_exception/5,
+ lookup_id/2,
+ get_primitive/2,
+ create_string/2,
+ create_wstring/2,
+ create_fixed/3,
+ create_sequence/3,
+ create_array/3,
+ create_idltype/2, %not in CORBA 2.0
+ create_primitivedef/1, %not in CORBA 2.0
+ create_primitivedef/2 %not in CORBA 2.0
+ ]).
+
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%%======================================================================
+%%% Repository (Container (IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType, ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_Repository, ObjType) ->
+ orber:dbg("[~p] ~p:destroy(~p, ~p);~n"
+ "Destroying a repository is an error.~n",
+ [?LINE, ?MODULE, ObjType, ObjID], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Container
+
+lookup({ObjType,ObjID}, Search_name) ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:lookup({ObjType, ObjID}, Search_name).
+
+contents({ObjType,ObjID}, Limit_type, Exclude_inherited)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:contents({ObjType,ObjID},Limit_type,Exclude_inherited).
+
+lookup_name({ObjType,ObjID}, Search_name, Levels_to_search, Limit_type,
+ Exclude_inherited) ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:lookup_name({ObjType, ObjID}, Search_name,
+ Levels_to_search, Limit_type,
+ Exclude_inherited).
+
+describe_contents({ObjType,ObjID}, Limit_type, Exclude_inherited,
+ Max_returned_objs) ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:describe_contents({ObjType, ObjID}, Limit_type,
+ Exclude_inherited,Max_returned_objs).
+
+create_module({ObjType,ObjID}, Id, Name, Version)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_module({ObjType,ObjID}, Id, Name, Version).
+
+create_constant({ObjType,ObjID}, Id, Name, Version, Type, Value)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_constant({ObjType,ObjID}, Id, Name, Version,
+ Type, Value).
+
+create_struct({ObjType,ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_struct({ObjType,ObjID}, Id, Name, Version,
+ Members).
+
+create_union({ObjType,ObjID}, Id, Name, Version, Discriminator_type, Members)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_union({ObjType,ObjID}, Id, Name, Version,
+ Discriminator_type, Members).
+
+create_enum({ObjType,ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_enum({ObjType,ObjID},Id,Name,Version,Members).
+
+create_alias({ObjType,ObjID}, Id, Name, Version, Original_type)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_alias({ObjType,ObjID}, Id, Name, Version,
+ Original_type).
+
+create_interface({ObjType,ObjID}, Id, Name, Version, Base_interfaces)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_interface({ObjType,ObjID}, Id, Name, Version,
+ Base_interfaces).
+
+create_exception({ObjType, ObjID}, Id, Name, Version, Members)
+ ?tcheck(ir_Repository, ObjType) ->
+ orber_ifr_container:create_exception({ObjType, ObjID}, Id, Name, Version,
+ Members).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+lookup_id({ObjType,ObjID}, Search_id) ?tcheck(ir_Repository, ObjType) ->
+ Contents = orber_ifr_container:contents({ObjType, ObjID}, dk_All, false),
+ case lists:filter(fun(X) -> orber_ifr_contained:'_get_id'(X) == Search_id
+ end, Contents) of
+ [] ->
+ [];
+ [ObjRef] ->
+ ObjRef;
+ [H|T] ->
+ %% This case is just a safety-guard; orber_ifr_container:contents
+ %% sometimes return duplicates due to inheritance.
+ case lists:any(fun(X) -> X =/= H end, T) of
+ false ->
+ H;
+ true ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end
+ end.
+
+get_primitive({ObjType,ObjID}, Kind) ?tcheck(ir_Repository, ObjType) ->
+ Primitivedefs = orber_ifr_utils:get_field({ObjType,ObjID}, primitivedefs),
+ lists:filter(fun(X) -> orber_ifr_primitivedef:'_get_kind'(X) == Kind end,
+ Primitivedefs).
+
+%% It is probably incorrect to add the anonymous typedefs (string,
+%% sequence and array) to the field primitivdefs in the Repository.
+%% It is probably also not correct to add them to the contents field.
+%% Perhaps it is necessary to add another field in the ir_Repository
+%% record for anonymous typedefs? Then again, perhaps it is not
+%% necessary to keep the anonymous typedefs anywhere? According to
+%% the specification it is the callers responsibility to destroy the
+%% anonymous typedef if it is not successfully used.
+
+create_string({ObjType,_ObjID}, Bound) ?tcheck(ir_Repository, ObjType) ->
+ New_string = #ir_StringDef{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_String,
+ type = {tk_string, Bound},
+ bound = Bound},
+ orber_ifr_utils:makeref(New_string).
+
+create_wstring({ObjType,_ObjID}, Bound) ?tcheck(ir_Repository, ObjType) ->
+ NewWstring = #ir_WstringDef{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_Wstring,
+ type = {tk_wstring, Bound},
+ bound = Bound},
+ orber_ifr_utils:makeref(NewWstring).
+
+create_fixed({ObjType,_ObjID}, Digits, Scale) ?tcheck(ir_Repository, ObjType) ->
+ NewFixed = #ir_FixedDef{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_Fixed,
+ type = {tk_fixed, Digits, Scale},
+ digits = Digits,
+ scale = Scale},
+ orber_ifr_utils:makeref(NewFixed).
+
+create_sequence({ObjType,_ObjID}, Bound, Element_type)
+ ?tcheck(ir_Repository, ObjType) ->
+ Element_typecode = orber_ifr_utils:get_field(Element_type, type),
+ New_sequence = #ir_SequenceDef{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_Sequence,
+ type = {tk_sequence,Element_typecode,Bound},
+ bound = Bound,
+ element_type = Element_typecode,
+ element_type_def = Element_type},
+ orber_ifr_utils:makeref(New_sequence).
+
+create_array({ObjType,_ObjID}, Length, Element_type)
+ ?tcheck(ir_Repository, ObjType) ->
+ Element_typecode = orber_ifr_utils:get_field(Element_type, type),
+ New_array = #ir_ArrayDef{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_Array,
+ type = {tk_array, Element_typecode, Length},
+ length = Length,
+ element_type = Element_typecode,
+ element_type_def = Element_type},
+ orber_ifr_utils:makeref(New_array).
+
+%%%----------------------------------------------------------------------
+%%% Extra interfaces (not in the IDL-spec for the IFR).
+
+create_idltype(#orber_light_ifr_ref{} = LRef, _Typecode) ->
+ LRef;
+create_idltype({ObjType,_ObjID}, Typecode) ?tcheck(ir_Repository, ObjType) ->
+ New_idltype = #ir_IDLType{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_none,
+ type=Typecode},
+ orber_ifr_utils:set_object(New_idltype),
+ orber_ifr_utils:makeref(New_idltype).
+
+create_primitivedef(Pkind) ->
+ create_primitivedef(Pkind, true).
+create_primitivedef(Pkind, Transaction) ->
+ Typecode = case Pkind of
+ pk_void ->
+ tk_void;
+ pk_short ->
+ tk_short;
+ pk_long ->
+ tk_long;
+ pk_longlong ->
+ tk_longlong;
+ pk_ushort ->
+ tk_ushort;
+ pk_ulong ->
+ tk_ulong;
+ pk_ulonglong ->
+ tk_ulonglong;
+ pk_float ->
+ tk_float;
+ pk_double ->
+ tk_double;
+ pk_boolean ->
+ tk_boolean;
+ pk_char ->
+ tk_char;
+ pk_wchar ->
+ tk_wchar;
+ pk_fixed ->
+ tk_fixed;
+ pk_octet ->
+ tk_octet;
+ pk_any ->
+ tk_any;
+ pk_TypeCode ->
+ tk_TypeCode;
+ pk_Principal ->
+ tk_Principal;
+ pk_string ->
+ orber_ifr_orb:create_string_tc(0);
+ pk_wstring ->
+ orber_ifr_orb:create_wstring_tc(0);
+ pk_objref ->
+ %%*** what should the Id and Name be here?
+ orber_ifr_orb:create_interface_tc("", "");
+ _ ->
+ orber:dbg("[~p] ~p:destroy(~p);~n"
+ "Illegal primitivekin.~n",
+ [?LINE, ?MODULE, Pkind], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end,
+ New_primitivedef = #ir_PrimitiveDef{ir_Internal_ID = orber_ifr_utils:unique(),
+ def_kind = dk_Primitive,
+ type = Typecode,
+ kind = Pkind},
+ case Transaction of
+ true ->
+ orber_ifr_utils:set_object(New_primitivedef);
+ false ->
+ mnesia:write(New_primitivedef)
+ end,
+ orber_ifr_utils:makeref(New_primitivedef).
diff --git a/lib/orber/src/orber_ifr_sequencedef.erl b/lib/orber/src/orber_ifr_sequencedef.erl
new file mode 100644
index 0000000000..8a1fee6ac6
--- /dev/null
+++ b/lib/orber/src/orber_ifr_sequencedef.erl
@@ -0,0 +1,103 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_sequencedef.erl
+%% Purpose : Code for Sequencedef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_sequencedef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_bound'/1,
+ '_set_bound'/2,
+ '_get_element_type'/1,
+ '_get_element_type_def'/1,
+ '_set_element_type_def'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ get_object/1,
+ set_object/1
+ ]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+%%%======================================================================
+%%% SequenceDef (IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ?tcheck(ir_SequenceDef,ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_SequenceDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_SequenceDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy(
+ '_get_element_type_def'({ObjType,ObjID})) ++
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_SequenceDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_bound'({ObjType, ObjID}) ?tcheck(ir_SequenceDef, ObjType) ->
+ get_field({ObjType,ObjID},bound).
+
+'_set_bound'({ObjType, ObjID}, EO_Value) ?tcheck(ir_SequenceDef, ObjType) ->
+ SequenceDef = get_object({ObjType, ObjID}),
+ New_SequenceDef =
+ SequenceDef#ir_SequenceDef{type = {tk_sequence,
+ SequenceDef#ir_SequenceDef.type,
+ SequenceDef#ir_SequenceDef.bound},
+ bound = EO_Value},
+ set_object(New_SequenceDef).
+
+'_get_element_type'({ObjType, ObjID}) ?tcheck(ir_SequenceDef, ObjType) ->
+ get_field({ObjType,ObjID},element_type).
+
+'_get_element_type_def'({ObjType, ObjID}) ?tcheck(ir_SequenceDef, ObjType) ->
+ get_field({ObjType,ObjID},element_type_def).
+
+'_set_element_type_def'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_SequenceDef, ObjType) ->
+ SequenceDef = get_object({ObjType, ObjID}),
+ New_type = {tk_sequence,
+ EO_Value#ir_IDLType.type,
+ SequenceDef#ir_SequenceDef.bound},
+ New_SequenceDef = SequenceDef#ir_SequenceDef{type = New_type,
+ element_type = New_type,
+ element_type_def = EO_Value},
+ set_object(New_SequenceDef).
diff --git a/lib/orber/src/orber_ifr_stringdef.erl b/lib/orber/src/orber_ifr_stringdef.erl
new file mode 100644
index 0000000000..10f3f2116e
--- /dev/null
+++ b/lib/orber/src/orber_ifr_stringdef.erl
@@ -0,0 +1,74 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_stringdef.erl
+%% Purpose : Code for Stringdef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_stringdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_bound'/1,
+ '_set_bound'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ set_field/3
+ ]).
+
+-include("orber_ifr.hrl").
+
+%%%======================================================================
+%%% StringDef (IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ?tcheck(ir_StringDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_StringDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_StringDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_StringDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_bound'({ObjType, ObjID}) ?tcheck(ir_StringDef, ObjType) ->
+ get_field({ObjType,ObjID},bound).
+
+'_set_bound'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_StringDef, ObjType) ->
+ set_field({ObjType, ObjID}, bound, EO_Value).
diff --git a/lib/orber/src/orber_ifr_structdef.erl b/lib/orber/src/orber_ifr_structdef.erl
new file mode 100644
index 0000000000..c5139ee5a8
--- /dev/null
+++ b/lib/orber/src/orber_ifr_structdef.erl
@@ -0,0 +1,155 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_structdef.erl
+%% Purpose : Code for Structdef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_structdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_members'/1,
+ '_set_members'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,get_object/1,set_object/1]).
+-import(lists,[map/2]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+%%%======================================================================
+%%% StructDef (TypedefDef(Contained(IRObject), IDLType(IRObject)))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType, ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ map(fun(X) -> orber_ifr_idltype:cleanup_for_destroy(
+ X#structmember.type_def)
+ end,
+ '_get_members'({ObjType, ObjID})
+ ) ++
+ orber_ifr_typedef:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID},EO_Value) ?tcheck(ir_StructDef,ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID}) ?tcheck(ir_StructDef,ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_members'({ObjType, ObjID}) ?tcheck(ir_StructDef, ObjType) ->
+ get_field({ObjType,ObjID},members).
+
+'_set_members'({ObjType, ObjID}, EO_Value) ?tcheck(ir_StructDef, ObjType) ->
+ StructDef = get_object({ObjType, ObjID}),
+ Members = map(fun(Structmember) -> Structmember#structmember{type=tk_void}
+ end, EO_Value),
+ New_StructDef =
+ StructDef#ir_StructDef{type =
+ {tk_struct,
+ StructDef#ir_StructDef.id,
+ StructDef#ir_StructDef.name,
+ map(fun(#structmember{name=Name,type=Type}) ->
+ {Name,Type}
+ end,
+ EO_Value)},
+ members=Members},
+ set_object(New_StructDef).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/orber/src/orber_ifr_typecode.erl b/lib/orber/src/orber_ifr_typecode.erl
new file mode 100644
index 0000000000..1fac75b2af
--- /dev/null
+++ b/lib/orber/src/orber_ifr_typecode.erl
@@ -0,0 +1,107 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_typecode.erl
+%% Purpose : Code for Typecode
+%%----------------------------------------------------------------------
+
+%%% NOTE:
+%%% Only make_typcode is for real here. All of the TypeCode interfaces
+%%% specified in the IDL specification needs to be implemented.
+%%%
+
+-module(orber_ifr_typecode).
+
+-export([
+ equal/2,
+ kind/1,
+ id/1,
+ name/1,
+ member_count/1,
+ member_name/2,
+ member_type/2,
+ member_label/2,
+ discriminator_type/1,
+ default_index/1,
+ '_length'/1,
+ content_type/1,
+ param_count/1,
+ parameter/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/corba.hrl").
+
+
+
+%%%----------------------------------------------------------------------
+%%% Inherited interfaces
+
+%% none %%
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+equal({ObjType, ObjID}, {Tc_ObjType, Tc_ObjID})
+?tcheck(ir_TypeCode, ObjType) ->
+ get_field({ObjType,ObjID},kind) == get_field({Tc_ObjType,Tc_ObjID},kind).
+
+kind({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+id({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+name({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+member_count({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+member_name({ObjType, ObjID}, _Index) ->
+ {ok, {ObjType, ObjID}}.
+
+member_type({ObjType, ObjID}, _Index) ->
+ {ok, {ObjType, ObjID}}.
+
+member_label({ObjType, ObjID}, _Index) ->
+ {ok, {ObjType, ObjID}}.
+
+discriminator_type({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+default_index({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+'_length'({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+content_type({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+param_count({ObjType, ObjID}) ->
+ {ok, {ObjType, ObjID}}.
+
+parameter({ObjType, ObjID}, _Index) ->
+ {ok, {ObjType, ObjID}}.
diff --git a/lib/orber/src/orber_ifr_typedef.erl b/lib/orber/src/orber_ifr_typedef.erl
new file mode 100644
index 0000000000..1b4bacba77
--- /dev/null
+++ b/lib/orber/src/orber_ifr_typedef.erl
@@ -0,0 +1,124 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_typedef.erl
+%% Purpose : Code for Typedef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_typedef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1
+ ]).
+
+
+-include("orber_ifr.hrl").
+
+%%%======================================================================
+%%% TypedefDef (Contained(IRObject), IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType, ObjID}).
+
+%%% Note, that the destroy function is meant to be called within a
+%%% transaction called in the destroy function of an object which
+%%% inherits from TypedefDef. A TypedefDef should only be destroyed by
+%%% destroying the object that inherits from a TypedefDef. An attempt
+%%% to call this function in user code will result in unpredictable
+%%% results.
+
+%%% Don't type check the object reference. We need to be able to
+%%% handle several types of objects that inherit from TypedefDef.
+
+destroy(TypedefDef_objref) ->
+ F = fun() -> ObjList = cleanup_for_destroy(TypedefDef_objref),
+ orber_ifr_irobject:destroy([TypedefDef_objref | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy(TypedefDef_objref) ->
+ orber_ifr_contained:cleanup_for_destroy(TypedefDef_objref) ++
+ orber_ifr_idltype:cleanup_for_destroy(TypedefDef_objref).
+
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType, ObjID}, EO_Value) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType,ObjID}) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType,ObjID}) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version) ->
+ orber_ifr_contained:move({ObjType,ObjID},New_container,New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+%%% none %%
diff --git a/lib/orber/src/orber_ifr_uniondef.erl b/lib/orber/src/orber_ifr_uniondef.erl
new file mode 100644
index 0000000000..eafa03c465
--- /dev/null
+++ b/lib/orber/src/orber_ifr_uniondef.erl
@@ -0,0 +1,175 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_uniondef.erl
+%% Purpose : Code for Uniondef
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_uniondef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_id'/1,
+ '_set_id'/2,
+ '_get_name'/1,
+ '_set_name'/2,
+ '_get_version'/1,
+ '_set_version'/2,
+ '_get_defined_in'/1,
+ '_get_absolute_name'/1,
+ '_get_containing_repository'/1,
+ describe/1,
+ move/4,
+ '_get_type'/1,
+ '_get_discriminator_type'/1,
+ '_get_discriminator_type_def'/1,
+ '_set_discriminator_type_def'/2,
+ '_get_members'/1,
+ '_set_members'/2
+ ]).
+
+-import(orber_ifr_utils,[get_field/2,
+ get_object/1,
+ set_object/1
+ ]).
+
+-import(lists,[map/2]).
+
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+
+%%%======================================================================
+%%% UnionDef (TypedefDef(Contained(IRObject), IDLType(IRObject)))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType, ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType, ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ map(fun(X) -> orber_ifr_idltype:cleanup_for_destroy(
+ X#unionmember.type_def)
+ end,
+ '_get_members'({ObjType, ObjID})
+ ) ++
+ orber_ifr_idltype:cleanup_for_destroy(
+ '_get_discriminator_type_def'({ObjType,ObjID})) ++
+ orber_ifr_typedef:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from Contained
+
+'_get_id'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_get_id'({ObjType,ObjID}).
+
+'_set_id'({ObjType, ObjID}, EO_Value) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_set_id'({ObjType,ObjID},EO_Value).
+
+'_get_name'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_get_name'({ObjType,ObjID}).
+
+'_set_name'({ObjType,ObjID},EO_Value) ?tcheck(ir_UnionDef,ObjType) ->
+ orber_ifr_contained:'_set_name'({ObjType,ObjID}, EO_Value).
+
+'_get_version'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_get_version'({ObjType,ObjID}).
+
+'_set_version'({ObjType, ObjID}, EO_Value) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_set_version'({ObjType,ObjID},EO_Value).
+
+'_get_defined_in'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_get_defined_in'({ObjType,ObjID}).
+
+'_get_absolute_name'({ObjType, ObjID}) ?tcheck(ir_UnionDef,ObjType) ->
+ orber_ifr_contained:'_get_absolute_name'({ObjType,ObjID}).
+
+'_get_containing_repository'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,ObjID}).
+
+describe({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:describe({ObjType,ObjID}).
+
+move({ObjType, ObjID}, New_container, New_name, New_version)
+ ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_contained:move({ObjType,ObjID}, New_container, New_name,
+ New_version).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_discriminator_type'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ get_field({ObjType,ObjID},discriminator_type).
+
+'_get_discriminator_type_def'({ObjType, ObjID}) ?tcheck(ir_UnionDef,ObjType) ->
+ get_field({ObjType,ObjID},discriminator_type_def).
+
+'_set_discriminator_type_def'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_UnionDef, ObjType) ->
+ UnionDef = get_object({ObjType, ObjID}),
+ NewUnionDef = UnionDef#ir_UnionDef{type = EO_Value#ir_IDLType.type,
+ discriminator_type =
+ EO_Value#ir_IDLType.type,
+ discriminator_type_def = EO_Value},
+ set_object(NewUnionDef).
+
+'_get_members'({ObjType, ObjID}) ?tcheck(ir_UnionDef, ObjType) ->
+ get_field({ObjType,ObjID},members).
+
+%%% *** What should the value of the discriminator-typecode be when
+%%% updating the type attribute? (CORBA 2.0, p 6-20). For now we just
+%%% leave it unchanged, but this is perhaps not the right thing to do.
+
+-define(discr_tc(TC),element(4,TC)).
+-define(default(TC),element(5,TC)).
+
+'_set_members'({ObjType, ObjID}, EO_Value) ?tcheck(ir_UnionDef, ObjType) ->
+ UnionDef = get_object({ObjType, ObjID}),
+ Members=map(fun(Unionmember) -> Unionmember#unionmember{type=tk_void} end,
+ EO_Value),
+ NewUnionDef = UnionDef#ir_UnionDef{type =
+ {tk_union,
+ UnionDef#ir_UnionDef.id,
+ UnionDef#ir_UnionDef.name,
+ ?discr_tc(UnionDef#ir_UnionDef.type),
+ ?default(UnionDef#ir_UnionDef.type),
+ map(fun(#unionmember{name=Name,
+ label=Label,
+ type=Type}) ->
+ {Label,Name,Type}
+ end,
+ EO_Value)},
+ members = Members},
+ set_object(NewUnionDef).
diff --git a/lib/orber/src/orber_ifr_utils.erl b/lib/orber/src/orber_ifr_utils.erl
new file mode 100644
index 0000000000..11e3d1cd3b
--- /dev/null
+++ b/lib/orber/src/orber_ifr_utils.erl
@@ -0,0 +1,437 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_utils.erl
+%% Purpose : Common function for the Interface Repository
+%%----------------------------------------------------------------------
+
+-module(orber_ifr_utils).
+
+-export([
+ select/2,
+ index/2,
+ construct/3,
+ get_object/1,
+ set_object/1,
+ get_field/2,
+ set_field/3,
+ write_result/1,
+ read_result/1,
+ ifr_transaction_read/1,
+ ifr_transaction_write/1,
+ ifr_transaction_read_write/1,
+ makeref/1,
+ unique/0,
+ existence_check/2,
+ existence_check/3,
+ create_repository/0,
+ init_DB/2, init_DB/3
+ ]).
+
+-include_lib("orber/include/corba.hrl").
+-include("orber_ifr.hrl").
+-include("ifr_objects.hrl").
+
+
+%%======================================================================
+%% Internal stuff
+
+%%----------------------------------------------------------------------
+%% Make a record selection.
+%%
+%% This code *must* be amended whenever a new record is added in the
+%% files ifr_objects.hrl or ../include/ifr_types.hrl
+
+select(Record,Field) when is_record(Record,ir_IRObject) ->
+ select(Record,record_info(fields,ir_IRObject),Field);
+select(Record,Field) when is_record(Record,ir_Contained) ->
+ select(Record,record_info(fields,ir_Contained),Field);
+select(Record,Field) when is_record(Record,ir_Container) ->
+ select(Record,record_info(fields,ir_Container),Field);
+select(Record,Field) when is_record(Record,ir_IDLType) ->
+ select(Record,record_info(fields,ir_IDLType),Field);
+select(Record,Field) when is_record(Record,ir_Repository) ->
+ select(Record,record_info(fields,ir_Repository),Field);
+select(Record,Field) when is_record(Record,ir_ModuleDef) ->
+ select(Record,record_info(fields,ir_ModuleDef),Field);
+select(Record,Field) when is_record(Record,ir_ConstantDef) ->
+ select(Record,record_info(fields,ir_ConstantDef),Field);
+select(Record,Field) when is_record(Record,ir_TypedefDef) ->
+ select(Record,record_info(fields,ir_TypedefDef),Field);
+select(Record,Field) when is_record(Record,ir_StructDef) ->
+ select(Record,record_info(fields,ir_StructDef),Field);
+select(Record,Field) when is_record(Record,ir_UnionDef) ->
+ select(Record,record_info(fields,ir_UnionDef),Field);
+select(Record,Field) when is_record(Record,ir_EnumDef) ->
+ select(Record,record_info(fields,ir_EnumDef),Field);
+select(Record,Field) when is_record(Record,ir_AliasDef) ->
+ select(Record,record_info(fields,ir_AliasDef),Field);
+select(Record,Field) when is_record(Record,ir_PrimitiveDef) ->
+ select(Record,record_info(fields,ir_PrimitiveDef),Field);
+select(Record,Field) when is_record(Record,ir_StringDef) ->
+ select(Record,record_info(fields,ir_StringDef),Field);
+select(Record,Field) when is_record(Record,ir_WstringDef) ->
+ select(Record,record_info(fields,ir_WstringDef),Field);
+select(Record,Field) when is_record(Record,ir_SequenceDef) ->
+ select(Record,record_info(fields,ir_SequenceDef),Field);
+select(Record,Field) when is_record(Record,ir_ArrayDef) ->
+ select(Record,record_info(fields,ir_ArrayDef),Field);
+select(Record,Field) when is_record(Record,ir_ExceptionDef) ->
+ select(Record,record_info(fields,ir_ExceptionDef),Field);
+select(Record,Field) when is_record(Record,ir_AttributeDef) ->
+ select(Record,record_info(fields,ir_AttributeDef),Field);
+select(Record,Field) when is_record(Record,ir_OperationDef) ->
+ select(Record,record_info(fields,ir_OperationDef),Field);
+select(Record,Field) when is_record(Record,ir_InterfaceDef) ->
+ select(Record,record_info(fields,ir_InterfaceDef),Field);
+select(Record,Field) when is_record(Record,ir_FixedDef) ->
+ select(Record,record_info(fields,ir_FixedDef),Field);
+select([],_) -> [];
+select(Record,Field) ->
+ orber:dbg("[~p] orber_ifr_utils:select(~p, ~p);~n"
+ "Unknown Record Type~n", [?LINE, Record,Field], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+-define(ELEMENT_OFFSET, 2).
+
+select(Record,Fields,Field) ->
+ Index = index(Fields,Field),
+ element(?ELEMENT_OFFSET + Index, Record).
+
+index(List,Element) ->
+ index(List,Element,0).
+
+index([H|_T],Element,Index) when H == Element ->
+ Index;
+index([_H|T],Element,Index) ->
+ index(T,Element,Index+1);
+index([],Element,Index) ->
+ orber:dbg("[~p] orber_ifr_utils:index(~p, ~p);~n"
+ "Index error.~n", [?LINE, Element, Index], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+%%%----------------------------------------------------------------------
+%%% Construct a record.
+%%%
+%%% This code *must* be amended whenever a new record is added in the
+%%% files ifr_objects.hrl or ../include/ifr_types.hrl
+
+construct(Record,Field,Value) when is_record(Record,ir_IRObject) ->
+ construct(Record,record_info(fields,ir_IRObject),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_Contained) ->
+ construct(Record,record_info(fields,ir_Contained),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_Container) ->
+ construct(Record,record_info(fields,ir_Container),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_IDLType) ->
+ construct(Record,record_info(fields,ir_IDLType),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_Repository) ->
+ construct(Record,record_info(fields,ir_Repository),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_ModuleDef) ->
+ construct(Record,record_info(fields,ir_ModuleDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_ConstantDef) ->
+ construct(Record,record_info(fields,ir_ConstantDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_TypedefDef) ->
+ construct(Record,record_info(fields,ir_TypedefDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_StructDef) ->
+ construct(Record,record_info(fields,ir_StructDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_UnionDef) ->
+ construct(Record,record_info(fields,ir_UnionDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_EnumDef) ->
+ construct(Record,record_info(fields,ir_EnumDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_AliasDef) ->
+ construct(Record,record_info(fields,ir_AliasDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_PrimitiveDef) ->
+ construct(Record,record_info(fields,ir_PrimitiveDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_StringDef) ->
+ construct(Record,record_info(fields,ir_StringDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_WstringDef) ->
+ construct(Record,record_info(fields,ir_WstringDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_SequenceDef) ->
+ construct(Record,record_info(fields,ir_SequenceDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_ArrayDef) ->
+ construct(Record,record_info(fields,ir_ArrayDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_ExceptionDef) ->
+ construct(Record,record_info(fields,ir_ExceptionDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_AttributeDef) ->
+ construct(Record,record_info(fields,ir_AttributeDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_OperationDef) ->
+ construct(Record,record_info(fields,ir_OperationDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_InterfaceDef) ->
+ construct(Record,record_info(fields,ir_InterfaceDef),Field,Value);
+construct(Record,Field,Value) when is_record(Record,ir_FixedDef) ->
+ construct(Record,record_info(fields,ir_FixedDef),Field,Value);
+construct(Record,Field,Value) ->
+ orber:dbg("[~p] orber_ifr_utils:construct(~p, ~p, ~p);~n"
+ "Unknown Record Type~n",
+ [?LINE, Record,Field,Value], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+construct(Record,Fields,Field,Value) ->
+ Index = index(Fields,Field),
+ setelement(?ELEMENT_OFFSET + Index,Record,Value).
+
+%%%----------------------------------------------------------------------
+%%% Read an object from the database
+
+get_object(Objref) ->
+%%% Use mnesia:dirty_read/1. It is much faster than doing a transaction.
+ case mnesia:dirty_read(Objref) of
+ [Res] ->
+ Res;
+ [] ->
+ [];
+ Other ->
+ orber:dbg("[~p] orber_ifr_utils:get_object(~p);~n",
+ [?LINE, Other], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end.
+%%% This is the old code, with a transaction. We might have to revert back
+%%% to this at some future time...
+%% _F = ?read_function(Objref),
+%% read_result(ifr_transaction_read(_F)).
+
+%%%----------------------------------------------------------------------
+%%% Write an object to the database
+
+set_object(Object) ->
+ _F = fun() -> mnesia:write(Object) end,
+ write_result(ifr_transaction_write(_F)).
+
+%%%----------------------------------------------------------------------
+%%% Get the value of a field in a record in the DB
+
+get_field(Objref,FieldName) ->
+ Object = get_object(Objref),
+ select(Object,FieldName).
+
+%%%----------------------------------------------------------------------
+%%% Atomically set the value of a field in a record in the DB
+
+set_field(Objref,FieldName,Value) ->
+ _F = fun() -> Object = get_object(Objref),
+ New_object = construct(Object,FieldName,Value),
+ mnesia:write(New_object)
+ end,
+ write_result(ifr_transaction_write(_F)).
+
+
+%%%----------------------------------------------------------------------
+%%% Check a write transaction
+
+write_result({atomic,ok}) -> ok;
+write_result(Wres) ->
+ orber:dbg("[~p] orber_ifr_utils:write_result(~p);~n",
+ [?LINE, Wres], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+%%%----------------------------------------------------------------------
+%%% Extract the data from a read
+
+read_result({atomic,[Qres]}) -> Qres;
+read_result({atomic,[]}) -> [];
+read_result(Qres) ->
+ orber:dbg("[~p] orber_ifr_utils:read_result(~p);~n",
+ [?LINE, Qres], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO}).
+
+%%%----------------------------------------------------------------------
+%%% Execute a transaction or a dirty read/write.
+%%%
+%%% Since nested transctions will upgrade the inner activity to the
+%%% same kind as the outer, we cannot use the check the result in the
+%%% above simplistic manner. Therefore we will not mix transaction
+%%% with async_dirty (or any of the other transaction-like
+%%% activities). A rather extensive rewrite of the query extraction
+%%% code must be done first.
+
+ifr_transaction_read(Fun) -> % read synchronously
+ Tr = mnesia:transaction(Fun),
+ {atomic, _} = Tr,
+ Tr.
+ifr_transaction_write(Fun) -> % write synchronously
+ Tr = mnesia:transaction(Fun),
+ {atomic, _} = Tr,
+ Tr.
+ifr_transaction_read_write(Fun) -> % write synchronously
+ Tr = mnesia:transaction(Fun),
+ {atomic, _} = Tr,
+ Tr.
+
+%%%----------------------------------------------------------------------
+%%% Make an object reference from an object
+
+makeref(Obj) ->
+ [ObjType, ObjID | _] = tuple_to_list(Obj),
+ {ObjType, ObjID}.
+
+%%%----------------------------------------------------------------------
+%%% Make a unique tag.
+%%%
+%%% The call to term_to_binary is made to hide the representation of the
+%%% unique tag. I do this because the tuple generated takes a lot of space
+%%% when I dump the database. A binary is simply printed as #Bin, which
+%%% is much less obtrusive.
+%%% The code has been moved to a macro defined in orber_ifr.hrl, so we
+%%% can use a simpler uniqification code when debugging.
+
+unique() -> term_to_binary({node(), now()}).
+
+%%%----------------------------------------------------------------------
+%%% Check for an existing object with the Id of the object which is
+%%% about to be created.
+
+existence_check({ObjType, ObjID}, Id) ->
+ Rep = case ObjType of
+ ir_Repository ->
+ {ObjType, ObjID};
+ _ ->
+ orber_ifr_contained:'_get_containing_repository'({ObjType,
+ ObjID})
+ end,
+ case orber_ifr_repository:lookup_id(Rep, Id) of
+ [] ->
+ ok;
+ What ->
+ orber:dbg("[~p] orber_ifr_utils:existence_check(~p, ~p, ~p);~n"
+ "Name clash(?): ~p",
+ [?LINE, ObjType, ObjID, Id, What], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end.
+
+existence_check(Id, Tab, FieldNum) ->
+ case mnesia:dirty_index_read(Tab, Id, FieldNum) of
+ [] ->
+ ok;
+ What ->
+ orber:dbg("[~p] orber_ifr_utils:existence_check(~p, ~p, ~p);~n"
+ "Name clash(?): ~p",
+ [?LINE, Id, Tab, FieldNum, What], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end.
+
+%%======================================================================
+%% Database initialization
+
+init_DB(Timeout, Options) ->
+ init_DB(Timeout, Options, false).
+
+init_DB(Timeout, Options, LightIFR) ->
+ Func = case Options of
+ {localCopy, IFR_storage_type} when LightIFR == true ->
+ ?ifr_light_record_tuple_list_local(IFR_storage_type);
+ {localCopy, IFR_storage_type} ->
+ ?ifr_record_tuple_list_local(IFR_storage_type);
+ _ when LightIFR == true ->
+ ?ifr_light_record_tuple_list(Options);
+ _ ->
+ ?ifr_record_tuple_list(Options)
+ end,
+ create_tables(Func),
+ Wait = wait_for_tables(LightIFR, Timeout),
+ db_error_check([Wait],"Database table waiting failed.").
+
+wait_for_tables(true, Timeout) ->
+ mnesia:wait_for_tables(?ifr_light_object_list, Timeout);
+wait_for_tables(_, Timeout) ->
+ mnesia:wait_for_tables(?ifr_object_list, Timeout).
+
+db_error_check(Checkval,_Message) ->
+ case lists:any(fun(X) -> X/= ok end, Checkval) of
+ true ->
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO});
+ false ->
+ ok
+ end.
+
+create_tables([{T,F}|Rest]) ->
+ case F() of
+ ok ->
+ create_tables2(Rest);
+ {aborted,{already_exists,_}} ->
+ exit({error, "Orber Mnesia Table(s) already exist. Cannot install Orber."});
+ Reason ->
+ orber:dbg("[~p] orber_ifr_utils:create_tables(~p);~n"
+ "Failed to create the Mnesia table.~n"
+ "Reason: ~p", [?LINE, T, Reason], ?DEBUG_LEVEL),
+ exit({error, "Unable to create Mnesia Table"})
+ end.
+
+create_tables2([]) ->
+ ok;
+create_tables2([{T,F}|Rest]) ->
+ case F() of
+ ok ->
+ create_tables2(Rest);
+ Reason ->
+ orber:dbg("[~p] orber_ifr_utils:create_tables2(~p);~n"
+ "Failed to create the Mnesia table.~n"
+ "Reason: ~p", [?LINE, T, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end.
+
+
+%%%----------------------------------------------------------------------
+%%% Create an interface repository. This function should only be called
+%%% once, after the database has been set up and initialized.
+
+create_repository() ->
+ case orber:light_ifr() of
+ true ->
+ #orber_light_ifr_ref{data = #lightdata{scope = "",
+ id = ""}};
+ false ->
+ _R = fun() ->
+ Pat = mnesia:table_info(ir_Repository, wild_pattern),
+ case [X#ir_Repository.ir_Internal_ID ||
+ X <- mnesia:match_object(Pat)] of
+ [] ->
+ PrimitiveDefs = create_primitivedefs(),
+ New = #ir_Repository{ir_Internal_ID = unique(),
+ def_kind = dk_Repository,
+ contents = [],
+ primitivedefs = PrimitiveDefs},
+ mnesia:write(New),
+ {ir_Repository,New#ir_Repository.ir_Internal_ID};
+ [Rep_ID] ->
+ {ir_Repository,Rep_ID};
+ Error ->
+ mnesia:abort(Error)
+ end
+ end,
+ case mnesia:transaction(_R) of
+ {atomic, RepRef} ->
+ RepRef;
+ {aborted, Error} ->
+ orber:dbg("[~p] orber_ifr_utils:create_repository() failed;~n"
+ "Reason: ~p", [?LINE, Error], ?DEBUG_LEVEL),
+ corba:raise(#'INTF_REPOS'{completion_status=?COMPLETED_NO})
+ end
+ end.
+
+create_primitivedefs() ->
+ lists:map(fun(Pk) ->
+ orber_ifr_repository:create_primitivedef(Pk, false)
+ end,
+ [pk_void,pk_short,pk_long,pk_longlong,pk_ulonglong,pk_ushort,pk_ulong,
+ pk_float,pk_double,pk_boolean,pk_char,pk_wchar,pk_octet,pk_any,
+ pk_TypeCode,pk_Principal,pk_string,pk_wstring,pk_objref]).
+
+
diff --git a/lib/orber/src/orber_ifr_wstringdef.erl b/lib/orber/src/orber_ifr_wstringdef.erl
new file mode 100644
index 0000000000..da80c0c27d
--- /dev/null
+++ b/lib/orber/src/orber_ifr_wstringdef.erl
@@ -0,0 +1,72 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_ifr_wstringdef.erl
+%% Description :
+%%
+%%----------------------------------------------------------------------
+-module(orber_ifr_wstringdef).
+
+-export(['_get_def_kind'/1,
+ destroy/1,
+ cleanup_for_destroy/1, %not in CORBA 2.0
+ '_get_type'/1,
+ '_get_bound'/1,
+ '_set_bound'/2]).
+
+-import(orber_ifr_utils, [get_field/2,
+ set_field/3]).
+
+-include("orber_ifr.hrl").
+
+%%%======================================================================
+%%% WstringDef (IDLType(IRObject))
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IRObject
+
+'_get_def_kind'({ObjType,ObjID}) ?tcheck(ir_WstringDef, ObjType) ->
+ orber_ifr_irobject:'_get_def_kind'({ObjType,ObjID}).
+
+destroy({ObjType, ObjID}) ?tcheck(ir_WstringDef, ObjType) ->
+ F = fun() -> ObjList = cleanup_for_destroy({ObjType, ObjID}),
+ orber_ifr_irobject:destroy([{ObjType,ObjID} | ObjList])
+ end,
+ orber_ifr_utils:ifr_transaction_write(F).
+
+cleanup_for_destroy({ObjType,ObjID}) ?tcheck(ir_WstringDef, ObjType) ->
+ orber_ifr_idltype:cleanup_for_destroy({ObjType,ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Interfaces inherited from IDLType
+
+'_get_type'({ObjType, ObjID}) ?tcheck(ir_WstringDef, ObjType) ->
+ orber_ifr_idltype:'_get_type'({ObjType, ObjID}).
+
+%%%----------------------------------------------------------------------
+%%% Non-inherited interfaces
+
+'_get_bound'({ObjType, ObjID}) ?tcheck(ir_WstringDef, ObjType) ->
+ get_field({ObjType,ObjID},bound).
+
+'_set_bound'({ObjType, ObjID}, EO_Value)
+ ?tcheck(ir_WstringDef, ObjType) ->
+ set_field({ObjType, ObjID}, bound, EO_Value).
diff --git a/lib/orber/src/orber_iiop.erl b/lib/orber/src/orber_iiop.erl
new file mode 100644
index 0000000000..0e11f7d244
--- /dev/null
+++ b/lib/orber/src/orber_iiop.erl
@@ -0,0 +1,550 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop.erl
+%% Description:
+%% This file contains the interface to the iiop operations
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+-behaviour(supervisor).
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start_sup/1, request/8, locate/4]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, handle_call/3]).
+
+%%-----------------------------------------------------------------
+%% Internal defines
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 7).
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start_sup/1
+%%-----------------------------------------------------------------
+start_sup(Opts) ->
+ supervisor:start_link({local, orber_iiop_sup}, ?MODULE,
+ {orber_iiop_sup, Opts}).
+
+%%%-----------------------------------------------------------------
+%%% Func: connect/1
+%%%-----------------------------------------------------------------
+%connect(OrbName) ->
+% orber_iiop_net:connect(OrbName).
+
+%%%-----------------------------------------------------------------
+%%% Func: request/5
+%%%-----------------------------------------------------------------
+request({Host, Port, InitObjkey, Index, TaggedProfile, HostData},
+ Op, Parameters, TypeCodes, ResponseExpected, Timeout, IOR, UserCtx) ->
+ {{Proxy, SysCtx, Interceptors, LocalInterface}, ObjKey, Version} =
+ connect(Host, Port, InitObjkey, Timeout, [Index], HostData,
+ TaggedProfile, IOR, UserCtx),
+ Ctx = add_user_context(SysCtx, UserCtx),
+ RequestId = orber_request_number:get(),
+ Env = #giop_env{interceptors = Interceptors, type = out,
+ flags = orber_env:get_flags(), host = LocalInterface,
+ version = Version, ctx = Ctx, request_id = RequestId, op = Op,
+ parameters = Parameters, tc = TypeCodes, objkey = ObjKey,
+ response_expected = ResponseExpected},
+ Message = encode_request(Env),
+ case catch orber_iiop_outproxy:request(Proxy, ResponseExpected, Timeout,
+ Message, RequestId) of
+ {'EXCEPTION', MsgExc} ->
+ corba:raise(MsgExc);
+ _ when ResponseExpected == false ->
+ ok;
+ {reply, ReplyHeader, Rest, Len, ByteOrder, Bytes} ->
+ case catch decode_reply_body(Interceptors, ObjKey, Op, ReplyHeader,
+ Version, TypeCodes, Rest, Len, ByteOrder,
+ Bytes) of
+ {'EXCEPTION', DecodeException} ->
+ %% We cannot log this exception since it may be a correct exception.
+ corba:raise(DecodeException);
+ {'EXIT', message_error} ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p)~n"
+ "Got exit(message_error)",
+ [?LINE, Rest, Version, TypeCodes], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ {'EXIT', Why} ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p)~n"
+ "Got exit(~p)",
+ [?LINE, Rest, Version, TypeCodes, Why], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ 'message_error' ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p);~n"
+ "Got message_error",
+ [?LINE, Rest, Version, TypeCodes], ?DEBUG_LEVEL),
+ %% Perhaps a resend should be done when a message error occurs
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ {Result, Par} ->
+ %% Check request id
+ case ReplyHeader#reply_header.reply_status of
+ 'no_exception' ->
+ case Par of
+ [] ->
+ Result;
+ _ ->
+ list_to_tuple([Result | Par])
+ end;
+ 'system_exception' ->
+ corba:raise(Result);
+ 'user_exception' ->
+ corba:raise(Result);
+ 'location_forward' ->
+ case get(orber_forward_notify) of
+ true ->
+ {location_forward, Result};
+ _ ->
+ case catch corba:call(Result, Op, Parameters,
+ TypeCodes,
+ [{timeout, Timeout},
+ {context, UserCtx}]) of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ {'EXIT', Reason} ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p)~n"
+ "location_forward resulted in exit(~p)",
+ [?LINE, Rest, Version, TypeCodes, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO});
+ NewResult ->
+ NewResult
+ end
+ end;
+ 'location_forward_perm' ->
+ %% We should notify the client in this case.
+ case get(orber_forward_notify) of
+ true ->
+ {location_forward, Result};
+ _ ->
+ case catch corba:call(Result, Op, Parameters,
+ TypeCodes,
+ [{timeout, Timeout},
+ {context, UserCtx}]) of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ {'EXIT', Reason} ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p)~n"
+ "location_forward_perm resulted in exit(~p)",
+ [?LINE, Rest, Version, TypeCodes, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO});
+ NewResult ->
+ NewResult
+ end
+ end;
+ 'needs_addressing_mode' ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p)~n"
+ "needs_addressing_mode not supported.",
+ [?LINE, Rest, Version, TypeCodes], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end
+ end;
+ What ->
+ orber:dbg("[~p] orber_iiop:request(reply, ~p, ~p, ~p)~n"
+ "outproxy-request: ~p", [?LINE, Message, Version, TypeCodes, What], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+
+encode_request(#giop_env{interceptors = false} = Env) ->
+ case catch cdr_encode:enc_request(Env) of
+ {'EXCEPTION', Exc} ->
+ orber:dbg("[~p] orber_iiop:request(~p)~n"
+ "Got exception(~p)",
+ [?LINE, Env, Exc], ?DEBUG_LEVEL),
+ corba:raise(Exc);
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop:request:( ~p )~n"
+ "Got exit(~p)",
+ [?LINE, Env, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ Msg ->
+ Msg
+ end;
+encode_request(#giop_env{interceptors = {native, Ref, PIs},
+ objkey = ObjKey, ctx = Ctx, op = Op,
+ parameters = Params} = Env) ->
+ Parameters = orber_pi:out_request(PIs, ObjKey, Ctx, Op, Ref, Params),
+ case catch cdr_encode:enc_request_split(Env) of
+ {'EXCEPTION', Exc} ->
+ orber:dbg("[~p] orber_iiop:request( ~p, ~p); exception(~p)",
+ [?LINE, Env, Parameters, Exc], ?DEBUG_LEVEL),
+ corba:raise(Exc);
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop:request:( ~p, ~p); got exit(~p)",
+ [?LINE, Env, Parameters, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ {Hdr, Body, HdrLen, _, Flags} ->
+ NewBody = orber_pi:out_request_enc(PIs, ObjKey, Ctx, Op, Ref, Body),
+ cdr_encode:enc_giop_message_header(Env, 'request', Flags,
+ HdrLen+size(NewBody),
+ [Hdr|NewBody])
+ end;
+encode_request(Env) ->
+ case catch cdr_encode:enc_request(Env) of
+ {'EXCEPTION', Exc} ->
+ orber:dbg("[~p] orber_iiop:request( ~p ); exception(~p)",
+ [?LINE, Env, Exc], ?DEBUG_LEVEL),
+ corba:raise(Exc);
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop:request:( ~p ); got exit(~p)",
+ [?LINE, Env, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ Msg ->
+ Msg
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: locate/1
+%%-----------------------------------------------------------------
+locate({Host, Port, InitObjkey, Index, TaggedProfile, HostData},
+ Timeout, IOR, UserCtx) ->
+ {{Proxy, _Ctx, _Interceptors, LocalInterface}, ObjKey, Version} =
+ connect(Host, Port, InitObjkey, Timeout, [Index], HostData,
+ TaggedProfile, IOR, UserCtx),
+ RequestId = orber_request_number:get(),
+ Env = #giop_env{version = Version, objkey = ObjKey, request_id = RequestId,
+ flags = orber_env:get_flags(), host = LocalInterface},
+ Result =
+ case catch cdr_encode:enc_locate_request(Env) of
+ {'EXCEPTION', EncE} ->
+ orber:dbg("[~p] orber_iiop:locate(~p); exception(~p)",
+ [?LINE, ObjKey, EncE], ?DEBUG_LEVEL),
+ corba:raise(EncE);
+ {'EXIT', EncR} ->
+ orber:dbg("[~p] orber_iiop:locate(~p); exit(~p)",
+ [?LINE, ObjKey, EncR], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ Request ->
+ (catch orber_iiop_outproxy:request(Proxy, true, Timeout,
+ Request, RequestId))
+ end,
+ case Result of
+ {'EXCEPTION', MsgExc} ->
+ corba:raise(MsgExc);
+ {locate_reply, ReplyHeader, Rest, Len, ByteOrder} ->
+ case catch cdr_decode:dec_locate_reply_body(Version,
+ ReplyHeader#locate_reply_header.locate_status,
+ Rest, Len, ByteOrder) of
+ {'EXCEPTION', DecodeException} ->
+ orber:dbg("[~p] orber_iiop:locate(locate_reply, ~p, ~p); exception(~p)",
+ [?LINE, Rest, Version, DecodeException], ?DEBUG_LEVEL),
+ corba:raise(DecodeException);
+ {'EXIT', message_error} ->
+ orber:dbg("[~p] orber_iiop:locate(locate_reply, ~p, ~p); exit(message_error)",
+ [?LINE, Rest, Version], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop:locate(locate_reply, ~p, ~p); exit(~p)",
+ [?LINE, Rest, Version, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ [] ->
+ ReplyHeader#locate_reply_header.locate_status;
+ ObjRef ->
+ {ReplyHeader#locate_reply_header.locate_status, ObjRef}
+ end;
+ Other ->
+ orber:dbg("[~p] orber_iiop:locate(~p); exit(~p)",
+ [?LINE, ObjKey, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO})
+ end.
+
+%%%-----------------------------------------------------------------
+%%% Func: cancel/1
+%%%-----------------------------------------------------------------
+%cancel(X) ->
+% ok.
+
+%%%-----------------------------------------------------------------
+%%% Func: message_error/1
+%%%-----------------------------------------------------------------
+%message_error(X) ->
+% ok.
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init({orber_iiop_sup, Opts}) ->
+ IIOP_port = orber:iiop_port(),
+ SSL_port = orber:iiop_ssl_port(),
+ SupFlags = {one_for_one, 5, 1000}, %Max 5 restarts in 1 second
+ PortList = if
+ SSL_port > -1 ->
+ [{port, ssl, SSL_port}];
+ true ->
+ []
+ end,
+ ChildSpec =
+ case orber:is_lightweight() of
+ true ->
+ [
+ {orber_iiop_outsup, {orber_iiop_outsup, start,
+ [sup, Opts]},
+ permanent, 10000, supervisor, [orber_iiop_outsup]},
+ {orber_iiop_pm, {orber_iiop_pm, start,
+ [Opts]},
+ permanent, 10000, worker, [orber_iiop_pm]}
+ ];
+ false ->
+ [{orber_iiop_outsup, {orber_iiop_outsup, start,
+ [sup, Opts]},
+ permanent, 10000, supervisor, [orber_iiop_outsup]},
+ {orber_iiop_pm, {orber_iiop_pm, start,
+ [Opts]},
+ permanent, 10000, worker, [orber_iiop_pm]},
+ {orber_iiop_insup, {orber_iiop_insup, start,
+ [sup, Opts]},
+ permanent, 10000, supervisor, [orber_iiop_insup]},
+ {orber_iiop_socketsup, {orber_iiop_socketsup, start,
+ [sup, Opts]},
+ permanent, 10000, supervisor, [orber_iiop_socketsup]},
+ {orber_iiop_net, {orber_iiop_net, start,
+ [[{port, normal, IIOP_port} | PortList]]},
+ permanent, 10000, worker, [orber_iiop_net]}]
+ end,
+ {ok, {SupFlags, ChildSpec}}.
+
+
+
+
+
+%%-----------------------------------------------------------------
+%% Func: terminate/2
+%%-----------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%-----------------------------------------------------------------
+handle_call(_Req, _From, State) ->
+ {reply, ok, State}.
+
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+add_user_context([], UserCtx) -> UserCtx;
+add_user_context(SysCtx, []) -> SysCtx;
+add_user_context(SysCtx, UserCtx) -> SysCtx ++ UserCtx.
+
+decode_reply_body(false, _ObjKey, _Op, ReplyHeader, Version, TypeCodes,
+ Rest, Len, ByteOrder, Bytes) ->
+ case ReplyHeader#reply_header.reply_status of
+ 'no_exception' ->
+ {R, P, _} = cdr_decode:dec_reply_body(Version, TypeCodes, Rest, Len, ByteOrder, Bytes),
+ {R, P};
+ 'system_exception' ->
+ {R, _} = cdr_decode:dec_system_exception(Version, Rest, Len, ByteOrder),
+ {R, []};
+ 'user_exception' ->
+ {R, _} = cdr_decode:dec_user_exception(Version, Rest, Len, ByteOrder),
+ {R, []};
+ 'location_forward' ->
+ {R, _, _} = cdr_decode:dec_reply_body(Version, {{'tk_objref', "", ""}, [],[]},
+ Rest, Len, ByteOrder, Bytes),
+ {R, []};
+ 'location_forward_perm' ->
+ {R, _, _} = cdr_decode:dec_reply_body(Version, {{'tk_objref', "", ""}, [],[]},
+ Rest, Len, ByteOrder, Bytes),
+ {R, []};
+ 'needs_addressing_mode' ->
+ {R, _, _} = cdr_decode:dec_reply_body(Version, {'tk_short', [],[]},
+ Rest, Len, ByteOrder, Bytes),
+ {R, []}
+ end;
+decode_reply_body(Interceptors, ObjKey, Op, ReplyHeader, Version, TypeCodes,
+ RestIn, Len, ByteOrder, Bytes) ->
+ Rest =
+ case Interceptors of
+ {portable, _PIs} ->
+ RestIn;
+ {native, Ref, PIs} ->
+ orber_pi:in_reply_enc(PIs, ObjKey,
+ ReplyHeader#reply_header.service_context,
+ Op, Ref, RestIn)
+ end,
+ Reply =
+ case ReplyHeader#reply_header.reply_status of
+ 'no_exception' ->
+ {R, P, _} = cdr_decode:dec_reply_body(Version, TypeCodes, Rest, Len, ByteOrder, Bytes),
+ {R, P};
+ 'system_exception' ->
+ {R, _} = cdr_decode:dec_system_exception(Version, Rest, Len, ByteOrder),
+ {R, []};
+ 'user_exception' ->
+ {R, _} = cdr_decode:dec_user_exception(Version, Rest, Len, ByteOrder),
+ {R, []};
+ 'location_forward' ->
+ {R, _, _} = cdr_decode:dec_reply_body(Version, {{'tk_objref', "", ""}, [],[]},
+ Rest, Len, ByteOrder, Bytes),
+ {R, []};
+ 'location_forward_perm' ->
+ {R, _, _} = cdr_decode:dec_reply_body(Version, {{'tk_objref', "", ""}, [],[]},
+ Rest, Len, ByteOrder, Bytes),
+ {R, []};
+ 'needs_addressing_mode' ->
+ {R, _, _} = cdr_decode:dec_reply_body(Version, {'tk_short', [],[]},
+ Rest, Len, ByteOrder, Bytes),
+ {R, []}
+ end,
+ case Interceptors of
+ {portable, _PI} ->
+ Reply;
+ {native, Refs, PI} ->
+ orber_pi:in_reply(PI, ObjKey,
+ ReplyHeader#reply_header.service_context,
+ Op, Refs, Reply)
+ end.
+
+%% "Plain" TCP/IP.
+connect(Host, Port, Objkey, Timeout, Index,
+ #host_data{protocol = normal, csiv2_mech = undefined} = HostData,
+ TaggedProfile, IOR, Ctx) ->
+ connect2([{Host, Port}], Objkey, Timeout, Index, HostData,
+ TaggedProfile, IOR, Ctx);
+%% "Plain" SSL
+connect(Host, _, Objkey, Timeout, Index,
+ #host_data{protocol = ssl,
+ ssl_data = #'SSLIOP_SSL'{port = Port},
+ csiv2_mech = undefined} = HostData,
+ TaggedProfile, IOR, Ctx) ->
+ connect2([{Host, Port}], Objkey, Timeout, Index, HostData,
+ TaggedProfile, IOR, Ctx);
+%% TEMPORARY FIX TO AVOID RUNNING CSIv2.
+connect(Host, _, Objkey, Timeout, Index,
+ #host_data{protocol = ssl,
+ ssl_data = #'SSLIOP_SSL'{port = Port}} = HostData,
+ TaggedProfile, IOR, Ctx) ->
+ connect2([{Host, Port}], Objkey, Timeout, Index, HostData,
+ TaggedProfile, IOR, Ctx);
+%% CSIv2 over SSL (TAG_TLS_SEC_TRANS) using the SAS protocol. Note port must equal 0.
+connect(_Host, 0, Objkey, Timeout, Index,
+ #host_data{protocol = ssl,
+ csiv2_mech =
+ #'CSIIOP_CompoundSecMech'{target_requires = _TR} = _Mech,
+ csiv2_addresses = Addresses} = HostData,
+ TaggedProfile, IOR, Ctx) ->
+ NewCtx = [#'IOP_ServiceContext'
+ {context_id=?IOP_SecurityAttributeService,
+ context_data = #'CSI_SASContextBody'
+ {label = ?CSI_MsgType_MTEstablishContext,
+ value = #'CSI_EstablishContext'
+ {client_context_id = 0, %% Always 0 when stateless.
+ authorization_token =
+ [#'CSI_AuthorizationElement'{the_element = []}],
+ identity_token =
+ #'CSI_IdentityToken'{label = ?CSI_IdentityTokenType_ITTAbsent,
+ value = true},
+ client_authentication_token = []}}}|Ctx],
+ connect2(Addresses, Objkey, Timeout, Index, HostData,
+ TaggedProfile, IOR, NewCtx);
+%% CSIv2 over SSL (TAG_NULL_TAG) using the SAS protocol.
+connect(Host, _, Objkey, Timeout, Index,
+ #host_data{protocol = ssl,
+ ssl_data = #'SSLIOP_SSL'{port = Port},
+ csiv2_mech = Mech} = HostData,
+ TaggedProfile, IOR, Ctx) when is_record(Mech, 'CSIIOP_CompoundSecMech') ->
+ connect2([{Host, Port}], Objkey, Timeout, Index, HostData,
+ TaggedProfile, IOR, Ctx);
+%% CSIv2 over TCP (TAG_NULL_TAG) using the SAS protocol.
+connect(Host, Port, Objkey, Timeout, Index,
+ #host_data{protocol = normal,
+ csiv2_mech = Mech} = HostData,
+ TaggedProfile, IOR, Ctx) when is_record(Mech, 'CSIIOP_CompoundSecMech') ->
+ connect2([{Host, Port}], Objkey, Timeout, Index, HostData,
+ TaggedProfile, IOR, Ctx);
+connect(_Host, _Port, _Objkey, _Timeout, _Index, HostData, _TaggedProfile,
+ IOR, _Ctx) ->
+ orber:dbg("[~p] orber_iiop:connect(~p)~n"
+ "Unable to use the supplied IOR.~n"
+ "Connection Data: ~p", [?LINE, IOR, HostData], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO}).
+
+
+
+connect2(HostPort, Objkey, Timeout, Index, HostData, TaggedProfile, IOR, Ctx) ->
+ case try_connect(HostPort, HostData#host_data.protocol, Timeout, HostData, Ctx) of
+ error ->
+ Alts = iop_ior:get_alt_addr(TaggedProfile),
+ case try_connect(Alts, HostData#host_data.protocol, Timeout, HostData, Ctx) of
+ error ->
+ case iop_ior:get_key(IOR, Index) of
+ undefined ->
+ corba:raise(#'COMM_FAILURE'{completion_status = ?COMPLETED_NO});
+ {'external', {NewHost, NewPort, NewObjkey, NewIndex,
+ NewTaggedProfile, NewHostData}} ->
+ connect(NewHost, NewPort, NewObjkey, Timeout, [NewIndex|Index],
+ NewHostData, NewTaggedProfile, IOR, Ctx);
+ _What ->
+ orber:dbg("[~p] orber_iiop:connect2(~p)~n"
+ "Illegal IOR; contains a mixture of local and external profiles.",
+ [?LINE, IOR], ?DEBUG_LEVEL),
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end;
+ X ->
+ {X, Objkey, HostData#host_data.version}
+ end;
+ X ->
+ {X, Objkey, HostData#host_data.version}
+ end.
+
+try_connect([], _, _, _, _) ->
+ error;
+try_connect([{Host, Port}|T], SocketType, Timeout, HostData, Ctx) ->
+ case catch orber_iiop_pm:connect(Host, Port, SocketType, Timeout,
+ HostData#host_data.charset,
+ HostData#host_data.wcharset, Ctx) of
+ {ok, P, Ctx2, Int, Interface} ->
+ {P, Ctx2, Int, Interface};
+ {'EXCEPTION', #'BAD_CONTEXT'{} = CtxExc} ->
+ orber:dbg("[~p] orber_iiop:try_connect(~p, ~p) failed~n",
+ [?LINE, Host, Port], ?DEBUG_LEVEL),
+ corba:raise(CtxExc);
+ {'EXCEPTION', _PMExc} ->
+ try_connect(T, SocketType, Timeout, HostData, Ctx);
+ {'EXIT',{timeout,_}} ->
+ orber:dbg("[~p] orber_iiop:try_connect(~p, ~p, ~p)~n"
+ "Connect attempt timed out",
+ [?LINE, Host, Port, Timeout], ?DEBUG_LEVEL),
+ try_connect(T, SocketType, Timeout, HostData, Ctx);
+ {'EXIT', What} ->
+ orber:dbg("[~p] orber_iiop:try_connect(~p, ~p, ~p)~n"
+ "Connect attempt resulted in: ~p",
+ [?LINE, Host, Port, Timeout, What], ?DEBUG_LEVEL),
+ try_connect(T, SocketType, Timeout, HostData, Ctx)
+ end.
+
diff --git a/lib/orber/src/orber_iiop.hrl b/lib/orber/src/orber_iiop.hrl
new file mode 100644
index 0000000000..7a30af63e4
--- /dev/null
+++ b/lib/orber/src/orber_iiop.hrl
@@ -0,0 +1,1015 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File: orber_iiop.hrl
+%%
+%%----------------------------------------------------------------------
+-ifndef(orber_iiop_hrl).
+-define(orber_iiop_hrl, true).
+
+-include_lib("orber/include/corba.hrl").
+
+%% The identifiers which indicates if a fixed value has a negative or
+%% positive scale.
+-define(FIXED_NEGATIVE, 13).
+-define(FIXED_POSITIVE, 12).
+
+%% Used instead of IFR-id's in TypeCode definitions for internal data types.
+-define(SYSTEM_TYPE, 0).
+
+%% Major version of GIOP protocol which are supported
+-define(GIOP_MAJOR, 1).
+
+%% Minor version of GIOP protocol which are supported
+-define(GIOP_MINOR, 0).
+
+%% Major version of IIOP protocol which are supported
+-define(IIOP_MAJOR, 1).
+
+%% Minor version of IIOP protocol which are supported
+-define(IIOP_MINOR, 0).
+
+%% Fragment flags for the flags bitfield in GIOP message headers
+-define(GIOP_BYTE_ORDER_MSB, 0).
+-define(GIOP_BYTE_ORDER_LSB, 1).
+
+%% Fragment flags for the flags bitfield in GIOP message headers
+-define(GIOP_MORE_FRAGMENTS_FALSE, 0).
+-define(GIOP_MORE_FRAGMENTS_TRUE, 1).
+
+%% GIOP Message Types
+-define(GIOP_MSG_REQUEST, 0).
+-define(GIOP_MSG_REPLY, 1).
+-define(GIOP_MSG_CANCEL_REQUEST, 2).
+-define(GIOP_MSG_LOCATE_REQUEST, 3).
+-define(GIOP_MSG_LOCATE_REPLY, 4).
+-define(GIOP_MSG_CLOSE_CONNECTION, 5).
+-define(GIOP_MSG_MESSAGE_ERROR, 6).
+-define(GIOP_MSG_FRAGMENT, 7).
+
+%% PROFILE_ID's
+-define(TAG_INTERNET_IOP, 0).
+-define(TAG_MULTIPLE_COMPONENTS, 1).
+-define(TAG_SCCP_IOP, 2).
+
+
+%% COMPONENT_ID's
+-define(TAG_ORB_TYPE, 0).
+-define(TAG_CODE_SETS, 1).
+-define(TAG_POLICIES, 2).
+-define(TAG_ALTERNATE_IIOP_ADDRESS, 3).
+-define(TAG_COMPLETE_OBJECT_KEY, 5).
+-define(TAG_ENDPOINT_ID_POSITION, 6).
+-define(TAG_LOCATION_POLICY, 12).
+-define(TAG_ASSOCIATION_OPTIONS, 13).
+-define(TAG_SEC_NAME, 14).
+-define(TAG_SPKM_1_SEC_MECH, 15).
+-define(TAG_SPKM_2_SEC_MECH, 16).
+-define(TAG_KerberosV5_SEC_MECH, 17).
+-define(TAG_CSI_ECMA_Secret_SEC_MECH, 18).
+-define(TAG_CSI_ECMA_Hybrid_SEC_MECH, 19).
+-define(TAG_SSL_SEC_TRANS, 20).
+-define(TAG_CSI_ECMA_Public_SEC_MECH, 21).
+-define(TAG_GENERIC_SEC_MECH, 22).
+-define(TAG_FIREWALL_TRANS, 23).
+-define(TAG_SCCP_CONTACT_INFO, 24).
+-define(TAG_JAVA_CODEBASE, 25).
+-define(TAG_TRANSACTION_POLICY, 26).
+-define(TAG_FT_GROUP, 27).
+-define(TAG_FT_PRIMARY, 28).
+-define(TAG_FT_HEARTBEAT_ENABLED, 29).
+-define(TAG_MESSAGE_ROUTERS, 30).
+-define(TAG_OTS_POLICY, 31).
+-define(TAG_INV_POLICY, 32).
+-define(TAG_CSI_SEC_MECH_LIST, 33).
+-define(TAG_NULL_TAG, 34).
+-define(TAG_SECIOP_SEC_TRANS, 35).
+-define(TAG_TLS_SEC_TRANS, 36).
+-define(TAG_DCE_STRING_BINDING, 100).
+-define(TAG_DCE_BINDING_NAME, 101).
+-define(TAG_DCE_NO_PIPES, 102).
+-define(TAG_DCE_SEC_MECH, 103).
+-define(TAG_INET_SEC_TRANS, 123).
+
+%% COMPONENT_ID strings
+-define(TAG_ORB_TYPE_STR, "TAG_ORB_TYPE").
+-define(TAG_CODE_SETS_STR, "TAG_CODE_SETS").
+-define(TAG_POLICIES_STR, "TAG_POLICIES").
+-define(TAG_ALTERNATE_IIOP_ADDRESS_STR, "TAG_ALTERNATE_IIOP_ADDRESS").
+-define(TAG_COMPLETE_OBJECT_KEY_STR, "TAG_COMPLETE_OBJECT_KEY").
+-define(TAG_ENDPOINT_ID_POSITION_STR, "TAG_ENDPOINT_ID_POSITION").
+-define(TAG_LOCATION_POLICY_STR, "TAG_LOCATION_POLICY").
+-define(TAG_ASSOCIATION_OPTIONS_STR, "TAG_ASSOCIATION_OPTIONS").
+-define(TAG_SEC_NAME_STR, "TAG_SEC_NAME").
+-define(TAG_SPKM_1_SEC_MECH_STR, "TAG_SPKM_1_SEC_MECH").
+-define(TAG_SPKM_2_SEC_MECH_STR, "TAG_SPKM_2_SEC_MECH").
+-define(TAG_KerberosV5_SEC_MECH_STR, "TAG_KerberosV5_SEC_MECH").
+-define(TAG_CSI_ECMA_Secret_SEC_MECH_STR, "TAG_CSI_ECMA_Secret_SEC_MECH").
+-define(TAG_CSI_ECMA_Hybrid_SEC_MECH_STR, "TAG_CSI_ECMA_Hybrid_SEC_MECH").
+-define(TAG_SSL_SEC_TRANS_STR, "TAG_SSL_SEC_TRANS").
+-define(TAG_CSI_ECMA_Public_SEC_MECH_STR, "(TAG_CSI_ECMA_Public_SEC_MECH").
+-define(TAG_GENERIC_SEC_MECH_STR, "TAG_GENERIC_SEC_MECH").
+-define(TAG_FIREWALL_TRANS_STR, "TAG_FIREWALL_TRANS").
+-define(TAG_SCCP_CONTACT_INFO_STR, "TAG_SCCP_CONTACT_INFO").
+-define(TAG_JAVA_CODEBASE_STR, "TAG_JAVA_CODEBASE").
+-define(TAG_TRANSACTION_POLICY_STR, "TAG_TRANSACTION_POLICY").
+-define(TAG_FT_GROUP_STR, "TAG_FT_GROUP").
+-define(TAG_FT_PRIMARY_STR, "TAG_FT_PRIMARY").
+-define(TAG_FT_HEARTBEAT_ENABLED_STR, "TAG_FT_HEARTBEAT_ENABLED").
+-define(TAG_MESSAGE_ROUTERS_STR, "TAG_MESSAGE_ROUTERS").
+-define(TAG_OTS_POLICY_STR, "TAG_OTS_POLICY").
+-define(TAG_INV_POLICY_STR, "TAG_INV_POLICY").
+-define(TAG_CSI_SEC_MECH_LIST_STR, "TAG_CSI_SEC_MECH_LIST").
+-define(TAG_NULL_TAG_STR, "TAG_NULL_TAG").
+-define(TAG_SECIOP_SEC_TRANS_STR, "TAG_SECIOP_SEC_TRANS").
+-define(TAG_TLS_SEC_TRANS_STR, "TAG_TLS_SEC_TRANS").
+-define(TAG_DCE_STRING_BINDING_STR, "TAG_DCE_STRING_BINDING").
+-define(TAG_DCE_BINDING_NAME_STR, "TAG_DCE_BINDING_NAME").
+-define(TAG_DCE_NO_PIPES_STR, "TAG_DCE_NO_PIPES").
+-define(TAG_DCE_SEC_MECH_STR, "TAG_DCE_SEC_MECH").
+-define(TAG_INET_SEC_TRANS_STR, "TAG_INET_SEC_TRANS").
+
+%% GIOP header size
+-define(GIOP_HEADER_SIZE, 12).
+
+%% CODESET's we support.
+%% Latin-1. This CodeSet is default if no information exists in the IOR.
+-define(ISO8859_1_ID, 16#00010001).
+
+%% UTF-16, UCS Transformation Format 16-bit form
+-define(UTF_16_ID, 16#00010109).
+
+%% X/Open UTF-8; UCS Transformation Format 8 (UTF-8)
+-define(UTF_8_ID, 16#05010001).
+
+%% The limited UTF-16 without the surrogate mechanism is called UCS-2.
+%% The two-byte subset which is identical with the original Unicode.
+%% UCS-2, Level 1. Used by JDK-1.3 as native wchar.
+-define(UCS_2_ID, 16#00010100).
+
+%% ISO 646:1991 IRV (International Reference Version).
+%% Used by JavaIDL as Native Char (JDK-1.3). A.k.a PCS.
+-define(ISO646_IRV_ID, 16#00010020).
+
+%% Fallback is *not* the same thing as default!!
+-define(FALLBACK_CHAR, 16#05010001).
+-define(FALLBACK_WCHAR, 16#00010109).
+
+%% This is used when the wchar codeset is unknown.
+-define(UNSUPPORTED_WCHAR, 0).
+
+%% Integer limits
+-define(SHORTMIN, -32768).
+-define(SHORTMAX, 32767).
+-define(USHORTMIN, 0).
+-define(USHORTMAX, 65535).
+-define(LONGMIN, -2147483648).
+-define(LONGMAX, 2147483647).
+-define(ULONGMIN, 0).
+-define(ULONGMAX, 4294967295).
+-define(LONGLONGMIN, -9223372036854775808).
+-define(LONGLONGMAX, 9223372036854775807).
+-define(ULONGLONGMIN, 0).
+-define(ULONGLONGMAX, 18446744073709551615).
+
+
+-define(ORBER_GENERIC_CTX, {'tk_sequence', 'tk_octet', 0}).
+
+
+%%----------------------------------------------------------------------
+%% GIOP Message Header
+%%
+%% magic: identifies the GIOP message headers, array of four characters.
+%% giop_version: contains the version number of the giop protocol being
+%% used in the message.
+%% byte_order: indicating the byte order being used in subsequent
+%% elements of the message.
+%% 0 - big-endian byte ordering, 1 - little-endian byte ordering
+%% fragments: true if more fragments follow, otherwise false.
+%% message_type: indicating the type of the message
+%% message_size: gives the length of the message following the message
+%% headerin octets.
+%%----------------------------------------------------------------------
+-record(giop_message, {magic,
+ giop_version,
+ byte_order,
+ fragments = false,
+ message_type,
+ message_size,
+ message}).
+
+
+
+%%----------------------------------------------------------------------
+%% Request Message Header
+%%
+%% service_context: contains ORB service data being passed from client to server.
+%% (IOP::ServiceContextList)
+%% request_id: id used to assosciate reply messages with request messages.
+%% response_expected: true if the request is expected to have a reply message.
+%% object_key: identifies the object wich is the target of the invocation.
+%% operation: contains the name of the operation being invoked.
+%% requesting_principal: contains a value that identifying the requesting
+%% principal.
+%%----------------------------------------------------------------------
+-record(request_header, {service_context, request_id, response_expected, object_key, operation, requesting_principal}).
+
+
+
+%%----------------------------------------------------------------------
+%% Reply Message Header
+%%
+%% service_context: contains ORB service data being passed from client to server.
+%% (IOP::ServiceContextList)
+%% request_id: id used to assosciate reply messages with request messages.
+%% reply_status: indicates the completion status of the request
+%%----------------------------------------------------------------------
+-record(reply_header, {service_context, request_id, reply_status}).
+
+
+
+%%----------------------------------------------------------------------
+%% Cancel Request Message Header
+%%
+%% request_id: id used to assosciate reply messages with request messages.
+%%----------------------------------------------------------------------
+-record(cancel_request_header, {request_id}).
+
+
+
+%%----------------------------------------------------------------------
+%% Locate Request Message Header
+%%
+%% request_id: id used to assosciate reply messages with request messages.
+%% object_key: identifies the object being located (octet sequence).
+%%----------------------------------------------------------------------
+-record(locate_request_header, {request_id, object_key}).
+
+
+
+%%----------------------------------------------------------------------
+%% Locate Reply Message Header
+%%
+%% request_id: id used to assosciate reply messages with request messages.
+%% locate_status: indicates the completion status of the locate request
+%%----------------------------------------------------------------------
+-record(locate_reply_header, {request_id, locate_status}).
+
+
+
+%%----------------------------------------------------------------------
+%% Profile Body
+%%
+%% iiop_version: describes the version of IIOP that the agent at the
+%% specified adress is prepared to receive.
+%% host: identifies the internet host to which the GIOP messages
+%% for the specified object may be sent.
+%% port: contains the TCP?IP port number where the target agnet is listening
+%% for connection requests.
+%% object_key: is an opaque value supplied by the agent producing the IOR.
+%%----------------------------------------------------------------------
+-record(profile_body, {iiop_version,host,port,object_key}).
+
+%%----------------------------------------------------------------------
+%% Version
+%%
+%% major: major version number of iiop protocol
+%% minor: minor version number of iiop protocol.
+%%
+%% When an agnet generates profiles specifying a particular version,
+%% it must be able to accept messages complying with the specified
+%% version or any porevious minor version.
+%%----------------------------------------------------------------------
+-record(version, {major,minor}).
+
+%%----------------------------------------------------------------------
+%% Fragment Message Header
+%%
+%% request_id:
+%%----------------------------------------------------------------------
+-record(fragment_header, {request_id}).
+
+
+%%----------------------------------------------------------------------
+%% ORB_FLAGS macros. Used in the local object references {_,_,_,_,_,Flags}.
+%%
+%%----------------------------------------------------------------------
+
+%% Definition of flag positions:
+-define(ORB_SEC_ATTRIBUTES, 16#01).
+-define(ORB_CONTEXT, 16#02).
+-define(ORB_TYPECHECK, 16#04).
+-define(ORB_NO_SECURITY, 16#08).
+-define(ORB_SURVIVE_EXIT, 16#10).
+-define(ORB_USE_PI, 16#20).
+
+-define(ORB_INIT_FLAGS, 16#00).
+
+%%----------------------------------------------------------------------
+%% Flags used as configuration parameters (application env).
+%%
+%%----------------------------------------------------------------------
+-define(ORB_ENV_EXCLUDE_CODESET_COMPONENT, 16#01). %% FIXED!!
+-define(ORB_ENV_LOCAL_TYPECHECKING, 16#02). %% FIXED!!
+-define(ORB_ENV_HOSTNAME_IN_IOR, 16#04). %% FIXED!!
+-define(ORB_ENV_ENABLE_NAT, 16#08). %% FIXED!!
+-define(ORB_ENV_PARTIAL_SECURITY, 16#10). %% FIXED FOR NOW!! INTERNAL
+-define(ORB_ENV_USE_PI, 16#20). %% FIXED!!
+-define(ORB_ENV_USE_FT, 16#40). %% WILL PROBABLY BE FIXED!!
+-define(ORB_ENV_LIGHT_IFR, 16#80). %% FIXED!!
+-define(ORB_ENV_USE_IPV6, 16#100). %% FIXED!!
+-define(ORB_ENV_SURVIVE_EXIT, 16#200). %% FIXED!!
+-define(ORB_ENV_USE_ACL_INCOMING, 16#400). %% FIXED!!
+-define(ORB_ENV_USE_ACL_OUTGOING, 16#800). %% FIXED!!
+-define(ORB_ENV_LOCAL_INTERFACE, 16#1000). %% FIXED!!
+
+-define(ORB_ENV_USE_BI_DIR_IIOP, 16#2000). %% CAN BE CHANGED
+-define(ORB_ENV_USE_CSIV2, 16#4000). %% CAN BE CHANGED
+-define(ORB_ENV_EXCLUDE_CODESET_CTX, 16#8000). %% CAN BE CHANGED
+
+
+-define(ORB_ENV_INIT_FLAGS, 16#00).
+
+-define(ORB_ENV_FLAGS,
+ [{?ORB_ENV_EXCLUDE_CODESET_CTX, "Exclude CodeSet Ctx"},
+ {?ORB_ENV_LOCAL_TYPECHECKING, "Local Typechecking"},
+ {?ORB_ENV_HOSTNAME_IN_IOR, "Use Hostname in IOR"},
+ {?ORB_ENV_EXCLUDE_CODESET_COMPONENT, "Exclude CodeSet Component"},
+ {?ORB_ENV_ENABLE_NAT, "NAT Enabled"},
+ {?ORB_ENV_USE_CSIV2, "CSIv2 Activated"},
+ {?ORB_ENV_USE_FT, "Fault Tolerance Activated"},
+ {?ORB_ENV_USE_IPV6, "IPv6 Activated"},
+ {?ORB_ENV_SURVIVE_EXIT, "EXIT Tolerance Activated"},
+ {?ORB_ENV_USE_PI, "Local Interceptors"},
+ {?ORB_ENV_LIGHT_IFR, "Light IFR"},
+ {?ORB_ENV_USE_BI_DIR_IIOP, "Use BiDirIIOP"},
+ {?ORB_ENV_USE_ACL_INCOMING, "Use ACL for Incoming Connections"},
+ {?ORB_ENV_USE_ACL_OUTGOING, "Use ACL for Outgoing Connections"},
+ {?ORB_ENV_LOCAL_INTERFACE, "Use the Proxy Interface in Exported IOR:s"}]).
+
+
+%%----------------------------------------------------------------------
+%% Definition of flag operations
+%%
+%%----------------------------------------------------------------------
+%% USAGE: Boolean = ?ORB_FLAG_TEST(Flags, ?ORB_SEC_ATTRIBUTES)
+-define(ORB_FLAG_TEST(_F1, _I1), ((_F1 band _I1) == _I1)).
+
+%% USAGE: NewFlags = ?ORB_SET_TRUE(Flags, ?ORB_CONTEXT)
+-define(ORB_SET_TRUE(_F2, _I2), (_I2 bor _F2)).
+
+%% USAGE: NewFlags = ?ORB_SET_FALSE(Flags, ?ORB_CONTEXT)
+-define(ORB_SET_FALSE(_F3, _I3), ((_I3 bxor 16#ff) band _F3)).
+
+%% USAGE: NewFlags = ?ORB_SET_FALSE_LIST(Flags, [?ORB_SEC_ATTRIBUTES, ?ORB_SOME])
+-define(ORB_SET_FALSE_LIST(_F4, _IList1),
+ lists:foldl(fun(_I4, _F5) ->
+ ((_I4 bxor 16#ff) band _F5)
+ end,
+ _F4, _IList1)).
+
+%% USAGE: NewFlags = ?ORB_SET_TRUE_LIST(Flags, [?ORB_SEC_ATTRIBUTES, ?ORB_SOME])
+-define(ORB_SET_TRUE_LIST(_F6, _IList2),
+ lists:foldl(fun(_I6, _F7) ->
+ (_I6 bor _F7)
+ end,
+ _F6, _IList2)).
+
+%% USAGE: Boolean = ?ORB_FLAG_TEST_LIST(Flags, [?ORB_CONTEXT, ?ORB_THING])
+-define(ORB_FLAG_TEST_LIST(_F8, _IList3),
+ lists:all(fun(_I7) ->
+ ((_F8 band _I7) == _I7)
+ end,
+ _IList3)).
+
+%%----------------------------------------------------------------------
+%% IOR
+%%
+%%----------------------------------------------------------------------
+-record('IOP_IOR', {type_id, profiles}).
+-record('IOP_TaggedProfile', {tag, profile_data}).
+-record('IIOP_ProfileBody_1_0', {iiop_version,
+ host,
+ port,
+ object_key}).
+-record('IIOP_ProfileBody_1_1', {iiop_version,
+ host,
+ port,
+ object_key,
+ components}).
+
+-record('GIOP_Version', {major, minor}).
+
+-record('IIOP_Version', {major, minor}).
+
+-record('SSLIOP_SSL', {target_supports, target_requires, port}).
+
+-record('IOP_TaggedComponent', {tag, component_data}).
+
+-record('GIOP_TargetAddress', {label, value}).
+
+-record('GIOP_IORAddressingInfo', {selected_profile_index, ior}).
+
+
+%%
+%% Nil object reference
+%%
+-define(ORBER_NIL_OBJREF, #'IOP_IOR' {type_id = "", profiles = []}).
+
+-define(IOR_TYPEDEF, {'tk_struct', ?SYSTEM_TYPE, 'IOP_IOR',
+ [{"type_id", {'tk_string', 0}},
+ {"profiles", {'tk_sequence', {'tk_struct', ?SYSTEM_TYPE,
+ 'IOP_TaggedProfile',
+ [{"tag", 'tk_ulong'},
+ {"profile_data",
+ {'tk_sequence', 'tk_octet', 0}}]}, 0}}]}).
+
+-define(GIOP_VERSION, {'tk_struct', ?SYSTEM_TYPE, 'GIOP_Version',
+ [{"major", 'tk_octet'},
+ {"minor", 'tk_octet'}]}).
+
+-define(IIOP_VERSION, {'tk_struct', ?SYSTEM_TYPE, 'IIOP_Version',
+ [{"major vsn", 'tk_octet'},
+ {"minor vsn", 'tk_octet'}]}).
+-define(IOP_TAGGEDCOMPONENT, {'tk_struct', ?SYSTEM_TYPE,
+ 'IOP_TaggedComponent',
+ [{"tag", 'tk_ulong'},
+ {"component_data",
+ {'tk_sequence',
+ 'tk_octet', 0}}]}).
+-define(IOP_TAGGEDCOMPONENT_SEQ, {'tk_sequence', ?IOP_TAGGEDCOMPONENT, 0}).
+
+-define(PROFILEBODY_1_0_TYPEDEF, {'tk_struct', ?SYSTEM_TYPE, 'IIOP_ProfileBody_1_0',
+ [{"iiop_version", ?IIOP_VERSION },
+ {"host", {'tk_string', 0}},
+ {"port", 'tk_ushort'},
+ {"object_key", {'tk_sequence', 'tk_octet', 0}}]}).
+
+-define(PROFILEBODY_1_1_TYPEDEF, {'tk_struct', ?SYSTEM_TYPE, 'IIOP_ProfileBody_1_1',
+ [{"iiop_version",?IIOP_VERSION },
+ {"host", {'tk_string', 0}},
+ {"port", 'tk_ushort'},
+ {"object_key", {'tk_sequence', 'tk_octet', 0}}
+ {"components", ?IOP_TAGGEDCOMPONENT_SEQ}]}).
+
+-define(PROFILEBODY_1_2_TYPEDEF, {'tk_struct', ?SYSTEM_TYPE, 'IIOP_ProfileBody_1_1',
+ [{"iiop_version",?IIOP_VERSION },
+ {"host", {'tk_string', 0}},
+ {"port", 'tk_ushort'},
+ {"object_key", {'tk_sequence', 'tk_octet', 0}}
+ {"components", ?IOP_TAGGEDCOMPONENT_SEQ}]}).
+
+-define(SSLIOP_SSL, {'tk_struct', ?SYSTEM_TYPE, 'SSLIOP_SSL',
+ [{"target_supports", 'tk_ushort'},
+ {"target_requires", 'tk_ushort'},
+ {"port", 'tk_ushort'}]}).
+
+-define(GIOP_KeyAddr, 0).
+-define(GIOP_ProfileAddr, 1).
+-define(GIOP_ReferenceAddr, 2).
+
+-define(TARGETADDRESS, {'tk_union', ?SYSTEM_TYPE, 'GIOP_TargetAddress', 'tk_short', -1,
+ [{?GIOP_KeyAddr, "object_key", {'tk_sequence', 'tk_octet', 0}},
+ {?GIOP_ProfileAddr, "profile", {'tk_struct', ?SYSTEM_TYPE,
+ 'IOP_TaggedProfile',
+ [{"tag", 'tk_ulong'},
+ {"profile_data",
+ {'tk_sequence', 'tk_octet', 0}}]}},
+ {?GIOP_ReferenceAddr, "ior", {'tk_struct', ?SYSTEM_TYPE,
+ 'GIOP_IORAddressingInfo',
+ [{"selected_profile_index", 'tk_ulong'},
+ {"ior", ?IOR_TYPEDEF}]}}]}).
+
+% Zero or more instances of the TAG_ALTERNATE_IIOP_ADDRESS component type
+% may be included in a version 1.2 TAG_INTERNET_IOP Profile.
+-record('ALTERNATE_IIOP_ADDRESS', {'HostID', 'Port'}).
+-define(ALTERNATE_IIOP_ADDRESS, {'tk_struct', ?SYSTEM_TYPE,
+ 'ALTERNATE_IIOP_ADDRESS',
+ [{"HostID", {'tk_string', 0}},
+ {"Port", 'tk_ushort'}]}).
+% The TAG_ORB_TYPE component can appear at most once in any IOR profile. For
+% profiles supporting IIOP 1.1 or greater, it is optionally present.
+-define(ORB_TYPE, 'tk_ulong').
+
+-record('CONV_FRAME_CodeSetComponent', {native_code_set, conversion_code_sets}).
+-record('CONV_FRAME_CodeSetComponentInfo', {'ForCharData', 'ForWcharData'}).
+-define(CONV_FRAME_CODESETCOMPONENT, {'tk_struct', ?SYSTEM_TYPE,
+ 'CONV_FRAME_CodeSetComponent',
+ [{"native_code_set", 'tk_ulong'},
+ {"conversion_code_sets",
+ {'tk_sequence', 'tk_ulong', 0}}]}).
+-define(CONV_FRAME_CODESETCOMPONENTINFO, {'tk_struct', ?SYSTEM_TYPE,
+ 'CONV_FRAME_CodeSetComponentInfo',
+ [{"ForCharData",
+ ?CONV_FRAME_CODESETCOMPONENT},
+ {"ForWcharData",
+ ?CONV_FRAME_CODESETCOMPONENT}]}).
+
+
+
+
+-define(DEFAULT_FOR_CHAR, #'CONV_FRAME_CodeSetComponent'{native_code_set=?ISO8859_1_ID,
+ conversion_code_sets=[]}).
+-define(DEFAULT_FOR_WCHAR, #'CONV_FRAME_CodeSetComponent'{native_code_set=?UTF_16_ID,
+ conversion_code_sets=[]}).
+-define(DEFAULT_CODESETS,
+ #'CONV_FRAME_CodeSetComponentInfo'{'ForCharData' = ?DEFAULT_FOR_CHAR,
+ 'ForWcharData' = ?DEFAULT_FOR_WCHAR}).
+
+%% Fragmentation - IIOP-1.1 & 1.2
+-record('GIOP_FragmentHeader_1_2', {request_id}).
+
+-define(GIOP_FragmentHeader_1_2, {'tk_struct', ?SYSTEM_TYPE,
+ 'GIOP_FragmentHeader_1_2',
+ [{"request_id", 'tk_ulong'}]}).
+
+%%------ MISC Definitions -------
+%% TimeBase::TimeT (TimeBase.idl) is defined as
+%% typedef unsigned long long TimeT;
+-define(TimeBase_TimeT, 'tk_ulonglong').
+
+%%------ Fault Tolerant Definitions -------
+
+%% Specification for Interoperable Object Group References
+-define(FT_FTDomainId, {'tk_string', 0}).
+-define(FT_ObjectGroupId, 'tk_ulonglong').
+-define(FT_ObjectGroupRefVersion, 'tk_ulong').
+%% A GIOP::Version of 1.0 indicates that the implementation is compliant
+%% with the CORBA-2.6 specification.
+%% tag = TAG_FT_GROUP
+-record('FT_TagFTGroupTaggedComponent', {version = #'GIOP_Version'{major = 1,
+ minor = 0},
+ ft_domain_id, object_group_id,
+ object_group_ref_version}).
+-define(FT_TagFTGroupTaggedComponent, {'tk_struct', ?SYSTEM_TYPE, 'FT_TagFTGroupTaggedComponent',
+ [{"version", ?GIOP_VERSION},
+ {"ft_domain_id", ?FT_FTDomainId},
+ {"object_group_id", ?FT_ObjectGroupId},
+ {"object_group_ref_version", ?FT_ObjectGroupRefVersion}]}).
+
+%% tag = TAG_FT_PRIMARY;
+-record('FT_TagFTPrimaryTaggedComponent', {primary}).
+-define(FT_TagFTPrimaryTaggedComponent, {'tk_struct', ?SYSTEM_TYPE, 'FT_TagFTPrimaryTaggedComponent',
+ [{"primary", 'tk_boolean'}]}).
+
+
+%% Specification for Most Recent Object Group Reference
+%% context_id = FT_GROUP_VERSION;
+-record('FT_FTGroupVersionServiceContext', {object_group_ref_version}).
+-define(FT_FTGroupVersionServiceContext, {'tk_struct', ?SYSTEM_TYPE, 'FT_FTGroupVersionServiceContext',
+ [{"object_group_ref_version", ?FT_ObjectGroupRefVersion}]}).
+
+%% Specification for Transparent Reinvocation
+-define(FT_PolicyType_REQUEST_DURATION_POLICY, 47).
+
+%% context_id = FT_REQUEST
+-record('FT_FTRequestServiceContext', {client_id, retention_id, expiration_time}).
+-define(FT_FTRequestServiceContext, {'tk_struct', ?SYSTEM_TYPE, 'FT_FTRequestServiceContext',
+ [{"client_id", {'tk_string', 0}},
+ {"retention_id", 'tk_long'},
+ {"expiration_time", ?TimeBase_TimeT}]}).
+
+%% Specification for Transport Heartbeats
+-define(FT_PolicyType_HEARTBEAT_POLICY, 48).
+-define(FT_PolicyType_HEARTBEAT_ENABLED_POLICY, 49).
+
+%% tag = TAG_FT_HEARTBEAT_ENABLED;
+-record('FT_TagFTHeartbeatEnabledTaggedComponent', {heartbeat_enabled}).
+-define(FT_TagFTHeartbeatEnabledTaggedComponent, {'tk_struct', ?SYSTEM_TYPE, 'FT_TagFTHeartbeatEnabledTaggedComponent',
+ [{"heartbeat_enabled", 'tk_boolean'}]}).
+
+
+%%------ CSI stuff - required by the SAS protocol. -------
+%% This constant defines the current level we support.
+-define(CSIv2_MAX_TARGET_REQUIRES, 16#488).
+
+%% NOTE! The OMG VMCID is incorrect in the SAS specification, should be
+%% OMGVMCID = 0x4f4d0000;
+-define(CSI_OMGVMCID, ?CORBA_OMGVMCID).
+
+%% ASN.1 Encoding of an OBJECT IDENTIFIER
+-define(CSI_OID, {'tk_sequence', 'tk_octet', 0}).
+-define(CSI_OIDList, {'tk_sequence', ?CSI_OID, 0}).
+
+%% An X509CertificateChain contains an ASN.1 BER encoded SEQUENCE
+%% [1..MAX] OF X.509 certificates encapsulated in a sequence of octets. The
+%% subject:s certificate shall come first in the list. Each following
+%% certificate shall directly certify the one preceding it. The ASN.1
+%% representation of Certificate is as defined in [IETF RFC 2459].
+-define(CSI_X509CertificateChain, {'tk_sequence', 'tk_octet', 0}).
+
+%% an X.501 type name or Distinguished Name encapsulated in a sequence of
+%% octets containing the ASN.1 encoding.
+-define(CSI_X501DistinguishedName, {'tk_sequence', 'tk_octet', 0}).
+
+%% UTF-8 Encoding of String
+-define(CSI_UTF8String, {'tk_sequence', 'tk_octet', 0}).
+
+%% A sequence of octets containing a GSStoken. Initial context tokens are
+%% ASN.1 encoded as defined in [IETF RFC 2743] Section 3.1,
+%% "Mechanism-Independent token Format", pp. 81-82. Initial context tokens
+%% contain an ASN.1 tag followed by a token length, a mechanism identifier,
+%% and a mechanism-specific token (i.e. a GSSUP::InitialContextToken). The
+%% encoding of all other GSS tokens (e.g. error tokens and final context
+%% tokens) is mechanism dependent.
+-define(CSI_GSSToken, {'tk_sequence', 'tk_octet', 0}).
+
+%% An encoding of a GSS Mechanism-Independent Exported Name Object as
+%% defined in [IETF RFC 2743] Section 3.2, "GSS Mechanism-Independent
+%% Exported Name Object Format," p. 84.
+-define(CSI_GSS_NT_ExportedName, {'tk_sequence', 'tk_octet', 0}).
+-define(CSI_GSS_NT_ExportedNameList, {'tk_sequence', ?CSI_GSS_NT_ExportedName, 0}).
+
+%% The MsgType enumeration defines the complete set of service context
+%% message types used by the CSI context management protocols, including
+%% those message types pertaining only to the stateful application of the
+%% protocols (to insure proper alignment of the identifiers between
+%% stateless and stateful implementations). Specifically, the
+%% MTMessageInContext is not sent by stateless clients (although it may
+%% be received by stateless targets).
+-define(CSI_MsgType, 'tk_short').
+-define(CSI_MsgType_MTEstablishContext, 0).
+-define(CSI_MsgType_MTCompleteEstablishContext, 1).
+-define(CSI_MsgType_MTContextError, 4).
+-define(CSI_MsgType_MTMessageInContext, 5).
+
+%% The ContextId type is used carry session identifiers. A stateless
+%% application of the service context protocol is indicated by a session
+%% identifier value of 0.
+-define(CSI_ContextId, 'tk_ulonglong').
+
+%% The AuthorizationElementType defines the contents and encoding of
+%% the_element field of the AuthorizationElement.
+%% The high order 20-bits of each AuthorizationElementType constant
+%% shall contain the Vendor Minor Codeset ID (VMCID) of the
+%% organization that defined the element type. The low order 12 bits
+%% shall contain the organization-scoped element type identifier. The
+%% high-order 20 bits of all element types defined by the OMG shall
+%% contain the VMCID allocated to the OMG (that is, 0x4F4D0).
+-define(CSI_AuthorizationElementType, 'tk_ulong').
+
+%% An AuthorizationElementType of X509AttributeCertChain indicates that
+%% the_element field of the AuthorizationElement contains an ASN.1 BER
+%% SEQUENCE composed of an (X.509) AttributeCertificate followed by a
+%% SEQUENCE OF (X.509) Certificate. The two-part SEQUENCE is encapsulated
+%% in an octet stream. The chain of identity certificates is provided
+%% to certify the attribute certificate. Each certificate in the chain
+%% shall directly certify the one preceding it. The first certificate
+%% in the chain shall certify the attribute certificate. The ASN.1
+%% representation of (X.509) Certificate is as defined in [IETF RFC 2459].
+%% The ASN.1 representation of (X.509) AtributeCertificate is as defined
+%% in [IETF ID PKIXAC].
+-define(CSI_X509AttributeCertChain, (?CSI_OMGVMCID bor 1)).
+-define(CSI_AuthorizationElementContents, {'tk_sequence', 'tk_octet', 0}).
+
+%% The AuthorizationElement contains one element of an authorization token.
+%% Each element of an authorization token is logically a PAC.
+%% The AuthorizationToken is made up of a sequence of AuthorizationElements
+%% --- NOTE ---
+%% OMG only defines 'CSI_X509AttributeCertChain' so we use it as default value.
+-record('CSI_AuthorizationElement', {the_type = ?CSI_X509AttributeCertChain,
+ the_element = []}).
+-define(CSIIOP_AuthorizationElement, {'tk_struct', ?SYSTEM_TYPE, 'CSI_AuthorizationElement',
+ [{"the_type", ?CSI_AuthorizationElementType},
+ {"the_element", ?CSI_AuthorizationElementContents}]}).
+-define(CSI_AuthorizationToken, {'tk_sequence', ?CSIIOP_AuthorizationElement, 0}).
+
+%% Additional standard identity token types shall only be defined by the
+%% OMG. All IdentityTokenType constants shall be a power of 2.
+-define(CSI_IdentityTokenType, 'tk_ulong').
+-define(CSI_IdentityTokenType_ITTAbsent, 0).
+-define(CSI_IdentityTokenType_ITTAnonymous, 1).
+-define(CSI_IdentityTokenType_ITTPrincipalName, 2).
+-define(CSI_IdentityTokenType_ITTX509CertChain, 4).
+-define(CSI_IdentityTokenType_ITTDistinguishedName, 8).
+
+-define(CSI_IdentityExtension, {'tk_sequence', 'tk_octet', 0}).
+-record('CSI_IdentityToken', {label, value}).
+-define(CSI_IdentityToken,
+ {'tk_union', ?SYSTEM_TYPE, 'CSI_IdentityToken',
+ ?CSI_IdentityTokenType, 5,
+ [{?CSI_IdentityTokenType_ITTAbsent, "absent", 'tk_boolean'},
+ {?CSI_IdentityTokenType_ITTAnonymous, "anonymous", 'tk_boolean'},
+ {?CSI_IdentityTokenType_ITTPrincipalName, "principal_name", ?CSI_GSS_NT_ExportedName},
+ {?CSI_IdentityTokenType_ITTX509CertChain, "certificate_chain", ?CSI_X509CertificateChain},
+ {?CSI_IdentityTokenType_ITTDistinguishedName, "dn", ?CSI_X501DistinguishedName},
+ {default, "id", ?CSI_IdentityExtension}]}).
+
+-record('CSI_EstablishContext', {client_context_id, authorization_token,
+ identity_token, client_authentication_token}).
+-define(CSI_EstablishContext, {'tk_struct', ?SYSTEM_TYPE, 'CSI_EstablishContext',
+ [{"client_context_id", ?CSI_ContextId},
+ {"authorization_token", ?CSI_AuthorizationToken},
+ {"identity_token", ?CSI_IdentityToken},
+ {"client_authentication_token", ?CSI_GSSToken}]}).
+
+-record('CSI_CompleteEstablishContext', {client_context_id, context_stateful,
+ final_context_token}).
+-define(CSI_CompleteEstablishContext, {'tk_struct', ?SYSTEM_TYPE, 'CSI_CompleteEstablishContext',
+ [{"client_context_id", ?CSI_ContextId},
+ {"context_stateful", 'tk_boolean'},
+ {"final_context_token", ?CSI_GSSToken}]}).
+
+-record('CSI_ContextError', {client_context_id, major_status,
+ minor_status, error_token}).
+-define(CSI_ContextError, {'tk_struct', ?SYSTEM_TYPE, 'CSI_ContextError',
+ [{"client_context_id", ?CSI_ContextId},
+ {"major_status", 'tk_long'},
+ {"minor_status", 'tk_long'},
+ {"error_token", ?CSI_GSSToken}]}).
+
+% Not sent by stateless clients. If received by a stateless server, a
+% ContextError message should be returned, indicating the session does
+% not exist.
+-record('CSI_MessageInContext', {client_context_id, discard_context}).
+-define(CSI_MessageInContext, {'tk_struct', ?SYSTEM_TYPE, 'CSI_MessageInContext',
+ [{"client_context_id", ?CSI_ContextId},
+ {"discard_context", 'tk_boolean'}]}).
+
+-record('CSI_SASContextBody', {label, value}).
+-define(CSI_SASContextBody,
+ {'tk_union', ?SYSTEM_TYPE, 'CSI_SASContextBody', ?CSI_MsgType, -1,
+ [{?CSI_MsgType_MTEstablishContext, "establish_msg", ?CSI_EstablishContext},
+ {?CSI_MsgType_MTCompleteEstablishContext, "complete_msg", ?CSI_CompleteEstablishContext},
+ {?CSI_MsgType_MTContextError, "error_msg", ?CSI_ContextError},
+ {?CSI_MsgType_MTMessageInContext, "in_context_msg", ?CSI_MessageInContext}]}).
+
+%% The following type represents the string representation of an ASN.1
+%% OBJECT IDENTIFIER (OID). OIDs are represented by the string "oid:"
+%% followed by the integer base 10 representation of the OID separated
+%% by dots. For example, the OID corresponding to the OMG is represented
+%% as: "oid:2.23.130"
+-define(CSI_StringOID, {'tk_string', 0}).
+
+
+%% The GSS Object Identifier for the KRB5 mechanism is:
+%% { iso(1) member-body(2) United States(840) mit(113554) infosys(1)
+%% gssapi(2) krb5(2) }
+%% Type ?CSI_StringOID
+-define(CSI_KRB5MechOID, "oid:1.2.840.113554.1.2.2").
+
+%% The GSS Object Identifier for name objects of the Mechanism-independent
+%% Exported Name Object type is:
+%% { iso(1) org(3) dod(6) internet(1) security(5) nametypes(6)
+%% gss-api-exported-name(4) }
+%% Type ?CSI_StringOID
+-define(CSI_GSS_NT_Export_Name_OID, "oid:1.3.6.1.5.6.4").
+
+%% The GSS Object Identifier for the scoped-username name form is:
+%% { iso-itu-t (2) international-organization (23) omg (130) security (1)
+%% naming (2) scoped-username(1) }
+%% Type ?CSI_StringOID
+-define(CSI_GSS_NT_Scoped_Username_OID, "oid:2.23.130.1.2.1").
+
+%%------ GSSUP stuff - required by the SAS protocol. -------
+%% The GSS Object Identifier allocated for the username/password mechanism is defined
+%% below.
+%% { iso-itu-t (2) international-organization (23) omg (130)
+%% security (1) authentication (1) gssup-mechanism (1) }
+%% Type ?CSI_StringOID
+-define(GSSUP_GSSUPMechOID, "oid:2.23.130.1.1.1").
+
+%% The following structure defines the inner contents of the
+%% username password initial context token. This structure is
+%% CDR encapsulated and appended at the end of the
+%% username/password GSS (initial context) Token.
+-record('GSSUP_InitialContextToken', {username, password, target_name}).
+-define(GSSUP_InitialContextToken, {'tk_struct', ?SYSTEM_TYPE, 'GSSUP_InitialContextToken',
+ [{"username", ?CSI_UTF8String},
+ {"password", ?CSI_UTF8String},
+ {"target_name", ?CSI_GSS_NT_ExportedName}]}).
+
+-define(GSSUP_ErrorCode, 'tk_ulong').
+
+%% GSSUP Mechanism-Specific Error Token
+-record('GSSUP_ErrorToken', {error_code}).
+-define(GSSUP_ErrorToken, {'tk_struct', ?SYSTEM_TYPE, 'GSSUP_ErrorToken',
+ [{"error_code", ?GSSUP_ErrorCode}]}).
+
+%% The context validator has chosen not to reveal the GSSUP
+%% specific cause of the failure.
+%% Type ?GSSUP_ErrorCode
+-define(GSSUP_GSS_UP_S_G_UNSPECIFIED, 1).
+
+%% The user identified in the username field of the
+%% GSSUP::InitialContextToken is unknown to the target.
+%% Type ?GSSUP_ErrorCode
+-define(GSSUP_GSS_UP_S_G_NOUSER, 2).
+
+%% The password supplied in the GSSUP::InitialContextToken was
+%% incorrect.
+%% Type ?GSSUP_ErrorCode
+-define(GSSUP_GSS_UP_S_G_BAD_PASSWORD, 3).
+
+%% The target_name supplied in the GSSUP::InitialContextToken does
+%% not match a target_name in a mechanism definition of the target.
+%% Type ?GSSUP_ErrorCode
+-define(GSSUP_GSS_UP_S_G_BAD_TARGET, 4).
+
+
+%%----- CSIIOP stuff - required by the SAS protocol. -----
+
+% AssociationOptions
+-define(CSIIOP_AssociationOptions, 'tk_ushort').
+%% AssociationOptions - constant definitions
+-define(CSIIOP_AssociationOptions_NoProtection, 1).
+-define(CSIIOP_AssociationOptions_Integrity, 2).
+-define(CSIIOP_AssociationOptions_Confidentiality, 4).
+-define(CSIIOP_AssociationOptions_DetectReplay, 8).
+-define(CSIIOP_AssociationOptions_DetectMisordering, 16).
+-define(CSIIOP_AssociationOptions_EstablishTrustInTarget, 32).
+-define(CSIIOP_AssociationOptions_EstablishTrustInClient, 64).
+-define(CSIIOP_AssociationOptions_NoDelegation, 128).
+-define(CSIIOP_AssociationOptions_SimpleDelegation, 256).
+-define(CSIIOP_AssociationOptions_CompositeDelegation, 512).
+-define(CSIIOP_AssociationOptions_IdentityAssertion, 1024).
+-define(CSIIOP_AssociationOptions_DelegationByClient, 2048).
+
+%% The high order 20-bits of each ServiceConfigurationSyntax constant
+%% shall contain the Vendor Minor Codeset ID (VMCID) of the
+%% organization that defined the syntax. The low order 12 bits shall
+%% contain the organization-scoped syntax identifier. The high-order 20
+%% bits of all syntaxes defined by the OMG shall contain the VMCID
+%% allocated to the OMG (that is, 0x4F4D0).
+%% NOTE! The OMG VMCID is incorrect in the SAS specification, should be
+%% OMGVMCID = 0x4f4d0000;
+-define(CSIIOP_ServiceConfigurationSyntax, 'tk_ulong').
+-define(CSIIOP_ServiceConfigurationSyntax_SCS_GeneralNames, (?CSI_OMGVMCID bor 0)).
+-define(CSIIOP_ServiceConfigurationSyntax_SCS_GSSExportedName, (?CSI_OMGVMCID bor 1)).
+
+-define(CSIIOP_ServiceSpecificName, {'tk_sequence', 'tk_octet', 0}).
+
+%% The name field of the ServiceConfiguration structure identifies a
+%% privilege authority in the format identified in the syntax field. If the
+%% syntax is SCS_GeneralNames, the name field contains an ASN.1 (BER)
+%% SEQUENCE [1..MAX] OF GeneralName, as defined by the type GeneralNames in
+%% [IETF RFC 2459]. If the syntax is SCS_GSSExportedName, the name field
+%% contains a GSS exported name encoded according to the rules in
+%% [IETF RFC 2743] Section 3.2, "Mechanism-Independent Exported Name
+%% Object Format," p. 84 (CORBA-2.6)
+-record('CSIIOP_ServiceConfiguration', {syntax, name}).
+-define(CSIIOP_ServiceConfiguration, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_ServiceConfiguration',
+ [{"syntax", ?CSIIOP_ServiceConfigurationSyntax},
+ {"name", ?CSIIOP_ServiceSpecificName}]}).
+-define(CSIIOP_ServiceConfigurationList, {'tk_sequence', ?CSIIOP_ServiceConfiguration, 0}).
+
+%% The body of the TAG_NULL_TAG component is a sequence of octets of
+%% length 0.
+
+%% type used to define AS layer functionality within a compound mechanism
+%% definition
+-record('CSIIOP_AS_ContextSec', {target_supports = 0, target_requires = 0,
+ client_authentication_mech, target_name}).
+-define(CSIIOP_AS_ContextSec, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_AS_ContextSec',
+ [{"target_supports", ?CSIIOP_AssociationOptions},
+ {"target_requires", ?CSIIOP_AssociationOptions},
+ {"client_authentication_mech", ?CSI_OID},
+ {"target_name", ?CSI_GSS_NT_ExportedName}]}).
+
+%% type used to define SAS layer functionality within a compound mechanism
+%% definition
+-record('CSIIOP_SAS_ContextSec', {target_supports = 0, target_requires = 0,
+ privilege_authorities,
+ supported_naming_mechanisms,
+ supported_identity_types}).
+-define(CSIIOP_SAS_ContextSec, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_SAS_ContextSec',
+ [{"target_supports", ?CSIIOP_AssociationOptions},
+ {"target_requires", ?CSIIOP_AssociationOptions},
+ {"privilege_authorities", ?CSIIOP_ServiceConfigurationList},
+ {"supported_naming_mechanisms", ?CSI_OIDList},
+ {"supported_identity_types", ?CSI_IdentityTokenType}]}).
+
+%% Type used in the body of a TAG_CSI_SEC_MECH_LIST component to describe a
+%% compound mechanism
+-record('CSIIOP_CompoundSecMech', {target_requires = 0, transport_mech,
+ as_context_mech, sas_context_mech}).
+-define(CSIIOP_CompoundSecMech, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_CompoundSecMech',
+ [{"target_requires", ?CSIIOP_AssociationOptions},
+ {"transport_mech", ?IOP_TAGGEDCOMPONENT},
+ {"as_context_mech", ?CSIIOP_AS_ContextSec},
+ {"sas_context_mech", ?CSIIOP_SAS_ContextSec}]}).
+-define(CSIIOP_CompoundSecMechanisms, {'tk_sequence', ?CSIIOP_CompoundSecMech, 0}).
+
+%% type corresponding to the body of a TAG_CSI_SEC_MECH_LIST component
+-record('CSIIOP_CompoundSecMechList', {stateful = false, mechanism_list}).
+-define(CSIIOP_CompoundSecMechList, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_CompoundSecMechList',
+ [{"stateful", 'tk_boolean'},
+ {"mechanism_list", ?CSIIOP_CompoundSecMechanisms}]}).
+%% CSIIOP::TransportAddress
+-record('CSIIOP_TransportAddress', {host_name, port}).
+-define(CSIIOP_TransportAddress, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_TransportAddress',
+ [{"host_name", {'tk_string', 0}},
+ {"port", 'tk_ushort'}]}).
+-define(CSIIOP_TransportAddressList, {'tk_sequence', ?CSIIOP_TransportAddress, 0}).
+
+%% Tagged component (TAG_TLS_SEC_TRANS) for configuring TLS/SSL as a CSIv2
+%% transport mechanism.
+-record('CSIIOP_TLS_SEC_TRANS', {target_supports, target_requires, addresses}).
+-define(CSIIOP_TLS_SEC_TRANS, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_TLS_SEC_TRANS',
+ [{"target_supports", ?CSIIOP_AssociationOptions},
+ {"target_requires", ?CSIIOP_AssociationOptions},
+ {"addresses", ?CSIIOP_TransportAddressList}]}).
+
+%% Tagged component (TAG_SECIOP_SEC_TRANS) for configuring SECIOP as a CSIv2
+%% transport mechanism
+-record('CSIIOP_SECIOP_SEC_TRANS', {target_supports = 0, target_requires = 0, mech_oid,
+ target_name, addresses}).
+-define(CSIIOP_SECIOP_SEC_TRANS, {'tk_struct', ?SYSTEM_TYPE, 'CSIIOP_SECIOP_SEC_TRANS',
+ [{"target_supports", ?CSIIOP_AssociationOptions},
+ {"target_requires", ?CSIIOP_AssociationOptions},
+ {"mech_oid", ?CSI_OID},
+ {"target_name", ?CSI_GSS_NT_ExportedName},
+ {"addresses", ?CSIIOP_TransportAddressList}]}).
+
+
+%%-- ServiceContext ID's ------------
+%% Describes what type of context included, i.e.,
+%% typedef unsigned long ServiceId;
+%% struct ServiceContext {
+%% ServiceId context_id;
+%% sequence <octet> context_data;
+%% };
+
+%% The record is defined in include/corba.hrl.
+%%-record('IOP_ServiceContext', {context_id, context_data}).
+-define(IOP_SERVICECONTEXT, {'tk_sequence',
+ {'tk_struct', ?SYSTEM_TYPE, 'IOP_ServiceContext',
+ [{"context_id", 'tk_ulong'},
+ {"context_data",
+ {'tk_sequence', 'tk_octet', 0}}]}, 0}).
+
+-record('CONV_FRAME_CodeSetContext', {char_data, wchar_data}).
+-define(CONV_FRAME_CODESETCONTEXT, {'tk_struct', ?SYSTEM_TYPE, 'CONV_FRAME_CodeSetContext',
+ [{"char_data", 'tk_ulong'},
+ {"wchar_data", 'tk_ulong'}]}).
+
+
+-record('IIOP_ListenPoint', {host, port}).
+-define(IIOP_LISTENPOINT, {'tk_struct', ?SYSTEM_TYPE, 'IIOP_ListenPoint',
+ [{"host", {'tk_string', 0}},
+ {"port", 'tk_ushort'}]}).
+
+-record('IIOP_BiDirIIOPServiceContext', {listen_points}).
+-define(IIOP_BIDIRIIOPSERVICECONTEXT,
+ {'tk_struct', ?SYSTEM_TYPE, 'IIOP_BiDirIIOPServiceContext',
+ [{"listen_points", {'tk_sequence', ?IIOP_LISTENPOINT, 0}}]}).
+
+-define(IOP_TransactionService, 0).
+-define(IOP_CodeSets, 1).
+-define(IOP_ChainBypassCheck, 2).
+-define(IOP_ChainBypassInfo, 3).
+-define(IOP_LogicalThreadId, 4).
+-define(IOP_BI_DIR_IIOP, 5).
+-define(IOP_SendingContextRunTime, 6).
+-define(IOP_INVOCATION_POLICIES, 7).
+-define(IOP_FORWARDED_IDENTITY, 8).
+-define(IOP_UnknownExceptionInfo, 9).
+-define(IOP_RTCorbaPriority, 10).
+-define(IOP_RTCorbaPriorityRange, 11).
+-define(IOP_FT_GROUP_VERSION, 12).
+-define(IOP_FT_REQUEST, 13).
+-define(IOP_ExceptionDetailMessage, 14).
+-define(IOP_SecurityAttributeService, 15).
+
+
+
+%%----------------------------------------------------------------------
+%% host_data
+%%----------------------------------------------------------------------
+-record(host_data, {protocol = normal, ssl_data, version, csiv2_mech,
+ csiv2_statefull = false, csiv2_addresses = [],
+ charset = ?ISO8859_1_ID, wcharset = ?UTF_16_ID,
+ ft_heartbeat = false, ft_primary = false, ft_domain,
+ ft_group, ft_ref_version}).
+
+%%----------------------------------------------------------------------
+%% giop_env
+%%----------------------------------------------------------------------
+-record(giop_env, {interceptors, type, version, bytes, ctx = [],
+ request_id, op, parameters = [], tc, response_expected,
+ objkey, reply_status, result, flags, host, iiop_port,
+ iiop_ssl_port, domain, partial_security}).
+
+-endif.
+
+%%----------------------------------------------------------------------
+%% END OF MODULE
+%%----------------------------------------------------------------------
diff --git a/lib/orber/src/orber_iiop_inproxy.erl b/lib/orber/src/orber_iiop_inproxy.erl
new file mode 100644
index 0000000000..ede1e0749f
--- /dev/null
+++ b/lib/orber/src/orber_iiop_inproxy.erl
@@ -0,0 +1,398 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_inproxy.erl
+%%
+%% Description:
+%% This file contains the IIOP "proxy" for incomming connections
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_inproxy).
+
+-behaviour(gen_server).
+
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/0, start/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
+ code_change/3, terminate/2, post_accept/3, stop/1]).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 7).
+
+-record(state, {stype, socket, db, timeout, max_fragments,
+ max_requests, request_counter = 1, giop_env, peer}).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start/0
+%%-----------------------------------------------------------------
+start() ->
+ ignore.
+
+%%-----------------------------------------------------------------
+%% Func: start/1
+%%-----------------------------------------------------------------
+start(Opts) ->
+ gen_server:start_link(orber_iiop_inproxy, Opts, []).
+
+post_accept(Pid, ssl, Socket) ->
+ (catch gen_server:cast(Pid, {post_accept, ssl, Socket})),
+ ok;
+post_accept(_, _, _) ->
+ ok.
+
+%%-----------------------------------------------------------------
+%% Internal interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: stop/1
+%%-----------------------------------------------------------------
+stop(Pid) ->
+ gen_server:cast(Pid, stop).
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init({connect, Type, Socket, Ref, Options}) ->
+ process_flag(trap_exit, true),
+ Flags = orber_tb:keysearch(flags, Options, orber_env:get_flags()),
+ {Address, Port} = PeerData = orber_socket:peerdata(Type, Socket),
+ {LAddress, LPort} = LocalData = orber_socket:sockdata(Type, Socket),
+ case {?ORB_FLAG_TEST(Flags, ?ORB_ENV_LOCAL_INTERFACE), LPort} of
+ {true, 0} ->
+ orber_tb:info("Unable to lookup the local address and port number.~n"
+ "Closing the incoming connection.", []),
+ ignore;
+ _ ->
+ orber_iiop_net:add_connection(Socket, Type, PeerData, LocalData, Ref),
+ Interceptors =
+ case orber_tb:keysearch(interceptors, Options,
+ orber_env:get_interceptors()) of
+ {native, PIs} ->
+ {native, orber_pi:new_in_connection(PIs, Address, Port,
+ LAddress, LPort), PIs};
+ Other ->
+ Other
+ end,
+ Env =
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_LOCAL_INTERFACE) of
+ true when Type == ssl ->
+ #giop_env{interceptors = Interceptors,
+ flags = Flags, host = [LAddress],
+ iiop_port =
+ orber_tb:keysearch(iiop_port, Options,
+ orber_env:iiop_port()),
+ iiop_ssl_port = LPort,
+ domain = orber:domain(),
+ partial_security = orber:partial_security()};
+ true ->
+ #giop_env{interceptors = Interceptors,
+ flags = Flags, host = [LAddress],
+ iiop_port = LPort,
+ iiop_ssl_port =
+ orber_tb:keysearch(iiop_ssl_port, Options,
+ orber_env:iiop_ssl_port()),
+ domain = orber:domain(),
+ partial_security = orber:partial_security()};
+ false ->
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_ENABLE_NAT) of
+ false ->
+ #giop_env{interceptors = Interceptors,
+ flags = Flags, host = orber:host(),
+ iiop_port = orber:iiop_port(),
+ iiop_ssl_port = orber:iiop_ssl_port(),
+ domain = orber:domain(),
+ partial_security = orber:partial_security()};
+ true ->
+ #giop_env{interceptors = Interceptors,
+ flags = Flags,
+ host =
+ orber_tb:keysearch(nat_ip_address, Options,
+ orber_env:nat_host()),
+ iiop_port =
+ orber_tb:keysearch(nat_iiop_port, Options,
+ orber_env:nat_iiop_port()),
+ iiop_ssl_port =
+ orber_tb:keysearch(nat_iiop_ssl_port, Options,
+ orber_env:nat_iiop_ssl_port()),
+ domain = orber:domain(),
+ partial_security = orber:partial_security()}
+ end
+ end,
+ Timeout = orber_tb:keysearch(iiop_in_connection_timeout, Options,
+ orber_env:iiop_in_connection_timeout()),
+ MaxFrags = orber_tb:keysearch(iiop_max_fragments, Options,
+ orber_env:iiop_max_fragments()),
+ MaxRequests = orber_tb:keysearch(iiop_max_in_requests, Options,
+ orber_env:iiop_max_in_requests()),
+ {ok, #state{stype = Type,
+ socket = Socket,
+ db = ets:new(orber_incoming_requests, [set]),
+ timeout = Timeout,
+ max_fragments = MaxFrags,
+ max_requests = MaxRequests,
+ giop_env = Env, peer = PeerData}, Timeout}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: terminate/2
+%%-----------------------------------------------------------------
+%% We may want to kill all proxies before terminating, but the best
+%% option should be to let the requests complete (especially for one-way
+%% functions it's a better alternative.
+terminate(_Reason, #state{db = IncRequests, giop_env = Env}) ->
+ ets:delete(IncRequests),
+ case Env#giop_env.interceptors of
+ false ->
+ ok;
+ {native, Ref, PIs} ->
+ orber_pi:closed_in_connection(PIs, Ref);
+ {_Type, _PIs} ->
+ ok
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%-----------------------------------------------------------------
+handle_call(stop, _From, State) ->
+ {stop, normal, ok, State};
+handle_call(_, _, State) ->
+ {noreply, State, State#state.timeout}.
+
+%%-----------------------------------------------------------------
+%% Func: handle_cast/2
+%%-----------------------------------------------------------------
+handle_cast({post_accept, Type, Socket}, State) ->
+ Timeout = orber_env:iiop_ssl_accept_timeout(),
+ case catch orber_socket:post_accept(Type, Socket, Timeout) of
+ ok ->
+ {noreply, State};
+ _Failed ->
+ orber_socket:close(Type, Socket),
+ {stop, normal, State}
+ end;
+handle_cast(stop, State) ->
+ {stop, normal, State};
+handle_cast(_, State) ->
+ {noreply, State, State#state.timeout}.
+
+%%-----------------------------------------------------------------
+%% Func: handle_info/2
+%%-----------------------------------------------------------------
+%% Normal invocation
+handle_info({tcp, Socket, Bytes}, State) ->
+ handle_msg(normal, Socket, Bytes, State);
+handle_info({ssl, Socket, Bytes}, State) ->
+ handle_msg(ssl, Socket, Bytes, State);
+%% Errors, closed connection
+handle_info({tcp_closed, _Socket}, State) ->
+ {stop, normal, State};
+handle_info({tcp_error, _Socket, _Reason}, State) ->
+ {stop, normal, State};
+handle_info({ssl_closed, _Socket}, State) ->
+ {stop, normal, State};
+handle_info({ssl_error, _Socket, _Reason}, State) ->
+ {stop, normal, State};
+%% Servant termination.
+handle_info({'EXIT', Pid, normal}, State) ->
+ ets:delete(State#state.db, Pid),
+ {noreply, decrease_counter(State), State#state.timeout};
+handle_info({message_error, _Pid, ReqId}, State) ->
+ ets:delete(State#state.db, ReqId),
+ {noreply, State, State#state.timeout};
+handle_info(timeout, State) ->
+ case ets:info(State#state.db, size) of
+ 0 ->
+ %% No pending requests, close the connection.
+ {stop, normal, State};
+ _Amount ->
+ %% Still pending request, cannot close the connection.
+ {noreply, State, State#state.timeout}
+ end;
+handle_info({reconfigure, Options}, State) ->
+ {noreply, update_state(State, Options), State#state.timeout};
+handle_info(_X,State) ->
+ {noreply, State, State#state.timeout}.
+
+handle_msg(Type, Socket, Bytes, #state{stype = Type, socket = Socket,
+ giop_env = Env} = State) ->
+ case catch cdr_decode:dec_giop_message_header(Bytes) of
+ %% Only when using IIOP-1.2 may the client send this message.
+ %% Introduced in CORBA-2.6
+ #giop_message{message_type = ?GIOP_MSG_CLOSE_CONNECTION,
+ giop_version = {1,2}} ->
+ {stop, normal, State};
+ #giop_message{message_type = ?GIOP_MSG_CLOSE_CONNECTION} ->
+ {noreply, State, State#state.timeout};
+ #giop_message{message_type = ?GIOP_MSG_CANCEL_REQUEST} = GIOPHdr ->
+ ReqId = cdr_decode:peek_request_id(GIOPHdr#giop_message.byte_order,
+ GIOPHdr#giop_message.message),
+ case ets:lookup(State#state.db, ReqId) of
+ [{RId, PPid}] ->
+ ets:delete(State#state.db, RId),
+ PPid ! {self(), cancel_request_header};
+ [] ->
+ send_msg_error(Type, Socket, Bytes,
+ Env#giop_env{version =
+ GIOPHdr#giop_message.giop_version},
+ "No such request id")
+ end,
+ {noreply, State, State#state.timeout};
+ %% A fragment; we must have received a Request or LocateRequest
+ %% with fragment-flag set to true.
+ %% We need to decode the header to get the request-id.
+ #giop_message{message_type = ?GIOP_MSG_FRAGMENT,
+ giop_version = {1,2}} = GIOPHdr ->
+ ReqId = cdr_decode:peek_request_id(GIOPHdr#giop_message.byte_order,
+ GIOPHdr#giop_message.message),
+ case ets:lookup(State#state.db, ReqId) of
+ [{_RId, PPid}] when GIOPHdr#giop_message.fragments == true ->
+ PPid ! {self(), GIOPHdr};
+ [{RId, PPid}] ->
+ ets:delete(State#state.db, RId),
+ PPid ! {self(), GIOPHdr};
+ [] ->
+ send_msg_error(Type, Socket, Bytes,
+ Env#giop_env{version =
+ GIOPHdr#giop_message.giop_version},
+ "No such fragment id")
+ end,
+ {noreply, State, State#state.timeout};
+ %% Must be a Request or LocateRequest which have been fragmented.
+ %% We need to decode the header to get the request-id.
+ #giop_message{fragments = true,
+ giop_version = {1,2}} = GIOPHdr ->
+ ReqId = cdr_decode:peek_request_id(GIOPHdr#giop_message.byte_order,
+ GIOPHdr#giop_message.message),
+ Pid =
+ orber_iiop_inrequest:
+ start_fragment_collector(GIOPHdr, Bytes,
+ Type, Socket,
+ ReqId, self(),
+ State#state.max_fragments,
+ Env#giop_env{version = {1,2},
+ request_id = ReqId}),
+ ets:insert(State#state.db, {Pid, ReqId}),
+ ets:insert(State#state.db, {ReqId, Pid}),
+ {noreply, increase_counter(State), State#state.timeout};
+ GIOPHdr when is_record(GIOPHdr, giop_message) ->
+ Pid = orber_iiop_inrequest:start(GIOPHdr, Bytes, Type, Socket,
+ Env#giop_env{version =
+ GIOPHdr#giop_message.giop_version}),
+ ets:insert(State#state.db, {Pid, undefined}),
+ {noreply, increase_counter(State), State#state.timeout};
+ {'EXIT', message_error} ->
+ send_msg_error(Type, Socket, Bytes,
+ Env#giop_env{version = orber_env:giop_version()},
+ "Unable to decode the GIOP-header"),
+ {noreply, State, State#state.timeout}
+ end;
+handle_msg(Type, _, Bytes, State) ->
+ orber:dbg("[~p] orber_iiop_inproxy:handle_msg(~p);~n"
+ "Received a message from a socket of a different type.~n"
+ "Should be ~p but was ~p.",
+ [?LINE, Bytes, State#state.stype, Type], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout}.
+
+send_msg_error(Type, Socket, Data, Env, Msg) ->
+ orber:dbg("[~p] orber_iiop_inproxy:handle_msg(~p); ~p.",
+ [?LINE, Data, Msg], ?DEBUG_LEVEL),
+ Reply = cdr_encode:enc_message_error(Env),
+ orber_socket:write(Type, Socket, Reply).
+
+increase_counter(#state{max_requests = infinity} = State) ->
+ State;
+increase_counter(#state{max_requests = Max,
+ request_counter = Counter} = State) when Max > Counter ->
+ orber_socket:setopts(State#state.stype, State#state.socket, [{active, once}]),
+ State#state{request_counter = Counter + 1};
+increase_counter(State) ->
+ State#state{request_counter = State#state.request_counter + 1}.
+
+decrease_counter(#state{max_requests = infinity} = State) ->
+ State;
+decrease_counter(#state{max_requests = Max,
+ request_counter = Counter} = State) when Max =< Counter ->
+ orber_socket:setopts(State#state.stype, State#state.socket, [{active, once}]),
+ State#state{request_counter = Counter - 1};
+decrease_counter(State) ->
+ State#state{request_counter = State#state.request_counter - 1}.
+
+update_state(#state{giop_env = Env} = State,
+ [{interceptors, false}|Options]) ->
+ update_state(State#state{giop_env =
+ Env#giop_env{interceptors = false}}, Options);
+update_state(#state{giop_env = #giop_env{interceptors = false, host = [SH],
+ iiop_port = SP} = Env,
+ peer = {PH, PP}, stype = normal} = State,
+ [{interceptors, {native, LPIs}}|Options]) ->
+ %% No Interceptor(s). Add the same Ref used by the built in interceptors.
+ update_state(State#state{giop_env =
+ Env#giop_env{interceptors =
+ {native, {PH, PP, SH, SP}, LPIs}}},
+ Options);
+update_state(#state{giop_env = #giop_env{interceptors = false, host = [SH],
+ iiop_ssl_port = SP} = Env,
+ peer = {PH, PP}, stype = ssl} = State,
+ [{interceptors, {native, LPIs}}|Options]) ->
+ %% No Interceptor(s). Add the same Ref used by the built in interceptors.
+ update_state(State#state{giop_env =
+ Env#giop_env{interceptors =
+ {native, {PH, PP, SH, SP}, LPIs}}},
+ Options);
+update_state(#state{giop_env = #giop_env{interceptors = {native, Ref, _}} = Env} =
+ State,
+ [{interceptors, {native, LPIs}}|Options]) ->
+ %% Interceptor(s) already in use. We must use the same Ref as before.
+ update_state(State#state{giop_env =
+ Env#giop_env{interceptors = {native, Ref, LPIs}}},
+ Options);
+update_state(State, [H|T]) ->
+ orber:dbg("[~p] orber_iiop_inproxy:update_state(~p, ~p)~n"
+ "Couldn't change the state.",
+ [?LINE, H, State], ?DEBUG_LEVEL),
+ update_state(State, T);
+update_state(State, []) ->
+ State.
+
+%%-----------------------------------------------------------------
+%% Func: code_change/3
+%%-----------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
diff --git a/lib/orber/src/orber_iiop_inrequest.erl b/lib/orber/src/orber_iiop_inrequest.erl
new file mode 100644
index 0000000000..42d48cfe92
--- /dev/null
+++ b/lib/orber/src/orber_iiop_inrequest.erl
@@ -0,0 +1,538 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%--------------------------------------------------------------------
+%% File: orber_iiop_inrequest.erl
+%%
+%% Description:
+%% This file contains the handling of incomming requests
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_inrequest).
+
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/include/orber_pi.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/5, start_fragment_collector/8]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([handle_message/5, fragment_collector/8]).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 8).
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start(GIOPHdr, Message, Type, Socket, Env) ->
+ spawn_link(orber_iiop_inrequest, handle_message,
+ [GIOPHdr, Message, Type, Socket, Env]).
+
+start_fragment_collector(GIOPHdr, Message, Type, Socket, ReqId, Proxy, MaxFrags, Env) ->
+ spawn_link(orber_iiop_inrequest, fragment_collector,
+ [GIOPHdr, Message, Type, Socket, ReqId, Proxy, MaxFrags, Env]).
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Func: fragment_collector/4
+%%-----------------------------------------------------------------
+fragment_collector(GIOPHdr, Bytes, SocketType, Socket, ReqId, Proxy, MaxFrags, Env) ->
+ case catch collect(Proxy, [], GIOPHdr#giop_message.byte_order, ReqId,
+ MaxFrags, 0) of
+ {ok, Buffer} ->
+ NewGIOP = GIOPHdr#giop_message
+ {message = list_to_binary([GIOPHdr#giop_message.message|Buffer])},
+ %% NOTE, the third argument to dec_message_header must be complete
+ %% message (i.e. AllBytes), otherwise we cannot handle indirection.
+ case handle_message(NewGIOP, list_to_binary([Bytes| Buffer]),
+ SocketType, Socket, Env) of
+ message_error ->
+ Proxy ! {message_error, self(), ReqId},
+ ok;
+ _ ->
+ ok
+ end;
+ ok ->
+ ok;
+ {'EXCEPTION', E} ->
+ Proxy ! {message_error, self(), ReqId},
+ Reply = marshal_exception(Env, ReqId, E, enc_reply),
+ orber_socket:write(SocketType, Socket, Reply)
+ end.
+
+
+
+collect(_Proxy, _Buffer, _ByteOrder, _ReqId, MaxFrags, MaxFrags) ->
+ orber:dbg("[~p] ~p:collect(~p)~nMax fragments limit reached.",
+ [?LINE, ?MODULE, MaxFrags], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'IMP_LIMIT'{completion_status=?COMPLETED_NO}};
+collect(Proxy, Buffer, ByteOrder, ReqId, MaxFrags, FragCounter) ->
+ receive
+ {Proxy, #giop_message{byte_order = ByteOrder,
+ message = Message,
+ fragments = true} = GIOPHdr} ->
+ {_, #fragment_header{request_id=ReqId}, FragBody, _, _} =
+ cdr_decode:dec_message_header(null, GIOPHdr, Message),
+ collect(Proxy, [FragBody | Buffer], ByteOrder, ReqId,
+ MaxFrags, FragCounter+1);
+ {Proxy, #giop_message{byte_order = ByteOrder,
+ message = Message,
+ fragments = false} = GIOPHdr} ->
+ {_, #fragment_header{request_id=ReqId}, FragBody, _, _} =
+ cdr_decode:dec_message_header(null, GIOPHdr, Message),
+ {ok, lists:reverse([FragBody | Buffer])};
+ {Proxy, GIOPHdr, _Data, _} ->
+ orber:dbg("[~p] orber_iiop_inrequest:collect(~p, ~p)~n"
+ "Incorrect Fragment. Might be different byteorder.",
+ [?LINE, ByteOrder, GIOPHdr], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'MARSHAL'{completion_status=?COMPLETED_NO}};
+ {Proxy, cancel_request_header} ->
+ ok;
+ Other ->
+ orber:dbg("[~p] ~p:collect(~p)~n"
+ "Unable to collect all fragments: ~p",
+ [?LINE, ?MODULE, Buffer, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'MARSHAL'{completion_status=?COMPLETED_NO}}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: handle_message/4
+%%-----------------------------------------------------------------
+handle_message(GIOPHdr, Message, SocketType, Socket, Env) ->
+ %% Warning. We shouldn't set the flags like this here. But, for now, we'll
+ %% do it due to performance reasons.
+ put(oe_orber_flags, Env#giop_env.flags),
+ case catch cdr_decode:dec_message_header(null, GIOPHdr, Message) of
+ Hdr when is_record(Hdr, cancel_request_header) ->
+ %% We just skips this message for the moment, the standard require that
+ %% the client handles the reply anyway.
+ message_error;
+ {location_forward, Object, ReqId, Version, OldObj} ->
+ Reply = call_interceptors_out(Env#giop_env{version = Version},
+ ReqId, [Object], OldObj,
+ 'location_forward',
+ "location_forward",
+ {{'tk_objref', "", ""}, [],[]}),
+ orber_socket:write(SocketType, Socket, Reply);
+ {object_forward, Object, ReqId, Version, _OldObj} ->
+ Reply = handle_locate_request(Env#giop_env{version = Version},
+ {object_forward, Object, ReqId}),
+ orber_socket:write(SocketType, Socket, Reply);
+ {Version, Hdr} when is_record(Hdr, locate_request_header) ->
+ Reply = handle_locate_request(Env#giop_env{version = Version}, Hdr),
+ orber_socket:write(SocketType, Socket, Reply);
+ {Version, ReqHdr, Rest, Len, ByteOrder} when is_record(ReqHdr, request_header) ->
+ handle_request(Env#giop_env{version = Version}, ReqHdr, Rest, Len,
+ ByteOrder, SocketType, Socket, Message);
+ Other ->
+ %% This cluase takes care of all erranous messages.
+ orber:dbg("[~p] orber_iiop_inrequest:handle_message(~p)~n"
+ "Decoding Msg Header failed: ~p",
+ [?LINE, Message, Other], ?DEBUG_LEVEL),
+ Reply = cdr_encode:enc_message_error(Env),
+ orber_socket:write(SocketType, Socket, Reply),
+ message_error
+ end.
+
+
+send_reply(oneway, _SocketType, _Socket) ->
+ ok;
+send_reply(Reply, SocketType, Socket) ->
+ orber_socket:write(SocketType, Socket, Reply).
+
+%%-----------------------------------------------------------------
+%% Func: handle_request
+%%-----------------------------------------------------------------
+handle_request(#giop_env{interceptors = false} = Env, ReqHdr, Rest, Len, ByteOrder,
+ SocketType, Socket, Message) ->
+ NewEnv = check_context(ReqHdr#request_header.service_context, [], Env),
+ case decode_body(NewEnv, ReqHdr, Rest, Len, ByteOrder, Message, enc_reply) of
+ {error, E} ->
+ orber_socket:write(SocketType, Socket, E);
+ {NewEnv2, Hdr, Par, TypeCodes} ->
+ Result = invoke_request(Hdr, Par, SocketType, TypeCodes, Env),
+ Reply = evaluate(NewEnv2, Hdr, Result, TypeCodes,
+ enc_reply, 'no_exception'),
+ send_reply(Reply, SocketType, Socket)
+ end;
+handle_request(Env, ReqHdr, Rest, Len, ByteOrder, SocketType, Socket, Message) ->
+ NewEnv = check_context(ReqHdr#request_header.service_context, [], Env),
+ case catch call_interceptors(SocketType, NewEnv, ReqHdr,
+ Rest, Len, ByteOrder, Message) of
+ {error, E} ->
+ %% Failed to decode body.
+ orber_socket:write(SocketType, Socket, E);
+ {'EXCEPTION', Exc} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_message(~p)~n"
+ "Invoking the interceptors resulted in: ~p",
+ [?LINE, Message, Exc], ?DEBUG_LEVEL),
+ Reply = marshal_exception(NewEnv,
+ ReqHdr#request_header.request_id,
+ Exc, enc_reply),
+ orber_socket:write(SocketType, Socket, Reply);
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_message(~p)~n"
+ "Invoking the interceptors resulted in: ~p",
+ [?LINE, ReqHdr, R], ?DEBUG_LEVEL),
+ Reply = marshal_exception(NewEnv,
+ ReqHdr#request_header.request_id,
+ #'MARSHAL'{completion_status=?COMPLETED_MAYBE},
+ enc_reply),
+ orber_socket:write(SocketType, Socket, Reply);
+ Reply ->
+ send_reply(Reply, SocketType, Socket)
+ end.
+
+check_context([], [], Env) ->
+ Env;
+check_context([], Acc, Env) ->
+ Env#giop_env{ctx = Acc};
+check_context([#'CSI_SASContextBody'
+ {label = ?CSI_MsgType_MTEstablishContext,
+ value = #'CSI_EstablishContext'
+ {client_context_id = _Id,
+ authorization_token = _AuthToken,
+ identity_token = _IdToken,
+ client_authentication_token = _CAuthToken}}|Rest], Acc, Env) ->
+ check_context(Rest, [#'IOP_ServiceContext'
+ {context_id=?IOP_SecurityAttributeService,
+ context_data = #'CSI_SASContextBody'
+ {label = ?CSI_MsgType_MTCompleteEstablishContext,
+ value = #'CSI_CompleteEstablishContext'
+ {client_context_id = 0,
+ context_stateful = false,
+ final_context_token = [0,255]}}}|Acc], Env);
+check_context([_|Rest], Acc, Env) ->
+ check_context(Rest, Acc, Env).
+
+
+%%-----------------------------------------------------------------
+%% Func: call_interceptors
+%%-----------------------------------------------------------------
+call_interceptors(SocketType, #giop_env{interceptors = {native, Ref, PIs},
+ ctx = Ctx} = Env,
+ ReqHdr, Rest, Len, ByteOrder, Msg) ->
+ NewRest = orber_pi:in_request_enc(PIs, ReqHdr, Ref, Rest),
+ case decode_body(Env, ReqHdr, NewRest, Len, ByteOrder, Msg, enc_reply) of
+ {NewEnv, Hdr, Par, TypeCodes} ->
+ NewPar = orber_pi:in_request(PIs, ReqHdr, Ref, Par),
+ ResultInv = invoke_request(Hdr, NewPar, SocketType, TypeCodes, NewEnv),
+ Result = orber_pi:out_reply(PIs, ReqHdr, Ref, ResultInv, Ctx),
+
+ case evaluate(NewEnv, ReqHdr, Result, TypeCodes, enc_reply_split,
+ 'no_exception') of
+ {ReplyHdr, Reply, HdrL, _BodyL, Flags} ->
+ NewReply = orber_pi:out_reply_enc(PIs, ReqHdr, Ref, Reply, Ctx),
+ MessSize = HdrL+size(NewReply),
+ cdr_encode:enc_giop_message_header(NewEnv, 'reply', Flags,
+ MessSize, [ReplyHdr|NewReply]);
+ Other ->
+ Other
+ end;
+ Other ->
+ Other
+ end;
+call_interceptors(SocketType, #giop_env{interceptors = {portable, _PIs}} = Env,
+ ReqHdr, Rest, Len, ByteOrder, Msg) ->
+ case decode_body(Env, ReqHdr, Rest, Len, ByteOrder, Msg, enc_reply) of
+ {NewEnv, Hdr, Par, TypeCodes} ->
+ Result = invoke_request(Hdr, Par, SocketType, TypeCodes, NewEnv),
+ evaluate(NewEnv, ReqHdr, Result, TypeCodes, enc_reply, 'no_exception');
+ Other ->
+ Other
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: call_interceptors_out
+%%-----------------------------------------------------------------
+call_interceptors_out(#giop_env{interceptors = {native, Ref, PIs}, ctx = Ctx} = Env,
+ ReqId, Result, Obj, Type, Operation, TypeCodes) ->
+ ReqHdr = #request_header{object_key = Obj,
+ service_context = Ctx,
+ response_expected = true,
+ request_id = ReqId,
+ operation = Operation},
+ NewResult = (catch orber_pi:out_reply(PIs, ReqHdr, Ref, Result, Ctx)),
+ {ReplyHdr, Reply, HdrL, _BodyL, Flags} =
+ evaluate(Env, ReqHdr, NewResult, TypeCodes, enc_reply_split, Type),
+ NewReply =
+ case catch orber_pi:out_reply_enc(PIs, ReqHdr, Ref, Reply, Ctx) of
+ {'EXCEPTION', Exception} ->
+ %% Since evaluate don't need TypeCodes or Status no need to supply
+ %% them.
+ evaluate(Env, ReqHdr, {'EXCEPTION', Exception}, undefined,
+ enc_reply_split, undefined);
+ {'EXIT', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_location_forward(~p)~n"
+ "Resulted in exit: ~p", [?LINE, PIs, E], ?DEBUG_LEVEL),
+ marshal_exception(Env, ReqId,
+ #'MARSHAL'{completion_status=?COMPLETED_NO},
+ enc_reply);
+ R ->
+ R
+ end,
+ MessSize = HdrL+size(NewReply),
+ cdr_encode:enc_giop_message_header(Env, 'reply', Flags, MessSize,
+ [ReplyHdr|NewReply]);
+call_interceptors_out(#giop_env{interceptors = {portable, _PIs}} = Env,
+ ReqId, Result, _Obj, Type, _, TypeCodes) ->
+ Hdr = #request_header{response_expected = true,
+ request_id = ReqId},
+ evaluate(Env, Hdr, Result, TypeCodes, enc_reply, Type);
+call_interceptors_out(Env, ReqId, Result, _Obj, Type, _, TypeCodes) ->
+ Hdr = #request_header{response_expected = true,
+ request_id = ReqId},
+ evaluate(Env, Hdr, Result, TypeCodes, enc_reply, Type).
+
+
+%%-----------------------------------------------------------------
+%% Func: decode_body/2
+%%-----------------------------------------------------------------
+decode_body(#giop_env{version = Version} = Env, ReqHdr, Rest, Len,
+ ByteOrder, Message, Func) ->
+ case catch cdr_decode:dec_request_body(Version, ReqHdr, Rest, Len,
+ ByteOrder, Message) of
+ {NewVersion, ReqHdr, Par, TypeCodes} ->
+ {Env#giop_env{version = NewVersion}, ReqHdr, Par, TypeCodes};
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:decode_body(~p, ~p)~n"
+ "Failed decoding request body: ~p",
+ [?LINE, ReqHdr, Message, E], ?DEBUG_LEVEL),
+ {error, marshal_exception(Env, ReqHdr#request_header.request_id,
+ E, Func)};
+ Other ->
+ %% This cluase takes care of all erranous messages.
+ orber:dbg("[~p] orber_iiop_inrequest:decode_body(~p, ~p)~n"
+ "Failed decoding request body: ~p",
+ [?LINE, ReqHdr, Message, Other], ?DEBUG_LEVEL),
+ {error, marshal_exception(Env, ReqHdr#request_header.request_id,
+ #'MARSHAL'{completion_status=?COMPLETED_NO},
+ Func)}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: handle_locate_request/2
+%%-----------------------------------------------------------------
+handle_locate_request(Env, {object_forward, Object, ReqId}) ->
+ case catch cdr_encode:enc_locate_reply(
+ Env#giop_env{request_id = ReqId,
+ tc = {'tk_objref', "", ""},
+ result = Object,
+ reply_status = 'object_forward'}) of
+ {'EXCEPTION', Exception} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_locate_request(object_forward)~n"
+ "Raised the exception: ~p", [?LINE, Exception], ?DEBUG_LEVEL),
+ marshal_locate_exception(Env, ReqId, Exception);
+ {'EXIT', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_locate_request(object_forward)~n"
+ "Resulted in exit: ~p", [?LINE, E], ?DEBUG_LEVEL),
+ marshal_locate_exception(Env, ReqId,
+ #'MARSHAL'{completion_status=?COMPLETED_NO});
+ R ->
+ R
+ end;
+handle_locate_request(Env, Hdr) ->
+ Location = orber_objectkeys:check(Hdr#locate_request_header.object_key),
+ case catch cdr_encode:enc_locate_reply(
+ Env#giop_env{request_id = Hdr#locate_request_header.request_id,
+ reply_status = Location}) of
+ {'EXCEPTION', Exception} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_locate_request(~p)~n"
+ "Raised the exception: ~p",
+ [?LINE, Location, Exception], ?DEBUG_LEVEL),
+ marshal_locate_exception(Env, Hdr#locate_request_header.request_id, Exception);
+ {'EXIT', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:handle_locate_request(~p)~n"
+ "Resulted in exit: ~p", [?LINE, Location, E], ?DEBUG_LEVEL),
+ marshal_locate_exception(Env, Hdr#locate_request_header.request_id,
+ #'MARSHAL'{completion_status=?COMPLETED_NO});
+ R ->
+ R
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: invoke_request/2
+%%-----------------------------------------------------------------
+invoke_request(Hdr, Par, normal, TypeCodes, #giop_env{iiop_ssl_port = SSLPort,
+ partial_security = PartialSec}) ->
+ Result =
+ case SSLPort of
+ -1 ->
+ corba:request_from_iiop(Hdr#request_header.object_key,
+ Hdr#request_header.operation,
+ Par, [], Hdr#request_header.response_expected,
+ Hdr#request_header.service_context);
+ _ ->
+ case Hdr#request_header.object_key of
+ {_,registered,orber_init,_,_,_} ->
+ corba:request_from_iiop(Hdr#request_header.object_key,
+ Hdr#request_header.operation,
+ Par, [],
+ Hdr#request_header.response_expected,
+ Hdr#request_header.service_context);
+ {_,_,_,_,_,Flags} when PartialSec == true,
+ ?ORB_FLAG_TEST(Flags, ?ORB_NO_SECURITY) == true ->
+ corba:request_from_iiop(Hdr#request_header.object_key,
+ Hdr#request_header.operation,
+ Par, [],
+ Hdr#request_header.response_expected,
+ Hdr#request_header.service_context);
+ _ ->
+ orber:dbg("[~p] orber_iiop_inrequest:invoke_request(~p)~n"
+ "SSL do not permit",
+ [?LINE, Hdr#request_header.object_key], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'NO_PERMISSION'{completion_status=?COMPLETED_NO}}
+ end
+ end,
+ result_to_list(Result, TypeCodes);
+invoke_request(Hdr, Par, ssl, TypeCodes, _) ->
+ Result = corba:request_from_iiop(Hdr#request_header.object_key,
+ Hdr#request_header.operation,
+ Par, [], Hdr#request_header.response_expected,
+ Hdr#request_header.service_context),
+ result_to_list(Result, TypeCodes).
+
+%%-----------------------------------------------------------------
+%% Func: evaluate/4
+%%-----------------------------------------------------------------
+evaluate(_, Hdr,_,_,_,_) when Hdr#request_header.response_expected == 'false' ->
+ oneway;
+evaluate(Env, Hdr, _, _, Func, _)
+ when Hdr#request_header.response_expected == 'true_oneway' ->
+ %% Special case which only occurs when using IIOP-1.2
+ cdr_encode:Func(Env#giop_env{request_id = Hdr#request_header.request_id,
+ reply_status = 'no_exception',
+ tc = {tk_null,[],[]}, result = null});
+evaluate(Env, Hdr, {'EXCEPTION', Exc}, _, Func, _) ->
+ %% The exception can be user defined. Hence, we must check the result.
+ case catch marshal_exception(Env, Hdr#request_header.request_id, Exc, Func) of
+ {'EXCEPTION', Exception} ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p)~n"
+ "Encoding (reply) exception: ~p",
+ [?LINE, Hdr, Exception], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id, Exception, Func);
+ {'EXIT', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p)~n"
+ "Encode (reply) resulted in: ~p",
+ [?LINE, Hdr, E], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id,
+ #'MARSHAL'{completion_status=?COMPLETED_YES}, Func);
+ R ->
+ R
+ end;
+evaluate(#giop_env{version = {1,2}} = Env, Hdr, {'location_forward_perm', NewIOR}, _,
+ Func, _)->
+ case catch cdr_encode:Func(#giop_env{version = {1,2},
+ request_id = Hdr#request_header.request_id,
+ reply_status = 'location_forward_perm',
+ tc = {{'tk_objref', "", ""}, [],[]},
+ result = NewIOR}) of
+ {'EXCEPTION', Exception} ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p) " ++
+ "Encoding (reply) exception: ~p",
+ [?LINE, Hdr, Exception], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id, Exception, Func);
+ {'EXIT', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p) " ++
+ "Encode (reply) resulted in: ~p",
+ [?LINE, Hdr, E], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id,
+ #'MARSHAL'{completion_status=?COMPLETED_YES}, Func);
+ R ->
+ R
+ end;
+evaluate(Env, Hdr, [Res |OutPar], TypeCodes, Func, Type) ->
+ case catch cdr_encode:Func(Env#giop_env{request_id = Hdr#request_header.request_id,
+ reply_status = Type,
+ tc = TypeCodes, result = Res,
+ parameters = OutPar}) of
+ {'EXCEPTION', Exception} ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p, ~p, ~p)~n"
+ "Encode exception: ~p",
+ [?LINE, Hdr, Res, OutPar, Exception], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id, Exception, Func);
+ {'EXIT', E} ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p, ~p, ~p)~n"
+ "Encode exit: ~p",
+ [?LINE, Hdr, Res, OutPar, E], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id,
+ #'MARSHAL'{completion_status=?COMPLETED_YES}, Func);
+ R ->
+ R
+ end;
+evaluate(Env, Hdr, What, TypeCodes, Func, _) ->
+ orber:dbg("[~p] orber_iiop_inrequest:evaluate(~p)~n"
+ "Bad reply: ~p~n"
+ "Should be: ~p~n"
+ "GIOP Env : ~p", [?LINE, Hdr, What, TypeCodes, Env], ?DEBUG_LEVEL),
+ marshal_exception(Env, Hdr#request_header.request_id,
+ #'INTERNAL'{completion_status=?COMPLETED_MAYBE}, Func).
+
+%%-----------------------------------------------------------------
+%% Utility Functions
+%%-----------------------------------------------------------------
+result_to_list({'oe_location_forward_perm', NewIOR}, _) ->
+ {'location_forward_perm', NewIOR};
+result_to_list({'EXCEPTION', E}, _) ->
+ {'EXCEPTION', E};
+result_to_list(Result, {_TkRes, _, []}) ->
+ [Result];
+result_to_list(Result, {_TkRes, _, _TkOut}) ->
+ tuple_to_list(Result).
+
+marshal_exception(Env, Id, Exception, Func) ->
+ {TypeOfException, ExceptionTypeCode, NewExc} =
+ orber_exceptions:get_def(Exception),
+ cdr_encode:Func(Env#giop_env{request_id = Id,
+ reply_status = TypeOfException,
+ tc = {ExceptionTypeCode, [], []},
+ result = NewExc}).
+
+marshal_locate_exception(#giop_env{version = {1,2}} = Env, Id, Exception) ->
+ case orber_exceptions:get_def(Exception) of
+ {?SYSTEM_EXCEPTION, ExceptionTypeCode, NewExc} ->
+ cdr_encode:enc_locate_reply(
+ Env#giop_env{request_id = Id,
+ reply_status = 'loc_system_exception',
+ tc = ExceptionTypeCode, result = NewExc});
+ _ ->
+ %% This case is impossible (i.e. Orber only throws system
+ %% exceptions). But to be on the safe side...
+ marshal_locate_exception(Env, Id, #'MARSHAL'
+ {completion_status=?COMPLETED_YES})
+ end;
+marshal_locate_exception(Env, _Id, _Exception) ->
+ %% There is no way to define an exception for IIOP-1.0/1.1 in a
+ %% locate_reply.
+ cdr_encode:enc_message_error(Env).
diff --git a/lib/orber/src/orber_iiop_insup.erl b/lib/orber/src/orber_iiop_insup.erl
new file mode 100644
index 0000000000..713e1433e3
--- /dev/null
+++ b/lib/orber/src/orber_iiop_insup.erl
@@ -0,0 +1,85 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_insup.erl
+%%
+%% Description:
+%% This file contains the IIOP communication supervisor which
+%% holds all active "in proxies"
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_insup).
+
+-behaviour(supervisor).
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/2, start_connection/4]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start/2
+%%-----------------------------------------------------------------
+start(sup, Opts) ->
+ supervisor:start_link({local, orber_iiop_insup}, orber_iiop_insup,
+ {sup, Opts});
+start(_A1, _A2) ->
+ ok.
+
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init({sup, _Opts}) ->
+ SupFlags = {simple_one_for_one, 500, 100},
+ ChildSpec = [
+ {name1, {orber_iiop_inproxy, start, []}, temporary,
+ 10000, worker, [orber_iiop_inproxy]}
+ ],
+ {ok, {SupFlags, ChildSpec}};
+init(_Opts) ->
+ {ok, []}.
+
+
+%%-----------------------------------------------------------------
+%% Func: terminate/1
+%%-----------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+%%-----------------------------------------------------------------
+%% Func: start_connection/2
+%%-----------------------------------------------------------------
+start_connection(Type, Socket, Ref, ProxyOptions) ->
+ supervisor:start_child(orber_iiop_insup, [{connect, Type, Socket,
+ Ref, ProxyOptions}]).
+
diff --git a/lib/orber/src/orber_iiop_net.erl b/lib/orber/src/orber_iiop_net.erl
new file mode 100644
index 0000000000..58eba9f039
--- /dev/null
+++ b/lib/orber/src/orber_iiop_net.erl
@@ -0,0 +1,463 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_net.erl
+%%
+%% Description:
+%% This file contains the IIOP communication server
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_net).
+
+-behaviour(gen_server).
+
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/1, connect/5, connections/0,
+ sockname2peername/2, peername2sockname/2,
+ add_connection/5,
+ add/3, remove/1, reconfigure/1, reconfigure/2]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, handle_call/3,
+ handle_cast/2, handle_info/2, code_change/3]).
+
+%%-----------------------------------------------------------------
+%% Server state record and definitions
+%%-----------------------------------------------------------------
+-define(CONNECTION_DB, orber_iiop_net_db).
+
+-record(state, {ports=[], max_connections, db, counter = 1, queue}).
+
+-record(connection, {pid, socket, type, peerdata, localdata, ref = 0}).
+
+-record(listen, {pid, socket, port, type, ref = 0, options, proxy_options = []}).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start/1
+%%-----------------------------------------------------------------
+start(Opts) ->
+ gen_server:start_link({local, orber_iiop_net}, orber_iiop_net, Opts, []).
+
+add(IP, normal, Options) ->
+ Port = orber_tb:keysearch(iiop_port, Options, orber_env:iiop_port()),
+ gen_server:call(orber_iiop_net, {add, IP, normal, Port, Options}, infinity);
+add(IP, ssl, Options) ->
+ Port = orber_tb:keysearch(iiop_ssl_port, Options, orber_env:iiop_ssl_port()),
+ gen_server:call(orber_iiop_net, {add, IP, ssl, Port, Options}, infinity).
+
+remove(Ref) ->
+ gen_server:call(orber_iiop_net, {remove, Ref}, infinity).
+
+reconfigure(Options) ->
+ lists:foreach(fun(P) ->
+ P ! {reconfigure, Options}
+ end,
+ do_select([{#connection{pid = '$1', _='_'},
+ [], ['$1']}])).
+
+reconfigure(Options, Ref) ->
+ case do_select([{#connection{ref = Ref, pid = '$1', _='_'},
+ [], ['$1']}]) of
+ [Pid] when is_pid(Pid) ->
+ Pid ! {reconfigure, Options},
+ ok;
+ _ ->
+ {error, "No proxy matched the supplied reference"}
+ end.
+
+connect(Type, S, AcceptPid, Ref, ProxyOptions) ->
+ gen_server:call(orber_iiop_net, {connect, Type, S, AcceptPid,
+ Ref, ProxyOptions}, infinity).
+
+connections() ->
+ do_select([{#connection{peerdata = '$1', _='_'}, [], ['$1']}]).
+
+sockname2peername(SockHost, SockPort) ->
+ do_select([{#connection{peerdata = '$1',
+ localdata = {match_type(SockHost),
+ match_type(SockPort)},
+ _='_'}, [], ['$1']}]).
+
+
+peername2sockname(PeerHost, PeerPort) ->
+ do_select([{#connection{peerdata = {match_type(PeerHost),
+ match_type(PeerPort)},
+ localdata = '$1',
+ _='_'}, [], ['$1']}]).
+
+do_select(Pattern) ->
+ case catch ets:select(?CONNECTION_DB, Pattern) of
+ {'EXIT', _What} ->
+ [];
+ Result ->
+ Result
+ end.
+
+match_type(0) ->
+ %% Wildcard port number
+ '_';
+match_type("") ->
+ %% Wildcard host
+ '_';
+match_type(Key) ->
+ %% Wildcard not used.
+ Key.
+
+add_connection(Socket, Type, PeerData, LocalData, Ref) ->
+ ets:insert(?CONNECTION_DB, #connection{pid = self(), socket = Socket,
+ type = Type, peerdata = PeerData,
+ localdata = LocalData, ref = Ref}).
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init(Options) ->
+ process_flag(trap_exit, true),
+ {ok, parse_options(Options,
+ #state{max_connections = orber:iiop_max_in_connections(),
+ db = ets:new(?CONNECTION_DB, [set, public,
+ named_table,
+ {keypos, 2}]),
+ queue = queue:new()})}.
+
+%%-----------------------------------------------------------------
+%% Func: terminate/1
+%%-----------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+%%-----------------------------------------------------------------
+%% Func: parse_options/2
+%%-----------------------------------------------------------------
+get_options(normal, _Options) ->
+ [];
+get_options(ssl, Options) ->
+ Verify = orber_tb:keysearch(ssl_server_verify, Options,
+ orber_env:ssl_server_verify()),
+ Depth = orber_tb:keysearch(ssl_server_depth, Options,
+ orber_env:ssl_server_depth()),
+ Cert = orber_tb:keysearch(ssl_server_certfile, Options,
+ orber_env:ssl_server_certfile()),
+ CaCert = orber_tb:keysearch(ssl_server_cacertfile, Options,
+ orber_env:ssl_server_cacertfile()),
+ Pwd = orber_tb:keysearch(ssl_server_password, Options,
+ orber_env:ssl_server_password()),
+ Key = orber_tb:keysearch(ssl_server_keyfile, Options,
+ orber_env:ssl_server_keyfile()),
+ Ciphers = orber_tb:keysearch(ssl_server_ciphers, Options,
+ orber_env:ssl_server_ciphers()),
+ Timeout = orber_tb:keysearch(ssl_server_cachetimeout, Options,
+ orber_env:ssl_server_cachetimeout()),
+ [{verify, Verify},
+ {depth, Depth} |
+ ssl_server_extra_options([{certfile, Cert},
+ {cacertfile, CaCert},
+ {password, Pwd},
+ {keyfile, Key},
+ {ciphers, Ciphers},
+ {cachetimeout, Timeout}], [])].
+
+%%-----------------------------------------------------------------
+%% Func: parse_options/2
+%%-----------------------------------------------------------------
+parse_options([{port, Type, Port} | Rest], State) ->
+ Options = get_options(Type, []),
+ Options2 = case orber_env:ip_address_variable_defined() of
+ false ->
+ Options;
+ Host ->
+ IPVersion = orber:ip_version(),
+ {ok, IP} = inet:getaddr(Host, IPVersion),
+ [{ip, IP} | Options]
+ end,
+ {ok, Listen, NewPort} = orber_socket:listen(Type, Port, Options2, true),
+ {ok, Pid} = orber_iiop_socketsup:start_accept(Type, Listen, 0),
+ link(Pid),
+ ets:insert(?CONNECTION_DB, #listen{pid = Pid, socket = Listen,
+ port = NewPort, type = Type,
+ options = Options2}),
+ parse_options(Rest, State);
+parse_options([], State) ->
+ State.
+
+ssl_server_extra_options([], Acc) ->
+ Acc;
+ssl_server_extra_options([{_Type, []}|T], Acc) ->
+ ssl_server_extra_options(T, Acc);
+ssl_server_extra_options([{_Type, infinity}|T], Acc) ->
+ ssl_server_extra_options(T, Acc);
+ssl_server_extra_options([{Type, Value}|T], Acc) ->
+ ssl_server_extra_options(T, [{Type, Value}|Acc]).
+
+filter_options([], Acc) ->
+ Acc;
+filter_options([{verify, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{depth, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{certfile, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{cacertfile, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{password, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{keyfile, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{ciphers, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([{cachetimeout, _}|T], Acc) ->
+ filter_options(T, Acc);
+filter_options([H|T], Acc) ->
+ filter_options(T, [H|Acc]).
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%-----------------------------------------------------------------
+handle_call({remove, Ref}, _From, State) ->
+ case do_select([{#listen{ref = Ref, pid = '$1', socket = '$2',
+ type = '$3', _='_'}, [], [{{'$1', '$2', '$3'}}]}]) of
+ [{Pid, Listen, Type}|_] when is_pid(Pid) ->
+ unlink(Pid),
+ ets:delete(?CONNECTION_DB, Pid),
+ %% Just close the listen socket. Will cause the accept processs
+ %% to terminate.
+ orber_socket:close(Type, Listen),
+ stop_proxies(do_select([{#connection{ref = Ref, pid = '$1', _='_'},
+ [], ['$1']}])),
+ {reply, ok,
+ State#state{queue =
+ from_list(
+ lists:keydelete(Pid, 1,
+ queue:to_list(State#state.queue)))}};
+ _ ->
+ {reply, ok, State}
+ end;
+handle_call({add, IP, Type, Port, AllOptions}, _From, State) ->
+ Family = orber_env:ip_version(),
+ case inet:getaddr(IP, Family) of
+ {ok, IPTuple} ->
+ Options = [{ip, IPTuple}|get_options(Type, AllOptions)],
+ Ref = make_ref(),
+ ProxyOptions = filter_options(AllOptions, []),
+ case orber_socket:listen(Type, Port, Options, false) of
+ {ok, Listen, NewPort} ->
+ {ok, Pid} = orber_iiop_socketsup:start_accept(Type, Listen, Ref,
+ ProxyOptions),
+ link(Pid),
+ ets:insert(?CONNECTION_DB, #listen{pid = Pid,
+ socket = Listen,
+ port = NewPort,
+ type = Type, ref = Ref,
+ options = Options,
+ proxy_options = ProxyOptions}),
+ {reply, {ok, Ref}, State};
+ Error ->
+ {reply, Error, State}
+ end;
+ Other ->
+ {reply, Other, State}
+ end;
+handle_call({connect, Type, Socket, _AcceptPid, AccepRef, ProxyOptions}, _From, State)
+ when State#state.max_connections == infinity;
+ State#state.max_connections > State#state.counter ->
+ case catch access_allowed(Type, Socket, Type) of
+ true ->
+ case orber_iiop_insup:start_connection(Type, Socket,
+ AccepRef, ProxyOptions) of
+ {ok, Pid} when is_pid(Pid) ->
+ link(Pid),
+ {reply, {ok, Pid, true}, update_counter(State, 1)};
+ Other ->
+ {reply, Other, State}
+ end;
+ _ ->
+ {H, P} = orber_socket:peerdata(Type, Socket),
+ orber_tb:info("Blocked connect attempt from ~s - ~p", [H, P]),
+ {reply, denied, State}
+ end;
+handle_call({connect, Type, Socket, AcceptPid, AccepRef, ProxyOptions}, _From,
+ #state{queue = Q} = State) ->
+ case catch access_allowed(Type, Socket, Type) of
+ true ->
+ case orber_iiop_insup:start_connection(Type, Socket,
+ AccepRef, ProxyOptions) of
+ {ok, Pid} when is_pid(Pid) ->
+ link(Pid),
+ Ref = erlang:make_ref(),
+ {reply, {ok, Pid, Ref},
+ update_counter(State#state{queue =
+ queue:in({AcceptPid, Ref}, Q)}, 1)};
+ Other ->
+ {reply, Other, State}
+ end;
+ _ ->
+ {H, P} = orber_socket:peerdata(Type, Socket),
+ orber_tb:info("Blocked connect attempt from ~s - ~p", [H, P]),
+ {reply, denied, State}
+ end;
+handle_call(_, _, State) ->
+ {noreply, State}.
+
+stop_proxies([H|T]) ->
+ catch orber_iiop_inproxy:stop(H),
+ stop_proxies(T);
+stop_proxies([]) ->
+ ok.
+
+access_allowed(Type, Socket, Type) ->
+ Flags = orber:get_flags(),
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_USE_ACL_INCOMING) of
+ false ->
+ true;
+ true ->
+ SearchFor =
+ case Type of
+ normal ->
+ tcp_in;
+ ssl ->
+ ssl_in
+ end,
+ {ok, {Host, Port}} = orber_socket:peername(Type, Socket),
+ case orber_acl:match(Host, SearchFor, true) of
+ {true, [], 0} ->
+ true;
+ {true, [], Port} ->
+ true;
+ {true, [], {Min, Max}} when Port >= Min, Port =< Max ->
+ true;
+ {true, Interfaces, 0} ->
+ get_sockethost(Type, Socket),
+ lists:member(get_sockethost(Type, Socket), Interfaces);
+ {true, Interfaces, Port} ->
+ lists:member(get_sockethost(Type, Socket), Interfaces);
+ {true, Interfaces, {Min, Max}} when Port >= Min, Port =< Max ->
+ lists:member(get_sockethost(Type, Socket), Interfaces);
+ _ ->
+ false
+ end
+ end.
+
+get_sockethost(Type, Socket) ->
+ case orber_socket:peername(Type, Socket) of
+ {ok, {Addr, _Port}} ->
+ orber_env:addr2str(Addr);
+ _ ->
+ false
+ end.
+
+%%------------------------------------------------------------
+%% Standard gen_server cast handle
+%%------------------------------------------------------------
+handle_cast(_, State) ->
+ {noreply, State}.
+
+%%------------------------------------------------------------
+%% Standard gen_server handles
+%%------------------------------------------------------------
+handle_info({'EXIT', Pid, _Reason}, State) when is_pid(Pid) ->
+ case ets:lookup(?CONNECTION_DB, Pid) of
+ [#listen{pid = Pid, socket = Listen, port = Port, type = Type,
+ ref = Ref, options = Options, proxy_options = POpts}] ->
+ ets:delete(?CONNECTION_DB, Pid),
+ unlink(Pid),
+ NewListen = new_listen_socket(Type, Listen, Port, Options),
+ {ok, NewPid} = orber_iiop_socketsup:start_accept(Type, NewListen,
+ Ref, POpts),
+ link(NewPid),
+ ets:insert(?CONNECTION_DB, #listen{pid = NewPid, socket = NewListen,
+ port = Port, type = Type,
+ ref = Ref, options = Options,
+ proxy_options = POpts}),
+ %% Remove the connection if it's in the queue.
+ {noreply,
+ State#state{queue =
+ from_list(
+ lists:keydelete(Pid, 1,
+ queue:to_list(State#state.queue)))}};
+ [#connection{pid = Pid}] ->
+ ets:delete(?CONNECTION_DB, Pid),
+ unlink(Pid),
+ case queue:out(State#state.queue) of
+ {empty, _} ->
+ {noreply, update_counter(State, -1)};
+ {{value, {AcceptPid, Ref}}, Q} ->
+ AcceptPid ! {Ref, ok},
+ {noreply, update_counter(State#state{queue = Q}, -1)}
+ end;
+ [] ->
+ {noreply, State}
+ end;
+handle_info(_, State) ->
+ {noreply, State}.
+
+new_listen_socket(normal, ListenFd, _Port, _Options) ->
+ ListenFd;
+new_listen_socket(ssl, ListenFd, Port, Options) ->
+ Generation = orber_env:ssl_generation(),
+ if
+ Generation > 2 ->
+ ListenFd;
+ true ->
+ case is_process_alive(ssl:pid(ListenFd)) of
+ true ->
+ ListenFd;
+ _ ->
+ {ok, Listen, _NP} = orber_socket:listen(ssl, Port, Options, true),
+ Listen
+ end
+ end.
+
+from_list(List) ->
+ from_list(List, queue:new()).
+
+from_list([], Q) ->
+ Q;
+from_list([H|T], Q) ->
+ NewQ = queue:in(H, Q),
+ from_list(T, NewQ).
+
+
+%%-----------------------------------------------------------------
+%% Func: code_change/3
+%%-----------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------------
+%% Internal Functions
+%%-----------------------------------------------------------------
+update_counter(#state{max_connections = infinity} = State, _) ->
+ State;
+update_counter(State, Value) ->
+ State#state{counter = State#state.counter + Value}.
+
diff --git a/lib/orber/src/orber_iiop_net_accept.erl b/lib/orber/src/orber_iiop_net_accept.erl
new file mode 100644
index 0000000000..03443e3d5c
--- /dev/null
+++ b/lib/orber/src/orber_iiop_net_accept.erl
@@ -0,0 +1,94 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_net_accept.erl
+%%
+%% Description:
+%% This file contains the process which are waiting in accept for new
+%% connections.
+%%
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_net_accept).
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/4]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([net_accept/5]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start/2
+%%-----------------------------------------------------------------
+start(Type, Listen, Ref, ProxyOptions) ->
+ Pid = proc_lib:spawn_link(?MODULE, net_accept,
+ [Type, Listen, self(), Ref, ProxyOptions]),
+ {ok, Pid}.
+
+%%-----------------------------------------------------------------
+%% Internal Functions
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Func: net_accept/3
+%%-----------------------------------------------------------------
+net_accept(Type, ListenFd, Parent, Ref, ProxyOptions) ->
+ case catch orber_socket:accept(Type, ListenFd) of
+ {'EXCEPTION', _E} ->
+ ok;
+ S ->
+ case orber_iiop_net:connect(Type, S, self(), Ref, ProxyOptions) of
+ {ok, Pid, ReadyToGo} ->
+ case orber_socket:controlling_process(Type, S, Pid) of
+ ok ->
+ orber_iiop_inproxy:post_accept(Pid, Type, S);
+ _Reason ->
+ orber_socket:close(Type, S),
+ gen_server:cast(Pid, stop),
+ orber_socket:clear(Type, S)
+ end,
+ ready_to_go(ReadyToGo);
+ denied ->
+ orber_socket:close(Type, S),
+ orber_socket:clear(Type, S);
+ _ ->
+ orber_socket:close(Type, S),
+ orber_socket:clear(Type, S)
+ end,
+ net_accept(Type, ListenFd, Parent, Ref, ProxyOptions)
+ end.
+
+ready_to_go(true) ->
+ ok;
+ready_to_go(Ref) ->
+ receive
+ {Ref, ok} ->
+ ok
+ end.
+
diff --git a/lib/orber/src/orber_iiop_outproxy.erl b/lib/orber/src/orber_iiop_outproxy.erl
new file mode 100644
index 0000000000..879af8222d
--- /dev/null
+++ b/lib/orber/src/orber_iiop_outproxy.erl
@@ -0,0 +1,530 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_outproxy.erl
+%%
+%% Description:
+%% This file contains the IIOP "proxy" for outgoing connections
+%%
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_outproxy).
+
+-behaviour(gen_server).
+
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/0, start/1, request/5, cancel/2, cancel/3]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
+ code_change/3, terminate/2, stop/2, stop/1, checkheaders/1]).
+
+%%-----------------------------------------------------------------
+%% Macros/Defines
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 7).
+
+-record(state, {stype, socket, db, timeout, client_timeout, host, port, parent,
+ error_reason = {'EXCEPTION', #'COMM_FAILURE'
+ {completion_status=?COMPLETED_MAYBE}}}).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start() ->
+ ignore.
+
+start(Opts) ->
+ gen_server:start_link(orber_iiop_outproxy, Opts, []).
+
+request(Pid, true, Timeout, Msg, RequestId) ->
+ %% Why not simply use gen_server:call? We must be able to receive
+ %% more than one reply (i.e. fragmented messages).
+ MRef = erlang:monitor(process, Pid),
+ gen_server:cast(Pid, {request, Timeout, Msg, RequestId, self(), MRef}),
+ receive
+ {MRef, Reply} ->
+ erlang:demonitor(MRef),
+ receive
+ {'DOWN', MRef, _, _, _} ->
+ Reply
+ after 0 ->
+ Reply
+ end;
+ {'DOWN', MRef, _, Pid, _Reason} when is_pid(Pid) ->
+ receive
+ %% Clear EXIT message from queue
+ {'EXIT', _Pid, _What} ->
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_MAYBE})
+ after 0 ->
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_MAYBE})
+ end;
+ {fragmented, GIOPHdr, Bytes, RequestId, MRef} ->
+ collect_fragments(GIOPHdr, [], Bytes, Pid, RequestId, MRef)
+ end;
+request(Pid, _, _, Msg, _RequestId) ->
+ %% No response expected
+ gen_server:cast(Pid, {oneway_request, Msg}).
+
+cancel(Pid, RequestId) ->
+ gen_server:cast(Pid, {cancel, RequestId}).
+
+cancel(Pid, RequestId, MRef) ->
+ gen_server:cast(Pid, {cancel, RequestId, MRef, self()}).
+
+%%-----------------------------------------------------------------
+%% Internal interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: stop/2
+%%-----------------------------------------------------------------
+stop(Pid, Timeout) ->
+ gen_server:call(Pid, stop, Timeout).
+stop(Pid) ->
+ gen_server:cast(Pid, stop).
+
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init({connect, Host, Port, SocketType, SocketOptions, Parent, Key, NewKey}) ->
+ process_flag(trap_exit, true),
+ case catch orber_socket:connect(SocketType, Host, Port, SocketOptions) of
+ {'EXCEPTION', _E} ->
+ ignore;
+ %% We used to reply the below but since this would generate a CRASH REPORT
+ %% if '-boot start_sasl' used. Due to a request to change this behaviour
+ %% we did.
+ %% {stop, {'EXCEPTION', E}};
+ Socket ->
+ SockData = orber_socket:sockdata(SocketType, Socket),
+ orber_iiop_pm:add_connection(Key, NewKey, SockData),
+ Timeout = orber:iiop_connection_timeout(),
+ {ok, #state{stype = SocketType, socket = Socket,
+ db = ets:new(orber_outgoing_requests, [set]),
+ timeout = Timeout, client_timeout = orber:iiop_timeout(),
+ host = Host, port = Port, parent = Parent}, Timeout}
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: terminate/2
+%%-----------------------------------------------------------------
+terminate(_Reason, #state{db = OutRequests, error_reason = ER}) ->
+ %% Kill all proxies and delete table before terminating
+ notify_clients(OutRequests, ets:first(OutRequests), ER),
+ ets:delete(OutRequests),
+ ok.
+
+notify_clients(_, '$end_of_table', _ER) ->
+ ok;
+notify_clients(OutRequests, Key, ER) ->
+ case ets:lookup(OutRequests, Key) of
+ [{_, Pid, TRef, MRef}] ->
+ cancel_timer(TRef),
+ Pid ! {MRef, ER},
+ notify_clients(OutRequests, ets:next(OutRequests, Key), ER)
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%-----------------------------------------------------------------
+handle_call(stop, _From, State) ->
+ {stop, normal, ok, State};
+handle_call(X, From, State) ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_call(~p);~n"
+ "Un-recognized call from ~p", [?LINE, X, From], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout}.
+
+%%-----------------------------------------------------------------
+%% Func: handle_cast/2
+%%-----------------------------------------------------------------
+handle_cast({request, Timeout, Msg, RequestId, From, MRef},
+ #state{client_timeout = DefaultTimeout} = State) ->
+ orber_socket:write(State#state.stype, State#state.socket, Msg),
+ true = ets:insert(State#state.db, {RequestId, From,
+ start_timer(Timeout, DefaultTimeout, RequestId),
+ MRef}),
+ {noreply, State, State#state.timeout};
+handle_cast({oneway_request, Msg}, State) ->
+ orber_socket:write(State#state.stype, State#state.socket, Msg),
+ {noreply, State, State#state.timeout};
+handle_cast({cancel, ReqId}, State) ->
+ case ets:lookup(State#state.db, ReqId) of
+ [{ReqId, _From, TRef, _MRef}] ->
+ cancel_timer(TRef),
+ ets:delete(State#state.db, ReqId),
+ orber:dbg("[~p] orber_iiop_outproxy:handle_info(~p);~n"
+ "Request cancelled", [?LINE, State], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout};
+ _ ->
+ {noreply, State, State#state.timeout}
+ end;
+handle_cast({cancel, ReqId, MRef, From}, State) ->
+ case ets:lookup(State#state.db, ReqId) of
+ [{ReqId, From, TRef, MRef}] ->
+ cancel_timer(TRef),
+ ets:delete(State#state.db, ReqId),
+ From ! {MRef, ReqId, cancelled},
+ orber:dbg("[~p] orber_iiop_outproxy:handle_info(~p);
+Request cancelled", [?LINE, State], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout};
+ _ ->
+ From ! {MRef, ReqId, cancelled},
+ {noreply, State, State#state.timeout}
+ end;
+handle_cast(stop, State) ->
+ {stop, normal, State};
+handle_cast(X, State) ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_cast(~p);
+Un-recognized cast.", [?LINE, X], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout}.
+
+%%-----------------------------------------------------------------
+%% Func: handle_info/2
+%%-----------------------------------------------------------------
+handle_info({tcp, _Socket, Bytes}, State) ->
+ handle_reply(Bytes, State);
+handle_info({ssl, _Socket, Bytes}, State) ->
+ handle_reply(Bytes, State);
+handle_info({tcp_closed, _Socket}, State) ->
+ {stop, normal, State};
+handle_info({ssl_closed, _Socket}, State) ->
+ {stop, normal, State};
+handle_info({tcp_error, Socket, Reason}, #state{socket = Socket, host = Host,
+ port = Port} = State) ->
+ orber:error("[~p] IIOP proxy received the TCP error message: ~p~n"
+ "The server-side ORB is located at '~p:~p'~n"
+ "See the gen_tcp/inet documentation for more information.",
+ [?LINE, Reason, Host, Port], ?DEBUG_LEVEL),
+ {stop, normal, State};
+handle_info({ssl_error, Socket, Reason}, #state{socket = Socket, host = Host,
+ port = Port} = State) ->
+ orber:error("[~p] IIOP proxy received the SSL error message: ~p~n"
+ "The server-side ORB is located at '~p:~p'~n"
+ "See the SSL-application documentation for more information.",
+ [?LINE, Reason, Host, Port], ?DEBUG_LEVEL),
+ {stop, normal, State};
+handle_info({timeout, _TRef, ReqId}, State) ->
+ case ets:lookup(State#state.db, ReqId) of
+ [{ReqId, Pid, _, MRef}] ->
+ ets:delete(State#state.db, ReqId),
+ Pid ! {MRef, {'EXCEPTION', #'TIMEOUT'{completion_status=?COMPLETED_MAYBE}}},
+ orber:dbg("[~p] orber_iiop_outproxy:handle_info(~p, ~p);~n"
+ "Request timed out",
+ [?LINE, State#state.host, State#state.port], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout};
+ _ ->
+ {noreply, State, State#state.timeout}
+ end;
+handle_info(stop, State) ->
+ {stop, normal, State};
+handle_info(timeout, State) ->
+ case ets:info(State#state.db, size) of
+ 0 ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_info(~p, ~p);~n"
+ "Outgoing connection timed out after ~p msec",
+ [?LINE, State#state.host, State#state.port,
+ State#state.timeout], ?DEBUG_LEVEL),
+ {stop, normal, State};
+ _Amount ->
+ %% Still pending request, cannot close the connection.
+ {noreply, State, State#state.timeout}
+ end;
+handle_info({'EXIT', Parent, Reason}, #state{parent = Parent} = State) ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_info(~p);~nParent terminated.",
+ [?LINE, Reason], ?DEBUG_LEVEL),
+ {stop, normal, State};
+handle_info({reconfigure, _Options}, State) ->
+ %% Currently there are no parameters that can be changed.
+ {noreply, State, State#state.timeout};
+handle_info(X, State) ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_info(~p);~nUn-recognized info.",
+ [?LINE, X], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout}.
+
+
+handle_reply(Bytes, State) ->
+ %% Check IIOP headers and fetch request id
+ case catch checkheaders(cdr_decode:dec_giop_message_header(Bytes)) of
+ {'reply', ReplyHeader, Rest, Len, ByteOrder} ->
+ case ets:lookup(State#state.db, ReplyHeader#reply_header.request_id) of
+ [{_, Pid, TRef, MRef}] ->
+ %% Send reply to the correct request process
+ cancel_timer(TRef),
+ Pid ! {MRef, {reply, ReplyHeader, Rest, Len, ByteOrder, Bytes}},
+ ets:delete(State#state.db, ReplyHeader#reply_header.request_id),
+ {noreply, State, State#state.timeout};
+ _ ->
+ {noreply, State, State#state.timeout}
+ end;
+ {'locate_reply', LocateReplyHeader, LocateRest, LocateLen, LocateByteOrder} ->
+ case ets:lookup(State#state.db,
+ LocateReplyHeader#locate_reply_header.request_id) of
+ [{_, Pid, TRef, MRef}] ->
+ %% Send reply to the correct request process
+ cancel_timer(TRef),
+ Pid ! {MRef, {locate_reply, LocateReplyHeader,
+ LocateRest, LocateLen, LocateByteOrder}},
+ ets:delete(State#state.db,
+ LocateReplyHeader#locate_reply_header.request_id),
+ {noreply, State, State#state.timeout};
+ _ ->
+ {noreply, State, State#state.timeout}
+ end;
+ {fragment, GIOPHdr, ReqId, false} ->
+ %% Last fragment, cancel timer and remove from DB.
+ case ets:lookup(State#state.db, ReqId) of
+ [{_, Pid, TRef, MRef}] ->
+ cancel_timer(TRef),
+ Pid ! {fragment, GIOPHdr, ReqId, MRef},
+ ets:delete(State#state.db, ReqId),
+ {noreply, State, State#state.timeout};
+ _ ->
+ %% Probably cancelled
+ {noreply, State, State#state.timeout}
+ end;
+ {fragment, GIOPHdr, ReqId, _} ->
+ %% More fragments expected
+ case ets:lookup(State#state.db, ReqId) of
+ [{_, Pid, _, MRef}] ->
+ Pid ! {fragment, GIOPHdr, ReqId, MRef},
+ {noreply, State, State#state.timeout};
+ _ ->
+ %% Probably cancelled
+ {noreply, State, State#state.timeout}
+ end;
+ {fragmented, GIOPHdr, ReqId} ->
+ %% This the initial message (i.e. a LocateReply or Reply).
+ case ets:lookup(State#state.db, ReqId) of
+ [{_, Pid, _TRef, MRef}] ->
+ Pid ! {fragmented, GIOPHdr, Bytes, ReqId, MRef},
+ {noreply, State, State#state.timeout};
+ _ ->
+ {noreply, State, State#state.timeout}
+ end;
+ {'EXCEPTION', DecodeException} ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_reply(~p); decode exception(~p).",
+ [?LINE, Bytes, DecodeException], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout};
+ {'EXIT', message_error} ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_reply(~p); message error.",
+ [?LINE, Bytes], ?DEBUG_LEVEL),
+ ME = cdr_encode:enc_message_error(#giop_env{version =
+ orber:giop_version()}),
+ orber_socket:write(State#state.stype, State#state.socket, ME),
+ {noreply, State, State#state.timeout};
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_reply(~p); got exit(~p)",
+ [?LINE, Bytes, R], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout};
+ close_connection ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_reply();
+The Server-side ORB closed the connection.", [?LINE], ?DEBUG_LEVEL),
+ {stop, normal, State};
+ {error, no_reply} ->
+ {noreply, State, State#state.timeout};
+ X ->
+ orber:dbg("[~p] orber_iiop_outproxy:handle_reply(~p); message error(~p).",
+ [?LINE, Bytes, X], ?DEBUG_LEVEL),
+ {noreply, State, State#state.timeout}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Func: code_change/3
+%%-----------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+checkheaders(#giop_message{message_type = ?GIOP_MSG_CLOSE_CONNECTION}) ->
+ close_connection;
+checkheaders(#giop_message{message_type = ?GIOP_MSG_FRAGMENT,
+ giop_version = {1,2},
+ fragments = MoreFrag} = GIOPHdr) ->
+ %% A fragment; we must have received a Request or LocateRequest
+ %% with fragment-flag set to true.
+ %% We need to decode the header to get the request-id.
+ ReqId = cdr_decode:peek_request_id(GIOPHdr#giop_message.byte_order,
+ GIOPHdr#giop_message.message),
+ {fragment, GIOPHdr, ReqId, MoreFrag};
+checkheaders(#giop_message{fragments = true,
+ giop_version = {1,2}} = GIOPHdr) ->
+ %% Must be a Reply or LocateReply which have been fragmented.
+ %% We need to decode the header to get the request-id.
+ ReqId = cdr_decode:peek_request_id(GIOPHdr#giop_message.byte_order,
+ GIOPHdr#giop_message.message),
+ {fragmented, GIOPHdr, ReqId};
+checkheaders(#giop_message{fragments = false,
+ message_type = ?GIOP_MSG_REPLY} = GIOPHdr) ->
+ {ReplyHeader, Rest, Len} =
+ cdr_decode:dec_reply_header(GIOPHdr#giop_message.giop_version,
+ GIOPHdr#giop_message.message,
+ ?GIOP_HEADER_SIZE,
+ GIOPHdr#giop_message.byte_order),
+ {'reply', ReplyHeader, Rest, Len, GIOPHdr#giop_message.byte_order};
+checkheaders(#giop_message{fragments = false,
+ message_type = ?GIOP_MSG_LOCATE_REPLY} = GIOPHdr) ->
+ {LocateReplyHeader, Rest, Len} =
+ cdr_decode:dec_locate_reply_header(GIOPHdr#giop_message.giop_version,
+ GIOPHdr#giop_message.message,
+ ?GIOP_HEADER_SIZE,
+ GIOPHdr#giop_message.byte_order),
+ {'locate_reply', LocateReplyHeader, Rest, Len, GIOPHdr#giop_message.byte_order};
+checkheaders(What) ->
+ orber:dbg("[~p] orber_iiop_outproxy:checkheaders(~p)
+Un-recognized GIOP header.", [?LINE, What], ?DEBUG_LEVEL),
+ {error, no_reply}.
+
+
+cancel_timer(infinity) ->
+ ok;
+cancel_timer(TRef) ->
+ erlang:cancel_timer(TRef).
+
+start_timer(infinity, infinity, _) ->
+ infinity;
+start_timer(infinity, Timeout, RequestId) ->
+ erlang:start_timer(Timeout, self(), RequestId);
+start_timer(Timeout, _, RequestId) ->
+ erlang:start_timer(Timeout, self(), RequestId).
+
+
+
+collect_fragments(GIOPHdr1, InBuffer, Bytes, Proxy, RequestId, MRef) ->
+ receive
+ %% There are more framents to come; just collect this message and wait for
+ %% the rest.
+ {fragment, #giop_message{byte_order = _ByteOrder,
+ message = Message,
+ fragments = true} = GIOPHdr2, RequestId, MRef} ->
+ case catch cdr_decode:dec_message_header(null, GIOPHdr2, Message) of
+ {_, #fragment_header{}, FragBody, _, _} ->
+ collect_fragments(GIOPHdr1, [FragBody|InBuffer],
+ Bytes, Proxy, RequestId, MRef);
+ Other ->
+ cancel(Proxy, RequestId, MRef),
+ clear_queue(Proxy, RequestId, MRef),
+ orber:dbg("[~p] orber_iiop:collect_fragments(~p)",
+ [?LINE, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 18),
+ completion_status=?COMPLETED_YES})
+ end;
+ %% This is the last fragment. Now we can but together the fragments, decode
+ %% the reply and send it to the client.
+ {fragment, #giop_message{byte_order = ByteOrder,
+ message = Message} = GIOPHdr2, RequestId, MRef} ->
+ erlang:demonitor(MRef),
+ receive
+ {'DOWN', MRef, _, _, _} ->
+ ok
+ after 0 ->
+ ok
+ end,
+ case catch cdr_decode:dec_message_header(null, GIOPHdr2, Message) of
+ {_, #fragment_header{}, FragBody, _, _} ->
+ %% This buffer is all the fragments concatenated.
+ Buffer = lists:reverse([FragBody|InBuffer]),
+
+ %% Create a GIOP-message which is exactly as if hadn't been fragmented.
+ NewGIOP = GIOPHdr1#giop_message
+ {message = list_to_binary([GIOPHdr1#giop_message.message|Buffer]),
+ fragments = false},
+ case checkheaders(NewGIOP) of
+ {'reply', ReplyHeader, Rest, Len, ByteOrder} ->
+ %% We must keep create a copy of all bytes, as if the
+ %% message wasn't fragmented, to be able handle TypeCode
+ %% indirection.
+ {'reply', ReplyHeader, Rest, Len, ByteOrder,
+ list_to_binary([Bytes|Buffer])};
+ {'locate_reply', ReplyHdr, Rest, Len, ByteOrder} ->
+ {'locate_reply', ReplyHdr, Rest, Len, ByteOrder};
+ Error ->
+ orber:dbg("[~p] orber_iiop:collect_fragments(~p, ~p);
+Unable to decode Reply or LocateReply header",[?LINE, NewGIOP, Error], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 18),
+ completion_status=?COMPLETED_YES})
+ end;
+ Other ->
+ orber:dbg("[~p] orber_iiop:collect_fragments(~p);",
+ [?LINE, Other], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{minor=(?ORBER_VMCID bor 18),
+ completion_status=?COMPLETED_YES})
+ end;
+ {MRef, {'EXCEPTION', E}} ->
+ orber:dbg("[~p] orber_iiop:collect_fragments(~p);",
+ [?LINE, E], ?DEBUG_LEVEL),
+ erlang:demonitor(MRef),
+ receive
+ {'DOWN', MRef, _, _, _} ->
+ corba:raise(E)
+ after 0 ->
+ corba:raise(E)
+ end;
+ {'DOWN', MRef, _, Proxy, Reason} when is_pid(Proxy) ->
+ orber:dbg("[~p] orber_iiop:collect_fragments(~p);~n"
+ "Monitor generated a DOWN message.",
+ [?LINE, Reason], ?DEBUG_LEVEL),
+ receive
+ %% Clear EXIT message from queue
+ {'EXIT', _Proxy, _What} ->
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_MAYBE})
+ after 0 ->
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_MAYBE})
+ end
+ end.
+
+clear_queue(Proxy, RequestId, MRef) ->
+ receive
+ {fragment, _, RequestId, MRef} ->
+ clear_queue(Proxy, RequestId, MRef);
+ {MRef, RequestId, cancelled} ->
+ %% This is the last message that the proxy will send
+ %% after we've cancelled the request.
+ erlang:demonitor(MRef),
+ receive
+ {'DOWN', MRef, _, _, _} ->
+ ok
+ after 0 ->
+ ok
+ end;
+ {'DOWN', MRef, _, Proxy, _Reason} ->
+ %% The proxy terminated. Clear EXIT message from queue
+ receive
+ {'EXIT', Proxy, _What} ->
+ ok
+ after 0 ->
+ ok
+ end
+ end.
+
diff --git a/lib/orber/src/orber_iiop_outsup.erl b/lib/orber/src/orber_iiop_outsup.erl
new file mode 100644
index 0000000000..24432b3a82
--- /dev/null
+++ b/lib/orber/src/orber_iiop_outsup.erl
@@ -0,0 +1,87 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_outsup.erl
+%%
+%% Description:
+%% This file contains the outgoing IIOP communication supervisor which
+%% holds all active "proxies"
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_outsup).
+
+-behaviour(supervisor).
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/2, connect/7]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start/2
+%%-----------------------------------------------------------------
+start(sup, Opts) ->
+ supervisor:start_link({local, orber_iiop_outsup}, orber_iiop_outsup,
+ {sup, Opts});
+start(_A1, _A2) ->
+ ok.
+
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init({sup, _Opts}) ->
+ SupFlags = {simple_one_for_one, 500, 100},
+ ChildSpec = [
+ {name2, {orber_iiop_outproxy, start, []}, temporary,
+ 10000, worker, [orber_iiop_outproxy]}
+ ],
+ {ok, {SupFlags, ChildSpec}};
+init(_Opts) ->
+ {ok, []}.
+
+
+%%-----------------------------------------------------------------
+%% Func: terminate/1
+%%-----------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+%%-----------------------------------------------------------------
+%% Func: connect/6
+%%-----------------------------------------------------------------
+connect(Host, Port, SocketType, SocketOptions, Parent, Key, NewKey) ->
+ supervisor:start_child(orber_iiop_outsup,
+ [{connect, Host, Port, SocketType,
+ SocketOptions, Parent, Key, NewKey}]).
+
diff --git a/lib/orber/src/orber_iiop_pm.erl b/lib/orber/src/orber_iiop_pm.erl
new file mode 100644
index 0000000000..bf36b353bc
--- /dev/null
+++ b/lib/orber/src/orber_iiop_pm.erl
@@ -0,0 +1,821 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_pm.erl
+%% Description:
+%% This file contains the mapping of addresses on the format {Host, Port}
+%% to a proxy pid.
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_pm).
+
+-behaviour(gen_server).
+
+-include_lib("orber/src/orber_iiop.hrl").
+-include_lib("orber/include/corba.hrl").
+-include_lib("kernel/include/inet.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/0, start/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([connect/7,
+ close_connection/1, close_connection/2,
+ list_existing_connections/0,
+ list_setup_connections/0,
+ list_all_connections/0,
+ init/1, handle_call/3, handle_cast/2, handle_info/2,
+ code_change/3, terminate/2, stop/0, setup_connection/8,
+ reconfigure/1, reconfigure/3, reconfigure/4, add_connection/3,
+ sockname2peername/2, peername2sockname/2]).
+
+%%-----------------------------------------------------------------
+%% Macros/Defines
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 7).
+
+-define(PM_CONNECTION_DB, orber_iiop_pm_db).
+
+-record(state, {connections, queue}).
+
+-record(connection, {hp, child, interceptors, slave,
+ flags = 0, alias = 0, socketdata = {"Unavailable", 0}}).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start() ->
+ ignore.
+start(Opts) ->
+ gen_server:start_link({local, 'orber_iiop_pm'}, ?MODULE, Opts, []).
+
+
+connect(Host, Port, SocketType, Timeout, Chars, Wchars, Ctx)
+ when SocketType == normal ->
+ Key = create_key(Host, Port, Ctx),
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [#connection{child = connecting}] ->
+ gen_server:call(orber_iiop_pm, {connect, Host, Port, SocketType,
+ [], Chars, Wchars, Key}, Timeout);
+ [] ->
+ gen_server:call(orber_iiop_pm, {connect, Host, Port, SocketType,
+ [], Chars, Wchars, Key}, Timeout);
+ [#connection{hp = {_, _, 0}, child = P, interceptors = I}] ->
+ {ok, P, [], I, 0};
+ [#connection{hp = {_, _, Interface}, child = P, interceptors = I}] ->
+ {ok, P, [], I, [Interface]}
+ end;
+connect(Host, Port, SocketType, Timeout, Chars, Wchars, Ctx)
+ when SocketType == ssl ->
+ Key = create_key(Host, Port, Ctx),
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [#connection{child = connecting}] ->
+ SocketOptions = get_ssl_socket_options(Ctx),
+ gen_server:call(orber_iiop_pm, {connect, Host, Port, SocketType,
+ SocketOptions, Chars, Wchars, Key},
+ Timeout);
+ [] ->
+ SocketOptions = get_ssl_socket_options(Ctx),
+ gen_server:call(orber_iiop_pm, {connect, Host, Port, SocketType,
+ SocketOptions, Chars, Wchars, Key},
+ Timeout);
+ [#connection{hp = {_, _, 0}, child = P, interceptors = I}] ->
+ {ok, P, [], I, 0};
+ [#connection{hp = {_, _, Interface}, child = P, interceptors = I}] ->
+ {ok, P, [], I, [Interface]}
+ end.
+
+get_ssl_socket_options([]) ->
+ [{verify, orber:ssl_client_verify()},
+ {depth, orber:ssl_client_depth()} |
+ ssl_client_extra_options([{certfile, orber:ssl_client_certfile()},
+ {cacertfile, orber:ssl_client_cacertfile()},
+ {password, orber:ssl_client_password()},
+ {keyfile, orber:ssl_client_keyfile()},
+ {ciphers, orber:ssl_client_ciphers()},
+ {cachetimeout, orber:ssl_client_cachetimeout()}], [])];
+get_ssl_socket_options([#'IOP_ServiceContext'
+ {context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {configuration, Options}}|_]) ->
+ Verify = orber_tb:keysearch(ssl_client_verify, Options,
+ orber_env:ssl_client_verify()),
+ Depth = orber_tb:keysearch(ssl_client_depth, Options,
+ orber_env:ssl_client_depth()),
+ Cert = orber_tb:keysearch(ssl_client_certfile, Options,
+ orber_env:ssl_client_certfile()),
+ CaCert = orber_tb:keysearch(ssl_client_cacertfile, Options,
+ orber_env:ssl_client_cacertfile()),
+ Pwd = orber_tb:keysearch(ssl_client_password, Options,
+ orber_env:ssl_client_password()),
+ Key = orber_tb:keysearch(ssl_client_keyfile, Options,
+ orber_env:ssl_client_keyfile()),
+ Ciphers = orber_tb:keysearch(ssl_client_ciphers, Options,
+ orber_env:ssl_client_ciphers()),
+ Timeout = orber_tb:keysearch(ssl_client_cachetimeout, Options,
+ orber_env:ssl_client_cachetimeout()),
+ [{verify, Verify},
+ {depth, Depth} |
+ ssl_client_extra_options([{certfile, Cert},
+ {cacertfile, CaCert},
+ {password, Pwd},
+ {keyfile, Key},
+ {ciphers, Ciphers},
+ {cachetimeout, Timeout}], [])];
+get_ssl_socket_options([_|T]) ->
+ get_ssl_socket_options(T).
+
+ssl_client_extra_options([], Acc) ->
+ Acc;
+ssl_client_extra_options([{_Type, []}|T], Acc) ->
+ ssl_client_extra_options(T, Acc);
+ssl_client_extra_options([{_Type, infinity}|T], Acc) ->
+ ssl_client_extra_options(T, Acc);
+ssl_client_extra_options([{Type, Value}|T], Acc) ->
+ ssl_client_extra_options(T, [{Type, Value}|Acc]).
+
+add_connection(Key, Key, SockData) ->
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [Connection] ->
+ ets:insert(?PM_CONNECTION_DB,
+ Connection#connection{socketdata = SockData});
+ [] ->
+ ets:insert(?PM_CONNECTION_DB,
+ #connection{hp= Key, child = connecting,
+ socketdata = SockData})
+ end;
+add_connection(Key, NewKey, SockData) ->
+ add_connection(Key, Key, SockData),
+ add_connection(NewKey, NewKey, SockData).
+
+get_socket_data(Key) ->
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [#connection{socketdata = SockData}] ->
+ SockData;
+ _ ->
+ {"Unable to extract socket information", 0}
+ end.
+
+sockname2peername(SockHost, SockPort) ->
+ orber_tb:unique(
+ do_select([{#connection{hp = {'$1', '$2', '_'},
+ socketdata = {match_type(SockHost),
+ match_type(SockPort)},
+ _='_'}, [], [{{'$1', '$2'}}]}])).
+
+
+peername2sockname(PeerHost, PeerPort) ->
+ orber_tb:unique(
+ do_select([{#connection{hp = {match_type(PeerHost),
+ match_type(PeerPort),
+ '_'},
+ socketdata = '$1',
+ _='_'}, [], ['$1']}])).
+
+match_type(0) ->
+ %% Wildcard port number
+ '_';
+match_type("") ->
+ %% Wildcard host
+ '_';
+match_type(Key) ->
+ %% Wildcard not used.
+ Key.
+
+create_key(Host, Port, []) ->
+ {Host, Port, 0};
+create_key(Host, Port,
+ [#'IOP_ServiceContext'
+ {context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {interface, Interface}}|_]) when is_list(Interface) ->
+ {Host, Port, Interface};
+create_key(Host, Port,
+ [#'IOP_ServiceContext'
+ {context_id=?ORBER_GENERIC_CTX_ID,
+ context_data = {interface, Interface}}|_]) ->
+ orber:dbg("[~p] orber_iiop_pm:create_key(~p, ~p);~n"
+ "The supplied interface must be a string.",
+ [?LINE, Host, Port, Interface], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_CONTEXT'{completion_status=?COMPLETED_NO});
+create_key(Host, Port, [_|T]) ->
+ create_key(Host, Port, T).
+
+reconfigure(Options) ->
+ {Local, Proxy} = check_options(Options, [], []),
+ reconfigure_local(Local),
+ reconfigure_proxy(Proxy).
+
+
+reconfigure(Options, Host, Port) ->
+ reconfigure(Options, Host, Port, 0).
+reconfigure(Options, Host, Port, Interface) ->
+ case ets:lookup(?PM_CONNECTION_DB, {Host, Port, Interface}) of
+ [#connection{child = P}] when is_pid(P) ->
+ case check_options(Options, [], []) of
+ {[], Proxy} ->
+ reconfigure_proxy(Proxy, [P]);
+ {Local, Proxy} ->
+ reconfigure_proxy(Proxy, [P]),
+ gen_server:call(orber_iiop_pm, {reconfigure, Local,
+ Host, Port, Interface}, infinity)
+ end;
+ _ ->
+ {error, "No proxy matched the supplied reference"}
+ end.
+
+reconfigure_local([]) ->
+ ok;
+reconfigure_local(Options) ->
+ gen_server:call(orber_iiop_pm, {reconfigure, Options}, infinity).
+
+reconfigure_proxy([]) ->
+ ok;
+reconfigure_proxy(Options) ->
+ reconfigure_proxy(Options, do_select([{#connection{child = '$1', _='_'},
+ [], ['$1']}])).
+
+reconfigure_proxy(Options, [Pid|T]) ->
+ Pid ! {reconfigure, Options},
+ reconfigure_proxy(Options, T);
+reconfigure_proxy(_Options, []) ->
+ ok.
+
+
+check_options([{interceptors, false}|Options], Local, Proxy) ->
+ check_options(Options, [{interceptors, false}|Local], Proxy);
+check_options([{interceptors, {native, LPIs}}|Options], Local, Proxy) ->
+ check_options(Options, [{interceptors, {native, LPIs}}|Local], Proxy);
+check_options([{fake, option}|Options], Local, Proxy) ->
+ check_options(Options, Local, [{fake, option}|Proxy]);
+check_options([_|Options], Local, Proxy) ->
+ check_options(Options, Local, Proxy);
+check_options([], Local, Proxy) ->
+ {Local, Proxy}.
+
+
+close_connection(PeerData) ->
+ close_connection(PeerData, 0).
+
+close_connection(PeerData, Interface) ->
+ gen_server:call(orber_iiop_pm, {disconnect, PeerData, Interface}, infinity).
+
+
+list_existing_connections() ->
+ transform(
+ lists:sort(
+ do_select([{#connection{hp = {'$2','$3','$4'}, child = '$1', _='_'},
+ [{is_pid, '$1'}], [{{'$1', '$2','$3','$4'}}]}])), []).
+
+list_setup_connections() ->
+ transform(
+ lists:sort(
+ do_select([{#connection{hp = {'$1','$2','$3'}, child = connecting, _='_'}, [],
+ [{{'$1','$2','$3'}}]}])), []).
+
+list_all_connections() ->
+ transform(
+ lists:sort(
+ do_select([{#connection{hp = {'$2','$3','$4'}, child = '$1', _='_'}, [],
+ [{{'$1','$2','$3', '$4'}}]}])), []).
+
+%% Since the connections interface can be 0 or an ip-address we want to
+%% transform those containing 0.
+transform([{C, H, P, 0}, {C, H, P, I}|T], Acc) ->
+ %% ACL defined interface. Drop the anonymous one.
+ transform(T, [{H, P, I}|Acc]);
+transform([{_C, H, P, 0}|T], Acc) ->
+ %% No interface supplied. Drop the 0.
+ transform(T, [{H, P}|Acc]);
+transform([{_C, H, P, I}|T], Acc) ->
+ %% Interface supplied. Keep it.
+ transform(T, [{H, P, I}|Acc]);
+transform([{H,P,0}|T], Acc) ->
+ transform(T, [{H,P}|Acc]);
+transform([{H,P,I}|T], Acc) ->
+ transform(T, [{H,P,I}|Acc]);
+transform([H|T], Acc) ->
+ transform(T, [H|Acc]);
+transform([], Acc) ->
+ Acc.
+
+do_select(Pattern) ->
+ case catch ets:select(?PM_CONNECTION_DB, Pattern) of
+ {'EXIT', _What} ->
+ [];
+ Result ->
+ Result
+ end.
+
+%%-----------------------------------------------------------------
+%% Internal interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: stop/0 (Only used for test purpose !!!!!!)
+%%-----------------------------------------------------------------
+stop() ->
+ gen_server:call(orber_iiop_pm, stop).
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init(_Opts) ->
+ process_flag(trap_exit, true),
+ {ok, #state{connections = ets:new(orber_iiop_pm_db,
+ [{keypos, 2}, set, public, named_table]),
+ queue = ets:new(orber_iiop_pm_queue, [bag])}}.
+
+%%-----------------------------------------------------------------
+%% Func: terminate/2
+%%-----------------------------------------------------------------
+terminate(_Reason, #state{queue = Q}) ->
+ %% Kill all proxies and close table before terminating
+ stop_all_proxies(ets:first(?PM_CONNECTION_DB)),
+ ets:delete(?PM_CONNECTION_DB),
+ ets:delete(Q),
+ ok.
+
+stop_all_proxies('$end_of_table') ->
+ ok;
+stop_all_proxies(Key) ->
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [] ->
+ ok;
+ [#connection{child = connecting, interceptors = I}] ->
+ invoke_connection_closed(I);
+ [#connection{child = P, interceptors = I}] ->
+ invoke_connection_closed(I),
+ catch orber_iiop_outproxy:stop(P)
+ end,
+ stop_all_proxies(ets:next(?PM_CONNECTION_DB, Key)).
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%-----------------------------------------------------------------
+handle_call({connect, Host, Port, SocketType, SocketOptions, Chars, Wchars, Key},
+ From, State) ->
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [#connection{child = connecting}] ->
+ %% Another client already requested a connection to the given host/port.
+ %% Just add this client to the queue.
+ ets:insert(State#state.queue, {Key, From}),
+ {noreply, State};
+ [#connection{hp = {_,_,0}, child = P, interceptors = I}] ->
+ %% This case will occur if the PortMapper completed a connection
+ %% between the client's ets:lookup and receiving this request.
+ {reply, {ok, P, [], I, 0}, State};
+ [#connection{hp = {_,_,Intf}, child = P, interceptors = I}] ->
+ %% This case will occur if the PortMapper completed a connection
+ %% between the client's ets:lookup and receiving this request.
+ {reply, {ok, P, [], I, [Intf]}, State};
+ [] ->
+ %% The first time a connection is requested to the given host/port.
+ case catch spawn_link(?MODULE, setup_connection,
+ [self(), Host, Port, SocketType,
+ SocketOptions, Chars, Wchars, Key]) of
+ Slave when is_pid(Slave) ->
+ ets:insert(?PM_CONNECTION_DB,
+ #connection{hp = Key, child = connecting,
+ interceptors = false, slave = Slave}),
+ ets:insert(State#state.queue, {Key, From}),
+ {noreply, State};
+ What ->
+ orber:dbg("[~p] orber_iiop_pm:handle_call(connect);~n"
+ "Unable to invoke setup_connection due to: ~n~p~n",
+ [?LINE, What], ?DEBUG_LEVEL),
+ {reply,
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}},
+ State}
+ end
+ end;
+handle_call({disconnect, PeerData, Interface}, _From, State) ->
+ {reply, do_disconnect(PeerData, Interface, State), State};
+handle_call({reconfigure, Options, Host, Port, Interface},
+ _From, State) ->
+ case ets:lookup(?PM_CONNECTION_DB, {Host, Port, Interface}) of
+ [] ->
+ {reply, {error, "No proxy matched the supplied reference"}, State};
+ [Connection] ->
+ NewConnection = update_connection(Connection, Options),
+ ets:insert(?PM_CONNECTION_DB, NewConnection),
+ {reply, ok, State}
+ end;
+handle_call({reconfigure, Options}, _From, State) ->
+ case catch update_db(ets:first(?PM_CONNECTION_DB), Options) of
+ ok ->
+ {reply, ok, State};
+ _What ->
+ {reply, {error, "Unable to change configuration"}, State}
+ end;
+handle_call(stop, _From, State) ->
+ {stop, normal, ok, State};
+handle_call(_, _, State) ->
+ {noreply, State}.
+
+update_db('$end_of_table', _) ->
+ ok;
+update_db(Key, Options) ->
+ [Connection] = ets:lookup(?PM_CONNECTION_DB, Key),
+ NewConnection = update_connection(Connection, Options),
+ ets:insert(?PM_CONNECTION_DB, NewConnection),
+ update_db(ets:next(?PM_CONNECTION_DB, Key), Options).
+
+
+update_connection(Connection, [{interceptors, false}|Options]) ->
+ update_connection(Connection#connection{interceptors = false}, Options);
+update_connection(#connection{interceptors = false,
+ hp = {PH, PP, _},
+ socketdata = {SH, SP}} = Connection,
+ [{interceptors, {native, LPIs}}|Options]) ->
+ %% No Interceptor(s). Add the same Ref used by the built in interceptors.
+ update_connection(Connection#connection{interceptors =
+ {native, {PH, PP, SH, SP}, LPIs}},
+ Options);
+update_connection(#connection{interceptors = {native, Ref, _}} = Connection,
+ [{interceptors, {native, LPIs}}|Options]) ->
+ %% Interceptor(s) already in use. We must use the same Ref as before.
+ update_connection(Connection#connection{interceptors =
+ {native, Ref, LPIs}},
+ Options);
+update_connection(Connection, [H|T]) ->
+ orber:dbg("[~p] orber_iiop_pm:update_connection(~p, ~p)~n"
+ "Unable to update the connection.~n",
+ [?LINE, Connection, H], ?DEBUG_LEVEL),
+ update_connection(Connection, T);
+update_connection(Connection, []) ->
+ Connection.
+
+do_disconnect([], _Interface, _State) ->
+ ok;
+do_disconnect([{Host, Port}|T], Interface, State) ->
+ case ets:lookup(?PM_CONNECTION_DB, {Host, Port, Interface}) of
+ [] ->
+ ok;
+ [#connection{child = connecting, interceptors = I}] ->
+ ets:delete(?PM_CONNECTION_DB, {Host, Port, Interface}),
+ Exc = {'EXCEPTION',#'INTERNAL'{completion_status = ?COMPLETED_NO}},
+ send_reply_to_queue(ets:lookup(State#state.queue,
+ {Host, Port, Interface}), Exc),
+ ets:delete(State#state.queue, {Host, Port, Interface}),
+ invoke_connection_closed(I);
+ [#connection{child = P, interceptors = I}] ->
+ unlink(P),
+ catch orber_iiop_outproxy:stop(P),
+ ets:delete(?PM_CONNECTION_DB, {Host, Port, Interface}),
+ invoke_connection_closed(I)
+ end,
+ do_disconnect(T, Interface, State).
+
+%%-----------------------------------------------------------------
+%% Func: handle_cast/2
+%%-----------------------------------------------------------------
+handle_cast(stop, State) ->
+ {stop, normal, State};
+handle_cast(_, State) ->
+ {noreply, State}.
+
+%%-----------------------------------------------------------------
+%% Func: handle_info/2
+%%-----------------------------------------------------------------
+%% Trapping exits
+handle_info({'EXIT', Pid, Reason}, State) ->
+ %% Check the most common scenario first, i.e., a proxy terminates.
+ case ets:match_object(?PM_CONNECTION_DB, #connection{child = Pid, _='_'}) of
+ [#connection{hp = K, interceptors = I}] ->
+ ets:delete(?PM_CONNECTION_DB, K),
+ invoke_connection_closed(I),
+ {noreply, State};
+ [#connection{hp = K, interceptors = I}, #connection{hp = K2}] ->
+ ets:delete(?PM_CONNECTION_DB, K),
+ ets:delete(?PM_CONNECTION_DB, K2),
+ invoke_connection_closed(I),
+ {noreply, State};
+ [] when Reason == normal ->
+ %% This might have been a spawned 'setup_connection' which terminated
+ %% after sucessfully setting up a new connection.
+ {noreply, State};
+ [] ->
+ %% Wasn't a proxy. Hence, we must test if it was a spawned
+ %% 'setup_connection' that failed.
+ case ets:match_object(?PM_CONNECTION_DB, #connection{slave = Pid, _='_'}) of
+ [#connection{hp = K, child = connecting, interceptors = I}] ->
+ ets:delete(?PM_CONNECTION_DB, K),
+ invoke_connection_closed(I),
+ Exc = {'EXCEPTION',#'INTERNAL'{completion_status = ?COMPLETED_NO}},
+ send_reply_to_queue(ets:lookup(State#state.queue, K), Exc),
+ ets:delete(State#state.queue, K),
+ orber:dbg("[~p] orber_iiop_pm:handle_info(setup_failed ~p);~n"
+ "It was not possible to create a connection to the"
+ " given host/port.",
+ [?LINE, K], ?DEBUG_LEVEL),
+ {noreply, State};
+ [#connection{hp = K, child = connecting, interceptors = I},
+ #connection{hp = K2}] ->
+ ets:delete(?PM_CONNECTION_DB, K),
+ ets:delete(?PM_CONNECTION_DB, K2),
+ invoke_connection_closed(I),
+ Exc = {'EXCEPTION',#'INTERNAL'{completion_status = ?COMPLETED_NO}},
+ send_reply_to_queue(ets:lookup(State#state.queue, K), Exc),
+ ets:delete(State#state.queue, K),
+ orber:dbg("[~p] orber_iiop_pm:handle_info(setup_failed ~p);~n"
+ "It was not possible to create a connection to the"
+ " given host/port.",
+ [?LINE, K], ?DEBUG_LEVEL),
+ {noreply, State};
+ _ ->
+ {noreply, State}
+ end
+ end;
+handle_info({setup_failed, {Host, Port, _} = Key, Key, Exc}, State) ->
+ %% Deletet the data from the connection DB first to avoid clients from
+ %% trying to access it again.
+ ets:delete(?PM_CONNECTION_DB, Key),
+ %% Now we can send whatever exception received.
+ send_reply_to_queue(ets:lookup(State#state.queue, Key), Exc),
+ ets:delete(State#state.queue, Key),
+ orber:dbg("[~p] orber_iiop_pm:handle_info(setup_failed ~p ~p);~n"
+ "It was not possible to create a connection to the given host/port.",
+ [?LINE, Host, Port], ?DEBUG_LEVEL),
+ {noreply, State};
+handle_info({setup_failed, {Host, Port, _} = Key, NewKey, Exc}, State) ->
+ %% Deletet the data from the connection DB first to avoid clients from
+ %% trying to access it again.
+ ets:delete(?PM_CONNECTION_DB, Key),
+ ets:delete(?PM_CONNECTION_DB, NewKey),
+ %% Now we can send whatever exception received.
+ send_reply_to_queue(ets:lookup(State#state.queue, Key), Exc),
+ ets:delete(State#state.queue, Key),
+ orber:dbg("[~p] orber_iiop_pm:handle_info(setup_failed ~p ~p);~n"
+ "It was not possible to create a connection to the given host/port.",
+ [?LINE, Host, Port], ?DEBUG_LEVEL),
+ {noreply, State};
+handle_info({setup_successfull, Key, Key, {Child, Ctx, Int}}, State) ->
+ %% Create a link to the proxy and store it in the connection DB.
+ link(Child),
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [Connection] ->
+ ets:insert(?PM_CONNECTION_DB,
+ Connection#connection{hp = Key, child = Child,
+ interceptors = Int,
+ slave = undefined});
+ [] ->
+ ets:insert(?PM_CONNECTION_DB,
+ #connection{hp = Key, child = Child,
+ interceptors = Int,
+ slave = undefined})
+ end,
+ %% Send the Proxy reference to all waiting clients.
+ case Key of
+ {_, _, 0} ->
+ send_reply_to_queue(ets:lookup(State#state.queue, Key),
+ {ok, Child, Ctx, Int, 0});
+ {_, _, Interface} ->
+ send_reply_to_queue(ets:lookup(State#state.queue, Key),
+ {ok, Child, Ctx, Int, [Interface]})
+ end,
+ %% Reset the queue.
+ ets:delete(State#state.queue, Key),
+ {noreply, State};
+handle_info({setup_successfull, Key, NewKey, {Child, Ctx, Int}}, State) ->
+ %% Create a link to the proxy and store it in the connection DB.
+ link(Child),
+ case ets:lookup(?PM_CONNECTION_DB, NewKey) of
+ [Connection] ->
+ ets:insert(?PM_CONNECTION_DB,
+ Connection#connection{hp = NewKey, child = Child,
+ interceptors = Int,
+ slave = undefined});
+ [] ->
+ ets:insert(?PM_CONNECTION_DB,
+ #connection{hp = NewKey, child = Child,
+ interceptors = Int,
+ slave = undefined})
+ end,
+ case ets:lookup(?PM_CONNECTION_DB, Key) of
+ [Connection2] ->
+ ets:insert(?PM_CONNECTION_DB,
+ Connection2#connection{hp = Key, child = Child,
+ interceptors = Int,
+ slave = undefined});
+ [] ->
+ ets:insert(?PM_CONNECTION_DB,
+ #connection{hp = Key, child = Child,
+ interceptors = Int,
+ slave = undefined})
+ end,
+ %% Send the Proxy reference to all waiting clients.
+ case NewKey of
+ {_, _, 0} ->
+ send_reply_to_queue(ets:lookup(State#state.queue, Key),
+ {ok, Child, Ctx, Int, 0});
+ {_, _, Interface} ->
+ send_reply_to_queue(ets:lookup(State#state.queue, Key),
+ {ok, Child, Ctx, Int, [Interface]})
+ end,
+ %% Reset the queue.
+ ets:delete(State#state.queue, Key),
+ {noreply, State};
+handle_info(_, State) ->
+ {noreply, State}.
+
+
+send_reply_to_queue([], _) ->
+ ok;
+send_reply_to_queue([{_, Client}|T], Reply) ->
+ gen_server:reply(Client, Reply),
+ send_reply_to_queue(T, Reply).
+
+%%-----------------------------------------------------------------
+%% Func: code_change/3
+%%-----------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+setup_connection(PMPid, Host, Port, SocketType, SocketOptions, Chars, Wchars, Key) ->
+ case catch access_allowed(Host, Port, SocketType, Key) of
+ ok ->
+ do_setup_connection(PMPid, Host, Port, SocketType, SocketOptions,
+ Chars, Wchars, Key, Key);
+ {ok, Interface} ->
+ do_setup_connection(PMPid, Host, Port, SocketType,
+ [{ip, Interface}|SocketOptions],
+ Chars, Wchars, Key, Key);
+ {ok, Interface, NewKey} ->
+ do_setup_connection(PMPid, Host, Port, SocketType,
+ [{ip, Interface}|SocketOptions],
+ Chars, Wchars, Key, NewKey);
+ false ->
+ orber_tb:info("Blocked connect attempt to ~s - ~p", [Host, Port]),
+ PMPid ! {setup_failed, Key, Key,
+ {'EXCEPTION', #'NO_PERMISSION'{completion_status=?COMPLETED_NO}}},
+ ok;
+ Reason ->
+ orber:dbg("[~p] orber_iiop_pm:handle_call(connect ~p ~p); failed~n"
+ "Reason: ~p",
+ [?LINE, Host, Port, Reason], ?DEBUG_LEVEL),
+ PMPid ! {setup_failed, Key, Key,
+ {'EXCEPTION', #'COMM_FAILURE'{completion_status=?COMPLETED_NO}}},
+ ok
+ end.
+
+
+do_setup_connection(PMPid, Host, Port, SocketType, SocketOptions, Chars,
+ Wchars, Key, NewKey) ->
+ case catch orber_iiop_outsup:connect(Host, Port, SocketType,
+ SocketOptions, PMPid, Key, NewKey) of
+ {error, {'EXCEPTION', E}} ->
+ orber:dbg("[~p] orber_iiop_pm:handle_call(connect ~p ~p);~n"
+ "Raised Exc: ~p",
+ [?LINE, Host, Port, E], ?DEBUG_LEVEL),
+ PMPid ! {setup_failed, Key, NewKey, {'EXCEPTION', E}},
+ ok;
+ {error, Reason} ->
+ orber:dbg("[~p] orber_iiop_pm:handle_call(connect ~p ~p);~n"
+ "Got EXIT: ~p",
+ [?LINE, Host, Port, Reason], ?DEBUG_LEVEL),
+ PMPid ! {setup_failed, Key, NewKey,
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}},
+ ok;
+ {ok, undefined} ->
+ orber:dbg("[~p] orber_iiop_pm:handle_call(connect ~p ~p);~n"
+ "Probably no listener on the given Node/Port or timedout.",
+ [?LINE, Host, Port], ?DEBUG_LEVEL),
+ PMPid ! {setup_failed, Key, NewKey,
+ {'EXCEPTION', #'COMM_FAILURE'{minor=(?ORBER_VMCID bor 1),
+ completion_status=?COMPLETED_NO}}},
+ ok;
+ {ok, Child} ->
+ case init_interceptors(Host, Port, get_socket_data(Key)) of
+ {'EXCEPTION', E} ->
+ PMPid ! {setup_failed, Key, NewKey, {'EXCEPTION', E}},
+ ok;
+ Interceptors ->
+ BiDirCtx = orber:bidir_context(),
+ Ctx = case orber:exclude_codeset_ctx() of
+ true ->
+ BiDirCtx;
+ _ ->
+ CodeSetCtx =
+ #'CONV_FRAME_CodeSetContext'
+ {char_data = Chars,
+ wchar_data = Wchars},
+ [#'IOP_ServiceContext'
+ {context_id=?IOP_CodeSets,
+ context_data = CodeSetCtx} | BiDirCtx]
+ end,
+ PMPid ! {setup_successfull, Key, NewKey,
+ {Child, Ctx, Interceptors}},
+ ok
+ end
+ end.
+
+access_allowed(Host, Port, Type, {_,_,UserInterface}) ->
+ Flags = orber:get_flags(),
+ Family = orber_env:ip_version(),
+ case ?ORB_FLAG_TEST(Flags, ?ORB_ENV_USE_ACL_OUTGOING) of
+ false when UserInterface == 0 ->
+ get_local_interface(Type, Family);
+ false ->
+ inet:getaddr(UserInterface, Family);
+ true ->
+ SearchFor =
+ case Type of
+ normal ->
+ tcp_out;
+ ssl ->
+ ssl_out
+ end,
+ {ok, Ip} = inet:getaddr(Host, Family),
+ case orber_acl:match(Ip, SearchFor, true) of
+ {true, [], 0} ->
+ get_local_interface(Type, Family);
+ {true, [], Port} ->
+ get_local_interface(Type, Family);
+ {true, [], {Min, Max}} when Port >= Min, Port =< Max ->
+ get_local_interface(Type, Family);
+ {true, [Interface], 0} ->
+ {ok, NewIp} = inet:getaddr(Interface, Family),
+ {ok, NewIp, {Host, Port, 0}};
+ {true, [Interface], Port} ->
+ {ok, NewIp} = inet:getaddr(Interface, Family),
+ {ok, NewIp, {Host, Port, 0}};
+ {true, [Interface], {Min, Max}} when Port >= Min, Port =< Max ->
+ {ok, NewIp} = inet:getaddr(Interface, Family),
+ {ok, NewIp, {Host, Port, 0}};
+ _ ->
+ false
+ end
+ end.
+
+get_local_interface(normal, Family) ->
+ case orber_env:ip_address_local() of
+ [] ->
+ ok;
+ [Interface] ->
+ inet:getaddr(Interface, Family)
+ end;
+get_local_interface(ssl, Family) ->
+ case orber_env:iiop_ssl_ip_address_local() of
+ [] ->
+ ok;
+ [Interface] ->
+ inet:getaddr(Interface, Family)
+ end.
+
+
+invoke_connection_closed(false) ->
+ ok;
+invoke_connection_closed({native, Ref, PIs}) ->
+ (catch orber_pi:closed_out_connection(PIs, Ref));
+invoke_connection_closed({_Type, _PIs}) ->
+ ok.
+
+
+init_interceptors(Host, Port, {SHost, SPort}) ->
+ case orber:get_interceptors() of
+ {native, PIs} ->
+ case catch orber_pi:new_out_connection(PIs, Host, Port, SHost, SPort) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_iiop_pm:init_interceptors(~p); Got Exit: ~p.~n"
+ "One or more Interceptor incorrect or undefined?",
+ [?LINE, PIs, R], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'COMM_FAILURE'{minor=(?ORBER_VMCID bor 2),
+ completion_status=?COMPLETED_NO}};
+ IntRef ->
+ {native, IntRef, PIs}
+ end;
+ Other ->
+ %% Either 'false' or {Type, PIs}.
+ Other
+ end.
+
+
+%%-----------------------------------------------------------------
+%% END OF MODULE
+%%-----------------------------------------------------------------
diff --git a/lib/orber/src/orber_iiop_socketsup.erl b/lib/orber/src/orber_iiop_socketsup.erl
new file mode 100644
index 0000000000..4e9b6de2ad
--- /dev/null
+++ b/lib/orber/src/orber_iiop_socketsup.erl
@@ -0,0 +1,85 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_iiop_socketsup.erl
+%% Description:
+%% This file contains the supervisor for the socket accept processes.
+%%
+%%-----------------------------------------------------------------
+-module(orber_iiop_socketsup).
+
+-behaviour(supervisor).
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/2, start_accept/3, start_accept/4]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: start/2
+%%-----------------------------------------------------------------
+start(sup, Opts) ->
+ supervisor:start_link({local, orber_iiop_socketsup}, orber_iiop_socketsup,
+ {sup, Opts});
+start(_A1, _A2) ->
+ ok.
+
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: init/1
+%%-----------------------------------------------------------------
+init({sup, _Opts}) ->
+ SupFlags = {simple_one_for_one, 500, 100},
+ ChildSpec = [
+ {name3, {orber_iiop_net_accept, start, []}, temporary,
+ 10000, worker, [orber_iiop_net_accept]}
+ ],
+ {ok, {SupFlags, ChildSpec}};
+init(_Opts) ->
+ {ok, []}.
+
+
+%%-----------------------------------------------------------------
+%% Func: terminate/2
+%%-----------------------------------------------------------------
+terminate(_Reason, _State) ->
+ ok.
+
+%%-----------------------------------------------------------------
+%% Func: start_connection/1
+%%-----------------------------------------------------------------
+start_accept(Type, Listen, Ref) ->
+ start_accept(Type, Listen, Ref, []).
+start_accept(Type, Listen, Ref, ProxyOptions) ->
+ supervisor:start_child(orber_iiop_socketsup, [Type, Listen, Ref, ProxyOptions]).
+
diff --git a/lib/orber/src/orber_iiop_tracer.erl b/lib/orber/src/orber_iiop_tracer.erl
new file mode 100644
index 0000000000..7658066eae
--- /dev/null
+++ b/lib/orber/src/orber_iiop_tracer.erl
@@ -0,0 +1,231 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-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%
+%%
+%%
+%%--------------------------------------------------------------------
+%% File : orber_iiop_tracer.erl
+%% Purpose : Use for debugging only.
+%%--------------------------------------------------------------------
+
+-module(orber_iiop_tracer).
+
+
+
+
+
+%% Interceptor functions.
+-export([new_out_connection/5,
+ new_in_connection/5,
+ closed_in_connection/1,
+ closed_out_connection/1,
+ in_request_encoded/6,
+ in_reply_encoded/6,
+ out_reply_encoded/6,
+ out_request_encoded/6,
+ in_request/6,
+ in_reply/6,
+ out_reply/6,
+ out_request/6]).
+
+
+%%--------------- INTERCEPTOR FUNCTIONS ----------------------
+%%------------------------------------------------------------
+%% function : new_in_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+new_in_connection(_Arg, PHost, PPort, SHost, SPort) ->
+ error_logger:info_msg("=============== new_in_connection ========~n"
+ "Node : ~p~n"
+ "From : ~s:~p~n"
+ "To : ~s:~p~n"
+ "==========================================~n",
+ [node(), PHost, PPort, SHost, SPort]),
+ {PHost, PPort, SHost, SPort}.
+
+%%------------------------------------------------------------
+%% function : new_out_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+new_out_connection(_Arg, PHost, PPort, SHost, SPort) ->
+ error_logger:info_msg("=============== new_out_connection =======~n"
+ "Node : ~p~n"
+ "From : ~s:~p~n"
+ "To : ~s:~p~n"
+ "==========================================~n",
+ [node(), SHost, SPort, PHost, PPort]),
+ {PHost, PPort, SHost, SPort}.
+
+%%------------------------------------------------------------
+%% function : closed_in_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+closed_in_connection(Arg) ->
+ error_logger:info_msg("=============== closed_in_connection =====~n"
+ "Node : ~p~n"
+ "Connection: ~p~n"
+ "==========================================~n",
+ [node(), Arg]),
+ Arg.
+
+%%------------------------------------------------------------
+%% function : closed_out_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+closed_out_connection(Arg) ->
+ error_logger:info_msg("=============== closed_out_connection ====~n"
+ "Node : ~p~n"
+ "Connection: ~p~n"
+ "==========================================~n",
+ [node(), Arg]),
+ Arg.
+
+%%------------------------------------------------------------
+%% function : in_request_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_request_encoded(Ref, _ObjKey, Ctx, Op, Bin, Args) ->
+ error_logger:info_msg("=============== in_request_encoded =======~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Body : ~p~n"
+ "Context : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Bin, Ctx]),
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : in_reply_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_reply_encoded(Ref, _ObjKey, Ctx, Op, Bin, Args) ->
+ error_logger:info_msg("============== in_reply_encoded ==========~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Body : ~p~n"
+ "Context : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Bin, Ctx]),
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : out_reply_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_reply_encoded(Ref, ObjKey, Ctx, Op, Bin, Args) ->
+ error_logger:info_msg("============== out_reply_encoded =========~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Body : ~p~n"
+ "Context : ~p~n"
+ "Object : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Bin, Ctx, ObjKey]),
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : out_request_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_request_encoded(Ref, _ObjKey, Ctx, Op, Bin, Args) ->
+ error_logger:info_msg("============== out_request_encoded =======~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Body : ~p~n"
+ "Context : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Bin, Ctx]),
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : in_request
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_request(Ref, ObjKey, Ctx, Op, Params, Args) ->
+ error_logger:info_msg("=============== in_request ===============~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Parameters: ~p~n"
+ "Context : ~p~n"
+ "Object : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Params, Ctx, ObjKey]),
+ {Params, Args}.
+
+%%------------------------------------------------------------
+%% function : in_reply
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_reply(Ref, _ObjKey, Ctx, Op, Reply, Args) ->
+ error_logger:info_msg("=============== in_reply =================~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Reply : ~p~n"
+ "Context : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Reply, Ctx]),
+ {Reply, Args}.
+
+%%------------------------------------------------------------
+%% function : out_reply
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_reply(Ref, ObjKey, Ctx, Op, Reply, Args) ->
+ error_logger:info_msg("=============== out_reply ================~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Reply : ~p~n"
+ "Context : ~p~n"
+ "Object : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Reply, Ctx, ObjKey]),
+ {Reply, Args}.
+
+%%------------------------------------------------------------
+%% function : out_request
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_request(Ref, _ObjKey, Ctx, Op, Params, Args) ->
+ error_logger:info_msg("=============== out_request ==============~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Parameters: ~p~n"
+ "Context : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Params, Ctx]),
+ {Params, Args}.
+
+
+
+
+%%======================================================================
+%% END OF MODULE
+%%======================================================================
+
diff --git a/lib/orber/src/orber_iiop_tracer_silent.erl b/lib/orber/src/orber_iiop_tracer_silent.erl
new file mode 100644
index 0000000000..663d5d5a8e
--- /dev/null
+++ b/lib/orber/src/orber_iiop_tracer_silent.erl
@@ -0,0 +1,190 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%--------------------------------------------------------------------
+%% File : orber_iiop_tracer_silent.erl
+%% Purpose : Use for debugging only.
+%%--------------------------------------------------------------------
+
+-module(orber_iiop_tracer_silent).
+
+
+%% Interceptor functions.
+-export([new_out_connection/5,
+ new_in_connection/5,
+ closed_in_connection/1,
+ closed_out_connection/1,
+ in_request_encoded/6,
+ in_reply_encoded/6,
+ out_reply_encoded/6,
+ out_request_encoded/6,
+ in_request/6,
+ in_reply/6,
+ out_reply/6,
+ out_request/6]).
+
+
+%%--------------- INTERCEPTOR FUNCTIONS ----------------------
+%%------------------------------------------------------------
+%% function : new_in_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+new_in_connection(_Arg, PHost, PPort, SHost, SPort) ->
+ error_logger:info_msg("=============== new_in_connection ========~n"
+ "Node : ~p~n"
+ "From : ~s:~p~n"
+ "To : ~s:~p~n"
+ "==========================================~n",
+ [node(), PHost, PPort, SHost, SPort]),
+ {PHost, PPort, SHost, SPort}.
+
+%%------------------------------------------------------------
+%% function : new_out_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+new_out_connection(_Arg, PHost, PPort, SHost, SPort) ->
+ error_logger:info_msg("=============== new_out_connection =======~n"
+ "Node : ~p~n"
+ "From : ~s:~p~n"
+ "To : ~s:~p~n"
+ "==========================================~n",
+ [node(), SHost, SPort, PHost, PPort]),
+ {PHost, PPort, SHost, SPort}.
+
+%%------------------------------------------------------------
+%% function : closed_in_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+closed_in_connection(Arg) ->
+ error_logger:info_msg("=============== closed_in_connection =====~n"
+ "Node : ~p~n"
+ "Connection: ~p~n"
+ "==========================================~n",
+ [node(), Arg]),
+ Arg.
+
+%%------------------------------------------------------------
+%% function : closed_out_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+closed_out_connection(Arg) ->
+ error_logger:info_msg("=============== closed_out_connection ====~n"
+ "Node : ~p~n"
+ "Connection: ~p~n"
+ "==========================================~n",
+ [node(), Arg]),
+ Arg.
+
+%%------------------------------------------------------------
+%% function : in_request_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_request_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : in_reply_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_reply_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : out_reply_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_reply_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : out_request_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_request_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : in_request
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_request(Ref, _ObjKey, _Ctx, Op, Params, Args) ->
+ error_logger:info_msg("=============== in_request ===============~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Parameters: ~p~n"
+ "==========================================~n",
+ [Ref, Op, Params]),
+ {Params, Args}.
+
+%%------------------------------------------------------------
+%% function : in_reply
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_reply(Ref, _ObjKey, _Ctx, Op, Reply, Args) ->
+ error_logger:info_msg("=============== in_reply =================~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Reply : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Reply]),
+ {Reply, Args}.
+
+%%------------------------------------------------------------
+%% function : out_reply
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_reply(Ref, _ObjKey, _Ctx, Op, Reply, Args) ->
+ error_logger:info_msg("=============== out_reply ================~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Reply : ~p~n"
+ "==========================================~n",
+ [Ref, Op, Reply]),
+ {Reply, Args}.
+
+%%------------------------------------------------------------
+%% function : out_request
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_request(Ref, _ObjKey, _Ctx, Op, Params, Args) ->
+ error_logger:info_msg("=============== out_request ==============~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "Parameters: ~p~n"
+ "==========================================~n",
+ [Ref, Op, Params]),
+ {Params, Args}.
+
+%%======================================================================
+%% END OF MODULE
+%%======================================================================
+
diff --git a/lib/orber/src/orber_iiop_tracer_stealth.erl b/lib/orber/src/orber_iiop_tracer_stealth.erl
new file mode 100644
index 0000000000..494c93e694
--- /dev/null
+++ b/lib/orber/src/orber_iiop_tracer_stealth.erl
@@ -0,0 +1,186 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-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%
+%%
+%%
+%%--------------------------------------------------------------------
+%% File : orber_iiop_tracer_stealth.erl
+%% Purpose : Use for debugging only.
+%%--------------------------------------------------------------------
+
+-module(orber_iiop_tracer_stealth).
+
+
+%% Interceptor functions.
+-export([new_out_connection/5,
+ new_in_connection/5,
+ closed_in_connection/1,
+ closed_out_connection/1,
+ in_request_encoded/6,
+ in_reply_encoded/6,
+ out_reply_encoded/6,
+ out_request_encoded/6,
+ in_request/6,
+ in_reply/6,
+ out_reply/6,
+ out_request/6]).
+
+
+%%--------------- INTERCEPTOR FUNCTIONS ----------------------
+%%------------------------------------------------------------
+%% function : new_in_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+new_in_connection(_Arg, PHost, PPort, SHost, SPort) ->
+ error_logger:info_msg("=============== new_in_connection ========~n"
+ "Node : ~p~n"
+ "From : ~s:~p~n"
+ "To : ~s:~p~n"
+ "==========================================~n",
+ [node(), PHost, PPort, SHost, SPort]),
+ {PHost, PPort, SHost, SPort}.
+
+%%------------------------------------------------------------
+%% function : new_out_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+new_out_connection(_Arg, PHost, PPort, SHost, SPort) ->
+ error_logger:info_msg("=============== new_out_connection =======~n"
+ "Node : ~p~n"
+ "From : ~s:~p~n"
+ "To : ~s:~p~n"
+ "==========================================~n",
+ [node(), SHost, SPort, PHost, PPort]),
+ {PHost, PPort, SHost, SPort}.
+
+%%------------------------------------------------------------
+%% function : closed_in_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+closed_in_connection(Arg) ->
+ error_logger:info_msg("=============== closed_in_connection =====~n"
+ "Node : ~p~n"
+ "Connection: ~p~n"
+ "==========================================~n",
+ [node(), Arg]),
+ Arg.
+
+%%------------------------------------------------------------
+%% function : closed_out_connection
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+closed_out_connection(Arg) ->
+ error_logger:info_msg("=============== closed_out_connection ====~n"
+ "Node : ~p~n"
+ "Connection: ~p~n"
+ "==========================================~n",
+ [node(), Arg]),
+ Arg.
+
+%%------------------------------------------------------------
+%% function : in_request_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_request_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : in_reply_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_reply_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : out_reply_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_reply_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : out_request_encoded
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_request_encoded(_Ref, _ObjKey, _Ctx, _Op, Bin, Args) ->
+ {Bin, Args}.
+
+%%------------------------------------------------------------
+%% function : in_request
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_request(Ref, _ObjKey, _Ctx, Op, Params, Args) ->
+ error_logger:info_msg("=============== in_request ===============~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "==========================================~n",
+ [Ref, Op]),
+ {Params, Args}.
+
+%%------------------------------------------------------------
+%% function : in_reply
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+in_reply(Ref, _ObjKey, _Ctx, Op, Reply, Args) ->
+ error_logger:info_msg("=============== in_reply =================~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "==========================================~n",
+ [Ref, Op]),
+ {Reply, Args}.
+
+%%------------------------------------------------------------
+%% function : out_reply
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_reply(Ref, _ObjKey, _Ctx, Op, Reply, Args) ->
+ error_logger:info_msg("=============== out_reply ================~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "==========================================~n",
+ [Ref, Op]),
+ {Reply, Args}.
+
+%%------------------------------------------------------------
+%% function : out_request
+%% Arguments:
+%% Returns :
+%%------------------------------------------------------------
+out_request(Ref, _ObjKey, _Ctx, Op, Params, Args) ->
+ error_logger:info_msg("=============== out_request ==============~n"
+ "Connection: ~p~n"
+ "Operation : ~p~n"
+ "==========================================~n",
+ [Ref, Op]),
+ {Params, Args}.
+
+%%======================================================================
+%% END OF MODULE
+%%======================================================================
+
diff --git a/lib/orber/src/orber_initial_references.erl b/lib/orber/src/orber_initial_references.erl
new file mode 100644
index 0000000000..21a807c4e1
--- /dev/null
+++ b/lib/orber/src/orber_initial_references.erl
@@ -0,0 +1,327 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_initial_references.erl
+%%
+%% Description:
+%% This file contains the CORBA::InitialReferences interface
+%%
+%%-----------------------------------------------------------------
+-module(orber_initial_references).
+
+-behaviour(gen_server).
+
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/1, shutdown/1, init/1,
+ terminate/2, handle_call/3, code_change/3,
+ get/2, list/1, add/3, remove/2,
+ get/1, list/0, add/2, remove/1,
+ typeID/0, install/2, oe_is_a/1, oe_tc/1, oe_get_interface/0]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([handle_cast/2, handle_info/2]).
+
+%%-----------------------------------------------------------------
+%% Mnesia Table definition record
+%%-----------------------------------------------------------------
+-record(orber_references, {key, objref, type}).
+
+-define(DEBUG_LEVEL, 6).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start(Env) ->
+ gen_server:start_link({local, 'orber_init'}, ?MODULE, Env, []).
+
+shutdown(EO_this) ->
+ gen_server:call(EO_this, stop).
+
+
+install(Timeout, Options) ->
+ AllTabs = mnesia:system_info(tables),
+ DB_Result = case lists:member(orber_references, AllTabs) of
+ true ->
+ case lists:member({local_content, true},
+ Options) of
+ true->
+ mnesia:add_table_copy(orber_references,
+ node(),
+ ram_copies);
+ _ ->
+ mnesia:create_table(orber_references,
+ [{attributes,
+ record_info(fields,
+ orber_references)}
+ |Options])
+ end;
+ _ ->
+ mnesia:create_table(orber_references,
+ [{attributes,
+ record_info(fields,
+ orber_references)}
+ |Options])
+ end,
+
+ Wait = mnesia:wait_for_tables([orber_references], Timeout),
+ %% Check if any error has occured yet. If there are errors, return them.
+ if
+ DB_Result == {atomic, ok},
+ Wait == ok ->
+ ok;
+ true ->
+ {error, {DB_Result, Wait}}
+ end.
+
+
+%%-----------------------------------------------------------------
+%% InitialReferences Interface
+%%-----------------------------------------------------------------
+'get'(Id) ->
+ case read(Id) of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ Result ->
+ Result
+ end.
+
+list() ->
+ case list_keys() of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ Result ->
+ Result
+ end.
+
+
+add(Id, ObjRef) ->
+ case write(Id, ObjRef, external) of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ Result ->
+ Result
+ end.
+
+
+remove(Id) ->
+ case delete(Id) of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ Result ->
+ Result
+ end.
+
+
+'get'(EO_this, Id) ->
+ corba:call(EO_this, 'get', [Id], ?MODULE).
+
+list(EO_this) ->
+ corba:call(EO_this, 'list', [], ?MODULE).
+
+add(EO_this, Id, ObjRef) ->
+ corba:call(EO_this, 'add', [Id, ObjRef], ?MODULE).
+
+remove(EO_this, Id) ->
+ corba:call(EO_this, 'remove', [Id], ?MODULE).
+
+typeID() ->
+ "IDL:Orber/InitialReferences:1.0".
+
+oe_is_a("IDL:Orber/InitialReferences:1.0") ->
+ true;
+oe_is_a(_) ->
+ false.
+
+%%-----------------------------------------------------------------
+%% Internal interface functions
+%%-----------------------------------------------------------------
+init([]) ->
+ case mnesia:wait_for_tables(['orber_references'], infinity) of
+ ok ->
+ NSObjKey = 'CosNaming_NamingContextExt':oe_create([], [{pseudo, true},
+ {no_security, orber:partial_security()}]),
+ rewrite("NameService", NSObjKey),
+ ErlIfr = 'OrberApp_IFR':oe_create([], [{pseudo, true}]),
+ rewrite("OrberIFR", ErlIfr),
+ {ok, []};
+ StopReason ->
+ {stop, StopReason}
+ end.
+
+terminate(_Reason, _State) ->
+ ok.
+
+
+%%-----------------------------------------------------------------
+%% Handle incomming calls
+handle_call({_EO_this, _OE_Context, 'get', [Id]}, _From, State) ->
+ {'reply', read(Id), State};
+handle_call({_EO_this, _OE_Context, 'list', []}, _From, State) ->
+ {'reply', list_keys(), State};
+
+handle_call({_EO_this, _OE_Context, 'add', [Id, ObjectRef]}, _From, State) ->
+ {'reply', write(Id, ObjectRef, external), State};
+
+handle_call({_EO_this, _OE_Context, 'remove', [Id]}, _From, State) ->
+ {'reply', delete(Id), State};
+handle_call('stop', _From, State) ->
+ {'stop', normal, 'ok', State};
+handle_call(_Req, _From,State) ->
+ {'reply', {'ok', 'nil', 'nil'}, State}.
+
+oe_tc(get) ->
+ {{'tk_objref', 12, "object"}, [{'tk_string', 0}], []};
+oe_tc(list) ->
+ {{'tk_sequence',{'tk_string', 0}, 0}, [], []};
+oe_tc(add) ->
+ {'tk_boolean', [{'tk_string', 0}, {'tk_objref', 12, "object"}], []};
+oe_tc(remove) ->
+ {'tk_boolean', [{'tk_string', 0}], []};
+oe_tc(_) ->
+ undefined.
+
+oe_get_interface() ->
+ [{"get", oe_tc(get)},
+ {"list", oe_tc(list)},
+ {"add", oe_tc(add)}].
+
+
+%%-----------------------------------------------------------------
+%% Standard gen_server cast handle
+%%-----------------------------------------------------------------
+handle_cast(_, State) ->
+ {noreply, State}.
+
+
+%%-----------------------------------------------------------------
+%% Standard gen_server handles
+%%-----------------------------------------------------------------
+handle_info(_, State) ->
+ {noreply, State}.
+
+%%-----------------------------------------------------------------
+%% Func: code_change/3
+%%-----------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+read(Key) ->
+ case mnesia:dirty_read({orber_references, Key}) of
+ [] ->
+ corba:create_nil_objref();
+ [#orber_references{objref = ObjRef}] ->
+ ObjRef;
+ What ->
+ orber:dbg("[~p] orber_initial_references:lookup(~p);~n"
+ "Failed to read from DB: ~p",
+ [?LINE, Key, What], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}
+ end.
+
+write(Key, ObjRef, Type) ->
+ _WF = fun() ->
+ case mnesia:wread({orber_references, Key}) of
+ [] ->
+ %% No key exists. Ok to register.
+ mnesia:write(#orber_references{key=Key, objref = ObjRef,
+ type=Type});
+ [X] ->
+ orber:dbg("[~p] orber_initial_references:write(~p);~n"
+ "Already bound to: ~p",
+ [?LINE, Key, X], ?DEBUG_LEVEL),
+ false;
+ Why ->
+ %% Something else occured.
+ orber:dbg("[~p] orber_initial_references:write(~p);~n"
+ "Error reading from DB (~p)", [?LINE, Key, Why], ?DEBUG_LEVEL),
+ mnesia:abort({'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}})
+ end
+ end,
+ case mnesia:transaction(_WF) of
+ {atomic, ok} ->
+ true;
+ {atomic, Result} ->
+ Result;
+ {aborted, Reason} ->
+ Reason
+ end.
+
+rewrite(Key, ObjRef) ->
+ rewrite(Key, ObjRef, internal).
+rewrite(Key, ObjRef, Type) ->
+ _WF = fun() ->
+ mnesia:write(#orber_references{key=Key, objref = ObjRef, type=Type})
+ end,
+ case mnesia:transaction(_WF) of
+ {atomic, ok} ->
+ true;
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_initial_references:rewrite(~p);~n"
+ "Error over writing in DB (~p)",
+ [?LINE, Key, Reason], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end.
+
+
+delete(Key) ->
+ _DF = fun() ->
+ case mnesia:read({orber_references, Key}) of
+ [] ->
+ %% No key exists.
+ orber:dbg("[~p] orber_initial_references:delete(~p);~n"
+ "Does not exist.", [?LINE, Key], ?DEBUG_LEVEL),
+ false;
+ [_X] ->
+ mnesia:delete({orber_references, Key});
+ Why ->
+ %% Something else occured.
+ orber:dbg("[~p] orber_initial_references:delete(~p);~n"
+ "Error reading from DB (~p)",
+ [?LINE, Key, Why], ?DEBUG_LEVEL),
+ mnesia:abort({'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}})
+ end
+ end,
+ case mnesia:transaction(_DF) of
+ {atomic, ok} ->
+ true;
+ {atomic, Result} ->
+ Result;
+ {aborted, Reason} ->
+ Reason
+ end.
+
+list_keys() ->
+ _LF = fun() -> mnesia:all_keys(orber_references) end,
+ case mnesia:transaction(_LF) of
+ {atomic, Result} ->
+ %% We do not want OrberIFR to exported, remove it.
+ lists:delete("OrberIFR", Result);
+ {aborted, Reason} ->
+ orber:dbg("[~p] orber_initial_references:list_keys();~n"
+ "Error reading from DB (~p)", [?LINE, Reason], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}
+ end.
diff --git a/lib/orber/src/orber_interceptors.erl b/lib/orber/src/orber_interceptors.erl
new file mode 100644
index 0000000000..407823ea79
--- /dev/null
+++ b/lib/orber/src/orber_interceptors.erl
@@ -0,0 +1,162 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1999-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_interceptors.erl
+%%
+%% Description:
+%% This file contains the code for calling interceptors
+%%
+%%-----------------------------------------------------------------
+-module(orber_interceptors).
+
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([call_send_message_interceptors/2, call_receive_message_interceptors/1,
+ call_request_interceptors/2]).
+-export([push_system_message_interceptor/2, pop_system_message_interceptor/1,
+ create_interceptor_table/0]).
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+call_receive_message_interceptors(Bytes) ->
+ case getInMessageInterceptors() of
+ [] ->
+ Bytes;
+ Interceptors ->
+ apply_message_interceptors(Interceptors, receive_message, corba:create_nil_objref(),
+ lists:flatten(Bytes))
+ end.
+call_send_message_interceptors(ObjRef, Bytes) ->
+ case getOutMessageInterceptors() of
+ [] ->
+ Bytes;
+ Interceptors ->
+ apply_message_interceptors(Interceptors, send_message, ObjRef, lists:flatten(Bytes))
+ end.
+
+
+call_request_interceptors(in, Bytes) ->
+ case getInRequestInterceptors() of
+ [] ->
+ Bytes;
+ Interceptors ->
+ Bytes
+ end;
+call_request_interceptors(out, Bytes) ->
+ case getOutRequestInterceptors() of
+ [] ->
+ Bytes;
+ Interceptors ->
+ Bytes
+ end.
+
+create_interceptor_table() ->
+ %% Should be replicated mnesia
+ ets:new(orber_interceptors, [protected, named_table, set]),
+ ets:insert(orber_interceptors, {message_in_interceptors, []}),
+ ets:insert(orber_interceptors, {message_out_interceptors, []}).
+
+push_system_message_interceptor(in, Mod) ->
+ case ets:lookup(orber_interceptors, message_in_interceptors) of
+ [{_, Interceptors}] ->
+ ets:insert(orber_interceptors, {message_in_interceptors, [Mod | Interceptors]});
+ _ ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+push_system_message_interceptor(out, Mod) ->
+ case ets:lookup(orber_interceptors, message_out_interceptors) of
+ [{_, Interceptors}] ->
+ ets:insert(orber_interceptors, {message_out_interceptors, Interceptors ++ [Mod]});
+ _ ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end.
+
+pop_system_message_interceptor(in) ->
+ case ets:lookup(orber_interceptors, message_in_interceptors) of
+ [{_, []}] ->
+ ok;
+ [{_, [_ | Interceptors]}] ->
+ ets:insert(orber_interceptors, {message_in_interceptors, Interceptors});
+ _ ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end;
+pop_system_message_interceptor(out) ->
+ case ets:lookup(orber_interceptors, message_out_interceptors) of
+ [{_, []}] ->
+ ok;
+ [{_, Interceptors}] ->
+ ets:insert(orber_interceptors, {message_out_interceptors, remove_last_element(Interceptors)});
+ _ ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end.
+
+
+
+%%-----------------------------------------------------------------
+%% Internal functions
+%%-----------------------------------------------------------------
+getInMessageInterceptors() ->
+ case ets:lookup(orber_interceptors, message_in_interceptors) of
+ [{_, Interceptors}] ->
+ Interceptors;
+ _ ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end.
+
+getOutMessageInterceptors() ->
+ case ets:lookup(orber_interceptors, message_out_interceptors) of
+ [{_, Interceptors}] ->
+ Interceptors;
+ _ ->
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO})
+ end.
+
+
+getInRequestInterceptors() ->
+ [].
+
+getOutRequestInterceptors() ->
+ [].
+
+
+apply_message_interceptors([], F, ObjRef, Bytes) ->
+ Bytes;
+apply_message_interceptors([M | Rest], F, ObjRef, Bytes) ->
+ apply_message_interceptors(Rest, F, ObjRef, apply(M, F, [ObjRef, Bytes])).
+
+
+remove_last_element([]) ->
+ [];
+remove_last_element([M]) ->
+ [];
+remove_last_element([M |Tail]) ->
+ remove_last_element([Tail]).
+
+
diff --git a/lib/orber/src/orber_objectkeys.erl b/lib/orber/src/orber_objectkeys.erl
new file mode 100644
index 0000000000..b0e759187b
--- /dev/null
+++ b/lib/orber/src/orber_objectkeys.erl
@@ -0,0 +1,570 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_objectkeys.erl
+%%
+%% Description:
+%% This file contains the object keyserver in Orber
+%%
+%%-----------------------------------------------------------------
+-module(orber_objectkeys).
+
+-behaviour(gen_server).
+
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/1, stop/0, stop_all/0, get_pid/1, is_persistent/1,
+ register/2, register/3, delete/1, create_schema/1, check/1,
+ remove_old_keys/0]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, install/2, handle_call/3, handle_info/2, code_change/3]).
+-export([handle_cast/2, dump/0, get_key_from_pid/1, gc/1]).
+
+%%-----------------------------------------------------------------
+%% Mnesia Table definition record
+%%-----------------------------------------------------------------
+-record(orber_objkeys, {object_key, pid, persistent=false, timestamp}).
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(dirty_query_context, true).
+
+%% This macro returns a read fun suitable for evaluation in a transaction
+-define(read_function(Objkey),
+ fun() ->
+ mnesia:dirty_read(Objkey)
+ end).
+
+%% This macro returns a write fun suitable for evaluation in a transaction
+-define(write_function(R),
+ fun() ->
+ mnesia:dirty_write(R)
+ end).
+
+%% This macro returns a delete fun suitable for evaluation in a transaction
+-define(delete_function(R),
+ fun() ->
+ mnesia:delete(R)
+ end).
+
+%% Use this fun inside a transaction to get a list of all keys.
+-define(match_function(),
+ fun() ->
+ mnesia:match_object({orber_objkeys, '_', '_','_','_'})
+ end).
+
+-ifdef(dirty_query_context).
+-define(query_check(Q_res), Q_res).
+-else.
+-define(query_check(Q_res), {atomic, Q_res}).
+-endif.
+
+
+-define(CHECK_EXCEPTION(Res), case Res of
+ {'EXCEPTION', E} ->
+ corba:raise(E);
+ R ->
+ R
+ end).
+
+-define(DEBUG_LEVEL, 6).
+
+
+
+%%-----------------------------------------------------------------
+%% Debugging function
+%%-----------------------------------------------------------------
+dump() ->
+ case catch mnesia:dirty_first('orber_objkeys') of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ Key ->
+ dump_print(Key),
+ dump_loop(Key)
+ end.
+
+dump_loop(PreviousKey) ->
+ case catch mnesia:dirty_next('orber_objkeys', PreviousKey) of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ '$end_of_table' ->
+ ok;
+ Key ->
+ dump_print(Key),
+ dump_loop(Key)
+ end.
+
+dump_print(Key) ->
+ case catch mnesia:dirty_read({'orber_objkeys', Key}) of
+ {'EXIT', R} ->
+ io:format("Exited with ~p\n",[R]);
+ [X] ->
+ io:format("object_key: ~p, pid: ~p, persistent: ~p, timestamp: ~p\n",
+ [binary_to_term(X#orber_objkeys.object_key),
+ X#orber_objkeys.pid,
+ X#orber_objkeys.persistent,
+ X#orber_objkeys.timestamp]);
+ _ ->
+ ok
+ end.
+
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start(Opts) ->
+ gen_server:start_link({local, orber_objkeyserver}, orber_objectkeys, Opts, []).
+
+stop() ->
+ gen_server:call(orber_objkeyserver, stop, infinity).
+
+remove_old_keys() ->
+ %% This function may ONLY be used when restarting a crashed node.
+ %% We must remove all objects started with {global, "name"} otherwise
+ %% we cannot restart the node using the same name.
+ Fun = fun() ->
+ Node = node(),
+ mnesia:write_lock_table(orber_objkeys),
+ Objects = mnesia:match_object(orber_objkeys,
+ mnesia:table_info(orber_objkeys,
+ wild_pattern),
+ read),
+ lists:foreach(fun(Obj) ->
+ case node(Obj#orber_objkeys.pid) of
+ Node ->
+ mnesia:delete({orber_objkeys,
+ Obj#orber_objkeys.object_key});
+ _->
+ ok
+ end
+ end,
+ Objects),
+ ok
+ end,
+ write_result(mnesia:transaction(Fun)).
+
+stop_and_remove_local(Reason) ->
+ %% This function may ONLY be used when this server terminates with reason
+ %% normal or shutdown.
+ Fun = fun() ->
+ Node = node(),
+ mnesia:write_lock_table(orber_objkeys),
+ Objects = mnesia:match_object(orber_objkeys,
+ mnesia:table_info(orber_objkeys,
+ wild_pattern),
+ read),
+ lists:foreach(fun(Obj) ->
+ case node(Obj#orber_objkeys.pid) of
+ Node ->
+ exit(Obj#orber_objkeys.pid, Reason),
+ mnesia:delete({orber_objkeys,
+ Obj#orber_objkeys.object_key});
+ _->
+ ok
+ end
+ end,
+ Objects),
+ ok
+ end,
+ write_result(mnesia:transaction(Fun)).
+
+stop_all() ->
+ Fun = ?match_function(),
+ case mnesia:transaction(Fun) of
+ {atomic, Objects} ->
+ lists:foreach(fun(Obj) ->
+ gen_server:call(Obj#orber_objkeys.pid,
+ stop, infinity)
+ end,
+ Objects);
+ R ->
+ R
+ end.
+
+get_pid(Objkey) ->
+ case catch ets:lookup_element(orber_objkeys, Objkey, 3) of
+ Pid when is_pid(Pid) ->
+ Pid;
+ dead ->
+ {error, "unable to contact object"};
+ _ ->
+ %% This call is necessary if a persistent object have died
+ %% and the objectkey server is currently updating the Pid
+ %% to equal 'dead'. Without this case 'OBJECT_NOT_EXIST'
+ %% would be raised which is uncorrect if the object is
+ %% persistent.
+ ?CHECK_EXCEPTION(gen_server:call(orber_objkeyserver,
+ {get_pid, Objkey},
+ infinity))
+ end.
+
+is_persistent(Pid) when is_pid(Pid) ->
+ case catch get_key_from_pid(Pid) of
+ {'EXCEPTION', _} ->
+ corba:raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO});
+ Key ->
+ is_persistent(Key)
+ end;
+is_persistent(Objkey) ->
+ case catch ets:lookup_element(orber_objkeys, Objkey, 4) of
+ {'EXIT', _R} ->
+ corba:raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO});
+ Boolean ->
+ Boolean
+ end.
+
+
+gc(Sec) when is_integer(Sec) ->
+ Fun = fun() ->
+ mnesia:write_lock_table(orber_objkeys),
+ Objects = mnesia:match_object({orber_objkeys, '_', dead, true,'_'}),
+ lists:foreach(fun(Obj) ->
+ case timetest(Sec, Obj#orber_objkeys.timestamp) of
+ true ->
+ mnesia:delete({orber_objkeys,
+ Obj#orber_objkeys.object_key});
+ _->
+ ok
+ end
+ end,
+ Objects),
+ ok
+ end,
+ write_result(mnesia:transaction(Fun)).
+
+register(Objkey, Pid) ->
+ 'register'(Objkey, Pid, false).
+
+register(Objkey, Pid, Type) when is_pid(Pid) ->
+ ?CHECK_EXCEPTION(gen_server:call(orber_objkeyserver,
+ {register, Objkey, Pid, Type},
+ infinity));
+register(Objkey, Pid, Type) ->
+ orber:dbg("[~p] orber_objectkeys:register(~p, ~p); Not a Pid ~p",
+ [?LINE, Objkey, Type, Pid], ?DEBUG_LEVEL),
+ corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO}).
+
+delete(Objkey) ->
+ ?CHECK_EXCEPTION(gen_server:call(orber_objkeyserver,
+ {delete, Objkey}, infinity)).
+
+check(Objkey) ->
+ ?CHECK_EXCEPTION(gen_server:call(orber_objkeyserver,
+ {check, Objkey}, infinity)).
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+init(_Env) ->
+ case mnesia:wait_for_tables(['orber_objkeys'], infinity) of
+ ok ->
+ process_flag(trap_exit, true),
+ start_gc_timer(orber:objectkeys_gc_time());
+ StopReason ->
+ {stop, StopReason}
+ end.
+
+terminate(shutdown, _State) ->
+ stop_and_remove_local(shutdown),
+ ok;
+terminate(normal, _State) ->
+ stop_and_remove_local(normal),
+ ok;
+terminate(_Reason, _State) ->
+ ok.
+
+start_gc_timer(infinity) ->
+ {ok, []};
+start_gc_timer(Time) ->
+ timer:start(),
+ case timer:send_after(timer:seconds(Time),
+ orber_objkeyserver, {oe_gc, Time}) of
+ {ok, _} ->
+ {ok, []};
+ StopReason ->
+ {stop, StopReason}
+ end.
+
+install(Timeout, Options) ->
+ %% check if there already exists a database. If not, create one.
+ %% DB_initialized = perhaps_create_schema(Nodelist),
+ %% check if mnesia is running. If not, start mnesia.
+ perhaps_start_mnesia(),
+
+ %% Do we have a complete set of IFR tables? If not, create them.
+ AllTabs = mnesia:system_info(tables),
+
+ DB_Result = case lists:member(orber_objkeys, AllTabs) of
+ true ->
+ case lists:member({local_content, true},
+ Options) of
+ true->
+ mnesia:add_table_copy(orber_objkeys,
+ node(),
+ ram_copies);
+ _ ->
+ mnesia:create_table(orber_objkeys,
+ [{attributes,
+ record_info(fields,
+ orber_objkeys)}
+ |Options])
+ end;
+ _ ->
+ mnesia:create_table(orber_objkeys,
+ [{attributes,
+ record_info(fields,
+ orber_objkeys)}
+ |Options])
+ end,
+
+ Wait = mnesia:wait_for_tables([orber_objkeys], Timeout),
+ %% Check if any error has occured yet. If there are errors, return them.
+ if
+ DB_Result == {atomic, ok},
+ Wait == ok ->
+ ok;
+ true ->
+ {error, {DB_Result, Wait}}
+ end.
+
+%%-----------------------------------------------------------------
+%% Func: handle_call/3
+%%
+%% Comment:
+%% In objectkey gen_server all exceptions are tupples and corba:raise
+%% may not be used. It is too time consuming to add catches in every
+%% function before returning. On the client side there is a case which
+%% maps every tupple on the format {'exception', E} to corba:raise(E).
+%%-----------------------------------------------------------------
+handle_call(stop, _From, State) ->
+ {stop, normal, [], State};
+handle_call({get, Objkey}, _From, State) ->
+ R = query_result(mnesia:dirty_read({orber_objkeys, Objkey})),
+ {reply, R, State};
+
+handle_call({register, Objkey, Pid, Type}, _From, State) ->
+ _WF = fun() ->
+ case mnesia:wread({orber_objkeys, Objkey}) of
+ [] ->
+ %% No key exists. Ok to register.
+ mnesia:write(#orber_objkeys{object_key=Objkey, pid=Pid,
+ persistent=Type,
+ timestamp=now()});
+ [X] when X#orber_objkeys.persistent==true,
+ X#orber_objkeys.pid == dead ->
+ %% A persistent object is being restarted. Update Pid & time.
+ mnesia:write(X#orber_objkeys{pid=Pid, timestamp=now()});
+ [X] when is_pid(X#orber_objkeys.pid) ->
+ %% Object exists, i.e., trying to create an object with
+ %% the same name.
+ orber:dbg("[~p] orber_objectkeys:register(~p, ~p); Object already exists.",
+ [?LINE, Objkey, Type], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'BAD_PARAM'{completion_status=?COMPLETED_NO}};
+ Why ->
+ %% Something else occured.
+ orber:dbg("[~p] orber_objectkeys:register(~p, ~p); error reading from DB(~p)",
+ [?LINE, Objkey, Type, Why], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}
+ end
+ end,
+ R = write_result(mnesia:transaction(_WF)),
+ if
+ R == ok andalso is_pid(Pid) ->
+ link(Pid);
+ true ->
+ true
+ end,
+ {reply, R, State};
+
+handle_call({delete, Objkey}, _From, State) ->
+ ?query_check(Qres) = mnesia:dirty_read({orber_objkeys, Objkey}),
+ case Qres of
+ [] ->
+ true;
+ [X] when is_pid(X#orber_objkeys.pid) ->
+ unlink(X#orber_objkeys.pid);
+ _ ->
+ true
+ end,
+ _F = ?delete_function({orber_objkeys, Objkey}),
+ R = write_result(mnesia:transaction(_F)),
+ {reply, R, State};
+
+handle_call({get_pid, Objkey}, _From, State) ->
+ _F = fun() ->
+ mnesia:read({orber_objkeys, Objkey})
+ end,
+ case mnesia:transaction(_F) of
+ {atomic, [X]} when is_pid(X#orber_objkeys.pid) ->
+ {reply, X#orber_objkeys.pid, State};
+ {atomic, [X]} when X#orber_objkeys.pid == dead ->
+ {reply,
+ {'EXCEPTION', #'TRANSIENT'{completion_status=?COMPLETED_NO}},
+ State};
+ _Res ->
+ {reply,
+ {'EXCEPTION', #'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO}},
+ State}
+ end;
+handle_call({check, {_, 'key', Objkey, _, _, _}}, _From, State) ->
+ ?query_check(Qres) = mnesia:dirty_read({orber_objkeys, Objkey}),
+ case Qres of
+ [_X] ->
+ {reply, 'object_here', State};
+ _ ->
+ {reply, 'unknown_object', State}
+ end;
+handle_call({check, {_, 'registered', Objkey, _, _, _}}, _From, State) ->
+ case whereis(Objkey) of
+ undefined ->
+ case catch ets:lookup_element(orber_objkeys, Objkey, 4) of
+ true ->
+ {reply, 'object_here', State};
+ _->
+ {reply, 'unknown_object', State}
+ end;
+ _ ->
+ {reply, 'object_here', State}
+ end;
+handle_call({check, {_, 'pseudo', Module, _, _, _}}, _From, State) ->
+ case code:is_loaded(Module) of
+ false ->
+ {reply, 'unknown_object', State};
+ _ ->
+ {reply, 'object_here', State}
+ end;
+
+handle_call({check, "INIT"}, _From, State) ->
+ {reply, 'object_here', State};
+handle_call({check, _}, _From, State) ->
+ {reply, 'unknown_object', State}.
+
+
+handle_info({'EXIT', Pid, Reason}, State) when is_pid(Pid) ->
+ _WF = fun() ->
+ case mnesia:match_object({orber_objkeys, '_', Pid,'_','_'}) of
+ [] ->
+ ok;
+ [X] when X#orber_objkeys.persistent==false ->
+ mnesia:delete({orber_objkeys, X#orber_objkeys.object_key});
+ [X] when is_pid(X#orber_objkeys.pid) andalso
+ X#orber_objkeys.persistent==true andalso
+ Reason /= normal andalso
+ Reason /= shutdown ->
+ mnesia:write(X#orber_objkeys{pid=dead,
+ timestamp=now()});
+ [X] when X#orber_objkeys.persistent==true ->
+ mnesia:delete({orber_objkeys, X#orber_objkeys.object_key});
+ _->
+ ok
+ end
+ end,
+ case write_result(mnesia:transaction(_WF)) of
+ ok ->
+ unlink(Pid);
+ _->
+ true
+ end,
+ {noreply, State};
+
+handle_info({oe_gc, Secs}, State) ->
+ catch gc(Secs),
+ {noreply, State}.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+%%-----------------------------------------------------------------
+%% Internal Functions
+%%-----------------------------------------------------------------
+
+timetest(S, {MeSec, Sec, USec}) ->
+ {MeSec, Sec+S, USec} < now().
+
+get_key_from_pid(Pid) ->
+ case mnesia:dirty_match_object({orber_objkeys, '_', Pid,'_','_'}) of
+ [Keys] ->
+ Keys#orber_objkeys.object_key;
+ _ ->
+ corba:raise(#'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO})
+ end.
+
+%remove_keys([], _) ->
+% ok;
+%remove_keys([H|T], R) when H#orber_objkeys.persistent==false ->
+% _F = ?delete_function({orber_objkeys, H#orber_objkeys.object_key}),
+% write_result(mnesia:transaction(_F)),
+% remove_keys(T, R).
+
+%%-----------------------------------------------------------------
+%% Check a read transaction
+query_result(?query_check(Qres)) ->
+ case Qres of
+ [Hres] ->
+ Hres#orber_objkeys.pid;
+ [] ->
+ {'EXCEPTION', #'OBJECT_NOT_EXIST'{completion_status=?COMPLETED_NO}};
+ Other ->
+ orber:dbg("[~p] orber_objectkeys:query_result(); DB lookup failed(~p)",
+ [?LINE, Other], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}
+ end.
+
+%%-----------------------------------------------------------------
+%% Check a write transaction
+write_result({atomic,ok}) -> ok;
+write_result(Foo) ->
+ orber:dbg("[~p] orber_objectkeys:query_result(); DB write failed(~p)",
+ [?LINE, Foo], ?DEBUG_LEVEL),
+ {'EXCEPTION', #'INTERNAL'{completion_status=?COMPLETED_NO}}.
+
+
+create_schema(Nodes) ->
+ case mnesia:system_info(use_dir) of
+ false ->
+ mnesia:create_schema(Nodes);
+ _ ->
+ ok
+ end.
+
+perhaps_start_mnesia() ->
+ case mnesia:system_info(is_running) of
+ no ->
+ mnesia:start();
+ _ ->
+ ok
+ end.
+
+
+%%------------------------------------------------------------
+%% Standard gen_server cast handle
+%%
+handle_cast(_, State) ->
+ {noreply, State}.
+
+
diff --git a/lib/orber/src/orber_pi.erl b/lib/orber/src/orber_pi.erl
new file mode 100644
index 0000000000..887c3924e1
--- /dev/null
+++ b/lib/orber/src/orber_pi.erl
@@ -0,0 +1,1210 @@
+%%--------------------------------------------------------------------
+%%
+%% %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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_pi.erl
+%% Purpose :
+%% Comments:
+%% * Each Interceptor is represented by Module where
+%% Module - refers to a module which must export the functions:
+%% (1) receive_request
+%% (2) send_other
+%% (3) receive_service_contexts
+%% (4) send_reply
+%% (5) send_exception
+%% (6) send_request
+%% (7) send_poll
+%% (8) receive_reply
+%% (9) receive_exception
+%% (10) receive_other
+%% or
+%% (11) new_out_connection
+%% (12) new_in_connection
+%% (13) in_request
+%% (14) out_reply
+%% (15) out_request
+%% (16) in_reply
+%%
+%% Functions (1) - (10) for Portable and (11) - (16) for
+%% Native Interceptors.
+%%
+%%----------------------------------------------------------------------
+
+-module(orber_pi).
+
+%%--------------- INCLUDES -----------------------------------
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/orber_pi.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%--------------- EXPORTS-------------------------------------
+%% API external
+-export([%% Native Intercepotors API
+ new_out_connection/5,
+ new_in_connection/5,
+ closed_in_connection/2,
+ closed_out_connection/2,
+ in_request_enc/4,
+ out_reply_enc/5,
+ out_request_enc/6,
+ in_reply_enc/6,
+ in_request/4,
+ out_reply/5,
+ out_request/6,
+ in_reply/6,
+ %% Portable Interceptors
+ server_start_receive/7,
+ server_start_send/2,
+ client_receive/2,
+ client_send/2,
+ codefactory_create_codec/1,
+ codec_encode/2,
+ codec_encode_value/2,
+ codec_decode/2,
+ codec_decode_value/3,
+ %% RequestInfo
+ '_get_request_id'/1,
+ '_get_operation'/1,
+ '_get_arguments'/1,
+ '_get_exceptions'/1,
+ '_get_contexts'/1,
+ '_get_operation_context'/1,
+ '_get_result'/1,
+ '_get_response_expected'/1,
+ '_get_sync_scope'/1,
+ '_get_reply_status'/1,
+ '_get_forward_reference'/1,
+ get_slot/2,
+ get_request_service_context/2,
+ get_reply_service_context/2,
+ %% ClientRequestInfo (inherrits RequestInfo)
+ '_get_target'/1,
+ '_get_effective_target'/1,
+ '_get_effective_profile'/1,
+ '_get_received_exception'/1,
+ '_get_received_exception_id'/1,
+ get_effective_component/2,
+ get_effective_components/2,
+ get_request_policy/2,
+ add_request_service_policy/3,
+ %% ServerRequestInfo (inherrits RequestInfo)
+ '_get_sending_exception'/1,
+ '_get_object_id'/1,
+ '_get_adapter_id'/1,
+ '_get_target_most_derived_interface'/1,
+ get_server_policy/2,
+ set_slot/3,
+ target_is_a/2,
+ add_reply_service_context/3]).
+
+%%=============== DATA STRUCTURES ============================
+%%--------------- ClientRequestInfo --------------------------
+-record('ClientRequestInfo',
+ {request_id,
+ operation,
+ arguments,
+ exceptions,
+ contexts,
+ operation_context,
+ result,
+ response_expected,
+ sync_scope = 'SYNC_NONE',
+ reply_status,
+ forward_reference,
+ endian,
+ target,
+ effective_target,
+ effective_profile,
+ received_exception,
+ received_exception_id}).
+
+-define(createInitCRI(_ReqID, _Op, _Args, _Ctxs, _OpCtx, _RespExp, _Target,
+ _ETarget, _EProf),
+ #'ClientRequestInfo'{request_id = _ReqID,
+ operation = _Op,
+ arguments = _Args,
+ contexts = _Ctxs,
+ operation_context = _OpCtx,
+ response_expected = _RespExp,
+ target = _Target,
+ effective_target = _ETarget,
+ effective_profile = _EProf}).
+
+
+%%--------------- ServerRequestInfo --------------------------
+-record('ServerRequestInfo',
+ {request_id,
+ operation,
+ arguments,
+ exceptions,
+ contexts,
+ operation_context,
+ result,
+ response_expected,
+ sync_scope = 'SYNC_NONE',
+ reply_status,
+ forward_reference,
+ endian,
+ sending_exception,
+ object_id,
+ adapter_id,
+ target_most_derived_interface}).
+
+-define(createInitSRI(_ReqID, _Op, _RespExp),
+ #'ServerRequestInfo'{request_id = _ReqID,
+ operation = _Op,
+ response_expected = _RespExp}).
+
+
+%%--------------- DEFINES ------------------------------------
+-define(DEBUG_LEVEL, 9).
+
+-define(EFORMAT(_F, _A), exit(lists:flatten(io_lib:format(_F, _A)))).
+
+%%------------------------------------------------------------
+%%------------- NATIVE INTERCEPTOR FUNCTIONS------------------
+%%------------------------------------------------------------
+%% function : new_in_connection
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+new_in_connection(PIs, Host, Port, SHost, SPort) ->
+ case catch new_in_connection(PIs, undefined, Host, Port, SHost, SPort) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:new_in_connection(~p); exit(~p)",
+ [?LINE, PIs, R], ?DEBUG_LEVEL),
+ ?EFORMAT("Supplied Interceptors unable to create a valid new_in_connection"
+ "Reason: ~p", [{'EXIT', R}]);
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:new_in_connection(~p); exception(~p)",
+ [?LINE, PIs, E], ?DEBUG_LEVEL),
+ ?EFORMAT("Supplied Interceptors unable to create a valid new_in_connection"
+ "Reason: ~p", [{'EXCEPTION', E}]);
+ Ref ->
+ Ref
+ end.
+
+new_in_connection([], Ref, _, _, _, _) ->
+ Ref;
+new_in_connection([Mod|T], Ref, Host, Port, SHost, SPort) ->
+ case get_arity(Mod, new_in_connection) of
+ 5 ->
+ NewRef = Mod:new_in_connection(Ref, Host, Port, SHost, SPort),
+ new_in_connection(T, NewRef, Host, Port, SHost, SPort);
+ 3 ->
+ NewRef = Mod:new_in_connection(Ref, Host, Port),
+ new_in_connection(T, NewRef, Host, Port, SHost, SPort)
+ end.
+
+get_arity(Mod, Func) ->
+ get_arity(Mod, Func, true).
+get_arity(Mod, Func, Retry) ->
+ case erlang:function_exported(Mod, Func, 5) of
+ true ->
+ 5;
+ false ->
+ case erlang:function_exported(Mod, Func, 3) of
+ true ->
+ 3;
+ false when Retry == true ->
+ {module, _} = code:ensure_loaded(Mod),
+ get_arity(Mod, Func, false);
+ false ->
+ exit("Unable to load interceptor")
+ end
+ end.
+
+%%------------------------------------------------------------
+%% function : closed_in_connection
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+closed_in_connection(PIs, Ref) ->
+ case catch closed_in_connection_helper(PIs, Ref) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:closed_in_connection(~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, R], ?DEBUG_LEVEL),
+ ok;
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:closed_in_connection(~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, E], ?DEBUG_LEVEL),
+ ok;
+ _ ->
+ ok
+ end.
+
+closed_in_connection_helper([], _Ref) ->
+ ok;
+closed_in_connection_helper([Mod|T], Ref) ->
+ NewRef = Mod:closed_in_connection(Ref),
+ closed_in_connection_helper(T, NewRef).
+
+
+%%------------------------------------------------------------
+%% function : new_out_connection
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+new_out_connection(PIs, Host, Port, SHost, SPort) ->
+ case catch new_out_connection(PIs, undefined, Host, Port, SHost, SPort) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:new_out_connection(~p); exit(~p)",
+ [?LINE, PIs, R], ?DEBUG_LEVEL),
+ ?EFORMAT("Supplied Interceptors unable to create a valid new_out_connection"
+ "Reason: ~p", [{'EXIT', R}]);
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:new_out_connection(~p); exception(~p)",
+ [?LINE, PIs, E], ?DEBUG_LEVEL),
+ ?EFORMAT("Supplied Interceptors unable to create a valid new_out_connection"
+ "Reason: ~p", [{'EXCEPTION', E}]);
+ Ref ->
+ Ref
+ end.
+
+new_out_connection([], Ref, _, _, _, _) ->
+ Ref;
+new_out_connection([Mod|T], Ref, Host, Port, SHost, SPort) ->
+ case get_arity(Mod, new_out_connection) of
+ 5 ->
+ NewRef = Mod:new_out_connection(Ref, Host, Port, SHost, SPort),
+ new_out_connection(T, NewRef, Host, Port, SHost, SPort);
+ 3 ->
+ NewRef = Mod:new_out_connection(Ref, Host, Port),
+ new_out_connection(T, NewRef, Host, Port, SHost, SPort)
+ end.
+
+%%------------------------------------------------------------
+%% function : closed_out_connection
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+closed_out_connection(PIs, Ref) ->
+ case catch closed_out_connection_helper(PIs, Ref) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:closed_out_connection(~p); exit(~p)",
+ [?LINE, PIs, R], ?DEBUG_LEVEL),
+ ok;
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:closed_out_connection(~p); exception(~p)",
+ [?LINE, PIs, E], ?DEBUG_LEVEL),
+ ok;
+ _ ->
+ ok
+ end.
+
+closed_out_connection_helper([], _Ref) ->
+ ok;
+closed_out_connection_helper([Mod|T], Ref) ->
+ NewRef = Mod:closed_out_connection(Ref),
+ closed_out_connection_helper(T, NewRef).
+
+%%------------------------------------------------------------
+%% function : in_request_enc
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercepts an incoming request (server-side).
+%%------------------------------------------------------------
+in_request_enc(PIs, ReqHdr, Ref, Msg) ->
+ case catch in_request_enc(PIs, ReqHdr, Ref, Msg, undefined) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:in_request_enc(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:in_request_enc(~p, ~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, Msg, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ NewMsg ->
+ NewMsg
+ end.
+
+in_request_enc([], _, _, Msg, _) ->
+ Msg;
+in_request_enc([Mod|T], ReqHdr, Ref, Msg, Args) ->
+ {NewMsg, NewArgs} = Mod:in_request_encoded(Ref, ReqHdr#request_header.object_key,
+ ReqHdr#request_header.service_context,
+ ReqHdr#request_header.operation,
+ Msg, Args),
+ in_request_enc(T, ReqHdr, Ref, NewMsg, NewArgs).
+
+%%------------------------------------------------------------
+%% function : in_request
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercepts an incoming request (server-side).
+%%------------------------------------------------------------
+in_request(PIs, ReqHdr, Ref, Msg) ->
+ case catch in_request(PIs, ReqHdr, Ref, Msg, undefined) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:in_request(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:in_request(~p, ~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, Msg, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ NewMsg ->
+ NewMsg
+ end.
+
+in_request([], _, _, Msg, _) ->
+ Msg;
+in_request([Mod|T], ReqHdr, Ref, Msg, Args) ->
+ {NewMsg, NewArgs} = Mod:in_request(Ref, ReqHdr#request_header.object_key,
+ ReqHdr#request_header.service_context,
+ ReqHdr#request_header.operation,
+ Msg, Args),
+ in_request(T, ReqHdr, Ref, NewMsg, NewArgs).
+
+%%------------------------------------------------------------
+%% function : out_reply_enc
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercept an outgoing reply (server-side).
+%%------------------------------------------------------------
+out_reply_enc(PIs, ReqHdr, Ref, Msg, Ctx) ->
+ case catch out_reply_enc(PIs, ReqHdr, Ref, Msg, undefined, Ctx) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:out_reply_enc(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:out_reply_enc(~p, ~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, Msg, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ NewMsg ->
+ NewMsg
+ end.
+out_reply_enc([], _, _, Msg, _, _) ->
+ Msg;
+out_reply_enc([Mod|T], ReqHdr, Ref, Msg, Args, Ctx) ->
+ {NewMsg, NewArgs} = Mod:out_reply_encoded(Ref, ReqHdr#request_header.object_key,
+ Ctx, %% Out Context.
+ ReqHdr#request_header.operation,
+ Msg, Args),
+ out_reply_enc(T, ReqHdr, Ref, NewMsg, NewArgs, Ctx).
+
+
+%%------------------------------------------------------------
+%% function : out_reply
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercept an outgoing reply (server-side).
+%%------------------------------------------------------------
+out_reply(PIs, ReqHdr, Ref, Msg, Ctx) ->
+ case catch out_reply(PIs, ReqHdr, Ref, Msg, undefined, Ctx) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:out_reply(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ NewMsg ->
+ NewMsg
+ end.
+out_reply([], _, _, Msg, _, _) ->
+ Msg;
+out_reply([Mod|T], ReqHdr, Ref, Msg, Args, Ctx) ->
+ {NewMsg, NewArgs} = Mod:out_reply(Ref, ReqHdr#request_header.object_key,
+ Ctx, %% Out Context.
+ ReqHdr#request_header.operation,
+ Msg, Args),
+ out_reply(T, ReqHdr, Ref, NewMsg, NewArgs, Ctx).
+
+
+%%------------------------------------------------------------
+%% function : out_request_enc
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercept an outgoing request (client-side).
+%%------------------------------------------------------------
+out_request_enc(PIs, ObjKey, Ctx, Op, Ref, Msg) ->
+ case catch out_request_enc(PIs, ObjKey, Ctx, Op, Ref, Msg, undefined) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:out_request_enc(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:out_request_enc(~p, ~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, Msg, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ NewMsg ->
+ NewMsg
+ end.
+
+out_request_enc([], _, _, _, _, Msg, _) ->
+ Msg;
+out_request_enc([Mod|T], ObjKey, Ctx, Op, Ref, Msg, Args) ->
+ {NewMsg, NewArgs} = Mod:out_request_encoded(Ref, ObjKey, Ctx, Op, Msg, Args),
+ out_request_enc(T, ObjKey, Ctx, Op, Ref, NewMsg, NewArgs).
+
+
+%%------------------------------------------------------------
+%% function : out_request
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercept an outgoing request (client-side).
+%%------------------------------------------------------------
+out_request(PIs, ObjKey, Ctx, Op, Ref, Msg) ->
+ case catch out_request(PIs, ObjKey, Ctx, Op, Ref, Msg, undefined) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:out_request(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_NO});
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:out_request(~p, ~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, Msg, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ NewMsg ->
+ NewMsg
+ end.
+
+out_request([], _, _, _, _, Msg, _) ->
+ Msg;
+out_request([Mod|T], ObjKey, Ctx, Op, Ref, Msg, Args) ->
+ {NewMsg, NewArgs} = Mod:out_request(Ref, ObjKey, Ctx, Op, Msg, Args),
+ out_request(T, ObjKey, Ctx, Op, Ref, NewMsg, NewArgs).
+
+
+%%------------------------------------------------------------
+%% function :in_reply_enc
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercept an incoming reply (client-side)
+%%------------------------------------------------------------
+in_reply_enc(PIs, ObjKey, Ctx, Op, Ref, Msg) ->
+ case catch in_reply_enc(PIs, ObjKey, Ctx, Op, Ref, Msg, undefined) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:in_reply_enc(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_pi:in_reply_enc(~p, ~p, ~p); exception(~p)",
+ [?LINE, PIs, Ref, Msg, E], ?DEBUG_LEVEL),
+ corba:raise(E);
+ NewMsg ->
+ NewMsg
+ end.
+
+in_reply_enc([], _, _, _, _, Msg, _) ->
+ Msg;
+in_reply_enc([Mod|T], ObjKey, Ctx, Op, Ref, Msg, Args) ->
+ {NewMsg, NewArgs} = Mod:in_reply_encoded(Ref, ObjKey, Ctx, Op, Msg, Args),
+ in_reply_enc(T, ObjKey, Ctx, Op, Ref, NewMsg, NewArgs).
+
+%%------------------------------------------------------------
+%% function :in_reply
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect : Intercept an incoming reply (client-side)
+%%------------------------------------------------------------
+in_reply(PIs, ObjKey, Ctx, Op, Ref, Msg) ->
+ case catch in_reply(PIs, ObjKey, Ctx, Op, Ref, Msg, undefined) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_pi:in_reply(~p, ~p, ~p); exit(~p)",
+ [?LINE, PIs, Ref, Msg, R], ?DEBUG_LEVEL),
+ corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE});
+ NewMsg ->
+ NewMsg
+ end.
+
+in_reply([], _, _, _, _, Msg, _) ->
+ Msg;
+in_reply([Mod|T], ObjKey, Ctx, Op, Ref, Msg, Args) ->
+ {NewMsg, NewArgs} = Mod:in_reply(Ref, ObjKey, Ctx, Op, Msg, Args),
+ in_reply(T, ObjKey, Ctx, Op, Ref, NewMsg, NewArgs).
+
+
+
+
+%%------------------------------------------------------------
+%%------------- CODEC FUNCTIONS ------------------------------
+%%------------------------------------------------------------
+%% function : codefactory_create_codec
+%% Arguments: #IOP_N_Encoding{}
+%% Returns : CodecRef
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+codefactory_create_codec(#'IOP_N_Encoding'{format = 'IOP_N_ENCODING_CDR_ENCAPS',
+ major_version = Major,
+ minor_version = Minor})
+ when is_integer(Major) andalso is_integer(Minor) ->
+ {Major, Minor};
+codefactory_create_codec(_) ->
+ corba:raise(#'IOP_N_CodecFactory_UnknownEncoding'{}).
+
+%%------------------------------------------------------------
+%% function : codec_encode
+%% Arguments: Version - GIOP version
+%% Any - #any{}
+%% Returns : CORBA::OctetSeq
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+codec_encode(Version, Any) when is_record(Any, any) ->
+ %% Encode ByteOrder
+ {Bytes, Len} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes2, _Len2} = cdr_encode:enc_type('tk_any', Version, Any, Bytes, Len),
+ list_to_binary(lists:reverse(Bytes2));
+codec_encode(_Version, _Any) ->
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%------------------------------------------------------------
+%% function : codec_encode_value
+%% Arguments: Version - GIOP version
+%% Any - #any{}
+%% Returns : CORBA::OctetSeq
+%% Exception:
+%% Effect : Encode the Any#any.value only.
+%%------------------------------------------------------------
+codec_encode_value(Version, #any{typecode = TC, value = Val}) ->
+ %% Encode ByteOrder
+ {Bytes, Len} = cdr_encode:enc_type('tk_octet', Version, 0, [], 0),
+ {Bytes2, _Len2} = cdr_encode:enc_type(TC, Version, Val, Bytes, Len),
+ list_to_binary(lists:reverse(Bytes2));
+codec_encode_value(_Version, _NotAnAny) ->
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%------------------------------------------------------------
+%% function : codec_decode
+%% Arguments: Version - GIOP version
+%% Bytes - CORBA::OctetSeq
+%% Returns : Any - #any{}
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+codec_decode(Version, Bytes) when is_binary(Bytes) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(Bytes),
+ case catch cdr_decode:dec_type('tk_any', Version, Rest, 0, ByteOrder) of
+ {Any, [], _} ->
+ Any;
+ _->
+ corba:raise(#'IOP_N_Codec_FormatMismatch'{})
+ end;
+codec_decode(_Version, _Any) ->
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+%%------------------------------------------------------------
+%% function : codec_decode_value
+%% Arguments: Version - GIOP version
+%% Bytes - CORBA::OctetSeq
+%% TypeCode - CORBA::TypeCode
+%% Returns : Any - #any{}
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+codec_decode_value(Version, Bytes, TypeCode) when is_binary(Bytes) ->
+ {ByteOrder, Rest} = cdr_decode:dec_byte_order(Bytes),
+ case catch cdr_decode:dec_type(TypeCode, Version, Rest, 0, ByteOrder) of
+ {Val, [], _} ->
+ #any{typecode = TypeCode, value = Val};
+ _->
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO})
+ end;
+codec_decode_value(_Version, _Bytes, _TypeCode) ->
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}).
+
+
+%%------------------------------------------------------------
+%%------------- SERVER SIDE FUNCTIONS ------------------------
+%%------------------------------------------------------------
+%% To make a long story short, you find an conceptual description
+%% of how, and in which order, the different functions is
+%% supposed to be invoked.
+%%
+%%request_from_iiop(Bytes) ->
+%% Reply =
+%% case receive_service_contexts(ServerRequestInfo) of
+%% SYSTEM EXC ->
+%% send_exception(..);
+%% ForwardRequest EXC ->
+%% send_other(..);
+%% NoEXC ->
+%% case receive_request(..) of
+%% SYSTEM EXC ->
+%% send_exception(..);
+%% ForwardRequest EXC ->
+%% send_other(..);
+%% No EXC ->
+%% InvokeServer
+%% end
+%% end,
+%% case Reply of
+%% EXC ->
+%% send_exception(..);
+%% No EXC, Normal Reply ->
+%% case send_reply(..) of
+%% SYSTEM EXC ->
+%% send_exception(..);
+%% ForwardRequest EXC ->
+%% send_other(..);
+%% No Exc ->
+%% Done
+%% end;
+%% No EXC, LOCATION_FORWARD ->
+%% send_other(..)
+%% end.
+%%
+%%
+%%------------------------------------------------------------
+%% function : server_start_receive
+%% Arguments: Msg - #giop_message{}
+%% PIs - a list of Interceptors (see 'Comments' in the module header)
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+server_start_receive(PIs, Version, ReqHdr, Rest, Len, ByteOrder, Msg) ->
+ cdr_decode:dec_request_body(Version, ReqHdr, Rest, Len, ByteOrder, Msg),
+ SRI = ?createInitSRI(ReqHdr#request_header.request_id,
+ ReqHdr#request_header.operation,
+ ReqHdr#request_header.response_expected),
+ server_receive(receive_service_contexts, SRI, PIs, [], PIs).
+
+server_receive(receive_service_contexts, SRI, [], _Acc, PIs) ->
+ server_receive(receive_request, SRI, PIs, [], PIs);
+server_receive(receive_service_contexts, SRI, [H|T], Acc, PIs) ->
+ case catch receive_service_contexts(SRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ server_send(send_other, SRI, Acc, [], PIs);
+ {'EXCEPTION', _E} ->
+ server_send(send_exception, SRI, Acc, [], PIs);
+ _ ->
+ server_receive(receive_service_contexts, SRI, T, Acc, PIs)
+ end;
+server_receive(receive_request, SRI, [], _Acc, _PIs) ->
+ %% Done with receive interceptors, now we can call the server.
+ SRI;
+server_receive(receive_request, SRI, [H|T], Acc, PIs) ->
+ case catch receive_request(SRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ server_send(send_other, SRI, Acc, [], PIs);
+ {'EXCEPTION', _E} ->
+ server_send(send_exception, SRI, Acc, [], PIs);
+ _ ->
+ server_receive(receive_request, SRI, T, Acc, PIs)
+ end.
+
+
+%%------------------------------------------------------------
+%% function : server_start_send
+%% Arguments: SRI - ServerRequestInfo
+%% PIs - a list of Interceptors (see 'Comments' in the module header)
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+server_start_send(PIs, SRI) ->
+ case SRI#'ServerRequestInfo'.reply_status of
+ 'PortableInterceptor_SUCCESSFUL' ->
+ server_send(send_reply, SRI, PIs, [], PIs);
+ 'PortableInterceptor_SYSTEM_EXCEPTION' ->
+ server_send(send_exception, SRI, PIs, [], PIs);
+ 'PortableInterceptor_USER_EXCEPTION' ->
+ server_send(send_exception, SRI, PIs, [], PIs);
+ _ ->
+ server_send(send_other, SRI, PIs, [], PIs)
+ end.
+
+server_send(_, SRI, [], _Acc, _PIs) ->
+ %% Done
+ SRI;
+server_send(send_exception, SRI, [H|T], Acc, PIs) ->
+ case catch send_exception(SRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ server_send(send_other, SRI, Acc, [], PIs);
+ {'EXCEPTION', _E} ->
+ server_send(send_exception, SRI, Acc, [], PIs);
+ _ ->
+ server_send(send_exception, SRI, T, Acc, PIs)
+ end;
+server_send(send_other, SRI, [H|T], Acc, PIs) ->
+ case catch send_other(SRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ server_send(send_other, SRI, T, Acc, PIs);
+ {'EXCEPTION', _E} ->
+ server_send(send_exception, SRI, T, Acc, PIs);
+ _ ->
+ server_send(send_other, SRI, T, Acc, PIs)
+ end;
+server_send(send_reply, SRI, [H|T], Acc, PIs) ->
+ case catch send_reply(SRI, H) of
+ {'EXCEPTION', _E} ->
+ server_send(send_exception, SRI, T, Acc, PIs);
+ _ ->
+ server_send(send_reply, SRI, T, Acc, PIs)
+ end.
+
+receive_request(SRI, Mod) ->
+ apply(Mod, receive_request, [SRI]).
+
+send_other(SRI, Mod) ->
+ apply(Mod, send_other, [SRI]).
+
+receive_service_contexts(SRI, Mod) ->
+ apply(Mod, receive_service_contexts, [SRI]).
+
+send_reply(SRI, Mod) ->
+ apply(Mod, send_reply, [SRI]).
+
+send_exception(SRI, Mod) ->
+ apply(Mod, send_exception, [SRI]).
+
+
+%%------------------------------------------------------------
+%%------------- CLIENT SIDE FUNCTIONS ------------------------
+%%------------------------------------------------------------
+%% To make a long story short, you find an conceptual description
+%% of how, and in which order, the different functions is
+%% supposed to be invoked.
+%%
+%%request(Data) ->
+%% Reply =
+%% case send_request(CRI) of
+%% SYSTEM EXC ->
+%% receive_exception(..);
+%% ForwardRequest EXC ->
+%% receive_other(..);
+%% NoEXC ->
+%% IIOP-send
+%% end,
+%% case Reply of
+%% EXC ->
+%% receive_exception(..); May raise system exc => receive_other(..);
+%% No EXC, Normal Reply ->
+%% receive_reply(..) May raise system exc => receive_exception(..);
+%% Non-normal reply (e.g. LOCATION_FORWARD) ->
+%% receive_other(..) May raise system exc => receive_exception(..);
+%% end.
+%%------------------------------------------------------------
+%% function : client_send
+%% Arguments: CRI - ClientRequestInfo
+%% PIs - a list of Interceptors (see 'Comments' in the module header)
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+
+client_send(CRI, PIs) ->
+ client_send(send_request, CRI, PIs, [], PIs).
+
+client_send(send_request, CRI, [], _, _) ->
+ CRI;
+client_send(send_request, CRI, [H|T], Acc, PIs) ->
+ case catch send_request(CRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ client_receive(receive_other, CRI, T, [], PIs);
+ {'EXCEPTION', _E} ->
+ client_receive(receive_exception, CRI, Acc, [], PIs);
+ _ ->
+ client_send(send_request, CRI, T, Acc, PIs)
+ end.
+
+
+
+%%------------------------------------------------------------
+%% function : client_receive
+%% Arguments: CRI - ClientRequestInfo
+%% PIs - a list of Interceptors (see 'Comments' in the module header)
+%% Returns :
+%% Exception:
+%% Effect :
+%%------------------------------------------------------------
+
+client_receive(CRI, PIs) ->
+ case CRI#'ClientRequestInfo'.reply_status of
+ 'PortableInterceptor_SUCCESSFUL' ->
+ client_receive(receive_reply, CRI, PIs, [], PIs);
+ 'PortableInterceptor_SYSTEM_EXCEPTION' ->
+ client_receive(receive_exception, CRI, PIs, [], PIs);
+ 'PortableInterceptor_USER_EXCEPTION' ->
+ client_receive(receive_exception, CRI, PIs, [], PIs);
+ _ ->
+ client_receive(receive_other, CRI, PIs, [], PIs)
+ end.
+
+client_receive(_, CRI, [], _, _) ->
+ %% Done
+ CRI;
+client_receive(receive_reply, CRI, [H|T], Acc, PIs) ->
+ case catch receive_reply(CRI, H) of
+ {'EXCEPTION', _E} ->
+ client_receive(receive_exception, CRI, T, [H|Acc], PIs);
+ _ ->
+ client_receive(receive_reply, CRI, T, [H|Acc], PIs)
+ end;
+client_receive(receive_exception, CRI, [H|T], Acc, PIs) ->
+ case catch receive_exception(CRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ client_receive(receive_other, CRI, T, [], PIs);
+ {'EXCEPTION', _E} ->
+ client_receive(receive_exception, CRI, T, [H|Acc], PIs);
+ _ ->
+ client_receive(receive_exception, CRI, T, [H|Acc], PIs)
+ end;
+client_receive(receive_other, CRI, [H|T], Acc, PIs) ->
+ case catch receive_other(CRI, H) of
+ {'EXCEPTION', #'PortableInterceptor_ForwardRequest'{forward=_Obj,
+ permanent=_Bool}} ->
+ client_receive(receive_other, CRI, T, [], PIs);
+ {'EXCEPTION', _E} ->
+ client_receive(receive_exception, CRI, T, [H|Acc], PIs);
+ _ ->
+ client_receive(receive_other, CRI, T, [H|Acc], PIs)
+ end.
+
+
+
+send_request(CRI, Mod) ->
+ apply(Mod, send_request, [CRI]).
+
+receive_reply(CRI, Mod) ->
+ apply(Mod, receive_reply, [CRI]).
+
+receive_other(CRI, Mod) ->
+ apply(Mod, receive_other, [CRI]).
+
+receive_exception(CRI, Mod) ->
+ apply(Mod, receive_exception, [CRI]).
+
+%%------------------------------------------------------------
+%% Functions for retrieving info from RequestInfo
+%% ServerRequestInfo and ClientRequestInfo. The ones matching
+%% both ServerRequestInfo and ClientRequestInfo eq. RequestInfo.
+%% Note, RequestInfo is inherrited by the others.
+%%------------------------------------------------------------
+%%-----------------------------------------------------------%
+%% function : _get_request_id
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : ulong()
+%%------------------------------------------------------------
+'_get_request_id'(#'ClientRequestInfo'{request_id = ID}) ->
+ ID;
+'_get_request_id'(#'ServerRequestInfo'{request_id = ID}) ->
+ ID.
+
+%%-----------------------------------------------------------%
+%% function : _get_operation
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : string()
+%%------------------------------------------------------------
+'_get_operation'(#'ClientRequestInfo'{operation = Op}) ->
+ Op;
+'_get_operation'(#'ServerRequestInfo'{operation = Op}) ->
+ Op.
+
+%%-----------------------------------------------------------%
+%% function : _get_arguments
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : A list of #'Dynamic_Parameter'{}
+%%------------------------------------------------------------
+'_get_arguments'(#'ClientRequestInfo'{arguments = Args}) ->
+ Args;
+'_get_arguments'(#'ServerRequestInfo'{arguments = Args}) ->
+ Args.
+
+%%-----------------------------------------------------------%
+%% function : _get_exceptions
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : A list of CORBA::TypeCode
+%%------------------------------------------------------------
+'_get_exceptions'(#'ClientRequestInfo'{exceptions = Exc}) ->
+ Exc;
+'_get_exceptions'(#'ServerRequestInfo'{exceptions = Exc}) ->
+ Exc.
+
+%%-----------------------------------------------------------%
+%% function : _get_contexts
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : A list of CORBA::StringSeq
+%%------------------------------------------------------------
+'_get_contexts'(#'ClientRequestInfo'{contexts = Ctx}) ->
+ Ctx;
+'_get_contexts'(#'ServerRequestInfo'{contexts = Ctx}) ->
+ Ctx.
+
+%%-----------------------------------------------------------%
+%% function : _get_operation_context
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : A list of CORBA::StringSeq
+%%------------------------------------------------------------
+'_get_operation_context'(#'ClientRequestInfo'{operation_context = OpCtx}) ->
+ OpCtx;
+'_get_operation_context'(#'ServerRequestInfo'{operation_context = OpCtx}) ->
+ OpCtx.
+
+%%-----------------------------------------------------------%
+%% function : _get_result
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : #any{}
+%%------------------------------------------------------------
+'_get_result'(#'ClientRequestInfo'{result = Res}) ->
+ Res;
+'_get_result'(#'ServerRequestInfo'{result = Res}) ->
+ Res.
+
+%%-----------------------------------------------------------%
+%% function : _get_response_expected
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : boolean()
+%%------------------------------------------------------------
+'_get_response_expected'(#'ClientRequestInfo'{response_expected = Bool}) ->
+ Bool;
+'_get_response_expected'(#'ServerRequestInfo'{response_expected = Bool}) ->
+ Bool.
+
+%%-----------------------------------------------------------%
+%% function : _get_sync_scope
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : Messaging::SyncScoope ('SYNC_NONE', 'SYNC_WITH_TRANSPORT',
+%% 'SYNC_WITH_SERVER', 'SYNC_WITH_TARGET')
+%%------------------------------------------------------------
+'_get_sync_scope'(#'ClientRequestInfo'{sync_scope = SS}) ->
+ SS;
+'_get_sync_scope'(#'ServerRequestInfo'{sync_scope = SS}) ->
+ SS.
+
+%%-----------------------------------------------------------%
+%% function : _get_reply_status
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : ReplyStatus (short), defined in orber_pi.hrl
+%%------------------------------------------------------------
+'_get_reply_status'(#'ClientRequestInfo'{reply_status = RS}) ->
+ RS;
+'_get_reply_status'(#'ServerRequestInfo'{reply_status = RS}) ->
+ RS.
+
+%%-----------------------------------------------------------%
+%% function : _get_forward_reference
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% Returns : Object
+%%------------------------------------------------------------
+'_get_forward_reference'(#'ClientRequestInfo'{forward_reference = FR}) ->
+ FR;
+'_get_forward_reference'(#'ServerRequestInfo'{forward_reference = FR}) ->
+ FR.
+
+%%------------------------------------------------------------
+%% function : get_slot
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% SlotId - ulong()
+%% Returns : {'EXCEPTION', #'PortableInterceptor_InvalidSlot'{}}
+%%------------------------------------------------------------
+get_slot(_XRI, _SlotId) ->
+ corba:raise(#'PortableInterceptor_InvalidSlot'{}).
+
+%%------------------------------------------------------------
+%% function : get_request_service_context
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% ServiceId - IOP::ServiceId (defined in orber_iiop.hrl)
+%% Returns : IOP::ServiceContext
+%%------------------------------------------------------------
+get_request_service_context(#'ClientRequestInfo'{contexts = Ctx}, _ServiceId) ->
+ Ctx;
+get_request_service_context(#'ServerRequestInfo'{contexts = Ctx}, _ServiceId) ->
+ Ctx.
+
+%%------------------------------------------------------------
+%% function : get_reply_service_context
+%% Arguments: ClientRequestInfo or ServerRequestInfo
+%% ServiceId - IOP::ServiceId (defined in orber_iiop.hrl)
+%% Returns : IOP::ServiceContext
+%%------------------------------------------------------------
+get_reply_service_context(#'ClientRequestInfo'{contexts = Ctx}, _ServiceId) ->
+ Ctx;
+get_reply_service_context(#'ServerRequestInfo'{contexts = Ctx}, _ServiceId) ->
+ Ctx.
+
+%%------------------------------------------------------------
+%%-------------- ClientRequestInfo only ----------------------
+%%-----------------------------------------------------------%
+%% function : _get_target
+%% Arguments: ClientRequestInfo
+%% Returns : Object
+%%------------------------------------------------------------
+'_get_target'(#'ClientRequestInfo'{target = Target}) ->
+ Target.
+
+%%-----------------------------------------------------------%
+%% function : _get_effective_target
+%% Arguments: ClientRequestInfo
+%% Returns : Object
+%%------------------------------------------------------------
+'_get_effective_target'(#'ClientRequestInfo'{effective_target = ET}) ->
+ ET.
+
+%%-----------------------------------------------------------%
+%% function : _get_effective_profile
+%% Arguments: ClientRequestInfo
+%% Returns : IOP:TaggedProfile
+%%------------------------------------------------------------
+'_get_effective_profile'(#'ClientRequestInfo'{effective_profile = EP}) ->
+ EP.
+
+%%-----------------------------------------------------------%
+%% function : _get_received_exception
+%% Arguments: ClientRequestInfo
+%% Returns : #any{}
+%%------------------------------------------------------------
+'_get_received_exception'(#'ClientRequestInfo'{received_exception = RE}) ->
+ RE.
+
+%%-----------------------------------------------------------%
+%% function : _get_received_exception
+%% Arguments: ClientRequestInfo
+%% Returns : CORBA::RepositoryId
+%%------------------------------------------------------------
+'_get_received_exception_id'(#'ClientRequestInfo'{received_exception_id = REId}) ->
+ REId.
+
+%%------------------------------------------------------------
+%% function : get_effective_component
+%% Arguments: ClientRequestInfo
+%% Returns : IOR::TaggedComponent
+%%------------------------------------------------------------
+get_effective_component(#'ClientRequestInfo'{target = Target}, _Id) ->
+ Target.
+
+%%------------------------------------------------------------
+%% function : get_effective_components
+%% Arguments: ClientRequestInfo
+%% Id -IOP::ComponentId (ulong())
+%% Returns : IOP_N::TaggedComponentSeq
+%%------------------------------------------------------------
+get_effective_components(#'ClientRequestInfo'{target = Target}, _Id) ->
+ Target.
+
+%%------------------------------------------------------------
+%% function : get_request_policy
+%% Arguments: ClientRequestInfo
+%% Type - CORBA::PolicyType
+%% Returns : IOP_N::TaggedComponentSeq
+%%------------------------------------------------------------
+get_request_policy(#'ClientRequestInfo'{target = Target}, _Type) ->
+ Target.
+
+%%------------------------------------------------------------
+%% function : add_request_service_context
+%% Arguments: ClientRequestInfo
+%% Ctx - IOP::ServiceContext
+%% Replace - boolean()
+%% Returns : -
+%%------------------------------------------------------------
+add_request_service_policy(#'ClientRequestInfo'{target = _Target},
+ _Ctx, _Replace) ->
+ ok.
+
+%%------------------------------------------------------------
+%%-------------- ServerRequestInfo only ----------------------
+%%-----------------------------------------------------------%
+%% function : _get_sending_exception
+%% Arguments: ServerRequestInfo
+%% Returns : #any{}
+%%------------------------------------------------------------
+'_get_sending_exception'(#'ServerRequestInfo'{sending_exception = Exc}) ->
+ Exc.
+
+%%-----------------------------------------------------------%
+%% function : _get_object_id
+%% Arguments: ServerRequestInfo
+%% Returns : CORBA::OctetSeq
+%%------------------------------------------------------------
+'_get_object_id'(#'ServerRequestInfo'{object_id = OI}) ->
+ OI.
+
+%%-----------------------------------------------------------%
+%% function : _get_adapter_id
+%% Arguments: ServerRequestInfo
+%% Returns : CORBA::OctetSeq
+%%------------------------------------------------------------
+'_get_adapter_id'(#'ServerRequestInfo'{adapter_id = AI}) ->
+ AI.
+
+%%-----------------------------------------------------------%
+%% function : _get_target_most_derived_interface
+%% Arguments: ServerRequestInfo
+%% Returns : CORBA::RepositoryId
+%%------------------------------------------------------------
+'_get_target_most_derived_interface'(#'ServerRequestInfo'
+ {target_most_derived_interface = TMDI}) ->
+ TMDI.
+
+%%------------------------------------------------------------
+%% function : get_server_policy
+%% Arguments: ServerRequestInfo
+%% PolicyType - CORBA::PolicyType
+%% Returns : CORBA::Policy
+%%------------------------------------------------------------
+get_server_policy(#'ServerRequestInfo'{contexts = Ctxs}, _PolicyType) ->
+ Ctxs.
+
+%%------------------------------------------------------------
+%% function : set_slot
+%% Arguments: ServerRequestInfo
+%% SlotId - ulong()
+%% Data - #any{}
+%% Returns : {'EXCEPTION', #'PortableInterceptor_InvalidSlot'{}}
+%%------------------------------------------------------------
+set_slot(_SRI, _SlotId, _Data) ->
+ corba:raise(#'PortableInterceptor_InvalidSlot'{}).
+
+%%-----------------------------------------------------------%
+%% function : target_is_a
+%% Arguments: ServerRequestInfo
+%% IFRId - CORBA::RepositoryId
+%% Returns : boolean()
+%%------------------------------------------------------------
+target_is_a(#'ServerRequestInfo'{object_id = ObjId}, IFRId) ->
+ corba_object:is_a(ObjId, IFRId).
+
+%%------------------------------------------------------------
+%% function : add_reply_service_context
+%% Arguments: ServerRequestInfo
+%% Ctx - IOP::ServiceContext
+%% Replace - boolean()
+%% Returns : -
+%%------------------------------------------------------------
+add_reply_service_context(#'ServerRequestInfo'{contexts = Ctxs}, _Ctx, _Replace) ->
+ Ctxs.
+
+
+%%--------------- END OF MODULE ------------------------------
diff --git a/lib/orber/src/orber_request_number.erl b/lib/orber/src/orber_request_number.erl
new file mode 100644
index 0000000000..77ca9e083a
--- /dev/null
+++ b/lib/orber/src/orber_request_number.erl
@@ -0,0 +1,82 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_request_number.erl
+%%
+%% Description:
+%% This file contains the request number server in Orber
+%%
+%%-----------------------------------------------------------------
+-module(orber_request_number).
+
+-behaviour(gen_server).
+
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/1, get/0, reset/0]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([init/1, terminate/2, handle_call/3]).
+-export([handle_cast/2, handle_info/2, code_change/3]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+start(Opts) ->
+ gen_server:start_link({local, orber_reqno}, orber_request_number, Opts, []).
+
+get() ->
+ gen_server:call(orber_reqno, get, infinity).
+
+reset() ->
+ gen_server:call(orber_reqno, reset, infinity).
+
+%%-----------------------------------------------------------------
+%% Server functions
+%%-----------------------------------------------------------------
+init(_Opts) ->
+ {ok, 0}.
+
+terminate(_Reason, _State) ->
+ ok.
+%% Max is ulong 0 .. 2^32-1
+handle_call(get, _From, State) when State < ?ULONGMAX ->
+ {reply, State, State+1};
+handle_call(get, _From, _State) ->
+ {reply, ?ULONGMAX, 0};
+handle_call(reset, _From, _State) ->
+ {reply, ok, 0}.
+
+handle_cast(_, State) ->
+ {noreply, State}.
+
+handle_info(_, State) ->
+ {noreply, State}.
+
+code_change(_OldVsn, State, _Extra) ->
+ {ok, State}.
+
+
diff --git a/lib/orber/src/orber_socket.erl b/lib/orber/src/orber_socket.erl
new file mode 100644
index 0000000000..2a64bd4e75
--- /dev/null
+++ b/lib/orber/src/orber_socket.erl
@@ -0,0 +1,504 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_socket.erl
+%%
+%% Description:
+%% This file contains a standard interface to the sockets to handle the differences
+%% between the implementations used.
+%%
+%%-----------------------------------------------------------------
+-module(orber_socket).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([start/0, connect/4, listen/3, listen/4, accept/2, accept/3, write/3,
+ controlling_process/3, close/2, peername/2, sockname/2,
+ peerdata/2, peercert/2, peercert/3, sockdata/2, setopts/3,
+ clear/2, shutdown/3, post_accept/2, post_accept/3]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% Internal defines
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 6).
+
+%%-----------------------------------------------------------------
+%% External functions
+%%-----------------------------------------------------------------
+start() ->
+ inet_db:start().
+
+%%-----------------------------------------------------------------
+%% Invoke the required setopts (i.e., inet or ssl)
+setopts(normal, Socket, Opts) ->
+ inet:setopts(Socket, Opts);
+setopts(ssl, Socket, Opts) ->
+ ssl:setopts(Socket, Opts).
+
+%%-----------------------------------------------------------------
+%% Connect to IIOP Port at Host in CDR mode, in order to
+%% establish a connection.
+%%
+connect(Type, Host, Port, Options) ->
+ Timeout = orber:iiop_setup_connection_timeout(),
+ Generation = orber_env:ssl_generation(),
+ Options1 = check_options(Type, Options, Generation),
+ Options2 =
+ case Type of
+ normal ->
+ [{keepalive, orber_env:iiop_out_keepalive()}|Options1];
+ _ when Generation > 2 ->
+ [{keepalive, orber_env:iiop_ssl_out_keepalive()}|Options1];
+ _ ->
+ Options1
+ end,
+ case orber:iiop_out_ports() of
+ {Min, Max} when Type == normal ->
+ multi_connect(Min, Max, Type, Host, Port,
+ [binary, {reuseaddr, true},
+ {packet,cdr}| Options2], Timeout);
+ {Min, Max} when Generation > 2 ->
+ multi_connect(Min, Max, Type, Host, Port,
+ [binary, {reuseaddr, true},
+ {packet,cdr}| Options2], Timeout);
+ {Min, Max} ->
+ %% reuseaddr not available for older SSL versions
+ multi_connect(Min, Max, Type, Host, Port,
+ [binary, {packet,cdr}| Options2], Timeout);
+ _ ->
+ connect(Type, Host, Port, [binary, {packet,cdr}| Options2], Timeout)
+ end.
+
+connect(normal, Host, Port, Options, Timeout) ->
+ case catch gen_tcp:connect(Host, Port, Options, Timeout) of
+ {ok, Socket} ->
+ Socket;
+ {error, timeout} ->
+ orber:dbg("[~p] orber_socket:connect(normal, ~p, ~p, ~p);~n"
+ "Timeout after ~p msec.",
+ [?LINE, Host, Port, Options, Timeout], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ Error ->
+ orber:dbg("[~p] orber_socket:connect(normal, ~p, ~p, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, Host, Port, Options, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end;
+connect(ssl, Host, Port, Options, Timeout) ->
+ case catch ssl:connect(Host, Port, Options, Timeout) of
+ {ok, Socket} ->
+ Socket;
+ {error, timeout} ->
+ orber:dbg("[~p] orber_socket:connect(ssl, ~p, ~p, ~p);~n"
+ "Timeout after ~p msec.",
+ [?LINE, Host, Port, Options, Timeout], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ Error ->
+ orber:dbg("[~p] orber_socket:connect(ssl, ~p, ~p, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, Host, Port, Options, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+multi_connect(CurrentPort, Max, Type, Host, Port, Options, _) when CurrentPort > Max ->
+ orber:dbg("[~p] orber_socket:multi_connect(~p, ~p, ~p, ~p);~n"
+ "Unable to use any of the sockets defined by 'iiop_out_ports'.~n"
+ "Either all ports are in use or to many connections already exists.",
+ [?LINE, Type, Host, Port, Options], ?DEBUG_LEVEL),
+ corba:raise(#'IMP_LIMIT'{minor=(?ORBER_VMCID bor 1), completion_status=?COMPLETED_NO});
+multi_connect(CurrentPort, Max, normal, Host, Port, Options, Timeout) ->
+ case catch gen_tcp:connect(Host, Port, [{port, CurrentPort}|Options], Timeout) of
+ {ok, Socket} ->
+ Socket;
+ {error, timeout} ->
+ orber:dbg("[~p] orber_socket:multi_connect(normal, ~p, ~p, ~p);~n"
+ "Timeout after ~p msec.",
+ [?LINE, Host, Port, [{port, CurrentPort}|Options],
+ Timeout], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ _ ->
+ multi_connect(CurrentPort+1, Max, normal, Host, Port, Options, Timeout)
+ end;
+multi_connect(CurrentPort, Max, ssl, Host, Port, Options, Timeout) ->
+ case catch ssl:connect(Host, Port, [{port, CurrentPort}|Options], Timeout) of
+ {ok, Socket} ->
+ Socket;
+ {error, timeout} ->
+ orber:dbg("[~p] orber_socket:multi_connect(ssl, ~p, ~p, ~p);~n"
+ "Timeout after ~p msec.",
+ [?LINE, Host, Port, [{port, CurrentPort}|Options],
+ Timeout], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{minor=(?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ _ ->
+ multi_connect(CurrentPort+1, Max, ssl, Host, Port, Options, Timeout)
+ end.
+
+
+
+%%-----------------------------------------------------------------
+%% Create a listen socket at Port in CDR mode for
+%% data connection.
+%%
+listen(Type, Port, Options) ->
+ listen(Type, Port, Options, true).
+
+listen(normal, Port, Options, Exception) ->
+ Options1 = check_options(normal, Options, 0),
+ Backlog = orber:iiop_backlog(),
+ Keepalive = orber_env:iiop_in_keepalive(),
+ Options2 = case orber:iiop_max_in_requests() of
+ infinity ->
+ Options1;
+ _MaxRequests ->
+ [{active, once}|Options1]
+ end,
+ Options3 = case orber_env:iiop_packet_size() of
+ infinity ->
+ Options2;
+ MaxSize ->
+ [{packet_size, MaxSize}|Options2]
+ end,
+ case catch gen_tcp:listen(Port, [binary, {packet,cdr}, {keepalive, Keepalive},
+ {reuseaddr,true}, {backlog, Backlog} |
+ Options3]) of
+ {ok, ListenSocket} ->
+ {ok, ListenSocket, check_port(Port, normal, ListenSocket)};
+ {error, Reason} when Exception == false ->
+ {error, Reason};
+ {error, eaddrinuse} ->
+ AllOpts = [binary, {packet,cdr},
+ {reuseaddr,true} | Options3],
+ orber:dbg("[~p] orber_socket:listen(normal, ~p, ~p);~n"
+ "Looks like the listen port is already in use.~n"
+ "Check if another Orber is started~n"
+ "on the same node and uses the same listen port (iiop_port). But it may also~n"
+ "be used by any other application; confirm with 'netstat'.",
+ [?LINE, Port, AllOpts], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO});
+ Error ->
+ AllOpts = [binary, {packet,cdr},
+ {reuseaddr,true} | Options3],
+ orber:dbg("[~p] orber_socket:listen(normal, ~p, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, Port, AllOpts, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end;
+listen(ssl, Port, Options, Exception) ->
+ Backlog = orber:iiop_ssl_backlog(),
+ Generation = orber_env:ssl_generation(),
+ Options1 = check_options(ssl, Options, Generation),
+ Options2 = case orber:iiop_max_in_requests() of
+ infinity ->
+ Options1;
+ _MaxRequests ->
+ [{active, once}|Options1]
+ end,
+ Options3 = case orber_env:iiop_packet_size() of
+ infinity ->
+ Options2;
+ MaxSize ->
+ [{packet_size, MaxSize}|Options2]
+ end,
+ Options4 = if
+ Generation > 2 ->
+ [{reuseaddr, true},
+ {keepalive, orber_env:iiop_ssl_in_keepalive()}|Options3];
+ true ->
+ Options3
+ end,
+ case catch ssl:listen(Port, [binary, {packet,cdr},
+ {backlog, Backlog} | Options4]) of
+ {ok, ListenSocket} ->
+ {ok, ListenSocket, check_port(Port, ssl, ListenSocket)};
+ {error, Reason} when Exception == false ->
+ {error, Reason};
+ {error, eaddrinuse} ->
+ AllOpts = [binary, {packet,cdr} | Options4],
+ orber:dbg("[~p] orber_socket:listen(ssl, ~p, ~p);~n"
+ "Looks like the listen port is already in use. Check if~n"
+ "another Orber is started on the same node and uses the~n"
+ "same listen port (iiop_port). But it may also~n"
+ "be used by any other application; confirm with 'netstat'.",
+ [?LINE, Port, AllOpts], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO});
+ Error ->
+ AllOpts = [binary, {packet,cdr} | Options4],
+ orber:dbg("[~p] orber_socket:listen(ssl, ~p, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, Port, AllOpts, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+%%-----------------------------------------------------------------
+%% Wait in accept on the socket
+%%
+accept(Type, ListenSocket) ->
+ accept(Type, ListenSocket, infinity).
+
+accept(normal, ListenSocket, _Timeout) ->
+ case catch gen_tcp:accept(ListenSocket) of
+ {ok, S} ->
+ S;
+ Error ->
+ orber:dbg("[~p] orber_socket:accept(normal, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, ListenSocket, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end;
+accept(ssl, ListenSocket, Timeout) ->
+ case catch ssl:transport_accept(ListenSocket, Timeout) of
+ {ok, S} ->
+ S;
+ Error ->
+ orber:dbg("[~p] orber_socket:accept(ssl, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, ListenSocket, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+post_accept(Type, Socket) ->
+ post_accept(Type, Socket, infinity).
+
+post_accept(normal, _Socket, _Timeout) ->
+ ok;
+post_accept(ssl, Socket, Timeout) ->
+ case catch ssl:ssl_accept(Socket, Timeout) of
+ ok ->
+ ok;
+ Error ->
+ orber:dbg("[~p] orber_socket:post_accept(ssl, ~p);~n"
+ "Failed with reason: ~p",
+ [?LINE, Socket, Error], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end.
+
+
+%%-----------------------------------------------------------------
+%% Close the socket
+%%
+close(normal, Socket) ->
+ (catch gen_tcp:close(Socket));
+close(ssl, Socket) ->
+ (catch ssl:close(Socket)).
+
+%%-----------------------------------------------------------------
+%% Write to socket
+%%
+write(normal, Socket, Bytes) ->
+ gen_tcp:send(Socket, Bytes);
+write(ssl, Socket, Bytes) ->
+ ssl:send(Socket, Bytes).
+
+%%-----------------------------------------------------------------
+%% Change the controlling process for the socket
+%%
+controlling_process(normal, Socket, Pid) ->
+ gen_tcp:controlling_process(Socket, Pid);
+controlling_process(ssl, Socket, Pid) ->
+ ssl:controlling_process(Socket, Pid).
+
+%%-----------------------------------------------------------------
+%% Get peername
+%%
+peername(normal, Socket) ->
+ inet:peername(Socket);
+peername(ssl, Socket) ->
+ ssl:peername(Socket).
+
+%%-----------------------------------------------------------------
+%% Get peercert
+%%
+peercert(ssl, Socket) ->
+ ssl:peercert(Socket);
+peercert(Type, _Socket) ->
+ orber:dbg("[~p] orber_socket:peercert(~p);~n"
+ "Only available for SSL sockets.",
+ [?LINE, Type], ?DEBUG_LEVEL),
+ {error, ebadsocket}.
+
+peercert(ssl, Socket, Opts) ->
+ ssl:peercert(Socket, Opts);
+peercert(Type, _Socket, Opts) ->
+ orber:dbg("[~p] orber_socket:peercert(~p, ~p);~n"
+ "Only available for SSL sockets.",
+ [?LINE, Type, Opts], ?DEBUG_LEVEL),
+ {error, ebadsocket}.
+
+%%-----------------------------------------------------------------
+%% Get peerdata
+%%
+peerdata(normal, Socket) ->
+ create_data(inet:peername(Socket));
+peerdata(ssl, Socket) ->
+ create_data(ssl:peername(Socket)).
+
+%%-----------------------------------------------------------------
+%% Get sockname
+%%
+sockname(normal, Socket) ->
+ inet:sockname(Socket);
+sockname(ssl, Socket) ->
+ ssl:sockname(Socket).
+
+%%-----------------------------------------------------------------
+%% Get sockdata
+%%
+sockdata(normal, Socket) ->
+ create_data(inet:sockname(Socket));
+sockdata(ssl, Socket) ->
+ create_data(ssl:sockname(Socket)).
+
+
+create_data({ok, {Addr, Port}}) ->
+ {orber_env:addr2str(Addr), Port};
+create_data(What) ->
+ orber:dbg("[~p] orber_socket:peername() or orber_socket:sockname();~n"
+ "Failed with reason: ~p", [?LINE, What], ?DEBUG_LEVEL),
+ {"Unable to lookup peer- or sockname", 0}.
+
+
+%%-----------------------------------------------------------------
+%% Shutdown Connection
+%% How = read | write | read_write
+shutdown(normal, Socket, How) ->
+ gen_tcp:shutdown(Socket, How);
+shutdown(ssl, Socket, How) ->
+ Generation = orber_env:ssl_generation(),
+ if
+ Generation > 2 ->
+ ssl:shutdown(Socket, How);
+ How == read_write ->
+ %% Older versions of SSL do no support shutdown.
+ %% For now we'll use this solution instead.
+ close(ssl, Socket);
+ true ->
+ {error, undefined}
+ end.
+
+%%-----------------------------------------------------------------
+%% Remove Messages from queue
+%%
+clear(normal, Socket) ->
+ tcp_clear(Socket);
+clear(ssl, Socket) ->
+ ssl_clear(Socket).
+
+
+
+%% Inet also checks for the following messages:
+%% * {S, {data, Data}}
+%% * {inet_async, S, Ref, Status},
+%% * {inet_reply, S, Status}
+%% SSL doesn't.
+tcp_clear(Socket) ->
+ receive
+ {tcp, Socket, _Data} ->
+ tcp_clear(Socket);
+ {tcp_closed, Socket} ->
+ tcp_clear(Socket);
+ {tcp_error, Socket, _Reason} ->
+ tcp_clear(Socket)
+ after 0 ->
+ ok
+ end.
+
+ssl_clear(Socket) ->
+ receive
+ {ssl, Socket, _Data} ->
+ ssl_clear(Socket);
+ {ssl_closed, Socket} ->
+ ssl_clear(Socket);
+ {ssl_error, Socket, _Reason} ->
+ ssl_clear(Socket)
+ after 0 ->
+ ok
+ end.
+
+
+
+%%-----------------------------------------------------------------
+%% Check Port. If the user supplies 0 we pick any vacant port. But then
+%% we must change the associated environment variable
+check_port(0, normal, Socket) ->
+ case inet:port(Socket) of
+ {ok, Port} ->
+ orber:configure_override(iiop_port, Port),
+ Port;
+ What ->
+ orber:dbg("[~p] orber_socket:check_port(~p);~n"
+ "Unable to extract the port number via inet:port/1~n",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end;
+check_port(0, ssl, Socket) ->
+ case ssl:sockname(Socket) of
+ {ok, {_Address, Port}} ->
+ orber:configure_override(iiop_ssl_port, Port),
+ Port;
+ What ->
+ orber:dbg("[~p] orber_socket:check_port(~p);~n"
+ "Unable to extract the port number via ssl:sockname/1~n",
+ [?LINE, What], ?DEBUG_LEVEL),
+ corba:raise(#'COMM_FAILURE'{completion_status=?COMPLETED_NO})
+ end;
+check_port(Port, _, _) ->
+ Port.
+
+%%-----------------------------------------------------------------
+%% Check Options.
+%% We need this as a work-around since the SSL-app doesn't allow us
+%% to pass 'inet' as an option. Also needed for R9B :-(
+check_options(normal, Options, _Generation) ->
+ case orber:ip_version() of
+ inet ->
+ Options;
+ inet6 ->
+ %% Necessary for R9B. Should be [orber:ip_version()|Options];
+ [inet6|Options]
+ end;
+check_options(ssl, Options, Generation) ->
+ case orber:ip_version() of
+ inet when Generation > 2 ->
+ [{ssl_imp, new}|Options];
+ inet ->
+ Options;
+ inet6 when Generation > 2 ->
+ [{ssl_imp, new}, inet6|Options];
+ inet6 ->
+ %% Will fail until SSL supports this option.
+ %% Note, we want this happen!
+ [inet6|Options]
+ end.
+
diff --git a/lib/orber/src/orber_tb.erl b/lib/orber/src/orber_tb.erl
new file mode 100644
index 0000000000..0dd2d95bc8
--- /dev/null
+++ b/lib/orber/src/orber_tb.erl
@@ -0,0 +1,186 @@
+%%----------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2004-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File: orber_tb.erl
+%%
+%% Description:
+%% Handling MISC functions.
+%%
+%% Creation date: 040723
+%%
+%%----------------------------------------------------------------------
+-module(orber_tb).
+
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+%%----------------------------------------------------------------------
+%% External exports
+%%----------------------------------------------------------------------
+-export([wait_for_tables/1, wait_for_tables/2, wait_for_tables/3,
+ is_loaded/0, is_loaded/1, is_running/0, is_running/1,
+ info/2, error/2, unique/1, keysearch/2, keysearch/3]).
+
+%%----------------------------------------------------------------------
+%% Internal exports
+%%----------------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+-define(FORMAT(_F, _A), {error, lists:flatten(io_lib:format(_F, _A))}).
+-define(EFORMAT(_F, _A), exit(lists:flatten(io_lib:format(_F, _A)))).
+
+%%----------------------------------------------------------------------
+%% Record Definitions
+%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%% External functions
+%%----------------------------------------------------------------------
+%%----------------------------------------------------------------------
+%% Function : is_loaded/is_running
+%% Arguments :
+%% Returns :
+%% Raises :
+%% Description:
+%%----------------------------------------------------------------------
+is_loaded() ->
+ is_loaded(orber).
+is_loaded(Appl) ->
+ find_application(application:loaded_applications(), Appl).
+
+is_running() ->
+ is_running(orber).
+is_running(Appl) ->
+ find_application(application:which_applications(), Appl).
+
+find_application([], _) ->
+ false;
+find_application([{Appl, _, _} |_], Appl) ->
+ true;
+find_application([_ |As], Appl) ->
+ find_application(As, Appl).
+
+%%----------------------------------------------------------------------
+%% function : keysearch/2/3
+%% Arguments: KeyValue - [{Key, Value}]
+%% Key - term()
+%% Value - term()
+%% Default - term()
+%% Returns : Value | Default
+%% Exception:
+%% Effect :
+%%----------------------------------------------------------------------
+keysearch(Key, KeyValue) ->
+ keysearch(Key, KeyValue, undefined).
+keysearch(Key, KeyValue, Default) ->
+ case lists:keysearch(Key, 1, KeyValue) of
+ {value, {Key, Value}} ->
+ Value;
+ _ ->
+ Default
+ end.
+
+%%----------------------------------------------------------------------
+%% function : wait_for_tables/1
+%% Arguments: Tables - list of mnesia tables
+%% Timeout - integer (no point in allowing infinity)
+%% Attempts - integer > 0 How many times should we try
+%% Returns :
+%% Exception:
+%% Effect :
+%%----------------------------------------------------------------------
+wait_for_tables(Tables) ->
+ wait_for_tables(Tables, 30000, -1).
+wait_for_tables(Tables, Timeout) ->
+ wait_for_tables(Tables, Timeout, -1).
+wait_for_tables(Tables, _Timeout, 0) ->
+ error("Mnesia failed to load the some or all of the following"
+ "tables:~n~p", [Tables]),
+ {error, "The requested Mnesia tables not yet available."};
+wait_for_tables(Tables, Timeout, Attempts) ->
+ case mnesia:wait_for_tables(Tables, Timeout) of
+ ok ->
+ ok;
+ {timeout, BadTabList} ->
+ info("Mnesia hasn't loaded the following tables (~p msec):~n~p",
+ [Timeout, BadTabList]),
+ wait_for_tables(BadTabList, Timeout, Attempts-1);
+ {error, Reason} ->
+ error("Mnesia failed to load the some or all of the following"
+ "tables:~n~p", [Tables]),
+ {error, Reason}
+ end.
+
+%%----------------------------------------------------------------------
+%% function : unique/1
+%% Arguments: List - [term()]
+%% Returns : [term()]
+%% Exception:
+%% Effect : Remove all duplicates from the list.
+%%----------------------------------------------------------------------
+unique([]) -> [];
+unique(List) ->
+ Sorted = lists:sort(List),
+ unique(hd(Sorted),
+ tl(Sorted), []).
+
+unique(A, [A|R], Acc) ->
+ unique(A, R, Acc);
+unique(A, [B|R], Acc) ->
+ unique(B, R, [A|Acc]);
+unique(A, [], Acc) ->
+ lists:reverse([A|Acc]).
+
+
+%%----------------------------------------------------------------------
+%% function : info/2
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%----------------------------------------------------------------------
+info(Format, Args) ->
+ catch error_logger:info_msg("=================== Orber =================~n"++
+ Format++
+ "~n===========================================~n",
+ Args).
+
+%%----------------------------------------------------------------------
+%% function : error/2
+%% Arguments:
+%% Returns :
+%% Exception:
+%% Effect :
+%%----------------------------------------------------------------------
+error(Format, Args) ->
+ catch error_logger:error_msg("=================== Orber =================~n"++
+ Format++
+ "~n===========================================~n",
+ Args).
+
+
+%%----------------------------------------------------------------------
+%% Internal functions
+%%----------------------------------------------------------------------
+
+%%----------------------------------------------------------------------
+%%------------- END OF MODULE ------------------------------------------
+%%----------------------------------------------------------------------
diff --git a/lib/orber/src/orber_tc.erl b/lib/orber/src/orber_tc.erl
new file mode 100644
index 0000000000..7c2172b565
--- /dev/null
+++ b/lib/orber/src/orber_tc.erl
@@ -0,0 +1,283 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1998-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_tc.erl
+%% Description:
+%% This file contains utility functions to create TypeCodes
+%%
+%%-----------------------------------------------------------------
+-module(orber_tc).
+
+-include_lib("orber/include/ifr_types.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([null/0, void/0, short/0, unsigned_short/0,
+ long/0, longdouble/0, unsigned_long/0, long_long/0,
+ unsigned_long_long/0, float/0, double/0,
+ boolean/0, char/0, wchar/0, octet/0, any/0,
+ typecode/0, principal/0,
+ object_reference/2, struct/3,
+ union/5, enum/3,
+ string/1, wstring/1, sequence/2, array/2, alias/3,
+ exception/3, fixed/2, value/5, value_box/3, native/2, abstract_interface/2,
+ get_tc/1, check_tc/1]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+
+%%-----------------------------------------------------------------
+%% Macros
+%%-----------------------------------------------------------------
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% A number of function which can be used to create TypeCodes
+null() ->
+ tk_null.
+void() ->
+ tk_void.
+short() ->
+ tk_short.
+unsigned_short() ->
+ tk_ushort.
+long() ->
+ tk_long.
+unsigned_long() ->
+ tk_ulong.
+long_long() ->
+ tk_longlong.
+unsigned_long_long() ->
+ tk_ulonglong.
+float() ->
+ tk_float.
+double() ->
+ tk_double.
+longdouble() ->
+ tk_longdouble.
+
+boolean() ->
+ tk_boolean.
+char() ->
+ tk_char.
+wchar() ->
+ tk_wchar.
+octet() ->
+ tk_octet.
+any() ->
+ tk_any.
+typecode() ->
+ tk_TypeCode.
+principal() ->
+ tk_Principal.
+
+object_reference(Id, Name) ->
+ {tk_objref, Id, Name}.
+
+struct(Id, Name, ElementList) ->
+ {tk_struct, Id, Name, ElementList}.
+
+union(Id, Name, DiscrTC, Default, ElementList) ->
+ {tk_union, Id, Name, DiscrTC, Default, ElementList}.
+
+enum(Id, Name, ElementList) ->
+ {tk_enum, Id, Name, ElementList}.
+
+string(Length) ->
+ {tk_string, Length}.
+
+wstring(Length) ->
+ {tk_wstring, Length}.
+
+sequence(ElemTC, Length) ->
+ {tk_sequence, ElemTC, Length}.
+
+array(ElemTC, Length) ->
+ {tk_array, ElemTC, Length}.
+
+alias(Id, Name, TC) ->
+ {tk_alias, Id, Name, TC}.
+
+exception(Id, Name, ElementList) ->
+ {tk_except, Id, Name, ElementList}.
+
+fixed(Digits, Scale) ->
+ {tk_fixed, Digits, Scale}.
+
+value(RepId, Name, ValueModifier, TC, ElementList) ->
+ {tk_value, RepId, Name, ValueModifier, TC, ElementList}.
+
+value_box(RepId, Name, TC) ->
+ {tk_value_box, RepId, Name, TC}.
+
+native(RepId, Name) ->
+ {tk_native, RepId, Name}.
+
+abstract_interface(RepId, Name) ->
+ {tk_abstract_interface, RepId, Name}.
+
+
+%%-----------------------------------------------------------------
+%% Get TypeCode (can be used for constructed types like structs,
+%% unions and exceptions)
+%%
+get_tc(T) when is_tuple(T) ->
+ Type = element(1, T),
+ case catch Type:tc() of
+ {'EXIT', R} ->
+ orber:dbg("[~p] ~p:get_tc(~p); Exit: ~p",
+ [?LINE, ?MODULE, T, R], ?DEBUG_LEVEL),
+ corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO});
+ X ->
+ X
+ end;
+%% This call can be used if one have the IFR id and wants a typecode.
+get_tc(IFRId) when is_list(IFRId) ->
+ Rep = orber_ifr:find_repository(),
+ Def = orber_ifr:lookup_id(Rep, IFRId),
+ Descr = orber_ifr:describe(Def),
+ TypeDescr = Descr#contained_description.value,
+ TypeDescr#typedescription.type.
+
+
+%%-----------------------------------------------------------------
+%% Check TypeCode format
+%%
+check_tc('tk_null') -> true;
+check_tc('tk_void') -> true;
+check_tc('tk_short') -> true;
+check_tc('tk_ushort') -> true;
+check_tc('tk_long') -> true;
+check_tc('tk_ulong') -> true;
+check_tc('tk_longlong') -> true;
+check_tc('tk_ulonglong') -> true;
+check_tc('tk_float') -> true;
+check_tc('tk_double') -> true;
+check_tc('tk_longdouble') -> true;
+check_tc('tk_boolean') -> true;
+check_tc('tk_char') -> true;
+check_tc('tk_wchar') -> true;
+check_tc('tk_octet') -> true;
+check_tc('tk_any') -> true;
+check_tc('tk_TypeCode') -> true;
+check_tc('tk_Principal') -> true;
+check_tc({'tk_objref', RepId, Name}) when is_list(RepId) andalso
+ is_list(Name) -> true;
+check_tc({'tk_struct', RepId, Name, ElementList}) when is_list(RepId) andalso
+ is_list(Name) ->
+ Fun = fun(X) ->
+ case X of
+ {MemberName, MemberTC} when is_list(MemberName) ->
+ check_tc(MemberTC);
+ _ ->
+ false
+ end
+ end,
+ lists:all(Fun, ElementList);
+check_tc({'tk_union', RepId, Name, DiscrTC,
+ Default, ElementList}) when is_list(RepId) andalso
+ is_list(Name) andalso
+ is_integer(Default) ->
+ case check_tc(DiscrTC) of
+ false ->
+ false;
+ true ->
+ Fun = fun(X) ->
+ case X of
+ {_, MemberName, MemberTC} when
+ is_list(MemberName) ->
+ check_tc(MemberTC);
+ _ ->
+ false
+ end
+ end,
+ lists:all(Fun, ElementList)
+ end;
+check_tc({'tk_enum', RepId, Name, ElementList}) when is_list(RepId) andalso
+ is_list(Name) ->
+ Fun = fun(X) ->
+ if
+ is_list(X) ->
+ true;
+ true ->
+ false
+ end
+ end,
+ lists:all(Fun, ElementList);
+check_tc({'tk_string', MaxLength}) when is_integer(MaxLength) -> true;
+check_tc({'tk_wstring', MaxLength}) when is_integer(MaxLength) -> true;
+check_tc({'tk_fixed', Digits, Scale}) when is_integer(Digits) andalso
+ is_integer(Scale) -> true;
+check_tc({'tk_sequence', ElemTC, MaxLength}) when is_integer(MaxLength) ->
+ check_tc(ElemTC);
+check_tc({'tk_array', ElemTC, Length}) when is_integer(Length) ->
+ check_tc(ElemTC);
+check_tc({'tk_alias', RepId, Name, TC}) when is_list(RepId) andalso
+ is_list(Name) ->
+ check_tc(TC);
+check_tc({'tk_except', RepId, Name, ElementList}) when is_list(RepId) andalso
+ is_list(Name) ->
+ Fun = fun(X) ->
+ case X of
+ {MemberName, TC} when is_list(MemberName) ->
+ check_tc(TC);
+ _ ->
+ false
+ end
+ end,
+ lists:all(Fun, ElementList);
+check_tc({'tk_value', RepId, Name, ValueModifier,
+ TC, ElementList}) when is_list(RepId) andalso
+ is_list(Name) andalso
+ is_integer(ValueModifier) ->
+ case check_tc(TC) of
+ false ->
+ false;
+ true ->
+ Fun = fun(X) ->
+ case X of
+ {MemberName, MemberTC, Visibility} when
+ is_list(MemberName) andalso is_integer(Visibility) ->
+ check_tc(MemberTC);
+ _ ->
+ false
+ end
+ end,
+ lists:all(Fun, ElementList)
+ end;
+check_tc({'tk_value_box', RepId, Name, TC}) when is_list(RepId) andalso
+ is_list(Name) ->
+ check_tc(TC);
+check_tc({'tk_native', RepId, Name}) when is_list(RepId) andalso
+ is_list(Name) -> true;
+check_tc({'tk_abstract_interface', RepId, Name}) when is_list(RepId) andalso
+ is_list(Name) -> true;
+check_tc({'none', Indirection}) when is_integer(Indirection) -> true;
+check_tc(_) -> false.
+
diff --git a/lib/orber/src/orber_typedefs.erl b/lib/orber/src/orber_typedefs.erl
new file mode 100644
index 0000000000..239546961f
--- /dev/null
+++ b/lib/orber/src/orber_typedefs.erl
@@ -0,0 +1,82 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 1997-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%
+%%
+%%
+%%-----------------------------------------------------------------
+%% File: orber_typedefs.erl
+%% Description:
+%% This file contains some functions for internal typedef checking
+%%
+%%-----------------------------------------------------------------
+-module(orber_typedefs).
+
+-include("orber_iiop.hrl").
+-include_lib("orber/include/corba.hrl").
+
+%%-----------------------------------------------------------------
+%% External exports
+%%-----------------------------------------------------------------
+-export([get_op_def/2]).
+
+%%-----------------------------------------------------------------
+%% Internal exports
+%%-----------------------------------------------------------------
+-export([]).
+
+-define(DEBUG_LEVEL, 5).
+
+%%-----------------------------------------------------------------
+%% External interface functions
+%%-----------------------------------------------------------------
+%%-----------------------------------------------------------------
+%% Func: get_op_def/2
+%%
+get_op_def(_Objkey, '_is_a') ->
+ {orber_tc:boolean(),[orber_tc:string(0)],[]};
+%% First the OMG specified this operation to be '_not_existent' and then
+%% changed it to '_non_existent' without suggesting that both must be supported.
+%% See CORBA2.3.1 page 15-34, Minor revision 2.3.1: October 1999
+get_op_def(_Objkey, '_not_existent') ->
+ {orber_tc:boolean(),[],[]};
+get_op_def(_Objkey, '_non_existent') ->
+ {orber_tc:boolean(),[],[]};
+%% Defined in the Fault Tolerant section of the CORBA specification.
+get_op_def(_Objkey, '_FT_HB') ->
+ {orber_tc:void(),[],[]};
+get_op_def(Objkey, Op) ->
+ case catch iop_ior:get_key(Objkey) of
+ {_Local, _Key, _, _, Module} ->
+ case catch Module:oe_tc(Op) of
+ {'EXIT', What} ->
+ orber:dbg("[~p] orber_typedefs:get_op_def(~p);~n"
+ "The call-back module does not exist or incorrect~n"
+ "IC-version used. Reason:~n~p",
+ [?LINE, Module, What], ?DEBUG_LEVEL),
+ corba:raise(#'TRANSIENT'{minor=(?ORBER_VMCID bor 7),
+ completion_status=?COMPLETED_NO});
+ undefined ->
+ corba:raise(#'BAD_OPERATION'{minor = (?ORBER_VMCID bor 4),
+ completion_status=?COMPLETED_NO});
+ TC ->
+ TC
+ end;
+ _ ->
+ corba:raise(#'INV_OBJREF'{completion_status=?COMPLETED_NO})
+ end.
+
diff --git a/lib/orber/src/orber_web.erl b/lib/orber/src/orber_web.erl
new file mode 100644
index 0000000000..04bf65fd40
--- /dev/null
+++ b/lib/orber/src/orber_web.erl
@@ -0,0 +1,863 @@
+%%--------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_web.erl
+%% Purpose :
+%%----------------------------------------------------------------------
+
+-module(orber_web).
+
+-export([menu/2,
+ configure/2,
+ info/2,
+ nameservice/2,
+ ifr_select/2,
+ ifr_data/2,
+ create/2,
+ delete_ctx/2,
+ add_ctx/2,
+ delete_obj/2]).
+
+%%----------------------------------------------------------------------
+%%-------------- Defines & Includes ------------------------------------
+%%----------------------------------------------------------------------
+
+-include("ifr_objects.hrl").
+-include_lib("orber/COSS/CosNaming/CosNaming.hrl").
+-include_lib("orber/COSS/CosNaming/CosNaming_NamingContext.hrl").
+-include_lib("orber/include/corba.hrl").
+-include_lib("orber/src/orber_iiop.hrl").
+
+-define(DEBUG_LEVEL, 5).
+
+-define(INFO_DATA,
+ [{iiop_timeout, "IIOP Request Timeout"},
+ {iiop_connection_timeout, "IIOP Connection Timeout"},
+ {iiop_setup_connection_timeout, "IIOP Setup Connection Timeout"},
+ {iiop_port, "IIOP Port"},
+ {domain, "Orber Domain"},
+ {orber_nodes, "Nodes in Domain"},
+ {giop_version, "Default GIOP Version"},
+ {objectkeys_gc_time, "Objectkeys GC"},
+ {get_interceptors, "Using Interceptors"},
+ {get_debug_level, "Debug Level"},
+ {get_ORBInitRef, "ORBInitRef"},
+ {get_ORBDefaultInitRef, "ORBDefaultInitRef"}]).
+
+-define(IFR_DATA, [{"ir_ModuleDef", "Modules"},
+ {"ir_InterfaceDef", "Interfaces"},
+ {"ir_StructDef", "Structs"},
+ {"ir_UnionDef", "Unions"},
+ {"ir_ExceptionDef", "Exceptions"},
+ {"ir_ConstantDef", "Constants"},
+ {"ir_EnumDef", "Enumerants"},
+ {"ir_AliasDef", "Aliases"},
+ {"ir_AttributeDef", "Attributes"},
+ {"ir_OperationDef", "Operations"},
+ {"ir_Contained", "Contained"},
+ {"ir_TypedefDef", "Typedef"}]).
+
+
+%%----------------------------------------------------------------------
+%%-------------- External API ------------------------------------------
+%%----------------------------------------------------------------------
+%% Function : create
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+create(_Env, [{"node",NodeStr}]) ->
+ Node = list_to_atom(NodeStr),
+ is_running(Node, NodeStr),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE border=0 BGCOLOR=\"#FFFFFF\">
+ <TD ALIGN=\"center\" COLSPAN=2><FONT SIZE=6>Create a New Object</FONT></TD></TR>
+ <TR><TD><FORM METHOD=\"POST\" ACTION=\"./create\">
+ <TR><TD><INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <TR><TD><B>Module</B></TD><TD><INPUT TYPE=\"TEXT\" SIZE=\"50\" NAME=\"module\" VALUE=\"\"></TD></TR>
+ <TR><TD><B>Arguments</B></TD><TD><INPUT TYPE=\"TEXT\" SIZE=\"50\" NAME=\"arguments\"></TD></TR>
+ <TR><TD><B>Options</B></TD><TD><INPUT TYPE=\"TEXT\" SIZE=\"50\" NAME=\"options\"></TD></TR>
+ <TR><TD><B>Name String</B></TD><TD><INPUT TYPE=\"TEXT\" SIZE=\"50\" NAME=\"namestr\"></TD></TR>
+ <TR><TD><B>Operation to use</B></TD>
+ <TD><B>&nbsp;&nbsp;&nbsp;<INPUT type=\"radio\" name=\"bind\" value=\"bind\" CHECKED=\"true\">Bind</B>
+ <B>&nbsp;&nbsp;&nbsp;<INPUT type=\"radio\" name=\"bind\" value=\"rebind\">Rebind</B></TD></TR>
+ <TR><TD ALIGN=\"center\" COLSPAN=2><INPUT TYPE=\"SUBMIT\" VALUE=\"Create it\"></FORM></TD></TR></TABLE>"];
+create(_Env, [{"node",NodeStr}, {"module", ModStr}, {"arguments",ArgsStr},
+ {"options",OptionsStr}, {"namestr", Name}, {"bind", How}]) ->
+ Node = list_to_atom(NodeStr),
+ Mod = list_to_atom(ModStr),
+ Args = parse_data(ArgsStr),
+ Options = parse_data(OptionsStr),
+ case catch rpc:call(Node, Mod, oe_create, [Args, [{sup_child, true}|Options]]) of
+ {ok, Pid, Object} ->
+ case catch bind(Node, Object, Name, How) of
+ {ok, IOR} ->
+ ["<BODY BGCOLOR=\"#FFFFFF\"><BR><B>Successfully created the object:</B><BR><BR>", IOR];
+ {ok, IOR, Path} ->
+ ["<BODY BGCOLOR=\"#FFFFFF\"><BR><B>Successfully created and stored the object as: \"",
+ Path, "\" (", pid_to_list(Pid), ")</B><BR><BR>", IOR];
+ What ->
+ rpc:call(Node, corba, dispose, [Object]),
+ orber:dbg("[~p] orber_web:create(~p, ~p, ~p, ~p, ~p);
+Unable to bind object: ~p", [?LINE, Node, Mod, Args, Options, Name, What], ?DEBUG_LEVEL),
+ ["<BODY BGCOLOR=\"#FFFFFF\">Unable to bind object in the NameService using: ", Name]
+ end;
+ Object when element(2, Object) == pseudo ->
+ case catch bind(Node, Object, Name, How) of
+ {ok, IOR} ->
+ ["<BODY BGCOLOR=\"#FFFFFF\"><BR><B>Successfully created the object:</B><BR><BR>", IOR];
+ {ok, IOR, _} ->
+ ["<BODY BGCOLOR=\"#FFFFFF\"><BR><B>Successfully created and stored the object as :\"", Name, "\"</B><BR><BR>", IOR];
+ What ->
+ rpc:call(Node, corba, dispose, [Object]),
+ orber:dbg("[~p] orber_web:create(~p, ~p, ~p, ~p, ~p);
+Unable to bind object: ~p", [?LINE, Node, Mod, Args, Options, Name, What], ?DEBUG_LEVEL),
+ ["<BODY BGCOLOR=\"#FFFFFF\">Unable to bind object in the NameService using: ", Name]
+ end;
+ What->
+ orber:dbg("[~p] orber_web:create(~p, ~p, ~p, ~p, ~p);
+Unable to create object: ~p", [?LINE, Node, Mod, Args, Options, Name, What], ?DEBUG_LEVEL),
+ ["<BODY BGCOLOR=\"#FFFFFF\">Unable to create the object."]
+ end.
+
+bind(Node, Obj, "", _) ->
+ IOR = rpc:call(Node, corba, object_to_string, [Obj]),
+ {ok, IOR};
+bind(Node, Obj, NameStr, How) ->
+ NS = check(rpc:call(Node, corba, resolve_initial_references, ["NameService"])),
+ Name = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_name, [NS, NameStr])),
+ case How of
+ "bind" ->
+ check(rpc:call(Node, 'CosNaming_NamingContext', bind, [NS, Name, Obj])),
+ IOR = rpc:call(Node, corba, object_to_string, [Obj]),
+ {ok, IOR, NameStr};
+ "rebind" ->
+ check(rpc:call(Node, 'CosNaming_NamingContext', rebind, [NS, Name, Obj])),
+ IOR = rpc:call(Node, corba, object_to_string, [Obj]),
+ {ok, IOR, NameStr}
+ end.
+
+
+%%----------------------------------------------------------------------
+%% Function : delete_ctx
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+delete_ctx(_Env, [{"node",NodeStr}, {"context", Ref}]) ->
+ Node = list_to_atom(NodeStr),
+ {Ctx, NS} = remote_resolve(Node, Ref),
+ Name = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_name, [NS, Ref])),
+ check(rpc:call(Node, 'CosNaming_NamingContextExt', unbind, [NS, Name])),
+ check(rpc:call(Node, 'CosNaming_NamingContextExt', destroy, [Ctx])),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Successfully deleted the Context: ", Ref, "</FONT>\n
+ </TD></TR></TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-2) VALUE=\"Go Back\">\n</FORM>"].
+
+%%----------------------------------------------------------------------
+%% Function : add_ctx
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+add_ctx(_Env, [{"node",_NodeStr}, {"context", "root"}, {"id", ""}]) ->
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=4>You must supply a NameString such as:<BR>
+ See also 'Interoperable Naming Service' in the User's Guide.</FONT>\n
+ </TD></TR></TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\">\n</FORM>"];
+add_ctx(_Env, [{"node",NodeStr}, {"context", "root"}, {"id", Id}]) ->
+ Node = list_to_atom(NodeStr),
+ NS = check(rpc:call(Node, corba, resolve_initial_references, ["NameService"])),
+ Name = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_name, [NS, Id])),
+ check(rpc:call(Node, 'CosNaming_NamingContextExt', bind_new_context, [NS, Name])),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Successfully bound the new Context: ", Id, "</FONT>\n
+ </TD></TR></TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\">\n</FORM>"];
+add_ctx(_Env, [{"node",NodeStr}, {"context", Ref}, {"id", Id}]) ->
+ NameStr = Ref ++ "/" ++ Id,
+ Node = list_to_atom(NodeStr),
+ NS = check(rpc:call(Node, corba, resolve_initial_references, ["NameService"])),
+ Name = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_name, [NS, NameStr])),
+ check(rpc:call(Node, 'CosNaming_NamingContextExt', bind_new_context, [NS, Name])),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Successfully bound the new Context: ", NameStr, "</FONT>\n
+ </TD></TR></TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\">\n</FORM>"].
+
+%%----------------------------------------------------------------------
+%% Function : delete_obj
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+delete_obj(_Env, [{"node",NodeStr}, {"context", Ref}, {"action", "unbind"}]) ->
+ Node = list_to_atom(NodeStr),
+ NS = check(rpc:call(Node, corba, resolve_initial_references, ["NameService"])),
+ Name = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_name, [NS, Ref])),
+ check(rpc:call(Node, 'CosNaming_NamingContextExt', unbind, [NS, Name])),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Successfully unbound the Object: ", Ref, "</FONT>\n
+ </TD></TR></TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-2) VALUE=\"Go Back\">\n</FORM>"];
+delete_obj(_Env, [{"node",NodeStr}, {"context", Ref}, {"action", "both"}]) ->
+ Node = list_to_atom(NodeStr),
+ {Obj, NS} = remote_resolve(Node, Ref),
+ check(rpc:call(Node, corba, dispose, [Obj])),
+ Name = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_name, [NS, Ref])),
+ check(rpc:call(Node, 'CosNaming_NamingContextExt', unbind, [NS, Name])),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Successfully disposed an unbound the Object: ", Ref, "</FONT>\n
+ </TD></TR></TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-2) VALUE=\"Go Back\">\n</FORM>"].
+
+
+
+%%----------------------------------------------------------------------
+%% Function : nameservice
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+nameservice(_Env, [{"node",NodeStr}, {"context", "root"}]) ->
+ Node = list_to_atom(NodeStr),
+ is_running(Node, NodeStr),
+ Object = check(rpc:call(Node, corba, resolve_initial_references, ["NameService"])),
+ Prefix = "<TR><TD><A HREF=\"./nameservice?node=" ++ NodeStr ++ "&context=",
+ case catch create_context_list(Node, NodeStr, Prefix, Object, "root") of
+ {ok, Data} ->
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=2>
+ <FONT SIZE=6>NameService</FONT>\n
+ </TD></TR><TR BGCOLOR=\"#FFFF00\"><TD ALIGN=\"center\" COLSPAN=2>
+ <FONT SIZE=4>Root Context</FONT>\n
+ </TD></TR>", Data,
+ "<TR><TD><FORM Name=addctx METHOD=\"POST\" ACTION=\"./add_ctx\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"context\" VALUE=\"root\">
+ <INPUT TYPE=\"TEXT\" SIZE=\"20\" NAME=\"id\"></TD>
+ <TD><INPUT TYPE=\"SUBMIT\" VALUE=\"New Context\"></TD></FORM></TR></TABLE>"];
+ Why ->
+ orber:dbg("[~p] orber_web:nameservice(~p, root);
+Unable to create context list: ~p", [?LINE, NodeStr, Why], ?DEBUG_LEVEL),
+ throw({error, "<BODY BGCOLOR=\"#FFFFFF\">Unable to create a look up the Root Context data"})
+ end;
+nameservice(_Env, [{"node",NodeStr}, {"context", Ref}]) ->
+ Node = list_to_atom(NodeStr),
+ {Object, _NS} = remote_resolve(Node, Ref),
+ Prefix = "<TR><TD><A HREF=\"./nameservice?node=" ++ NodeStr ++ "&context="++Ref++"/",
+ case catch create_context_list(Node, NodeStr, Prefix, Object, Ref) of
+ {ok, Data} ->
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=2>
+ <FONT SIZE=6>NameService</FONT></TD></TR>
+ <TR BGCOLOR=\"#FFFF00\"><TD ALIGN=\"center\" COLSPAN=2>
+ <FONT SIZE=4>", Ref, "</FONT></TD></TR>", Data,
+ "<TR><TD><FORM Name=addctx METHOD=\"POST\" ACTION=\"./add_ctx\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"context\" VALUE=\"", Ref, "\">
+ <INPUT TYPE=\"TEXT\" SIZE=\"20\" NAME=\"id\"></TD>
+ <TD><INPUT TYPE=\"SUBMIT\" VALUE=\"New Context\"></TD></FORM></TR>
+ </TABLE>
+ <FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\"></FORM></TD>"];
+ Why ->
+ orber:dbg("[~p] orber_web:nameservice(~p, ~p);
+Unable to create context list: ~p", [?LINE, NodeStr, Ref, Why], ?DEBUG_LEVEL),
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to look up the Context: ", Ref,
+ "<BR><BR>If You just deleted it, use the 'Go Back' button next time."]})
+ end;
+nameservice(_Env, [{"node",NodeStr}, {"context", Ref}, {"object", Obj}]) ->
+ case catch create_object_data(NodeStr, Ref, Obj) of
+ {ok, Data} ->
+ Data;
+ Why ->
+ orber:dbg("[~p] orber_web:nameservice(~p, ~p, ~p);
+Unable to create data for object: ~p", [?LINE, NodeStr, Ref, Obj, Why], ?DEBUG_LEVEL),
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to look up the Object stored as: ", Ref,
+ "<BR><BR>If You just unbound it, use the 'Go Back' button next time."]})
+ end.
+
+create_context_list(Node, NodeStr, Prefix, Object, Ref) ->
+ case check(rpc:call(Node, 'CosNaming_NamingContext', list, [Object, 100])) of
+ {ok, [], BI} when Ref == "root" ->
+ catch rpc:call(Node, 'CosNaming_BindingIterator', destroy, [BI]),
+ {ok, "<TR><TD ALIGN=\"center\" COLSPAN=2><FONT SIZE=3><B>EMPTY<B></FONT></TD></TR>"};
+ {ok, [], BI} ->
+ catch rpc:call(Node, 'CosNaming_BindingIterator', destroy, [BI]),
+ {ok, "<TR><TD ALIGN=\"center\"><FONT SIZE=3><B>EMPTY<B></FONT></TD>
+ <TD ALIGN=\"center\"><FORM Name=deletectx METHOD=\"POST\" ACTION=\"./delete_ctx\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"" ++ NodeStr ++ "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"context\" VALUE=\"" ++ Ref ++ "\">
+ <INPUT TYPE=\"SUBMIT\" VALUE=\"Delete Context\"></FORM></TD></TR>"};
+ {ok, BL, BI} when length(BL) < 100 ->
+ catch rpc:call(Node, 'CosNaming_BindingIterator', destroy, [BI]),
+ {ok, convert_contexts(BL, [], Prefix, Object, Node)};
+ {ok, BL, BI} ->
+ Data = convert_contexts(BL, [], Prefix, Object, Node),
+ {ok, create_context_list_helper(Node, BI, Data, Object, Prefix)}
+ end.
+
+create_context_list_helper(Node, BI, Acc, Ctx, Prefix) ->
+ case check(rpc:call(Node, 'CosNaming_BindingIterator', next_n, [BI, 100])) of
+ {true, BL} ->
+ NewAcc = convert_contexts(BL, Acc, Prefix, Ctx, Node),
+ create_context_list_helper(Node, BI, NewAcc, Ctx, Prefix);
+ {false, BL} ->
+ catch rpc:call(Node, 'CosNaming_BindingIterator', destroy, [BI]),
+ convert_contexts(BL, Acc, Prefix, Ctx, Node)
+ end.
+
+convert_contexts([], Acc, _Prefix, _Ctx, _Node) ->
+ Acc;
+convert_contexts([#'CosNaming_Binding'{binding_name = Name,
+ binding_type = ncontext}|T],
+ Acc, Prefix, Ctx, Node) ->
+ NameStr = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_string, [Ctx, Name])),
+ convert_contexts(T, [Prefix, NameStr, "\" TARGET=main><B>", NameStr, "</B></A></TD><TD><B>ncontext</B></TD></TR>"|Acc],
+ Prefix, Ctx, Node);
+convert_contexts([#'CosNaming_Binding'{binding_name = Name,
+ binding_type = nobject}|T],
+ Acc, Prefix, Ctx, Node) ->
+ NameStr = check(rpc:call(Node, 'CosNaming_NamingContextExt', to_string, [Ctx, Name])),
+ convert_contexts(T, [Prefix, NameStr, "&object=o \" TARGET=main><B>", NameStr, "</B></A></TD><TD><B>nobject</B></A></TD></TR>"|Acc],
+ Prefix, Ctx, Node).
+
+
+create_object_data(NodeStr, Ref, _Obj) ->
+ Node = list_to_atom(NodeStr),
+ {Object, _NS} = remote_resolve(Node, Ref),
+ LongIORStr = check(rpc:call(Node, corba, object_to_string, [Object])),
+ IFRId = check(rpc:call(Node, iop_ior, get_typeID, [Object])),
+ Exists = check(rpc:call(Node, corba_object, non_existent, [Object])),
+ IORStr = split_IOR(1, LongIORStr, []),
+ {Data, External}
+ = case rpc:call(Node, iop_ior, get_key, [Object]) of
+ {external, {Host, Port, _OK, _, _, #host_data{version = {Ma, Mi}}}} ->
+ {[{"IFR Id", IFRId},
+ {"Stored As", Ref},
+ {"External Object", "true"},
+ {"Non Existent", atom_to_list(Exists)},
+ {"Host", Host},
+ {"Port", integer_to_list(Port)},
+ {"IIOP Version", integer_to_list(Ma) ++"."++ integer_to_list(Mi)},
+ {"IOR String", IORStr}], true};
+ {'internal', _Key, _, _, _} ->
+ Pid = check(rpc:call(Node, corba, get_pid, [Object])),
+ Interface = check(rpc:call(Node, corba, request_from_iiop,
+ [Object, oe_get_interface, false, false, false, []])),
+ InterfaceData = parse_interface(Interface, []),
+ {[{"IFR Id", IFRId},
+ {"Stored As", Ref},
+ {"External Object", "false"},
+ {"Non Existent", atom_to_list(Exists)},
+ {"Pid", pid_to_list(Pid)},
+ {"IOR String", IORStr}|InterfaceData], false};
+ {'internal_registered', {pseudo, Key}, _, _, _} ->
+ Interface = check(rpc:call(Node, corba, request_from_iiop,
+ [Object, oe_get_interface, false, false, false, []])),
+ InterfaceData = parse_interface(Interface, []),
+ {[{"IFR Id", IFRId},
+ {"Stored As", Ref},
+ {"External Object", "false"},
+ {"Non Existent", atom_to_list(Exists)},
+ {"Pseudo Object", atom_to_list(Key)},
+ {"IOR", IORStr}|InterfaceData], false};
+ {'internal_registered', Key, _, _, _} ->
+ Pid = check(rpc:call(Node, corba, get_pid, [Object])),
+ Interface = check(rpc:call(Node, corba, request_from_iiop,
+ [Object, oe_get_interface, false, false, false, []])),
+ InterfaceData = parse_interface(Interface, []),
+ {[{"IFR Id", IFRId},
+ {"Stored As", Ref},
+ {"External Object", "false"},
+ {"Non Existent", atom_to_list(Exists)},
+ {"Locally Registered", atom_to_list(Key)},
+ {"Pid", pid_to_list(Pid)},
+ {"IOR String", IORStr}|InterfaceData], false}
+ end,
+ Buttons = case {Exists, External} of
+ {false, false} ->
+ ["<TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\">
+ <TD><FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\"></FORM></TD>
+
+ <TD ALIGN=\"center\"><FORM Name=unbindobj METHOD=\"POST\" ACTION=\"./delete_obj\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"context\" VALUE=\"", Ref, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"unbind\">
+ <INPUT TYPE=\"SUBMIT\" VALUE=\"Unbind\"></FORM></TD>
+ <TD ALIGN=\"center\"><FORM Name=unbinddeletobj METHOD=\"POST\" ACTION=\"./delete_obj\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"context\" VALUE=\"", Ref, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"both\">
+ <INPUT TYPE=\"SUBMIT\" VALUE=\"Unbind & Dispose\"></FORM></TD></TR></TABLE>"];
+ _ ->
+ ["<TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\">
+ <TD><FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\"></FORM></TD>
+ <TD ALIGN=\"center\"><FORM Name=unbindobj METHOD=\"POST\" ACTION=\"./delete_obj\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"context\" VALUE=\"", Ref, "\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"unbind\">
+ <INPUT TYPE=\"SUBMIT\" VALUE=\"Unbind\"></FORM></TD></TR></TABLE>"]
+ end,
+ {ok, ["<BODY BGCOLOR=\"#FFFFFF\">",
+ simple_table("2", "NameService", [{"Key", "Value"}|Data]),
+ Buttons]}.
+
+parse_interface([], [{_, Op}|Acc]) ->
+ [{"Operations", Op}|Acc];
+parse_interface([], []) ->
+ [{"Operations", "-"}];
+parse_interface([{Operation,{_,Args,_}}|T], Acc) ->
+ parse_interface(T, [{"", Operation ++ "/" ++ integer_to_list(length(Args))}|Acc]).
+
+
+split_IOR(_, [], Acc) ->
+ lists:reverse(Acc);
+split_IOR(50, Str, Acc) ->
+ split_IOR(1, Str, ["<BR>"|Acc]);
+split_IOR(N, [H|T], Acc) ->
+ split_IOR(N+1, T, [H|Acc]).
+
+
+
+%%----------------------------------------------------------------------
+%% Function : configure
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+configure(_Env, [{"node",NodeStr}, {"data", DataStr}]) ->
+ Node = list_to_atom(NodeStr),
+ Data = parse_data(DataStr),
+ case catch rpc:call(Node, orber, multi_configure, [Data]) of
+ ok ->
+ "<BODY BGCOLOR=\"#FFFFFF\">Configuration successfull.";
+ Why ->
+ orber:dbg("[~p] orber_web:configure(~p, ~p);
+Unable to change configuration due to: ~p", [?LINE, NodeStr, DataStr, Why], ?DEBUG_LEVEL),
+ "<BODY BGCOLOR=\"#FFFFFF\">Unable to change the configuration.<BR>
+ Check the spelling and/or if it is possible to update all the keys if Orber is started."
+ end.
+
+
+%%----------------------------------------------------------------------
+%% Function : ifr_select
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+ifr_select(_Env, [{"node",NodeStr}]) ->
+ Node = list_to_atom(NodeStr),
+ is_running(Node, NodeStr),
+ ["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Interface Repository</FONT>
+ </TD></TR>", create_ifr_table(?IFR_DATA, NodeStr, []), "</TABLE>"].
+
+%%----------------------------------------------------------------------
+%% Function : ifr_data
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+ifr_data(_Env, [{"node",NodeStr}, {"table", TableStr}]) ->
+ Node = list_to_atom(NodeStr),
+ Table = list_to_atom(TableStr),
+ WildPattern = get_wild_pattern(Table, Node),
+ Records = check(rpc:call(Node, mnesia, dirty_match_object, [WildPattern])),
+ Data = extract_ids(Records, []),
+ ["<BODY BGCOLOR=\"#FFFFFF\">",
+ simple_table("1", "Interface Repository", [TableStr|Data]),
+ "<FORM Name=goback><INPUT TYPE=\"button\" onClick=javascript:history.go(-1) VALUE=\"Go Back\"></FORM>"].
+
+extract_ids([], Acc) ->
+ lists:sort(Acc);
+extract_ids([#ir_ModuleDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_InterfaceDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_StructDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_UnionDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_ExceptionDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_ConstantDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_EnumDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_AliasDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_AttributeDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_OperationDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_Contained{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]);
+extract_ids([#ir_TypedefDef{id=Id}|T], Acc) ->
+ extract_ids(T, [Id|Acc]).
+
+get_wild_pattern(ir_ModuleDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_ModuleDef, wild_pattern])),
+ P#ir_ModuleDef{id='$1'};
+get_wild_pattern(ir_InterfaceDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_InterfaceDef, wild_pattern])),
+ P#ir_InterfaceDef{id='$1'};
+get_wild_pattern(ir_StructDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_StructDef, wild_pattern])),
+ P#ir_StructDef{id='$1'};
+get_wild_pattern(ir_UnionDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_UnionDef, wild_pattern])),
+ P#ir_UnionDef{id='$1'};
+get_wild_pattern(ir_ExceptionDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_ExceptionDef, wild_pattern])),
+ P#ir_ExceptionDef{id='$1'};
+get_wild_pattern(ir_ConstantDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_ConstantDef, wild_pattern])),
+ P#ir_ConstantDef{id='$1'};
+get_wild_pattern(ir_EnumDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_EnumDef, wild_pattern])),
+ P#ir_EnumDef{id='$1'};
+get_wild_pattern(ir_AliasDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_AliasDef, wild_pattern])),
+ P#ir_AliasDef{id='$1'};
+get_wild_pattern(ir_AttributeDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_AttributeDef, wild_pattern])),
+ P#ir_AttributeDef{id='$1'};
+get_wild_pattern(ir_OperationDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_OperationDef, wild_pattern])),
+ P#ir_OperationDef{id='$1'};
+get_wild_pattern(ir_Contained, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_Contained, wild_pattern])),
+ P#ir_Contained{id='$1'};
+get_wild_pattern(ir_TypedefDef, Node) ->
+ P = check(rpc:call(Node, mnesia, table_info, [ir_TypedefDef, wild_pattern])),
+ P#ir_TypedefDef{id='$1'}.
+
+create_ifr_table([], _Node, Result) ->
+ lists:append(lists:reverse(Result));
+create_ifr_table([{Table,Desc}|Rest], Node, Result) ->
+ create_ifr_table(Rest, Node,
+ ["<TR><TD><A HREF=\"./ifr_data?node=" ++ Node ++
+ "&table="++Table++"\" TARGET=main><B>" ++ Desc ++"</B></A></TD></TR>"|Result]).
+
+
+%%----------------------------------------------------------------------
+%% Function : info
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+info(_Env, [{"node",NodeStr}]) ->
+ Node = list_to_atom(NodeStr),
+ is_running(Node, NodeStr),
+ Data = create_info_data(?INFO_DATA, Node, []),
+ ["<BODY BGCOLOR=\"#FFFFFF\">",
+ simple_table("2", "Configuration", [{"Key", "Value"}|Data],
+ ["<TR><TD><FORM METHOD=\"POST\" ACTION=\"./configure\">
+ <INPUT TYPE=\"HIDDEN\" NAME=\"node\" VALUE=\"", NodeStr, "\">
+ <INPUT TYPE=\"TEXT\" SIZE=\"35\" NAME=\"data\" VALUE=\"[{Key, Value}]\">
+ </TD><TD><INPUT TYPE=\"SUBMIT\" VALUE=\"Change it\"></TD></FORM></TR>"])].
+
+
+create_info_data([], _Node, Result) ->
+ lists:reverse(Result);
+create_info_data([{Func,Desc}|Rest], Node, Result) ->
+ Data = convert_type(check(rpc:call(Node, orber, Func, []))),
+ create_info_data(Rest, Node, [{Desc, Data}|Result]).
+
+convert_type(Data) when is_integer(Data) ->
+ integer_to_list(Data);
+convert_type(Data) when is_atom(Data) ->
+ atom_to_list(Data);
+convert_type(Data) when is_float(Data) ->
+ float_to_list(Data);
+convert_type(Data) when is_pid(Data) ->
+ pid_to_list(Data);
+convert_type(Data) when is_port(Data) ->
+ erlang:port_to_list(Data);
+convert_type(Data) when is_tuple(Data) ->
+ io_lib:write(Data);
+convert_type([]) ->
+ [];
+convert_type(Data) when is_list(Data) ->
+ case io_lib:printable_list(Data) of
+ true->
+ Data;
+ _->
+ io_lib:write(Data)
+ end;
+convert_type(_Data) ->
+ [].
+
+
+%%----------------------------------------------------------------------
+%% Function : menu
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+menu(_Env, Args)->
+ ["<BODY BGCOLOR=\"#FFFFFF\">", node_selections_javascripts(), node_body(Args, [node()|nodes()])].
+
+menu_title()->
+ " <TABLE WIDTH=\"100%\" BORDER=\"0\">
+ <TR><TD ALIGN=\"center\"><FONT SIZE=5>Menu</FONT></TD></TR>
+ </TABLE>\n".
+
+
+node_body([], Nodes)->
+ Node = node(),
+ [node_selections_javascripts(), node_selection(Node, Nodes), menu_title(),
+ menu_options(atom_to_list(Node))];
+node_body([{"node",Node}|_], Nodes)->
+ [node_selections_javascripts(), node_selection(list_to_atom(Node), Nodes), menu_title(),
+ menu_options(Node)];
+node_body([_|Rest], Nodes) ->
+ node_body(Rest, Nodes).
+
+
+
+%%----------------------------------------------------------------------
+%% Function : node_selections_javascripts
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+node_selections_javascripts()->
+ "<SCRIPT>
+ function node_selected()
+ {
+ parent.frames.main.location=\"/orber/start_info.html\"
+ window.location =\"./menu?node=\" + " ++
+ "document.node_selection.nodes[document.node_selection.nodes.selectedIndex].value;
+ }
+ </SCRIPT>".
+
+
+
+%%----------------------------------------------------------------------
+%% Function : node_selection
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+node_selection(Node, Nodes)->
+ ["<FORM ACTION=\"./node_info\" NAME=node_selection>\n
+ <TABLE WIDTH=\"100%\" BORDER=\"0\">\n
+ <TR><TD ALIGN=\"center\">\n
+ <SELECT NAME=nodes onChange=\"node_selected()\">\n",
+ print_nodes(Node, Nodes),
+ "</SELECT>\n
+ </TD></TR>\n
+ </TABLE>\n
+ </FORM>"].
+
+%%----------------------------------------------------------------------
+%% Function : print_nodes
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+print_nodes(Node,Nodes)->
+ print_nodes_helper([Node|lists:delete(Node,Nodes)]).
+
+print_nodes_helper([])->
+ [];
+print_nodes_helper([Node|Rest])->
+ NodeStr = atom_to_list(Node),
+ ["<OPTION value=\"", NodeStr, "\">", NodeStr, "\n" | print_nodes_helper(Rest)].
+
+%%----------------------------------------------------------------------
+%% Function : print_nodes
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+menu_options(Node)->
+ ["<UL><LI><A HREF=\"./info?node=", Node, "\" TARGET=main><B>Configuration</B></A></UL>",
+ "<UL><LI><A HREF=\"./nameservice?node=", Node, "&context=root\" TARGET=main><B>Name Service</B></A></UL>",
+ "<UL><LI><A HREF=\"./ifr_select?node=", Node, "\" TARGET=main><B>IFR Types</B></A></UL>",
+ "<UL><LI><A HREF=\"./create?node=", Node, "\" TARGET=main><B>Create Object</B></A></UL>",
+ "<FORM Name=reload><INPUT TYPE=\"button\" onClick=\"node_selected()\" VALUE=\"Reload\">\n</FORM>",
+ "<!--<A HREF=\"../../orber/application_help.html\" TARGET=main>Help</A>-->"].
+
+%%----------------------------------------------------------------------
+%%----------------- MISC Functions -------------------------------------
+%%----------------------------------------------------------------------
+%% Function : simple_table
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+simple_table(Cols, Title, Data) ->
+ ["<TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=",
+ Cols, "><FONT SIZE=6>", Title, "</FONT>\n</TD></TR>", add_data(Data), "</TABLE>"].
+
+simple_table(Cols, Title, Data, Extra) ->
+ ["<TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=",
+ Cols, "><FONT SIZE=6>", Title, "</FONT>\n</TD></TR>", add_data(Data),
+ Extra, "</TABLE>"].
+
+
+% Temporarily removed to avoid a silly dialyzer warning
+%add_data([]) ->
+% "";
+add_data([{C1, C2, C3, C4}|T]) ->
+ add_data(T, ["<TR BGCOLOR=\"#FFFF00\"><TD><B>" ++ C1 ++ "</B></TD><TD><B>"
+ ++ C2 ++ "</B></TD><TD><B>" ++ C3 ++ "</B></TD><TD><B>"
+ ++ C4 ++ "</B></TD></TR>"]);
+add_data([{C1, C2, C3}|T]) ->
+ add_data(T, ["<TR BGCOLOR=\"#FFFF00\"><TD><B>" ++ C1 ++ "</B></TD><TD><B>"
+ ++ C2 ++ "</B></TD><TD><B>" ++ C3 ++ "</B></TD></TR>"]);
+add_data([{C1, C2}|T]) ->
+ add_data(T, ["<TR BGCOLOR=\"#FFFF00\"><TD><B>" ++ C1 ++ "</B></TD><TD><B>"
+ ++ C2 ++ "</B></TD></TR>"]);
+add_data([C1|T]) ->
+ add_data(T, ["<TR BGCOLOR=\"#FFFF00\"><TD><B>" ++ C1 ++ "</B></TD></TR>"]).
+
+
+add_data([], Acc) ->
+ lists:reverse(Acc);
+add_data([{C1, C2, C3, C4}|T], Acc) ->
+ add_data(T, ["<TR><TD><B>"++C1++"</B></TD><TD>"++C2++"</TD><TD>"
+ ++C3++"</TD><TD>"++C4++"</TD></TR>"|Acc]);
+add_data([{C1, C2, C3}|T], Acc) ->
+ add_data(T, ["<TR><TD><B>"++C1++"</B></TD><TD>"++C2++"</TD><TD>"
+ ++C3++"</TD></TR>"|Acc]);
+add_data([{C1, C2}|T], Acc) ->
+ add_data(T, ["<TR><TD><B>"++C1++"</B></TD><TD>"++C2++"</TD></TR>"|Acc]);
+add_data([C1|T], Acc) ->
+ add_data(T, ["<TR><TD>"++C1++"</TD></TR>"|Acc]).
+
+%%----------------------------------------------------------------------
+%% Function : check
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+check(Data) ->
+ check(Data, "").
+
+check({badrpc, {'EXCEPTION', E}}, Comment) ->
+ EList = atom_to_list(element(1, E)),
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Got the exception: ", EList, "<BR><BR>", Comment]});
+check({badrpc,{'EXIT',{undef,_}}}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Tried to invoke undefined module or operation.<BR><BR>", Comment]});
+check({badrpc,nodedown}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Node down - unable to complete the requested operation.<BR><BR>", Comment]});
+check({badrpc, {'EXIT', _R}}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Invoking the requested operation resulted in an EXIT.<BR><BR>", Comment]});
+check({badrpc, {'EXIT', _R1, _R2}}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Invoking the requested operation resulted in an EXIT.<BR><BR>", Comment]});
+check({'EXCEPTION', E}, Comment) ->
+ EList = atom_to_list(element(1, E)),
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Got the exception: ", EList, "<BR><BR>", Comment]});
+check({'EXIT',{undef,_}}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Tried to invoke operation using undefined module or operation.<BR><BR>", Comment]});
+check({'EXIT', _R}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Invoking the requested operation resulted in an EXIT.<BR><BR>", Comment]});
+check({'EXIT', _R1, _R2}, Comment) ->
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Invoking the requested operation resulted in an EXIT.<BR><BR>", Comment]});
+check(Reply, _) ->
+ Reply.
+
+
+%%----------------------------------------------------------------------
+%% Function : is_running
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+is_running(Node, NodeStr) ->
+ case rpc:call(Node, application, which_applications, []) of
+ {badrpc, _} ->
+ throw(["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Orber not started on node: ", NodeStr, "</FONT>
+ </TD></TR></TABLE>"]);
+ Apps ->
+ is_running2(Apps, NodeStr)
+ end.
+
+is_running2([], NodeStr) ->
+ throw(["<BODY BGCOLOR=\"#FFFFFF\">
+ <TABLE BORDER=0><TR BGCOLOR=\"#FFFFFF\"><TD ALIGN=\"center\" COLSPAN=1>
+ <FONT SIZE=6>Orber not started on node: ", NodeStr, "</FONT>
+ </TD></TR></TABLE>"]);
+is_running2([{orber, _, _} |_], _) ->
+ true;
+is_running2([_ |As], NodeStr) ->
+ is_running2(As, NodeStr).
+
+
+%%----------------------------------------------------------------------
+%% Function : parse_data
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+parse_data([])->
+ [];
+parse_data(Options)->
+ case erl_scan:string(Options ++ ".") of
+ {ok,Tokens,_Line} ->
+ case erl_parse:parse_term(Tokens) of
+ {ok,X}->
+ X;
+ Why ->
+ orber:dbg("[~p] orber_web:parse_data(~p);
+erl_parse:parse_term failed.
+Malformed data: ~p", [?LINE, Options, Why], ?DEBUG_LEVEL),
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to parse supplied data: ",
+ Options]})
+ end;
+ Why ->
+ orber:dbg("[~p] orber_web:parse_data(~p);
+erl_scan:string failed.
+Malformed data: ~p", [?LINE, Options, Why], ?DEBUG_LEVEL),
+ throw({error, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to parse supplied data: ", Options]})
+ end.
+
+%%----------------------------------------------------------------------
+%% Function : remote_resolve
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+remote_resolve(Node, Ref) ->
+ NS = check(rpc:call(Node, corba, resolve_initial_references, ["NameService"]),
+ "Failed to resolve initial refrence (NameService)"),
+ case rpc:call(Node, 'CosNaming_NamingContextExt', resolve_str, [NS, Ref]) of
+ {'EXCEPTION', E} when is_record(E, 'CosNaming_NamingContext_NotFound') ->
+ throw({ok, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to look up the Object: ", Ref,
+ "<BR><BR>Reason: CosNaming_NamingContext_NotFound",
+ "<BR><BR>If You just deleted it, use the 'Go Back' button next time."]});
+ {'EXCEPTION', E} when is_record(E, 'CosNaming_NamingContext_CannotProceed') ->
+ throw({ok, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to look up the Object: ", Ref,
+ "<BR><BR>Reason: CosNaming_NamingContext_CannotProceed",
+ "<BR><BR>If You just deleted it, use the 'Go Back' button next time."]});
+ {badrpc, {'EXCEPTION', E}} when is_record(E, 'CosNaming_NamingContext_NotFound') ->
+ throw({ok, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to look up the Object: ", Ref,
+ "<BR><BR>Reason: CosNaming_NamingContext_NotFound",
+ "<BR><BR>If You just deleted it, use the 'Go Back' button next time."]});
+ {badrpc, {'EXCEPTION', E}} when is_record(E, 'CosNaming_NamingContext_CannotProceed') ->
+ throw({ok, ["<BODY BGCOLOR=\"#FFFFFF\">Unable to look up the Object: ", Ref,
+ "<BR><BR>Reason: CosNaming_NamingContext_CannotProceed",
+ "<BR><BR>If You just deleted it, use the 'Go Back' button next time."]});
+ FoundObj ->
+ {FoundObj, NS}
+ end.
+
+
+
+%%----------------------------------------------------------------------
+%% END OF MODULE
+%%----------------------------------------------------------------------
diff --git a/lib/orber/src/orber_web_server.erl b/lib/orber/src/orber_web_server.erl
new file mode 100644
index 0000000000..9d2a063a69
--- /dev/null
+++ b/lib/orber/src/orber_web_server.erl
@@ -0,0 +1,191 @@
+%%----------------------------------------------------------------------
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2001-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%
+%%
+%%
+%%----------------------------------------------------------------------
+%% File : orber_web_server.erl
+%% Purpose :
+%%----------------------------------------------------------------------
+
+-module(orber_web_server).
+
+-behaviour(gen_server).
+
+-export([init/1,handle_call/3,handle_cast/2,handle_info/2]).
+-export([terminate/2,code_change/3]).
+-export([start/0,stop/0,start_link/0]).
+
+-export([config_data/0, menu/2, configure/2, info/2, nameservice/2,
+ default_selection/2, ifr_select/2, ifr_data/2, create/2,
+ delete_ctx/2, add_ctx/2, delete_obj/2, flash_msg/2]).
+
+%%----------------------------------------------------------------------
+%%-------------- Defines & Includes ------------------------------------
+%%----------------------------------------------------------------------
+-define(HTML_HEADER,
+ "Cache-Control:no-cache\r\nPragma:no-cache\r\nExpires:Thu, 01 Dec 1994 16:00:00 GMT\r\nContent-type: text/html\r\n\r\n<HTML BGCOLOR=\"#FFFFFF\">\n<HEAD>\n<TITLE>Orber O&D</TITLE>\n</HEAD>\n").
+
+
+-define(HTML_END, "</BODY></HTML>").
+
+-define(DEBUG_LEVEL, 5).
+
+-record(state, {ts}).
+-include("ifr_objects.hrl").
+
+%%----------------------------------------------------------------------
+%%-------------- External API ------------------------------------------
+%%----------------------------------------------------------------------
+%% Function : start/start_link/stop
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+start_link()->
+ gen_server:start_link({local,?MODULE},?MODULE,[],[]).
+start()->
+ gen_server:start({local,?MODULE},?MODULE,[],[]).
+stop()->
+ gen_server:call(?MODULE,stop,1000).
+
+%%----------------------------------------------------------------------
+%% Function : config_data
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+config_data()->
+ {orber,[{web_data,{"OrberWeb","/orber/main_frame.html"}},
+ {alias,{"/orber", code:priv_dir(orber)}},
+ {start,{child,{{local,?MODULE},{?MODULE,start_link,[]},
+ permanent,100,worker,[?MODULE]}}},
+ {alias,{erl_alias,"/orber_erl",[orber_web_server]}}
+ ]}.
+
+
+menu(Env,Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {menu, Env, Args}), ?HTML_END].
+
+configure(Env,Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {configure, Env, Args}), ?HTML_END].
+
+nameservice(Env,Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {nameservice, Env, Args}), ?HTML_END].
+
+info(Env,Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {info, Env, Args}), ?HTML_END].
+
+default_selection(Env,Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {default_selection, Env, Args}), ?HTML_END].
+
+flash_msg(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {nameservice, Env, Args}), ?HTML_END].
+
+ifr_select(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {ifr_select, Env, Args}), ?HTML_END].
+
+ifr_data(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {ifr_data, Env, Args}), ?HTML_END].
+
+create(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {create, Env, Args}), ?HTML_END].
+
+delete_ctx(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {delete_ctx, Env, Args}), ?HTML_END].
+
+add_ctx(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {add_ctx, Env, Args}), ?HTML_END].
+
+delete_obj(Env, Input) ->
+ Args = httpd:parse_query(Input),
+ [?HTML_HEADER, gen_server:call(?MODULE, {delete_obj, Env, Args}), ?HTML_END].
+
+%%----------------------------------------------------------------------
+%%-------------- Callback Functions ------------------------------------
+%%----------------------------------------------------------------------
+%% Function : MISC gen_server specific callback functions
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+init(_Arg)->
+ {M, S, U} = now(),
+ TS = M*1000000000000 + S*1000000 + U,
+ {ok, #state{ts = TS}}.
+
+terminate(_,_State)->
+ ok.
+
+handle_cast(_,State)->
+ {noreply,State}.
+
+handle_info(_,State)->
+ {noreply,State}.
+
+code_change(_Old_vsn,State,_Extra)->
+ {ok,State}.
+
+%%----------------------------------------------------------------------
+%% Function : handle_call
+%% Returns :
+%% Description:
+%%----------------------------------------------------------------------
+handle_call({Function, Env, Args}, _From, State)->
+ case catch orber_web:Function(Env, Args) of
+ {'EXIT', R} ->
+ orber:dbg("[~p] orber_web:~p(~p);~nEXIT: ~p",
+ [?LINE, Function, Args, R], ?DEBUG_LEVEL),
+ {reply, "<BODY BGCOLOR=\"#FFFFFF\">Internal Error", State};
+ {'EXIT', R1, R2} ->
+ orber:dbg("[~p] orber_web:~p(~p);~nEXIT: ~p~n~p",
+ [?LINE, Function, Args, R1, R2], ?DEBUG_LEVEL),
+ {reply, "<BODY BGCOLOR=\"#FFFFFF\">Internal Error", State};
+ {badrpc, Why} ->
+ orber:dbg("[~p] orber_web:~p(~p);~nbadrpc: ~p",
+ [?LINE, Function, Args, Why], ?DEBUG_LEVEL),
+ {reply, "<BODY BGCOLOR=\"#FFFFFF\">Internal Error", State};
+ {'EXCEPTION', E} ->
+ orber:dbg("[~p] orber_web:~p(~p);~nEXCEPTION: ~p",
+ [?LINE, Function, Args, E], ?DEBUG_LEVEL),
+ {reply, "<BODY BGCOLOR=\"#FFFFFF\">Internal Error", State};
+ {error, Data} ->
+ orber:dbg("[~p] orber_web:~p(~p); ~nReason: ~p",
+ [?LINE, Function, Args, Data], ?DEBUG_LEVEL),
+ {reply, Data, State};
+ Reply ->
+ {reply, Reply, State}
+ end;
+handle_call(stop, _From, State)->
+ {stop, normal, ok, State};
+handle_call(What, _From, State)->
+ orber:dbg("[~p] orber_web_server:handle_call(~p);",
+ [?LINE, What], ?DEBUG_LEVEL),
+ {reply, "<BODY BGCOLOR=\"#FFFFFF\"><FONT SIZE=6>Unknown Request</FONT>", State}.
+
+%%----------------------------------------------------------------------
+%% END OF MODULE
+%%----------------------------------------------------------------------
diff --git a/lib/orber/vsn.mk b/lib/orber/vsn.mk
new file mode 100644
index 0000000000..8ccdc9792c
--- /dev/null
+++ b/lib/orber/vsn.mk
@@ -0,0 +1,12 @@
+
+ORBER_VSN = 3.6.14
+
+TICKETS = OTP-8201
+
+TICKETS_3.6.13 = OTP-7987
+
+TICKETS_3.6.12 = OTP-7906
+
+TICKETS_3.6.11 = OTP-7837
+
+TICKETS_3.6.10 = OTP-7595